linux_dsm_epyc7002/drivers/net
David Stevens 4b29dba9c0 vxlan: fix nonfunctional neigh_reduce()
The VXLAN neigh_reduce() code is completely non-functional since
check-in. Specific errors:

1) The original code drops all packets with a multicast destination address,
	even though neighbor solicitations are sent to the solicited-node
	address, a multicast address. The code after this check was never run.
2) The neighbor table lookup used the IPv6 header destination, which is the
	solicited node address, rather than the target address from the
	neighbor solicitation. So neighbor lookups would always fail if it
	got this far. Also for L3MISSes.
3) The code calls ndisc_send_na(), which does a send on the tunnel device.
	The context for neigh_reduce() is the transmit path, vxlan_xmit(),
	where the host or a bridge-attached neighbor is trying to transmit
	a neighbor solicitation. To respond to it, the tunnel endpoint needs
	to do a *receive* of the appropriate neighbor advertisement. Doing a
	send, would only try to send the advertisement, encapsulated, to the
	remote destinations in the fdb -- hosts that definitely did not do the
	corresponding solicitation.
4) The code uses the tunnel endpoint IPv6 forwarding flag to determine the
	isrouter flag in the advertisement. This has nothing to do with whether
	or not the target is a router, and generally won't be set since the
	tunnel endpoint is bridging, not routing, traffic.

	The patch below creates a proxy neighbor advertisement to respond to
neighbor solicitions as intended, providing proper IPv6 support for neighbor
reduction.

Signed-off-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-03-24 15:35:10 -04:00
..
appletalk
arcnet drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
bonding bonding: set correct vlan id for alb xmit path 2014-03-13 15:45:10 -04:00
caif drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
can can: flexcan: factor out soft reset into seperate funtion 2014-03-03 14:29:51 +01:00
cris
dsa
ethernet net: davinci_emac: Fix rollback of emac_dev_open() 2014-03-24 15:32:03 -04:00
fddi drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
hamradio Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-01-06 17:37:45 -05:00
hippi drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
hyperv hyperv: Move state setting for link query 2014-03-05 20:40:25 -05:00
ieee802154 at86rf230: fix lockdep splats 2014-03-13 15:44:24 -04:00
irda irtty-sir.c: Do not set_termios() on irtty_close() 2014-02-17 16:27:51 -05:00
phy net: phy: fix uninitalized ethtool_wolinfo in phy_suspend 2014-03-14 22:38:54 -04:00
plip net: plip: slight optimization of addr compare 2013-12-31 16:48:33 -05:00
ppp ppp: slight optimization of addr compare 2013-12-26 13:31:33 -05:00
slip
team netdevice: add queue selection fallback handler for ndo_select_queue 2014-02-17 00:36:34 -05:00
usb net: cdc_ncm: fix control message ordering 2014-03-18 15:32:32 -04:00
vmxnet3 vmxnet3: fix building without CONFIG_PCI_MSI 2014-03-13 12:56:38 -04:00
wan wan: dlci: Remove unused netdev_priv pointer 2014-02-09 18:40:56 -08:00
wimax
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2014-03-14 14:09:47 -04:00
xen-netback xen-netback: use skb_is_gso in xenvif_start_xmit 2014-03-12 15:36:32 -04:00
dummy.c
eql.c eql: use __dev_get_by_name instead of dev_get_by_name to find interface 2014-01-14 18:50:46 -08:00
ifb.c
Kconfig net: fix macvtap type name in Kconfig 2014-02-13 15:48:31 -05:00
LICENSE.SRC
loopback.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
macvlan.c macvlan: Add support for 'always_on' offload features 2014-03-03 16:43:56 -05:00
macvtap.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
Makefile
mdio.c mdio: unused ethtool functions 2013-12-26 13:29:35 -05:00
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c drivers: net: Include new header file in sbni.c 2013-12-19 18:51:20 -05:00
sungem_phy.c
tun.c tun: remove bogus hardware vlan acceleration flags from vlan_features 2014-02-20 02:15:38 -05:00
veth.c veth: Fix vlan_features so as to be able to use stacked vlan interfaces 2014-02-20 02:15:38 -05:00
virtio_net.c virtio-net: alloc big buffers also when guest can receive UFO 2014-02-24 18:19:52 -05:00
vxlan.c vxlan: fix nonfunctional neigh_reduce() 2014-03-24 15:35:10 -04:00
xen-netfront.c xen-netfront: reset skb network header before checksum 2014-02-19 16:52:51 -05:00