Re: [PATCH net v2] tools/net/ynl: fix cli.py --subscribe feature

From: Donald Hunter
Date: Wed Sep 04 2024 - 13:24:29 EST


On Wed, 4 Sept 2024 at 14:55, Arkadiusz Kubalewski
<arkadiusz.kubalewski@xxxxxxxxx> wrote:
>
> Execution of command:
> ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/dpll.yaml /
> --subscribe "monitor" --sleep 10
> fails with:
> File "/repo/./tools/net/ynl/cli.py", line 109, in main
> ynl.check_ntf()
> File "/repo/tools/net/ynl/lib/ynl.py", line 924, in check_ntf
> op = self.rsp_by_value[nl_msg.cmd()]
> KeyError: 19
>
> Parsing Generic Netlink notification messages performs lookup for op in
> the message. The message was not yet decoded, and is not yet considered
> GenlMsg, thus msg.cmd() returns Generic Netlink family id (19) instead of
> proper notification command id (i.e.: DPLL_CMD_PIN_CHANGE_NTF=13).
>
> Allow the op to be obtained within NetlinkProtocol.decode(..) itself if the
> op was not passed to the decode function, thus allow parsing of Generic
> Netlink notifications without causing the failure.
>
> Suggested-by: Donald Hunter <donald.hunter@xxxxxxxxx>
> Link: https://lore.kernel.org/netdev/m2le0n5xpn.fsf@xxxxxxxxx/
> Fixes: 0a966d606c68 ("tools/net/ynl: Fix extack decoding for directional ops")
> Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@xxxxxxxxx>

Reviewed-by: Donald Hunter <donald.hunter@xxxxxxxxx>