]> git.baikalelectronics.ru Git - kernel.git/commit
netfilter: bridge-netfilter: fix refragmenting IP traffic encapsulated in PPPoE traffic
authorBart De Schuymer <bdschuym@pandora.be>
Tue, 20 Apr 2010 14:22:01 +0000 (16:22 +0200)
committerPatrick McHardy <kaber@trash.net>
Tue, 20 Apr 2010 14:22:01 +0000 (16:22 +0200)
commit99fc4492458939caecb31107453d5c385603497b
tree408e0680cac66c1a2ab6350de15a9c623da905a7
parentd43be556b9fa5a4e6b5ea417b1e34f08c83f56c4
netfilter: bridge-netfilter: fix refragmenting IP traffic encapsulated in PPPoE traffic

The MTU for IP traffic encapsulated inside PPPoE traffic is smaller
than the MTU of the Ethernet device (1500). Connection tracking
gathers all IP packets and sometimes will refragment them in
ip_fragment(). We then need to subtract the length of the
encapsulating header from the mtu used in ip_fragment(). The check in
br_nf_dev_queue_xmit() which determines if ip_fragment() has to be
called is also updated for the PPPoE-encapsulated packets.
nf_bridge_copy_header() is also updated to make sure the PPPoE data
length field has the correct value.

Signed-off-by: Bart De Schuymer <bdschuym@pandora.be>
Signed-off-by: Patrick McHardy <kaber@trash.net>
include/linux/netfilter_bridge.h
net/bridge/br_netfilter.c
net/ipv4/ip_output.c