linux/include
Bart De Schuymer e179e6322a netfilter: bridge-netfilter: Fix MAC header handling with IP DNAT
- fix IP DNAT on vlan- or pppoe-encapsulated traffic: The functions
neigh_hh_output() or dst->neighbour->output() overwrite the complete
Ethernet header, although we only need the destination MAC address.
For encapsulated packets, they ended up overwriting the encapsulating
header. The new code copies the Ethernet source MAC address and
protocol number before calling dst->neighbour->output(). The Ethernet
source MAC and protocol number are copied back in place in
br_nf_pre_routing_finish_bridge_slow(). This also makes the IP DNAT
more transparent because in the old scheme the source MAC of the
bridge was copied into the source address in the Ethernet header. We
also let skb->protocol equal ETH_P_IP resp. ETH_P_IPV6 during the
execution of the PF_INET resp. PF_INET6 hooks.

- Speed up IP DNAT by calling neigh_hh_bridge() instead of
neigh_hh_output(): if dst->hh is available, we already know the MAC
address so we can just copy it.

Signed-off-by: Bart De Schuymer <bdschuym@pandora.be>
Signed-off-by: Patrick McHardy <kaber@trash.net>
2010-04-15 12:26:39 +02:00
..
acpi ACPI: processor: export acpi_get_cpuid() 2010-03-14 21:17:18 -04:00
asm-generic dma-mapping: pci: move pci_set_dma_mask and pci_set_consistent_dma_mask to pci-dma-compat.h 2010-03-12 15:52:42 -08:00
crypto crypto: md5 - Add export support 2010-01-17 21:55:31 +11:00
drm Merge branch 'drm-radeon-testing' of /ssd/git/drm-radeon-next into drm-next-stage 2010-03-01 16:08:57 +10:00
keys
linux netfilter: bridge-netfilter: Fix MAC header handling with IP DNAT 2010-04-15 12:26:39 +02:00
math-emu Fix misspellings of "truly" in comments. 2010-02-04 11:55:45 +01:00
media Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
mtd
net netfilter: bridge-netfilter: Fix MAC header handling with IP DNAT 2010-04-15 12:26:39 +02:00
pcmcia Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-02-28 19:23:06 -08:00
rdma Merge branch 'misc' into for-next 2010-03-01 23:52:31 -08:00
rxrpc
scsi sysctl extern cleanup: sg 2010-03-12 15:53:10 -08:00
sound Merge branch 'topic/misc' into for-linus 2010-03-08 09:35:50 +01:00
trace Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-03-13 14:43:01 -08:00
video broadsheetfb: support storing waveform 2010-03-12 15:52:34 -08:00
xen
Kbuild