]> git.baikalelectronics.ru Git - kernel.git/commit
bridge: send correct MTU value in PMTU (revised)
authorSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
Wed, 30 Jul 2008 23:27:55 +0000 (16:27 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Jul 2008 23:27:55 +0000 (16:27 -0700)
commit337ca9c7a118061ccd4c0bf261dca5a04bbf3217
tree480835bbc913896cd726e3f90d20ce8c859636f7
parentb2fa81a04f34c5d64d0aba4924b8aa46eaedfebb
bridge: send correct MTU value in PMTU (revised)

When bridging interfaces with different MTUs, the bridge correctly chooses
the minimum of the MTUs of the physical devices as the bridges MTU.  But
when a frame is passed which fits through the incoming, but not through
the outgoing interface, a "Fragmentation Needed" packet is generated.

However, the propagated MTU is hardcoded to 1500, which is wrong in this
situation.  The sender will repeat the packet again with the same frame
size, and the same problem will occur again.

Instead of sending 1500, the (correct) MTU value of the bridge is now sent
via PMTU.  To achieve this, the corresponding rtable structure is stored
in its net_bridge structure.

Modified to get rid of fake_net_device as well.

Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_device.c
net/bridge/br_if.c
net/bridge/br_netfilter.c
net/bridge/br_private.h