tools: ynl-gen: fix collecting global policy attrs
authorJakub Kicinski <kuba@kernel.org>
Thu, 24 Aug 2023 00:30:54 +0000 (17:30 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 25 Aug 2023 02:04:20 +0000 (19:04 -0700)
We look for attributes inside do.request, but there's another
layer of nesting in the spec, look inside do.request.attributes.

This bug had no effect as all global policies we generate (fou)
seem to be full, anyway, and we treat full and empty the same.

Next patch will change the treatment of empty policies.

Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://lore.kernel.org/r/20230824003056.1436637-4-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/net/ynl/ynl-gen-c.py

index e27deb1..13d0693 100755 (executable)
@@ -978,7 +978,9 @@ class Family(SpecFamily):
 
             for op_mode in ['do', 'dump']:
                 if op_mode in op:
-                    global_set.update(op[op_mode].get('request', []))
+                    req = op[op_mode].get('request')
+                    if req:
+                        global_set.update(req.get('attributes', []))
 
         self.global_policy = []
         self.global_policy_set = attr_set_name