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 e27deb199a707f45fd16cf2cc397817c4becd0ae..13d06931c045ea6477edb3c4c13c4eb339461286 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