Commit 9fea94d3 authored by Jakub Kicinski's avatar Jakub Kicinski

tools: ynl: fix converting flags to names after recent cleanup

I recently cleaned up specs to not specify enum-as-flags
when target enum is already defined as flags.
YNL Python library did not convert flags, unfortunately,
so this caused breakage for Stan and Willem.

Note that the nlspec.py abstraction already hides the differences
between flags and enums (value vs user_value), so the changes
are pretty trivial.

Fixes: 0629f22e ("ynl: netdev: drop unnecessary enum-as-flags")
Reported-and-tested-by: default avatarWillem de Bruijn <willemb@google.com>
Reported-and-tested-by: default avatarStanislav Fomichev <sdf@google.com>
Link: https://lore.kernel.org/all/ZS10NtQgd_BJZ3RU@google.com/
Link: https://lore.kernel.org/r/20231016213937.1820386-1-kuba@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 9fe1450f
...@@ -474,7 +474,7 @@ class YnlFamily(SpecFamily): ...@@ -474,7 +474,7 @@ class YnlFamily(SpecFamily):
def _decode_enum(self, raw, attr_spec): def _decode_enum(self, raw, attr_spec):
enum = self.consts[attr_spec['enum']] enum = self.consts[attr_spec['enum']]
if 'enum-as-flags' in attr_spec and attr_spec['enum-as-flags']: if enum.type == 'flags' or attr_spec.get('enum-as-flags', False):
i = 0 i = 0
value = set() value = set()
while raw: while raw:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment