Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

netfilter: bridge: fix IPv6 packets not being bridged with CONFIG_IPV6=n

230ac490f7fba introduced a dependency to CONFIG_IPV6 which breaks bridging
of IPv6 packets on a bridge with CONFIG_IPV6=n.

Sysctl entry /proc/sys/net/bridge/bridge-nf-call-ip6tables defaults to 1,
for this reason packets are handled by br_nf_pre_routing_ipv6(). When compiled
with CONFIG_IPV6=n this function returns NF_DROP but should return NF_ACCEPT
to let packets through.

Change CONFIG_IPV6=n br_nf_pre_routing_ipv6() return value to NF_ACCEPT.

Tested with a simple bridge with two interfaces and IPv6 packets trying
to pass from host on left side to host on right side of the bridge.

Fixes: 230ac490f7fba ("netfilter: bridge: split ipv6 code into separated file")
Signed-off-by: Bernhard Thaler <bernhard.thaler@wvnet.at>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>

authored by

Bernhard Thaler and committed by
Pablo Neira Ayuso
18e1db67 bf798657

+1 -1
+1 -1
include/net/netfilter/br_netfilter.h
··· 59 59 br_nf_pre_routing_ipv6(const struct nf_hook_ops *ops, struct sk_buff *skb, 60 60 const struct nf_hook_state *state) 61 61 { 62 - return NF_DROP; 62 + return NF_ACCEPT; 63 63 } 64 64 #endif 65 65