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

net: vrf: Fix NAT within a VRF

Connection tracking with VRF is broken because the pass through the VRF
device drops the connection tracking info. Removing the call to nf_reset
allows DNAT and MASQUERADE to work across interfaces within a VRF.

Fixes: 73e20b761acf ("net: vrf: Add support for PREROUTING rules on vrf device")
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

David Ahern and committed by
David S. Miller
a0f37efa 8a9f5fdf

-2
-2
drivers/net/vrf.c
··· 849 849 { 850 850 struct net *net = dev_net(dev); 851 851 852 - nf_reset(skb); 853 - 854 852 if (NF_HOOK(pf, hook, net, NULL, skb, dev, NULL, vrf_rcv_finish) < 0) 855 853 skb = NULL; /* kfree_skb(skb) handled by nf code */ 856 854