Re: [PATCH 4/6] net: Make IPv4-only Kconfig options depend on LEGACY_IP

bot+bpf-ci
2026-04-01T08:36:28Z

[-- Attachment #1: Type: text/plain, Size: 2543 bytes --]

> diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
> index aef2c5349e62..03b5ba75c3cf 100644
> --- a/net/ipv4/Kconfig
> +++ b/net/ipv4/Kconfig

[ ... ]

> @@ -113,9 +119,11 @@ config IP_ROUTE_VERBOSE
>
> config IP_ROUTE_CLASSID
> bool
> + depends on LEGACY_IP

IP_ROUTE_CLASSID is selected by NETFILTER_XT_MATCH_REALM in
net/netfilter/Kconfig and by NET_CLS_ROUTE4 in net/sched/Kconfig,
neither of which depends on LEGACY_IP.

Would this produce unmet direct dependency warnings when either of
those options is enabled with LEGACY_IP=n?

> @@ -190,6 +199,7 @@ config NET_IPIP
>
> config NET_IPGRE_DEMUX
> tristate "IP: GRE demultiplexer"
> + depends on LEGACY_IP
> help
> This is helper module to demultiplex GRE packets on GRE version field criteria.
> Required by ip_gre and pptp modules.

IPV6_GRE in net/ipv6/Kconfig has 'depends on NET_IPGRE_DEMUX'.
ip6_gre.c uses gre_parse_header() from the GRE demux module.

Gating NET_IPGRE_DEMUX on LEGACY_IP silently makes IPv6 GRE tunneling
unavailable on IPv6-only systems. Should this option be left ungated,
similar to NET_IP_TUNNEL?

[ ... ]

> @@ -226,10 +238,12 @@ config NET_IPGRE_BROADCAST
>
> config IP_MROUTE_COMMON
> bool
> + depends on LEGACY_IP
> depends on IP_MROUTE || IPV6_MROUTE

IP_MROUTE_COMMON is shared infrastructure between IPv4 and IPv6
multicast routing. ipmr_base.c describes itself as "Common logic
shared by IPv4 [ipmr] and IPv6 [ip6mr] implementation".

IPV6_MROUTE in net/ipv6/Kconfig does 'select IP_MROUTE_COMMON'
without depending on LEGACY_IP. When LEGACY_IP=n and IPV6_MROUTE=y,
this will produce an unmet dependency warning.

Should IP_MROUTE_COMMON be left ungated, like NET_IP_TUNNEL and the
other shared options listed in the commit message?

[ ... ]

> @@ -425,11 +449,13 @@ config INET_TABLE_PERTURB_ORDER
>
> config INET_XFRM_TUNNEL
> tristate
> + depends on LEGACY_IP
> select INET_TUNNEL
> default n
>
> config INET_TUNNEL
> tristate
> + depends on LEGACY_IP
> default n

IPV6_SIT in net/ipv6/Kconfig does 'select INET_TUNNEL' without
depending on LEGACY_IP. When LEGACY_IP=n and IPV6_SIT is enabled,
this will produce an unmet dependency warning for INET_TUNNEL.

SIT is inherently IPv4-dependent (IPv6-in-IPv4 tunneling), so perhaps
IPV6_SIT also needs 'depends on LEGACY_IP'?

---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md

CI run summary: https://github.com/kernel-patches/bpf/actions/runs/23838411859