From: Hangbin Liu <hangbin.liu@linux.dev>
To: netdev-bot+sashiko@kernel.org
Cc: dsahern@kernel.org, idosch@nvidia.com, davem@davemloft.net,
edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
horms@kernel.org, donald.hunter@gmail.com,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
bpf@vger.kernel.org, liuhangbin@kylinos.cn
Subject: Re: [PATCH net-next 5/6] netlink: specs: rt-route: describe lwt BPF program options
Date: Mon, 21 Sep 2026 17:46:46 +0800 [thread overview]
Message-ID: <arD89olLH_d2Y29A@fedora> (raw)
In-Reply-To: <178997269710.2160803.17529308820161087653@kernel.org>
On Mon, Sep 21, 2026 at 06:38:17AM +0000, netdev-bot+sashiko@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 2 potential
> issue(s) to consider.
>
> Critical: 0 · High: 0 · Medium: 1 · Low: 1
>
> If you believe none of the issues are legitimate, please reply to each
> issue of Medium severity or higher and explain why the AI is wrong.
> If any of them are legitimate and you plan to respin, please let patchwork
> know by including "pw-bot: cr" as a separate line at the end of your reply
> (one such reply per series is enough).
>
> - [Medium] Documentation/netlink/specs/rt-route.yaml re-points the
> seg6-local `bpf` attribute (SEG6_LOCAL_BPF) at the newly added `lwt-…
Thanks, I will update the SEG6_LOCAL_BPF attrs in the seg6 update (patch 06).
in v3.
Hangbin
> - [Low] The new `lwt-bpf-prog` `name` attribute in
> Documentation/netlink/specs/rt-route.yaml (lines 624-626) is declared…
>
> --
>
> netlink: specs: rt-route: describe lwt BPF program options
>
> This changes the lwt-bpf in/out/xmit attributes and the seg6-local bpf
> attribute in Documentation/netlink/specs/rt-route.yaml from binary to a
> nest, and adds a new shared lwt-bpf-prog attribute set with fd and name
> members.
>
> > diff --git a/Documentation/netlink/specs/rt-route.yaml b/Documentation/netlink/specs/rt-route.yaml
> > index 6030d7cb8d0d1..5e9537f7dfad4 100644
> > --- a/Documentation/netlink/specs/rt-route.yaml
> > +++ b/Documentation/netlink/specs/rt-route.yaml
>
> [ ... ]
>
> > @@ -503,7 +506,8 @@ attribute-sets:
> > type: u32
> > -
> > name: bpf
> > - type: binary
> > + type: nest
> > + nested-attributes: lwt-bpf-prog
>
> [Severity: Medium]
> Should the seg6-local bpf attribute point at the lwt-bpf-prog set? This
> attribute lives in the seg6-local set, which carries
> header: linux/seg6_local.h, but lwt-bpf-prog below uses
> name-prefix: lwt-bpf-prog-, so its members document and generate as
> LWT_BPF_PROG_FD / LWT_BPF_PROG_NAME.
>
> Those identifiers come from linux/lwtunnel.h:
>
> enum {
> LWT_BPF_PROG_UNSPEC,
> LWT_BPF_PROG_FD,
> LWT_BPF_PROG_NAME,
> __LWT_BPF_PROG_MAX,
> };
>
> while the seg6-local nest is a separate uAPI namespace in
> linux/seg6_local.h:
>
> enum {
> SEG6_LOCAL_BPF_PROG_UNSPEC,
> SEG6_LOCAL_BPF_PROG,
> SEG6_LOCAL_BPF_PROG_NAME,
> __SEG6_LOCAL_BPF_PROG_MAX,
> };
>
> The values (1, 2) and payload types happen to coincide, so the wire format
> still decodes, but does this end up documenting SRv6 attributes with
> lwtunnel.h names? There also seems to be no header: value that can be
> correct for a set shared between linux/lwtunnel.h and
> linux/seg6_local.h.
>
> Would a separate seg6-local-bpf-prog set with
> header: linux/seg6_local.h be more accurate here?
>
> Separately, the commit message says only:
>
> Replace binary BPF attributes with a nested lwt-bpf-prog to support
> lwt bpf prog options.
>
> Could it also mention that the seg6-local bpf attribute is being re-typed,
> since that is a different attribute space?
>
> > @@ -610,6 +614,16 @@ attribute-sets:
> > -
> > name: hwid
> > type: u8
> > + -
> > + name: lwt-bpf-prog
> > + name-prefix: lwt-bpf-prog-
> > + attributes:
> > + -
> > + name: fd
> > + type: u32
>
> [Severity: Medium]
> Is fd the right name for attribute 1 in both directions? In requests
> parse_nla_bpf() in net/ipv6/seg6_local.c does treat it as a descriptor:
>
> fd = nla_get_u32(tb[SEG6_LOCAL_BPF_PROG]);
> p = bpf_prog_get_type(fd, BPF_PROG_TYPE_LWT_SEG6LOCAL);
>
> but on GET/dump put_nla_bpf() emits a program id, not a descriptor:
>
> if (nla_put_u32(skb, SEG6_LOCAL_BPF_PROG, slwt->bpf.prog->aux->id))
> return -EMSGSIZE;
>
> So a spec-driven decoder would print slwt->bpf.prog->aux->id under a field
> called fd, and feeding that value back into a request would resolve an
> unrelated descriptor or fail. On the lwt-bpf side bpf_fill_lwt_prog() in
> net/core/lwt_bpf.c never emits attribute 1 at all and only puts
> LWT_BPF_PROG_NAME.
>
> Would it be worth naming this member after the program reference/id, or at
> least documenting the id-versus-fd asymmetry?
>
> Note this appears unchanged at the end of the series (30e3ec46f708 still
> has name: bpf with nested-attributes: lwt-bpf-prog and the fd member).
>
> > + -
> > + name: name
> > + type: string
>
> [Severity: Low]
> Should this string carry a max-len? Both kernel consumers of this nest
> bound it to MAX_PROG_NAME (256).
>
> net/core/lwt_bpf.c:
>
> static const struct nla_policy bpf_prog_policy[LWT_BPF_PROG_MAX + 1] = {
> [LWT_BPF_PROG_FD] = { .type = NLA_U32, },
> [LWT_BPF_PROG_NAME] = { .type = NLA_NUL_STRING,
> .len = MAX_PROG_NAME },
> };
>
> net/ipv6/seg6_local.c:
>
> static const struct nla_policy bpf_prog_policy[SEG6_LOCAL_BPF_PROG_MAX + 1] = {
> [SEG6_LOCAL_BPF_PROG] = { .type = NLA_U32, },
> [SEG6_LOCAL_BPF_PROG_NAME] = { .type = NLA_NUL_STRING,
> .len = MAX_PROG_NAME },
> };
>
> As written the spec advertises an unbounded string, so tooling generated
> from it will build a request that the kernel rejects with -EINVAL.
> MAX_PROG_NAME is a private define in those two .c files, so the numeric
> bound would need to be spelled out in the spec, and max-len does not count
> the NUL terminator.
>
> This is also still missing at the end of the series (30e3ec46f708).
>
> >
> > operations:
> > enum-model: directional
>
> --
> Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260917-ynl_rt_encap-v1-0-fbbe6e680571%40kylinos.cn
next prev parent reply other threads:[~2026-09-21 9:47 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-17 6:35 [PATCH net-next 0/6] netlink: add lwtunnel encap sub-message support to rt-route Hangbin Liu
2026-09-17 6:35 ` [PATCH net-next 1/6] net: lwtunnel: change encap fill order Hangbin Liu
2026-09-18 6:36 ` sashiko-bot
2026-09-21 6:38 ` netdev-bot+sashiko
2026-09-17 6:35 ` [PATCH net-next 2/6] tools: ynl: convert enum selector to string for sub-message parsing Hangbin Liu
2026-09-18 6:36 ` sashiko-bot
2026-09-18 9:29 ` Hangbin Liu
2026-09-21 6:38 ` netdev-bot+sashiko
2026-09-17 6:35 ` [PATCH net-next 3/6] netlink: specs: rt-route: add lwtunnel encap sub-message support Hangbin Liu
2026-09-18 6:36 ` sashiko-bot
2026-09-18 7:51 ` Hangbin Liu
2026-09-21 6:38 ` netdev-bot+sashiko
2026-09-17 6:35 ` [PATCH net-next 4/6] netlink: specs: rt-route: describe lwtunnel IP options Hangbin Liu
2026-09-18 6:36 ` sashiko-bot
2026-09-18 8:02 ` Hangbin Liu
2026-09-21 6:38 ` netdev-bot+sashiko
2026-09-21 9:26 ` Hangbin Liu
2026-09-17 6:35 ` [PATCH net-next 5/6] netlink: specs: rt-route: describe lwt BPF program options Hangbin Liu
2026-09-18 6:36 ` sashiko-bot
2026-09-18 7:32 ` Hangbin Liu
2026-09-21 6:38 ` netdev-bot+sashiko
2026-09-21 9:46 ` Hangbin Liu [this message]
2026-09-17 6:35 ` [PATCH net-next 6/6] netlink: specs: rt-route: describe seg6-local actions, counters and flavors Hangbin Liu
2026-09-21 6:38 ` netdev-bot+sashiko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=arD89olLH_d2Y29A@fedora \
--to=hangbin.liu@linux.dev \
--cc=bpf@vger.kernel.org \
--cc=davem@davemloft.net \
--cc=donald.hunter@gmail.com \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=idosch@nvidia.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=liuhangbin@kylinos.cn \
--cc=netdev-bot+sashiko@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.