[PATCH 0/6] Deprecate Legacy IP

David Woodhouse
2026-04-01T07:45:39Z

RFC1883, the IPv6 standard, was published in the final decade of the 1900s.
That's closer in time to the Apollo 11 moon landing than it was to today.

Even our esteemed Maddog has worked with computers for longer in the IPv6
era, than he ever did before it.

Yet Linux still can't even be *built* with only IPv6 support and without
support for Legacy IP. This long overdue patch series fixes that, and
immediately marks Legacy IP for deprecation.

It also cleans up a few tautological "INET && IPV6" and "INET || IPV6"
checks, since IPV6 (and now LEGACY_IP) cannot be selected without the
overall CONFIG_INET option.

For now, we only add a warning when a process *listens* on a Legacy IP
socket (since you can listen on IPv6 and still accept connections which
have come through a timewarp from the 20th century. Adding warnings for
making outbound connections or *accepting* on Legacy IP can come later.

'I would be happy if "Legacy IP" ceased to be the "industry standard"
and IPv6 be the default, even if I had to beat IPv6 into the head of
every single network administrator's head with a shovel.' said Jon
'maddog' Hall, ancient supporter of Free and Open Source Software.

David Woodhouse (6):
net: Simplify tautological CONFIG_INET/CONFIG_IPV6 guards
net: Add CONFIG_LEGACY_IP option
net: Guard Legacy IP entry points with CONFIG_LEGACY_IP
net: Make IPv4-only Kconfig options depend on LEGACY_IP
net: Change CONFIG_INET to CONFIG_LEGACY_IP for IPv4-only code
net: Warn when processes listen on AF_INET sockets

.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 6 ++--
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.h | 2 +-
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 2 +-
.../ethernet/netronome/nfp/flower/tunnel_conf.c | 2 +-
include/linux/indirect_call_wrapper.h | 4 ++-
net/bridge/br_arp_nd_proxy.c | 2 +-
net/bridge/br_private.h | 8 +++++
net/core/filter.c | 12 +++----
net/core/secure_seq.c | 2 +-
net/core/sock.c | 2 +-
net/ipv4/Kconfig | 37 ++++++++++++++++++++++
net/ipv4/af_inet.c | 23 +++++++++++---
net/ipv4/devinet.c | 2 ++
net/ipv4/route.c | 1 -
net/ipv4/tcp_ipv4.c | 30 ++++++++++--------
net/mac80211/main.c | 10 +++---
net/netfilter/nfnetlink_queue.c | 2 +-
17 files changed, 105 insertions(+), 42 deletions(-)