Thread (1 message) 1 message, 1 author, 22h ago

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

From: Hangbin Liu <hidden>
Date: 2026-09-18 07:51:47
Also in: sashiko-reviews

On Fri, Sep 18, 2026 at 06:36:56AM +0000, sashiko-bot@kernel.org 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 [off-list ref]

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.
quoted
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
[ ... ]
quoted
@@ -277,6 +332,229 @@ attribute-sets:
       -
         name: fastopen-no-cookie
         type: u32
[ ... ]
quoted
+  -
+    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.
quoted
+      -
+        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().

[ ... ]
quoted
+  -
+    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.

[ ... ]
quoted
+      -
+        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.

[ ... ]
quoted
+  -
+    name: seg6-local
+    name-prefix: seg6-local-
+    header: linux/seg6_local.h
+    attributes:
[ ... ]
quoted
+      -
+        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/20260917-ynl_rt_encap-v1-0-fbbe6e680571@kylinos.cn?part=3
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help