Re: [PATCH net] netlink: specs: rt-link: fix ipv6 devconf doc
From: Fernando Fernandez Mancera
Date: Mon Aug 24 2026 - 06:46:24 EST
On 8/24/26 12:38 PM, Asbjørn Sloth Tønnesen wrote:
devconf is even odder than described in the blamed commit, where bpth
IPv4 and IPv6 are described in an identical way:
"u32 indexed by ipv?-devconf - 1 on output, on input it's a nest".
There are two issues with that line for IPv6:
1) The subtraction is an IPv4 specific quirk, to avoid having an unused
u32 at index 0, thus saving 4 bytes per net device being dumped:
- In include/uapi/linux/ip.h the IPV4_DEVCONF_* enum begins with
IPV4_DEVCONF_FORWARDING = 1, so the enum starts at 1, which is
the reason for the subtraction in the IPv4 variant.
- In include/uapi/linux/ipv6.h the DEVCONF_* enum begins with
DEVCONF_FORWARDING = 0, so subtraction would underflow.
- ipv6_store_devconf() in net/ipv6/addrconf.c also doesn't do the
subtraction in the output path.
2) Setting IPv6 devconf through Netlink is not yet supported, as
IFLA_INET6_CONF is not handled in inet6_set_link_af().
Fixes: 720447bd0b24 ("netlink: specs: rt-link: remove implicit structs from devconf")
Does this really require a fixes tag + stable Cc'ed? In any case, LGTM.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Asbjørn Sloth Tønnesen <ast@xxxxxxxxxxx>
---
Fernando, please remember to reintroduce the ", on input it's a nest"
in your WIP/planned patchset that introduces support for setting IPv6
devconf via IFLA_INET6_CONF.
https://lore.kernel.org/bd560c89-c71f-4ef5-a0fd-5ea096a0f767@xxxxxxx/
Thanks!
I will make sure to reintroduce it, once the netdev is open again I will send a patch implementing it.
Reviewed-by: Fernando Fernandez Mancera <fmancera@xxxxxxx>
Documentation/netlink/specs/rt-link.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/netlink/specs/rt-link.yaml b/Documentation/netlink/specs/rt-link.yaml
index b80c2ac3ac31..00c915031efd 100644
--- a/Documentation/netlink/specs/rt-link.yaml
+++ b/Documentation/netlink/specs/rt-link.yaml
@@ -2218,7 +2218,7 @@ attribute-sets:
name: conf
type: binary
sub-type: u32
- doc: u32 indexed by ipv6-devconf - 1 on output, on input it's a nest
+ doc: u32 indexed by ipv6-devconf on output, input is not yet implemented
-
name: stats
type: binary
base-commit: 7cbfb180945ce529608e4d4e24a6d483699fab1e