From: Donald Hunter <donald.hunter@gmail.com>
To: netdev@vger.kernel.org, Jakub Kicinski <kuba@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Paolo Abeni <pabeni@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
linux-doc@vger.kernel.org,
Jacob Keller <jacob.e.keller@intel.com>,
Breno Leitao <leitao@debian.org>, Jiri Pirko <jiri@resnulli.us>,
Alessandro Marcolini <alessandromarcolini99@gmail.com>
Cc: donald.hunter@redhat.com, Donald Hunter <donald.hunter@gmail.com>
Subject: [PATCH net-next v2 09/13] tools/net/ynl: Move formatted_string method out of NlAttr
Date: Mon, 29 Jan 2024 22:34:54 +0000 [thread overview]
Message-ID: <20240129223458.52046-10-donald.hunter@gmail.com> (raw)
In-Reply-To: <20240129223458.52046-1-donald.hunter@gmail.com>
The formatted_string() class method was in NlAttr so that it could be
accessed by NlAttr.as_struct(). Now that as_struct() has been removed,
move formatted_string() to YnlFamily as an internal helper method.
Signed-off-by: Donald Hunter <donald.hunter@gmail.com>
Reviewed-by: Breno Leitao <leitao@debian.org>
---
tools/net/ynl/lib/ynl.py | 31 +++++++++++++++----------------
1 file changed, 15 insertions(+), 16 deletions(-)
diff --git a/tools/net/ynl/lib/ynl.py b/tools/net/ynl/lib/ynl.py
index 173ef4489e38..2b0ca61deaf8 100644
--- a/tools/net/ynl/lib/ynl.py
+++ b/tools/net/ynl/lib/ynl.py
@@ -113,20 +113,6 @@ class NlAttr:
else format.little
return format.native
- @classmethod
- def formatted_string(cls, raw, display_hint):
- if display_hint == 'mac':
- formatted = ':'.join('%02x' % b for b in raw)
- elif display_hint == 'hex':
- formatted = bytes.hex(raw, ' ')
- elif display_hint in [ 'ipv4', 'ipv6' ]:
- formatted = format(ipaddress.ip_address(raw))
- elif display_hint == 'uuid':
- formatted = str(uuid.UUID(bytes=raw))
- else:
- formatted = raw
- return formatted
-
def as_scalar(self, attr_type, byte_order=None):
format = self.get_format(attr_type, byte_order)
return format.unpack(self.raw)[0]
@@ -530,7 +516,7 @@ class YnlFamily(SpecFamily):
else:
decoded = attr.as_bin()
if attr_spec.display_hint:
- decoded = NlAttr.formatted_string(decoded, attr_spec.display_hint)
+ decoded = self._formatted_string(decoded, attr_spec.display_hint)
return decoded
def _decode_array_nest(self, attr, attr_spec):
@@ -715,7 +701,7 @@ class YnlFamily(SpecFamily):
if m.enum:
value = self._decode_enum(value, m)
elif m.display_hint:
- value = NlAttr.formatted_string(value, m.display_hint)
+ value = self._formatted_string(value, m.display_hint)
attrs[m.name] = value
return attrs
@@ -738,6 +724,19 @@ class YnlFamily(SpecFamily):
attr_payload += format.pack(value)
return attr_payload
+ def _formatted_string(self, raw, display_hint):
+ if display_hint == 'mac':
+ formatted = ':'.join('%02x' % b for b in raw)
+ elif display_hint == 'hex':
+ formatted = bytes.hex(raw, ' ')
+ elif display_hint in [ 'ipv4', 'ipv6' ]:
+ formatted = format(ipaddress.ip_address(raw))
+ elif display_hint == 'uuid':
+ formatted = str(uuid.UUID(bytes=raw))
+ else:
+ formatted = raw
+ return formatted
+
def handle_ntf(self, decoded):
msg = dict()
if self.include_raw:
--
2.42.0
next prev parent reply other threads:[~2024-01-29 22:35 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-29 22:34 [PATCH net-next v2 00/13] tools/net/ynl: Add features for tc family Donald Hunter
2024-01-29 22:34 ` [PATCH net-next v2 01/13] tools/net/ynl: Add --output-json arg to ynl cli Donald Hunter
2024-01-29 22:34 ` [PATCH net-next v2 02/13] tools/net/ynl: Support sub-messages in nested attribute spaces Donald Hunter
2024-01-29 22:34 ` [PATCH net-next v2 03/13] doc/netlink: Describe sub-message selector resolution Donald Hunter
2024-01-29 22:34 ` [PATCH net-next v2 04/13] tools/net/ynl: Refactor fixed header encoding into separate method Donald Hunter
2024-01-30 11:21 ` Breno Leitao
2024-01-29 22:34 ` [PATCH net-next v2 05/13] tools/net/ynl: Add support for encoding sub-messages Donald Hunter
2024-01-29 22:34 ` [PATCH net-next v2 06/13] tools/net/ynl: Encode default values for binary blobs Donald Hunter
2024-01-29 22:34 ` [PATCH net-next v2 07/13] tools/net/ynl: Combine struct decoding logic in ynl Donald Hunter
2024-01-29 22:34 ` [PATCH net-next v2 08/13] tools/net/ynl: Rename _fixed_header_size() to _struct_size() Donald Hunter
2024-01-29 22:34 ` Donald Hunter [this message]
2024-01-29 22:34 ` [PATCH net-next v2 10/13] tools/net/ynl: Add support for nested structs Donald Hunter
2024-01-29 22:34 ` [PATCH net-next v2 11/13] doc/netlink: Describe nested structs in netlink raw docs Donald Hunter
2024-01-29 22:34 ` [PATCH net-next v2 12/13] tools/net/ynl: Add type info to struct members in generated docs Donald Hunter
2024-01-29 22:34 ` [PATCH net-next v2 13/13] doc/netlink/specs: Update the tc spec Donald Hunter
2024-01-30 10:22 ` [PATCH net-next v2 00/13] tools/net/ynl: Add features for tc family Jiri Pirko
2024-02-01 5:20 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240129223458.52046-10-donald.hunter@gmail.com \
--to=donald.hunter@gmail.com \
--cc=alessandromarcolini99@gmail.com \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=donald.hunter@redhat.com \
--cc=edumazet@google.com \
--cc=jacob.e.keller@intel.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=leitao@debian.org \
--cc=linux-doc@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.