Bug 174028 - GigE card in bridge disobeys MTU setting
GigE card in bridge disobeys MTU setting
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
4
All Linux
medium Severity medium
: ---
: ---
Assigned To: John W. Linville
Brian Brock
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2005-11-23 16:24 EST by David Woodhouse
Modified: 2007-11-30 17:11 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-12-15 20:42:01 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description David Woodhouse 2005-11-23 16:24:27 EST
Kernel 2.6.14-1.1637_FC4smp, using a D-Link DGE510T.

When configured on its own, the device behaves correctly.

When it is part of a bridge, it sends packets which exceed its configured MTU,
the configured MTU of the bridge, and the mtu set for the IPv4 route in question.

This behaviour occurs even when the D-Link card is the only device attached to
the bridge.
Comment 1 David Woodhouse 2005-11-29 18:27:03 EST
baythorne /home/dwmw2 # ifconfig br0
br0       Link encap:Ethernet  HWaddr 00:11:95:DD:23:8D
          inet addr:81.187.2.161  Bcast:81.187.2.175  Mask:255.255.255.240
          inet6 addr: 2001:8b0:10b:1::1/64 Scope:Global
          inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1917 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1886 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:197312 (192.6 KiB)  TX bytes:1691200 (1.6 MiB)

baythorne /home/dwmw2 # ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:11:95:DD:23:8D
          inet6 addr: fe80::211:95ff:fedd:238d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2303 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2153 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:282810 (276.1 KiB)  TX bytes:1750178 (1.6 MiB)
          Interrupt:145

baythorne /home/dwmw2 # brctl show br0
bridge name     bridge id               STP enabled     interfaces
br0             8000.001195dd238d       no              eth1


23:26:43.440268 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 100072:101520(1448)
ack 161 win 2516 <nop,nop,timestamp 107590027 122780>
23:26:43.440607 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 105864 win 15091
<nop,nop,timestamp 122780 107590027>
23:26:43.440651 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 105864:107312(1448)
ack 161 win 2516 <nop,nop,timestamp 107590027 122780>
23:26:43.440992 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 107312 win 16022
<nop,nop,timestamp 122781 107590027>
23:26:43.441034 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 107312:110208(2896)
ack 161 win 2516 <nop,nop,timestamp 107590027 122781>
23:26:43.643667 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 107312:108760(1448)
ack 161 win 2516 <nop,nop,timestamp 107590078 122781>
23:26:43.644071 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 108760 win 16022
<nop,nop,timestamp 122831 107590078>
23:26:43.644180 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 108760:110208(1448)
ack 161 win 2516 <nop,nop,timestamp 107590078 122831>
23:26:43.644223 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 110208:111656(1448)
ack 161 win 2516 <nop,nop,timestamp 107590078 122831>
23:26:43.644538 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 110208 win 16022
<nop,nop,timestamp 122831 107590078>
23:26:43.644621 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 111656:114552(2896)
ack 161 win 2516 <nop,nop,timestamp 107590078 122831>
23:26:43.644660 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 111656 win 15738
<nop,nop,timestamp 122831 107590078>
23:26:43.644703 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 114552:116000(1448)
ack 161 win 2516 <nop,nop,timestamp 107590078 122831>
23:26:43.687065 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 111656 win 15738
<nop,nop,timestamp 122842 107590078,nop,nop,sack sack 1 {114552:116000} >
23:26:43.687185 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 116000:117448(1448)
ack 161 win 2516 <nop,nop,timestamp 107590089 122842>
23:26:43.687541 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 111656 win 15738
<nop,nop,timestamp 122842 107590078,nop,nop,sack sack 1 {114552:117448} >
23:26:43.687574 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 117448:118896(1448)
ack 161 win 2516 <nop,nop,timestamp 107590089 122842>
23:26:43.687910 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 111656 win 15738
<nop,nop,timestamp 122842 107590078,nop,nop,sack sack 1 {114552:118896} >
23:26:43.687946 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 111656:113104(1448)
ack 161 win 2516 <nop,nop,timestamp 107590089 122842>
23:26:43.688308 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 113104 win 15376
<nop,nop,timestamp 122842 107590089,nop,nop,sack sack 1 {114552:118896} >
23:26:43.688345 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 113104:114552(1448)
ack 161 win 2516 <nop,nop,timestamp 107590089 122842>
23:26:43.688700 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 118896 win 15091
<nop,nop,timestamp 122842 107590089>
23:26:43.688746 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 118896:120344(1448)
ack 161 win 2516 <nop,nop,timestamp 107590089 122842>
23:26:43.689106 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 120344 win 14768
<nop,nop,timestamp 122843 107590089>
23:26:43.689140 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 120344:123240(2896)
ack 161 win 2516 <nop,nop,timestamp 107590089 122843>
23:26:43.895703 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 120344:121792(1448)
ack 161 win 2516 <nop,nop,timestamp 107590141 122843>
23:26:43.896101 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 121792 win 16022
<nop,nop,timestamp 122894 107590141>
23:26:43.896162 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 121792:123240(1448)
ack 161 win 2516 <nop,nop,timestamp 107590141 122894>
23:26:43.896191 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 123240:124688(1448)
ack 161 win 2516 <nop,nop,timestamp 107590141 122894>
23:26:43.896503 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 123240 win 16022
<nop,nop,timestamp 122894 107590141>
23:26:43.896617 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 124688:127584(2896)
ack 161 win 2516 <nop,nop,timestamp 107590141 122894>
23:26:43.896640 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 124688 win 16022
<nop,nop,timestamp 122894 107590141>
23:26:43.896662 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 127584:129032(1448)
ack 161 win 2516 <nop,nop,timestamp 107590141 122894>
23:26:43.939083 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 124688 win 16022
<nop,nop,timestamp 122905 107590141,nop,nop,sack sack 1 {127584:129032} >
23:26:43.939200 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 129032:130480(1448)
ack 161 win 2516 <nop,nop,timestamp 107590152 122905>
23:26:43.939559 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 124688 win 16022
<nop,nop,timestamp 122905 107590141,nop,nop,sack sack 1 {127584:130480} >
23:26:43.939593 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 130480:131928(1448)
ack 161 win 2516 <nop,nop,timestamp 107590152 122905>
23:26:43.939938 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 124688 win 16022
<nop,nop,timestamp 122905 107590141,nop,nop,sack sack 1 {127584:131928} >
23:26:43.939972 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 124688:126136(1448)
ack 161 win 2516 <nop,nop,timestamp 107590152 122905>
23:26:43.940350 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 126136 win 15660
<nop,nop,timestamp 122905 107590152,nop,nop,sack sack 1 {127584:131928} >
23:26:43.940386 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 126136:127584(1448)
ack 161 win 2516 <nop,nop,timestamp 107590152 122905>
23:26:43.940753 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 131928 win 14768
<nop,nop,timestamp 122905 107590152>
23:26:43.940876 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 131928:133376(1448)
ack 161 win 2516 <nop,nop,timestamp 107590152 122905>
23:26:43.941311 IP 81.187.2.168.ssh > 81.187.2.161.48498: . ack 133376 win 16022
<nop,nop,timestamp 122906 107590152>
23:26:43.941350 IP 81.187.2.161.48498 > 81.187.2.168.ssh: . 133376:136272(2896)
ack 161 win 2516 <nop,nop,timestamp 107590153 122906>
Comment 2 David Woodhouse 2005-11-29 18:36:28 EST
Removing NETIF_F_TSO from features in br_features_recompute() appears to fix the
problem.
Comment 3 David Woodhouse 2005-11-29 18:49:49 EST
tree 9ae6c1b39bd3dc08a1a8b4b96ba28be0ed553609
parent de919820cf7fe6674cdf47f8f47d2af284e4309f
author Olaf Rempel <razzor@kopf-tisch.de> Thu, 24 Nov 2005 11:04:08 -0800
committer David S. Miller <davem@davemloft.net> Thu, 24 Nov 2005 11:04:08 -0800

[BRIDGE]: recompute features when adding a new device

We must recompute bridge features everytime the list of underlying 
devices changes, or we might end up with features that are not
supported by all devices (eg. NETIF_F_TSO)
This patch adds the missing recompute when adding a device to the bridge.

Signed-off-by: Olaf Rempel <razzor@kopf-tisch.de>
Signed-off-by: David S. Miller <davem@davemloft.net>

 net/bridge/br_if.c |    1 +
 1 files changed, 1 insertion(+)

diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index defcf6a..975abe2 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -366,6 +366,7 @@ int br_add_if(struct net_bridge *br, str
 
                spin_lock_bh(&br->lock);
                br_stp_recalculate_bridge_id(br);
+               br_features_recompute(br);
                if ((br->dev->flags & IFF_UP) 
                    && (dev->flags & IFF_UP) && netif_carrier_ok(dev))
                        br_stp_enable_port(p);
Comment 4 Dave Jones 2005-11-29 19:45:32 EST
merged in the kernel currently building. Will pop out at
http://people.redhat.com/davej/kernels/Fedora/FC4 in an hour or so.

Note You need to log in before you can comment on or make changes to this bug.