linux/drivers
David Stevens ae88408256 VXLAN: Allow L2 redirection with L3 switching
Allow L2 redirection when VXLAN L3 switching is enabled

This patch restricts L3 switching to destination MAC addresses that are
marked as routers in order to allow virtual IP appliances that do L2
redirection to function with VXLAN L3 switching enabled.

We use L3 switching on VXLAN networks to avoid extra hops when the nominal
router for cross-subnet traffic for a VM is remote and the ultimate
destination may be local, or closer to the local node. Currently, the
destination IP address takes precedence over the MAC address in all cases.
Some network appliances receive packets for a virtualized IP address and
redirect by changing the destination MAC address (only) to be the final
destination for packet processing. VXLAN tunnel endpoints with L3 switching
enabled may then overwrite this destination MAC address based on the packet IP
address, resulting in potential loops and, at least, breaking L2 redirections
that travel through tunnel endpoints.

This patch limits L3 switching to the intended case where the original
destination MAC address is a next-hop router and relies on the destination
MAC address for all other cases, thus allowing L2 redirection and L3 switching
to coexist peacefully.

Signed-Off-By: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-04-22 16:19:51 -04:00
..
accessibility
acpi ACPI / BGRT: Don't let users configure BGRT on non X86 systems 2013-04-03 13:17:20 +02:00
amba
ata
atm
auxdisplay
base ACPI and power management fixes for 3.9-rc6 2013-04-04 15:56:28 -07:00
bcma bcma: export some gpio functions 2013-03-27 13:39:09 -04:00
block loop: prevent bdev freeing while device in use 2013-04-01 15:48:47 -07:00
bluetooth Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2013-03-29 16:41:36 -04:00
bus
cdrom
char One reversion, a tiny leak fix, and a cc:stable locking fix, in two parts. 2013-04-01 16:17:52 -07:00
clk clk: tegra: Allow PLLE training to succeed 2013-04-01 11:44:38 -07:00
clocksource
connector connector: replace obsolete NLMSG_* with type safe nlmsg_* 2013-03-28 14:27:44 -04:00
cpufreq cpufreq: Correct header guards typo 2013-04-02 15:14:29 +02:00
cpuidle
crypto
dca
devfreq
dio
dma Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-07 18:37:01 -04:00
edac
eisa
extcon
firewire net: add ETH_P_802_3_MIN 2013-03-28 01:20:42 -04:00
firmware
gpio Two GPIO fixes for the v3.9 series: 2013-04-04 08:40:14 -07:00
gpu drm: correctly restore mappings if drm_open fails 2013-04-03 06:44:38 +10:00
hid HID: magicmouse: fix race between input_register() and probe() 2013-04-04 09:49:56 +02:00
hsi
hv
hwmon
hwspinlock
i2c ACPI / I2C: Use parent's ACPI_HANDLE() in acpi_i2c_register_devices() 2013-04-02 15:30:41 +02:00
ide
idle
iio
infiniband net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
input
iommu IOMMU fixes for Linux v3.9-rc4 2013-03-27 09:25:11 -07:00
ipack
irqchip
isdn ISDN:divert: beautify code: useless 'break', 'return (0)', additional comments. 2013-04-02 14:31:24 -04:00
leds
lguest
macintosh
mailbox
md
media Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-07 18:37:01 -04:00
memory
memstick
message
mfd
misc
mmc
mtd
net VXLAN: Allow L2 redirection with L3 switching 2013-04-22 16:19:51 -04:00
nfc Revert "NFC: microread: Fix MEI build failure" 2013-04-03 15:07:02 -04:00
ntb
nubus
of net: of_mdio: scan mdiobus for PHYs without reg property 2013-04-08 16:55:26 -04:00
oprofile
parisc
parport
pci
pcmcia
pinctrl
platform
pnp
power
pps
ps3
ptp ptp: dynamic allocation of PHC char devices 2013-04-12 18:22:45 -04:00
pwm
rapidio
regulator
remoteproc
rpmsg
rtc Revert "drivers/rtc/rtc-at91rm9200.c: use a variable for storing IMR" 2013-04-05 09:36:53 -07:00
s390 qeth: Fix missing pointer update 2013-04-22 15:39:27 -04:00
sbus
scsi net: vlan: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_* 2013-04-19 14:45:26 -04:00
sfi
sh
sn
spi spi: Fixes for v3.9 2013-04-05 10:04:41 -07:00
ssb ssb: read additional sprom v2 and v3 attributes. 2013-03-25 16:46:56 -04:00
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-01 13:36:50 -04:00
target target: Fix RESERVATION_CONFLICT status regression for iscsi-target special case 2013-03-28 23:42:47 -07:00
tc
thermal
tty TTY/serial fixes for 3.9-rc4 2013-03-28 15:53:33 -07:00
uio
usb USB / PM: Don't try to hide PM QoS flags from usb_port_device_release() 2013-04-02 01:25:09 +02:00
uwb
vfio
vhost vhost_net: remove tx polling state 2013-04-11 16:16:22 -04:00
video Fix uvesafb crash bug and typoed flag name in fbmon's new videomode code 2013-04-05 09:15:46 -07:00
virt
virtio
vlynq
vme
w1
watchdog
xen Bug-fixes: 2013-03-27 12:56:25 -07:00
zorro
Kconfig
Makefile