tools/net/ynl: support rendering C array members to strings

The nl80211 family encodes the list of supported ciphers as a C array of
u32 values. Add support for translating arrays of scalars into strings
for enum names and display hints.

Signed-off-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://patch.msgid.link/20250211120127.84858-4-donald.hunter@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Donald Hunter 2025-02-11 12:01:20 +00:00 committed by Jakub Kicinski
parent 678d8ddd00
commit 569a5d63fd

View File

@ -627,6 +627,11 @@ class YnlFamily(SpecFamily):
decoded = self._decode_struct(attr.raw, attr_spec.struct_name)
elif attr_spec.sub_type:
decoded = attr.as_c_array(attr_spec.sub_type)
if 'enum' in attr_spec:
decoded = [ self._decode_enum(x, attr_spec) for x in decoded ]
elif attr_spec.display_hint:
decoded = [ self._formatted_string(x, attr_spec.display_hint)
for x in decoded ]
else:
decoded = attr.as_bin()
if attr_spec.display_hint: