]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tools/net/ynl: support rendering C array members to strings
authorDonald Hunter <donald.hunter@gmail.com>
Tue, 11 Feb 2025 12:01:20 +0000 (12:01 +0000)
committerJakub Kicinski <kuba@kernel.org>
Thu, 13 Feb 2025 03:32:07 +0000 (19:32 -0800)
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>
tools/net/ynl/pyynl/lib/ynl.py

index b73e07f1f60cd2b6e57c12cc3410327a2122b2f6..62ce3340796ffad67c904264b52b7c13dacf410a 100644 (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: