Anton Danilov wrote: > Add a selftest to verify that FOU-encapsulated packets addressed to a > multicast destination are correctly resubmitted to the inner protocol > handler (GRE) via the UDP multicast delivery path. Both IPv4 and IPv6 > paths are tested. > > The test creates two network namespaces connected by a veth pair with > a FOU/GRETAP (IPv4) and FOU/ip6gretap (IPv6) tunnel using multicast > remote addresses (239.0.0.1 and ff0e::1). Ping is sent through each > tunnel and received packets are counted on the receiver's tunnel > interface. > > The veth pair is created directly inside the namespaces to avoid > possible name collisions with devices in the root namespace. > > Static neighbor entries are configured on the sender because ARP/ND > replies from the receiver cannot traverse the unidirectional multicast > tunnel back to the sender. > > The early demux optimization (net.ipv4.ip_early_demux, which controls > both IPv4 and IPv6) is disabled on the receiver to force packets > through __udp4_lib_mcast_deliver() / __udp6_lib_mcast_deliver(), which > is the code path being tested. > > Signed-off-by: Anton Danilov <[email protected]> > Assisted-by: Claude:claude-opus-4-6
Reviewed-by: Willem de Bruijn <[email protected]> > +setup_ipv4() { > + # IPv4 FOU (CONFIG_NET_FOU) is built in on kernels configured for Instead of this distinction and modprobe for IPv6, also set those new CONFIGs to =Y, so that the two are equivalent? Not important enough to respin.
