Re: [PATCH net-next 3/6] netlink: specs: rt-route: add lwtunnel encap sub-message support

Hangbin Liu <[email protected]>
Newsgroups org.kernel.vger.netdev,dev.linux.lists.sashiko-reviews
Message-ID <aqztjJazXlf-VT-d@fedora>
On Fri, Sep 18, 2026 at 06:36:56AM +0000, [email protected] wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [High] netlink: missing byte-order: big-endian in rt-route specs

Thanks, I will fix all these byte order issue.

> --
> 
> commit 18041b529d7678ae7bbdd8ee61a7fb4213ae6804
> Author: Hangbin Liu <[email protected]>
> 
> netlink: specs: rt-route: add lwtunnel encap sub-message support
> 
> This commit adds lwtunnel encapsulation sub-message support to the rt-route
> netlink specs, defining various tunnel attribute sets such as mpls, ip, ip6,
> seg6, bpf, etc. It updates the yaml spec for rt-route and adds necessary
> headers to the Makefile dependencies.
> 
> > diff --git a/Documentation/netlink/specs/rt-route.yaml b/Documentation/netlink/specs/rt-route.yaml
> > index 253037ea5176a..0e236da140dc5 100644
> > --- a/Documentation/netlink/specs/rt-route.yaml
> > +++ b/Documentation/netlink/specs/rt-route.yaml
> [ ... ]
> > @@ -277,6 +332,229 @@ attribute-sets:
> >        -
> >          name: fastopen-no-cookie
> >          type: u32
> [ ... ]
> > +  -
> > +    name: lwtunnel-ip
> > +    name-prefix: lwtunnel-ip-
> > +    header: linux/lwtunnel.h
> > +    attributes:
> > +      -
> > +        name: id
> > +        type: u64
> 
> [Severity: High]
> Does this field need a byte-order: big-endian annotation? The kernel
> reads LWTUNNEL_IP_ID as be64 using nla_get_be64(). Without the annotation,
> YNL tools will byte-swap this on little-endian architectures, potentially
> causing silent data corruption.
> 
> > +      -
> > +        name: dst
> > +        type: u32
> > +        byte-order: big-endian
> > +        display-hint: ipv4
> > +      -
> > +        name: src
> > +        type: u32
> > +        byte-order: big-endian
> > +        display-hint: ipv4
> > +      -
> > +        name: ttl
> > +        type: u8
> > +      -
> > +        name: tos
> > +        type: u8
> > +      -
> > +        name: flags
> > +        type: u16
> 
> [Severity: High]
> Does this field also need a byte-order: big-endian annotation? The kernel
> reads LWTUNNEL_IP_FLAGS as be16 using nla_get_be16().
> 
> [ ... ]
> > +  -
> > +    name: lwtunnel-ip6
> > +    name-prefix: lwtunnel-ip6-
> > +    header: linux/lwtunnel.h
> > +    attributes:
> > +      -
> > +        name: id
> > +        type: u64
> 
> [Severity: High]
> Could this also be missing a byte-order: big-endian annotation? The kernel
> reads LWTUNNEL_IP6_ID as be64.
> 
> [ ... ]
> > +      -
> > +        name: hoplimit
> > +        type: u8
> > +      -
> > +        name: tc
> > +        type: u8
> > +      -
> > +        name: flags
> > +        type: u16
> 
> [Severity: High]
> Could this also be missing a byte-order: big-endian annotation? The kernel
> reads LWTUNNEL_IP6_FLAGS as be16.
> 
> [ ... ]
> > +  -
> > +    name: seg6-local
> > +    name-prefix: seg6-local-
> > +    header: linux/seg6_local.h
> > +    attributes:
> [ ... ]
> > +      -
> > +        name: table
> > +        type: u32
> > +      -
> > +        name: nh4
> > +        type: u32
> > +        display-hint: ipv4
> 
> [Severity: High]
> Does this field need a byte-order: big-endian annotation? SEG6_LOCAL_NH4 is
> a raw IPv4 address and handled as a struct in_addr in the kernel, but here
> it is typed as a native u32. This might cause YNL tools to silently
> byte-swap the address on little-endian architectures.
> 
> -- 
> Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.