Commit d0bdfe36 authored by Asbjørn Sloth Tønnesen's avatar Asbjørn Sloth Tønnesen Committed by Jakub Kicinski
Browse files

tools: ynl-gen: generate nested array policies



This patch adds support for NLA_POLICY_NESTED_ARRAY() policies.

Example spec (from future wireguard.yaml):
-
  name: wgpeer
  attributes:
    -
      name: allowedips
      type: indexed-array
      sub-type: nest
      nested-attributes: wgallowedip

yields NLA_POLICY_NESTED_ARRAY(wireguard_wgallowedip_nl_policy).

This doesn't change any currently generated code, as it isn't
used in any specs currently used for generating code.

Signed-off-by: default avatarAsbjørn Sloth Tønnesen <ast@fiberby.net>
Reviewed-by: default avatarDonald Hunter <donald.hunter@gmail.com>
Reviewed-by: default avatarJakub Kicinski <kuba@kernel.org>
Link: https://patch.msgid.link/20250915144301.725949-3-ast@fiberby.net


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 3ff5258b
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -815,6 +815,11 @@ class TypeArrayNest(Type):
                    f'unsigned int n_{self.c_name}']
        return super().arg_member(ri)

    def _attr_policy(self, policy):
        if self.attr['sub-type'] == 'nest':
            return f'NLA_POLICY_NESTED_ARRAY({self.nested_render_name}_nl_policy)'
        return super()._attr_policy(policy)

    def _attr_typol(self):
        if self.attr['sub-type'] in scalars:
            return f'.type = YNL_PT_U{c_upper(self.sub_type[1:])}, '