Re: [patch net-next v2 1/3] tools: ynl: allow user to specify flag attr with bool values

Donald Hunter
2024-02-21T18:07:52Z

On Wed, 21 Feb 2024 at 15:54, Jiri Pirko <jiri@resnulli.us> wrote:
>
> From: Jiri Pirko <jiri@nvidia.com>
>
> The flag attr presence in Netlink message indicates value "true",
> if it is missing in the message it means "false".
>
> Allow user to specify attrname with value "true"/"false"
> in json for flag attrs, treat "false" value properly.
>
> Signed-off-by: Jiri Pirko <jiri@nvidia.com>
> ---
> v1->v2:
> - accept other values than "False"
> ---
> tools/net/ynl/lib/ynl.py | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tools/net/ynl/lib/ynl.py b/tools/net/ynl/lib/ynl.py
> index f45ee5f29bed..4a44840bab68 100644
> --- a/tools/net/ynl/lib/ynl.py
> +++ b/tools/net/ynl/lib/ynl.py
> @@ -459,6 +459,8 @@ class YnlFamily(SpecFamily):
> attr_payload += self._add_attr(attr['nested-attributes'],
> subname, subvalue, sub_attrs)
> elif attr["type"] == 'flag':
> + if not value:
> + return b''

Minor nit: It took me a moment to realise that by returning here, this
skips attribute creation. A comment to this effect would be helpful:

# If value is absent or false then skip attribute creation.

> attr_payload = b''
> elif attr["type"] == 'string':
> attr_payload = str(value).encode('ascii') + b'\x00'
> --
> 2.43.2
>