mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
tools/net/ynl: Move formatted_string method out of NlAttr
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> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Link: https://lore.kernel.org/r/20240129223458.52046-10-donald.hunter@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
886365cf40
commit
971c3eeaf6
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user