• Arkadiusz Kubalewski's avatar
    tools: ynl-gen: fix parse multi-attr enum attribute · df15c15e
    Arkadiusz Kubalewski authored
    When attribute is enum type and marked as multi-attr, the netlink
    respond is not parsed, fails with stack trace:
    Traceback (most recent call last):
      File "/net-next/tools/net/ynl/./test.py", line 520, in <module>
        main()
      File "/net-next/tools/net/ynl/./test.py", line 488, in main
        dplls=dplls_get(282574471561216)
      File "/net-next/tools/net/ynl/./test.py", line 48, in dplls_get
        reply=act(args)
      File "/net-next/tools/net/ynl/./test.py", line 41, in act
        reply = ynl.dump(args.dump, attrs)
      File "/net-next/tools/net/ynl/lib/ynl.py", line 598, in dump
        return self._op(method, vals, dump=True)
      File "/net-next/tools/net/ynl/lib/ynl.py", line 584, in _op
        rsp_msg = self._decode(gm.raw_attrs, op.attr_set.name)
      File "/net-next/tools/net/ynl/lib/ynl.py", line 451, in _decode
        self._decode_enum(rsp, attr_spec)
      File "/net-next/tools/net/ynl/lib/ynl.py", line 408, in _decode_enum
        value = enum.entries_by_val[raw].name
    TypeError: unhashable type: 'list'
    error: 1
    
    Redesign _decode_enum(..) to take a enum int value and translate
    it to either a bitmask or enum name as expected.
    Signed-off-by: default avatarArkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
    Reviewed-by: default avatarDonald Hunter <donald.hunter@gmail.com>
    Link: https://lore.kernel.org/r/20230725101642.267248-3-arkadiusz.kubalewski@intel.comReviewed-by: default avatarJakub Kicinski <kuba@kernel.org>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    df15c15e
ynl.py 20.9 KB