]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tools: ynl: cli: Display enum values in --list-attrs output
authorGal Pressman <gal@nvidia.com>
Tue, 18 Nov 2025 14:32:08 +0000 (16:32 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 20 Nov 2025 14:43:04 +0000 (15:43 +0100)
When listing attributes with --list-attrs, display the actual enum
values for attributes that reference an enum type.

  # ./cli.py --family netdev --list-attrs dev-get
  [..]
    - xdp-features: u64 (enum: xdp-act)
      Flags: basic, redirect, ndo-xmit, xsk-zerocopy, hw-offload, rx-sg, ndo-xmit-sg
      Bitmask of enabled xdp-features.
  [..]

Reviewed-by: Nimrod Oren <noren@nvidia.com>
Signed-off-by: Gal Pressman <gal@nvidia.com>
Link: https://patch.msgid.link/20251118143208.2380814-4-gal@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/net/ynl/pyynl/cli.py

index 6655ee61081a0a2ebc4dada3a8eb500eb7fc1f17..ff81ff08376464f97b05ad6f9432d46f81d17ff9 100755 (executable)
@@ -48,7 +48,13 @@ def print_attr_list(ynl, attr_names, attr_set, indent=2):
             attr = attr_set.attrs[attr_name]
             attr_info = f'{prefix}- {attr_name}: {attr.type}'
             if 'enum' in attr.yaml:
-                attr_info += f" (enum: {attr.yaml['enum']})"
+                enum_name = attr.yaml['enum']
+                attr_info += f" (enum: {enum_name})"
+                # Print enum values if available
+                if enum_name in ynl.consts:
+                    const = ynl.consts[enum_name]
+                    enum_values = list(const.entries.keys())
+                    attr_info += f"\n{prefix}  {const.type.capitalize()}: {', '.join(enum_values)}"
 
             # Show nested attributes reference and recursively display them
             nested_set_name = None