tools: ynl-gen: support using pre-defined values in attr checks
authorHangbin Liu <liuhangbin@gmail.com>
Mon, 11 Mar 2024 14:07:27 +0000 (22:07 +0800)
committerJakub Kicinski <kuba@kernel.org>
Mon, 11 Mar 2024 20:07:48 +0000 (13:07 -0700)
commit8d0c314c30c9fe7f755d941f5d65a6e427518048
tree875edcfb403caf18d452740ba3bfce9e1d0ff64a
parent46f40172b68154106cae660c90c7801b61080892
tools: ynl-gen: support using pre-defined values in attr checks

Support using pre-defined values in checks so we don't need to use hard
code number for the string, binary length. e.g. we have a definition like

 #define TEAM_STRING_MAX_LEN 32

Which defined in yaml like:

 definitions:
   -
     name: string-max-len
     type: const
     value: 32

It can be used in the attribute-sets like

attribute-sets:
  -
    name: attr-option
    name-prefix: team-attr-option-
    attributes:
      -
        name: name
        type: string
        checks:
          len: string-max-len

With this patch it will be converted to

[TEAM_ATTR_OPTION_NAME] = { .type = NLA_STRING, .len = TEAM_STRING_MAX_LEN, }

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Link: https://lore.kernel.org/r/20240311140727.109562-1-liuhangbin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Documentation/netlink/genetlink-c.yaml
Documentation/netlink/genetlink-legacy.yaml
Documentation/netlink/genetlink.yaml
Documentation/netlink/netlink-raw.yaml
tools/net/ynl/ynl-gen-c.py