linux/drivers/net
Zang MingJie 88c4c066c6 reset nf before xmit vxlan encapsulated packet
We should reset nf settings bond to the skb as ipip/ipgre do.

If not, the conntrack/nat info bond to the origin packet may continually
redirect the packet to vxlan interface causing a routing loop.

this is the scenario:

     VETP     VXLAN Gateway
    /----\  /---------------\
    |    |  |               |
    |  vx+--+vx --NAT-> eth0+--> Internet
    |    |  |               |
    \----/  \---------------/

when there are any packet coming from internet to the vetp, there will be lots
of garbage packets coming out the gateway's vxlan interface, but none actually
sent to the physical interface, because they are redirected back to the vxlan
interface in the postrouting chain of NAT rule, and dmesg complains:

    Mar  1 21:52:53 debian kernel: [ 8802.997699] Dead loop on virtual device vxlan0, fix it urgently!
    Mar  1 21:52:54 debian kernel: [ 8804.004907] Dead loop on virtual device vxlan0, fix it urgently!
    Mar  1 21:52:55 debian kernel: [ 8805.012189] Dead loop on virtual device vxlan0, fix it urgently!
    Mar  1 21:52:56 debian kernel: [ 8806.020593] Dead loop on virtual device vxlan0, fix it urgently!

the patch should fix the problem

Signed-off-by: Zang MingJie <zealot0630@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-03-06 02:47:05 -05:00
..
appletalk
arcnet ARCNET: remove __dev* attributes 2012-12-03 11:16:10 -08:00
bonding bond: check if slave count is 0 in case when deciding to take slave's mac 2013-02-26 17:30:38 -05:00
caif tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
can tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
cris ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
dsa DSA: Convert spaces to tabs where appropriate 2013-01-10 00:04:34 -08:00
ethernet Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net into intel 2013-03-05 23:40:51 -05:00
fddi drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
hamradio tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
hippi drivers/net/hippi: remove depends on CONFIG_EXPERIMENTAL 2013-01-22 12:01:34 -08:00
hyperv Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
ieee802154 ieee802154: at86rf230: Remove empty suspend/resume callbacks 2013-02-15 15:35:34 -05:00
irda Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
phy net/phy: micrel: Disable asymmetric pause for KSZ9021 2013-02-28 15:37:30 -05:00
plip
ppp ppp: convert to idr_alloc() 2013-02-27 19:10:18 -08:00
slip tty: Added a CONFIG_TTY option to allow removal of TTY 2013-01-18 16:15:27 -08:00
team Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
usb ax88179_178a: ASIX AX88179_178A USB 3.0/2.0 to gigabit ethernet adapter driver 2013-03-03 01:43:47 -05:00
vmxnet3 vmxnet3: fix ethtool ring buffer size setting 2013-02-24 20:18:55 -05:00
wan Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
wimax Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-02-20 18:58:50 -08:00
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-03-05 18:42:29 -08:00
xen-netback Revert "xen: netback: remove redundant xenvif_put" 2013-02-19 13:04:34 -05:00
dummy.c dummy: implement carrier change 2012-12-28 15:24:19 -08:00
eql.c
ifb.c ifb: dont hard code inet_net use 2013-01-14 15:13:39 -05:00
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-02-26 11:44:11 -08:00
LICENSE.SRC
loopback.c net: loopback: fix a dst refcounting issue 2013-01-27 01:30:35 -05:00
macvlan.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
macvtap.c macvtap: convert to idr_alloc() 2013-02-27 19:10:18 -08:00
Makefile net: Add support for NTB virtual ethernet device 2013-01-17 19:11:14 -08:00
mdio.c
mii.c
netconsole.c netpoll: add IPv6 support 2013-01-08 17:56:10 -08:00
ntb_netdev.c ntb_netdev: Update Version 2013-01-20 15:48:14 -08:00
rionet.c ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
sb1000.c
Space.c drivers/net: delete old x86 variant of the seeq8005 driver 2013-01-22 10:39:56 -05:00
sungem_phy.c
tun.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
veth.c veth: fix NULL dereference in veth_dellink() 2013-02-10 20:41:43 -05:00
virtio_net.c All trivial, thanks to the stuff which didn't quite make it time. 2013-02-26 14:49:12 -08:00
vxlan.c reset nf before xmit vxlan encapsulated packet 2013-03-06 02:47:05 -05:00
xen-netfront.c xen/netfront: improve truesize tracking 2013-01-07 19:51:19 -08:00