[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAF=yD-Lx7eWLHwNaTwarBPmZEJZ-H=QJVcwpcrgMUXDSkc6V3A@mail.gmail.com>
Date: Mon, 16 Oct 2023 13:43:07 -0400
From: Willem de Bruijn <willemdebruijn.kernel@...il.com>
To: Stanislav Fomichev <sdf@...gle.com>
Cc: Jakub Kicinski <kuba@...nel.org>, davem@...emloft.net, netdev@...r.kernel.org,
edumazet@...gle.com, pabeni@...hat.com, lorenzo@...nel.org,
willemb@...gle.com
Subject: Re: [PATCH net-next 1/3] ynl: netdev: drop unnecessary enum-as-flags
On Mon, Oct 16, 2023 at 1:35 PM Stanislav Fomichev <sdf@...gle.com> wrote:
>
> On 10/03, Jakub Kicinski wrote:
> > enum-as-flags can be used when enum declares bit positions but
> > we want to carry bitmask in an attribute. If the definition
> > is already provided as flags there's no need to indicate
> > the flag-iness of the attribute.
>
> Jakub, Willem hit an issue with this commit when running cli.py:
>
> ./cli.py --spec $KDIR/Documentation/netlink/specs/netdev.yaml --dump dev-get --json='{"ifindex": 12}'
>
> Traceback (most recent call last):
> File "/usr/local/google/home/sdf/net-next/tools/net/ynl/./cli.py", line 60, in <module>
> main()
> File "/usr/local/google/home/sdf/net-next/tools/net/ynl/./cli.py", line 51, in main
> reply = ynl.dump(args.dump, attrs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/local/google/home/sdf/net-next/tools/net/ynl/lib/ynl.py", line 729, in dump
> return self._op(method, vals, [], dump=True)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/local/google/home/sdf/net-next/tools/net/ynl/lib/ynl.py", line 714, in _op
> rsp_msg = self._decode(decoded.raw_attrs, op.attr_set.name)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/local/google/home/sdf/net-next/tools/net/ynl/lib/ynl.py", line 540, in _decode
> decoded = self._decode_enum(decoded, attr_spec)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/local/google/home/sdf/net-next/tools/net/ynl/lib/ynl.py", line 486, in _decode_enum
> value = enum.entries_by_val[raw].name
> ~~~~~~~~~~~~~~~~~~~^^^^^
> KeyError: 127
Indeed. The field is now interpreted as a value rather than a bitmap.
More subtly, even for requests that do not fail, all my devices now
incorrectly report to support xdp feature timestamp, because that is
enum 0.
Powered by blists - more mailing lists