tools: ynl-gen: inherit struct use info

We only render parse and netlink generation helpers as needed,
to avoid generating dead code. Propagate the information from
first- and second-layer attribute sets onto all children.
Otherwise devlink won't work, it has a lot more levels of nesting.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Jakub Kicinski 2023-06-07 13:23:58 -07:00
parent 6afaa0ef9b
commit 37487f93b1

View File

@ -896,6 +896,14 @@ class Family(SpecFamily):
pns_key_seen.add(name)
else:
pns_key_list.append(name)
# Propagate the request / reply
for attr_set, struct in reversed(self.pure_nested_structs.items()):
for _, spec in self.attr_sets[attr_set].items():
if 'nested-attributes' in spec:
child = self.pure_nested_structs.get(spec['nested-attributes'])
if child:
child.request |= struct.request
child.reply |= struct.reply
def _load_all_notify(self):
for op_name, op in self.ops.items():