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

Jiri Pirko
2024-02-22T13:17:37Z

Wed, Feb 21, 2024 at 07:07:40PM CET, donald.hunter@gmail.com wrote:
>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.

Sure, will add.

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