From patchwork Fri Mar 1 23:05:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13579235 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 85F3E5EE80 for ; Fri, 1 Mar 2024 23:05:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709334352; cv=none; b=tbuXsyZw4RxzYbrZMvS4ihgVInKN509b/dnwOAwIH71BrDc3EHNJ0hecNJcSFQFaiCCpno0faqGMU/vw3lFUlh4/YRbvhncRGser6ZmW6fsnD7klNrV29IH0QckHO88PS+jz8y+xrbd7mN+E2FRmJ980elfN5j8nmbLbt7E5RYc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709334352; c=relaxed/simple; bh=Pg8IKvu6C9U4914HAOepP2IYBPxebyo2cAjVTXugOP4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o7KSxbFi3D4qDe51h39sKJkYI2PbpwZ6NQLMkzkXO9F8jePl7XT5OZ3V5BdcCBp8Qz5iIKdjSkeuYVaYL7Mx/lTlBTuBJoTc5wPzTHrXbtUESw43vmEsQEfcFwqR7yvYpInm4HUzBcG/9PbHNzuvw4Q0sYvtIQAP2eIU5ADP5Ho= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hZmN6IIp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hZmN6IIp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C46A4C43390; Fri, 1 Mar 2024 23:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1709334352; bh=Pg8IKvu6C9U4914HAOepP2IYBPxebyo2cAjVTXugOP4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hZmN6IIpo44YlMY7cNjViakLe8R/53FfdZqDTu22Abd7SM2OsanzcTfwzEPKuRDsO J7K4XVfbKbRIwioKg2fOHeIeAD7NuPFW1rUfpnz8pk9w6K/hGSwcQgKd/ODFQlrDUm elOGouFzpOh/ipbiAM8hEM1ugn8AacDiSil0eBqbFpBHBRBOBWieZYRSZ0+yIIShDe 4xBqqQs4SmkIQuJYKJ79T0dR5iNQF8vXu8Pd8SDFLLY2jpxskvx8L0boyKoLDQVSOq Pu73SRGlt/pBK3d7KkCn+KK6ivFJMmblfgfDIOyGntDiDOW/R5fm82lkkO5EfhkwL8 qrJOpVzc6ZssQ== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, jiri@resnulli.us, donald.hunter@gmail.com, Jakub Kicinski Subject: [PATCH net-next 1/4] tools: ynl: move the new line in NlMsg __repr__ Date: Fri, 1 Mar 2024 15:05:39 -0800 Message-ID: <20240301230542.116823-2-kuba@kernel.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240301230542.116823-1-kuba@kernel.org> References: <20240301230542.116823-1-kuba@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org We add the new line even if message has no error or extack, which leads to print(nl_msg) ending with two new lines. Signed-off-by: Jakub Kicinski Reviewed-by: Donald Hunter --- tools/net/ynl/lib/ynl.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/net/ynl/lib/ynl.py b/tools/net/ynl/lib/ynl.py index ac55aa5a3083..92ade9105f31 100644 --- a/tools/net/ynl/lib/ynl.py +++ b/tools/net/ynl/lib/ynl.py @@ -213,11 +213,11 @@ from .nlspec import SpecFamily return self.nl_type def __repr__(self): - msg = f"nl_len = {self.nl_len} ({len(self.raw)}) nl_flags = 0x{self.nl_flags:x} nl_type = {self.nl_type}\n" + msg = f"nl_len = {self.nl_len} ({len(self.raw)}) nl_flags = 0x{self.nl_flags:x} nl_type = {self.nl_type}" if self.error: - msg += '\terror: ' + str(self.error) + msg += '\n\terror: ' + str(self.error) if self.extack: - msg += '\textack: ' + repr(self.extack) + msg += '\n\textack: ' + repr(self.extack) return msg From patchwork Fri Mar 1 23:05:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13579236 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CCCA35EE87 for ; Fri, 1 Mar 2024 23:05:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709334352; cv=none; b=fWpLPdWRxJgHlRDiRf5QW50kAhnZe6NmZE68ZEZo44pd0BWGO2rhWpamaMoXNE3EH+9kbVhzQhdtXXdYDH7k1YYB9JkLY5lTrt91v2rLbXFY/cRCHzirAl4qUfjFWbC87f72QvqsRZ5xUMK6vFsmkSm9OBCYJDFFOy42z2DVj+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709334352; c=relaxed/simple; bh=R79Jbbmzra6Cjtq8MYHP5ttSVah2jSDgzWPs1rikcWM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mVA+wrb9f0lsVw1rR7GIcuQ/X7JdPiNrbcVpoObptPwXgRKDtxi6up+kAzjo9f3ENWy62YokvEc8TLSFK9E46UcSlS05cvMLkpl0+OrQ2G2suUsNIhvoeiusq1YaQyBGxgD0Rlm0oxRZsduhGO2UzTOO/a3YQ78tJnf0ei25eQw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rnEDAvW1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rnEDAvW1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 28952C43394; Fri, 1 Mar 2024 23:05:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1709334352; bh=R79Jbbmzra6Cjtq8MYHP5ttSVah2jSDgzWPs1rikcWM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rnEDAvW1cgiXJvJvduBqkCSTdZoXmyObuTyS1wvmD4jnAdJ/5j00MLZuryfc6wxbu Lxrm+0eiaMDkPHM1NUm4DxkSj3OaMQ7HbWm69DS1sXgL6vJD1d+52kjPPaCbzSiFUm vFXA4wFLICrgd9eORLOirK2NvA9LwsU5vHiGrS7bwPpJCfQyNwSPtvHI5xbMFlCJ3X 6pu/Z+cJRpOw60qDUzPDHYhTGU9iCfC7IWhAaZPcnnZJtWSBzaCyan2bMtljhO0rOr y3KHeV8I/0G0guUZUEd8/ujuEgBGqKeKcT1qpCbtCnpfqpYCrkEbTzzoaPqIrkEunf WjTfG1w4Vk1Xg== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, jiri@resnulli.us, donald.hunter@gmail.com, Jakub Kicinski Subject: [PATCH net-next 2/4] tools: ynl: allow setting recv() size Date: Fri, 1 Mar 2024 15:05:40 -0800 Message-ID: <20240301230542.116823-3-kuba@kernel.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240301230542.116823-1-kuba@kernel.org> References: <20240301230542.116823-1-kuba@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Make the size of the buffer we use for recv() configurable. The details of the buffer sizing in netlink are somewhat arcane, we could spend a lot of time polishing this API. Let's just leave some hopefully helpful comments for now. This is a for-developers-only feature, anyway. Signed-off-by: Jakub Kicinski --- tools/net/ynl/lib/ynl.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/tools/net/ynl/lib/ynl.py b/tools/net/ynl/lib/ynl.py index 92ade9105f31..bc5a526dbb99 100644 --- a/tools/net/ynl/lib/ynl.py +++ b/tools/net/ynl/lib/ynl.py @@ -84,6 +84,10 @@ from .nlspec import SpecFamily return f"Netlink error: {os.strerror(-self.nl_msg.error)}\n{self.nl_msg}" +class ConfigError(Exception): + pass + + class NlAttr: ScalarFormat = namedtuple('ScalarFormat', ['native', 'big', 'little']) type_formats = { @@ -400,7 +404,8 @@ genl_family_name_to_id = None class YnlFamily(SpecFamily): - def __init__(self, def_path, schema=None, process_unknown=False): + def __init__(self, def_path, schema=None, process_unknown=False, + recv_size=131072): super().__init__(def_path, schema) self.include_raw = False @@ -423,6 +428,16 @@ genl_family_name_to_id = None self.async_msg_ids = set() self.async_msg_queue = [] + # Note that netlink will use conservative (min) message size for + # the first dump recv() on the socket, our setting will only matter + # from the second recv() on. + self._recv_size = recv_size + # Netlink will always allocate at least PAGE_SIZE - sizeof(skb_shinfo) + # for a message, so smaller receive sizes will lead to truncation. + # Note that the min size for other families may be larger than 4k! + if self._recv_size < 4000: + raise ConfigError() + for msg in self.msgs.values(): if msg.is_async: self.async_msg_ids.add(msg.rsp_value) @@ -799,7 +814,7 @@ genl_family_name_to_id = None def check_ntf(self): while True: try: - reply = self.sock.recv(128 * 1024, socket.MSG_DONTWAIT) + reply = self.sock.recv(self._recv_size, socket.MSG_DONTWAIT) except BlockingIOError: return @@ -854,7 +869,7 @@ genl_family_name_to_id = None done = False rsp = [] while not done: - reply = self.sock.recv(128 * 1024) + reply = self.sock.recv(self._recv_size) nms = NlMsgs(reply, attr_space=op.attr_set) for nl_msg in nms: if nl_msg.extack: From patchwork Fri Mar 1 23:05:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13579238 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 481DB5F46D for ; Fri, 1 Mar 2024 23:05:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709334353; cv=none; b=aWE8rnINA1FofjOT/2TZ1ePaPsa5wZ6ECVXJUGRlcfbrVM4xJQZaWGLAO86ToM4oWAmcmMKYcGvQcI41mL5jQreLXBPDCwAvl8hFe/sPBPXNCw8jgtF+nwx3YFIPKJGK1ZITl15+5x8vRrLlgj0ixX1WOdSEaz+JdcXnjuuWrtg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709334353; c=relaxed/simple; bh=M1FbGGMoVFJFwVHbr/8l0T3dLBK7vaN6zfOQcp/J4/Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HtgE3b3gaLpR2LMq1hlbR3NarGPa7SiYpfLSDKs2K+oL1W3tHLa60wOw3in0BCDBQTL/mw+R2t1J9brbHi2n3J4VxE2/gmTl+nPRoKuFZdGFyj4TqKa7uY/JoKb7wb2CGZmE/9BC2n4BmBz3M6QcnylwZ6p4mG+7aYSdOgmVoJg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kUpvF0jh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kUpvF0jh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81916C433B1; Fri, 1 Mar 2024 23:05:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1709334352; bh=M1FbGGMoVFJFwVHbr/8l0T3dLBK7vaN6zfOQcp/J4/Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kUpvF0jhStmlzFr95uaaYJaituN/G/uynHM8gzPh1hKCkLW/fevSB/eqAhs2a7Vyg g5TvPHDGVrZioeMhv+H4AOsRhlOo21nWWow4iyud7hQZ/sAHHwjCxST6P5BEWEQ7bb JmAb5X7TrNU4pYY1dRJuC25WxUkhlg155ryVJ1lr7wuMnx1OUQlmao6A2Y2vVrNzYt j5n6pM3q7j2s7KbfIhJBTK5HVTaNUbaV/BQHguI3hvkqrOicCyJdYuykuGzbY4Pyp+ tZjouDtlGHt8oNrAGkkRHNhkf+TnaICxjdZ6SHnrqkANge0bCd9AOAYNSPIwi/KQ87 vX3j4HG/elz5Q== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, jiri@resnulli.us, donald.hunter@gmail.com, Jakub Kicinski Subject: [PATCH net-next 3/4] tools: ynl: support debug printing messages Date: Fri, 1 Mar 2024 15:05:41 -0800 Message-ID: <20240301230542.116823-4-kuba@kernel.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240301230542.116823-1-kuba@kernel.org> References: <20240301230542.116823-1-kuba@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org For manual debug, allow printing the netlink level messages to stderr. Signed-off-by: Jakub Kicinski Reviewed-by: Donald Hunter --- tools/net/ynl/lib/ynl.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tools/net/ynl/lib/ynl.py b/tools/net/ynl/lib/ynl.py index bc5a526dbb99..2462228dacc1 100644 --- a/tools/net/ynl/lib/ynl.py +++ b/tools/net/ynl/lib/ynl.py @@ -7,6 +7,7 @@ import random import socket import struct from struct import Struct +import sys import yaml import ipaddress import uuid @@ -428,6 +429,7 @@ genl_family_name_to_id = None self.async_msg_ids = set() self.async_msg_queue = [] + self._recv_dbg = False # Note that netlink will use conservative (min) message size for # the first dump recv() on the socket, our setting will only matter # from the second recv() on. @@ -453,6 +455,17 @@ genl_family_name_to_id = None self.sock.setsockopt(Netlink.SOL_NETLINK, Netlink.NETLINK_ADD_MEMBERSHIP, mcast_id) + def set_recv_dbg(self, enabled): + self._recv_dbg = enabled + + def _recv_dbg_print(self, reply, nl_msgs): + if not self._recv_dbg: + return + print("Recv: read", len(reply), "bytes,", + len(nl_msgs.msgs), "messages", file=sys.stderr) + for nl_msg in nl_msgs: + print(" ", nl_msg, file=sys.stderr) + def _encode_enum(self, attr_spec, value): enum = self.consts[attr_spec['enum']] if enum.type == 'flags' or attr_spec.get('enum-as-flags', False): @@ -819,6 +832,7 @@ genl_family_name_to_id = None return nms = NlMsgs(reply) + self._recv_dbg_print(reply, nms) for nl_msg in nms: if nl_msg.error: print("Netlink error in ntf!?", os.strerror(-nl_msg.error)) @@ -871,6 +885,7 @@ genl_family_name_to_id = None while not done: reply = self.sock.recv(self._recv_size) nms = NlMsgs(reply, attr_space=op.attr_set) + self._recv_dbg_print(reply, nms) for nl_msg in nms: if nl_msg.extack: self._decode_extack(msg, op, nl_msg.extack) From patchwork Fri Mar 1 23:05:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13579237 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 39A955F46A for ; Fri, 1 Mar 2024 23:05:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709334353; cv=none; b=bLPVN993yt3SatuxQODiwTrV9OteyedaU7qjIJYPulRMqJ91ISG91nLNITRX2QNCf6bi7M4lCEW8JxP2S1hRedXKlvWhW81fDshPSITRQ52xe1lnXaG0plT5nQK53+bAGHeF4LGuQMSTDQnCtwtDoLRcLgDa849NZVGkImWf+14= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709334353; c=relaxed/simple; bh=LYJESzFtqcgL/UEJZGNrt8IF5+SGZcoBhszjj2nbHrk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=N37FrZd7oLHiDiZeWrkmY9EWfiV87t/3P41KsxIT4vyVqkO6Kqu7CF8oFD36rVjSCRmzRq/xiQbew0HQcloI3KiUrDexquNVT/UkWDJUD4D5qIAZ9BLrG3zqMA5JpSFIS1lG6d7dyw986HAErXAcQ2GQL2nB9IzzSQZzofn01fk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=b6TVCOIV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="b6TVCOIV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D9A36C433B2; Fri, 1 Mar 2024 23:05:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1709334353; bh=LYJESzFtqcgL/UEJZGNrt8IF5+SGZcoBhszjj2nbHrk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=b6TVCOIVUomZmnBB8Sj6T7wNcDAYo0brk7H32XmTuUhoOLSnO1vF7IXna33esbZ77 kSdSZ3/Y0X4DpOFEM46+nX2k54Bc/WwHgresWYkDshnJR+slVV88z3rQMr/JU51Hdv rMRKZK7+I6rCMEaZtYTEYkeG2O+BkcUVSaud7uih8fJZfi2Q6/8uZRJ+RyZXM9pIeQ IKiPuDTaJmtajvA+i6yDd7CvNjXWwx/8Dyf39ouFg1VYa+OSx2FSuH1sbJjqDuUN1t 25RpXBoi2OpIdhcIsjeFr97eITZ6rbv3h873T4FVO7fnaN4tC2g6n5nbxvxmDP8l+/ XptZAbKZ7+6aA== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, jiri@resnulli.us, donald.hunter@gmail.com, Jakub Kicinski Subject: [PATCH net-next 4/4] tools: ynl: add --dbg-small-recv for easier kernel testing Date: Fri, 1 Mar 2024 15:05:42 -0800 Message-ID: <20240301230542.116823-5-kuba@kernel.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240301230542.116823-1-kuba@kernel.org> References: <20240301230542.116823-1-kuba@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Most "production" netlink clients use large buffers to make dump efficient, which means that handling of dump continuation in the kernel is not very well tested. Add an option for debugging / testing handling of dumps. It enables printing of extra netlink-level debug and lowers the recv() buffer size in one go. When used without any argument (--dbg-small-recv) it picks a very small default (4000), explicit size can be set, too (--dbg-small-recv 5000). Example: $ ./cli.py [...] --dbg-small-recv Recv: read 3712 bytes, 29 messages nl_len = 128 (112) nl_flags = 0x0 nl_type = 19 [...] nl_len = 128 (112) nl_flags = 0x0 nl_type = 19 Recv: read 3968 bytes, 31 messages nl_len = 128 (112) nl_flags = 0x0 nl_type = 19 [...] nl_len = 128 (112) nl_flags = 0x0 nl_type = 19 Recv: read 532 bytes, 5 messages nl_len = 128 (112) nl_flags = 0x0 nl_type = 19 [...] nl_len = 128 (112) nl_flags = 0x0 nl_type = 19 nl_len = 20 (4) nl_flags = 0x2 nl_type = 3 (the [...] are edits to shorten the commit message). Note that the first message of the dump is sized conservatively by the kernel. Signed-off-by: Jakub Kicinski --- tools/net/ynl/cli.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/net/ynl/cli.py b/tools/net/ynl/cli.py index 0f8239979670..e8a65fbc3698 100755 --- a/tools/net/ynl/cli.py +++ b/tools/net/ynl/cli.py @@ -38,6 +38,8 @@ from lib import YnlFamily, Netlink const=Netlink.NLM_F_APPEND) parser.add_argument('--process-unknown', action=argparse.BooleanOptionalAction) parser.add_argument('--output-json', action='store_true') + parser.add_argument('--dbg-small-recv', default=0, const=4000, + action='store', nargs='?', type=int) args = parser.parse_args() def output(msg): @@ -53,7 +55,10 @@ from lib import YnlFamily, Netlink if args.json_text: attrs = json.loads(args.json_text) - ynl = YnlFamily(args.spec, args.schema, args.process_unknown) + ynl = YnlFamily(args.spec, args.schema, args.process_unknown, + recv_size=args.dbg_small_recv) + if args.dbg_small_recv: + ynl.set_recv_dbg(True) if args.ntf: ynl.ntf_subscribe(args.ntf)