Stephen Hemminger
2019-Apr-10 02:39 UTC
[Bridge] [PATCH] net:bridge:always disable auto-tuning when the user specified MTU
On Wed, 10 Apr 2019 02:32:08 +0000 Huang Rui <huangruippp at gmail.com> wrote:> For example. > My purpose is to create a bridge br0 and join eth0 into br0. > if we use this following way, the auto-tuning flag will not be disabled. > > If eth0's mtu is 1200 > step 1.brctl addbr br0 > step 2.brctl addif br0 eth0 > step 3.ifconfig br0 mtu 1200 > step 4.ifconfig eth0 mtu 1500 > > Result: > br0's MTU: 1500, eth0's MTU: 1500 > > Expected: > br0's MTU: 1200, eth0's MTU: 1500 > > I have specified br0's MTU, but auto-min policy works. So the MTU is > not the result what we expected. > As expected, if i have specified bridge's MTU, it will set the flag: > BROPT_MTU_SET_BY_USER in net_bridge_opts disabled and auto-min/max > policy will not work.But in this case, because the dev_set_mtu return > early, the BROPT_MTU_SET_BY_USER flag will not be disabled and > auto-min/max policy will still work. > > Signed-off-by: Huang Rui <huangruiPPP at gmail.com>A bridge like this going to drop frames. A frame received with MTU of 1200 will get dropped. The proper way to do this is to change MTU of both interfaces to match.
Petr Machata
2019-Apr-10 10:34 UTC
[Bridge] [PATCH] net:bridge:always disable auto-tuning when the user specified MTU
Stephen Hemminger <stephen at networkplumber.org> writes:> On Wed, 10 Apr 2019 02:32:08 +0000 > Huang Rui <huangruippp at gmail.com> wrote: > >> For example. >> My purpose is to create a bridge br0 and join eth0 into br0. >> if we use this following way, the auto-tuning flag will not be disabled. >> >> If eth0's mtu is 1200 >> step 1.brctl addbr br0 >> step 2.brctl addif br0 eth0 >> step 3.ifconfig br0 mtu 1200 >> step 4.ifconfig eth0 mtu 1500 >> >> Result: >> br0's MTU: 1500, eth0's MTU: 1500 >> >> Expected: >> br0's MTU: 1200, eth0's MTU: 1500 >> >> I have specified br0's MTU, but auto-min policy works. So the MTU is >> not the result what we expected. >> As expected, if i have specified bridge's MTU, it will set the flag: >> BROPT_MTU_SET_BY_USER in net_bridge_opts disabled and auto-min/max >> policy will not work.But in this case, because the dev_set_mtu return >> early, the BROPT_MTU_SET_BY_USER flag will not be disabled and >> auto-min/max policy will still work. >> >> Signed-off-by: Huang Rui <huangruiPPP at gmail.com> > > A bridge like this going to drop frames. > A frame received with MTU of 1200 will get dropped.That's true even if above you set br0's MTU to 1201, but then the auto-tuning is disabled as expected. The problem is that setting MTU to 1200 is perceived as a non-change, whereas it should instead be perceived as a signal that the user takes over the MTU management.> The proper way to do this is to change MTU of both interfaces to match.