Message ID | 20240221155415.158174-2-jiri@resnulli.us (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | tools: ynl: couple of cmdline enhancements | expand |
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 >
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 >>
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'' attr_payload = b'' elif attr["type"] == 'string': attr_payload = str(value).encode('ascii') + b'\x00'