Re: [PATCH next] ipvlan: inherit MTU from master device
From: Mahesh BandewarDate: Wed, 27 Jan 2016 23:33:28 -0800 > From: Mahesh Bandewar > > When we create IPvlan slave; we use ether_setup() and that > sets up default MTU to 1500 while the master device may have > lower / different MTU. Any subsequent changes to the masters' > MTU are reflected into the slaves' MTU setting. However if those > don't happen (most likely scenario), the slaves' MTU stays at > 1500 which could be bad. > > This change adds code to inherit MTU from the master device > instead of using the default value during the link initialization > phase. > > Signed-off-by: Mahesh Bandewar Applied, thanks.
Re: [PATCH next] ipvlan: inherit MTU from master device
On Thu, Jan 28, 2016 at 5:13 AM, Eric Dumazetwrote: > On Wed, Jan 27, 2016 at 11:33 PM, Mahesh Bandewar wrote: >> From: Mahesh Bandewar >> >> When we create IPvlan slave; we use ether_setup() and that >> sets up default MTU to 1500 while the master device may have >> lower / different MTU. Any subsequent changes to the masters' >> MTU are reflected into the slaves' MTU setting. However if those >> don't happen (most likely scenario), the slaves' MTU stays at >> 1500 which could be bad. >> >> This change adds code to inherit MTU from the master device >> instead of using the default value during the link initialization >> phase. >> >> Signed-off-by: Mahesh Bandewar >> CC: Eric Dumazet >> CC: Tim Hockins >> > > Acked-by: Eric Dumazet > > Two points Mahesh : > > 1) ipvlan_adjust_mtu() could be static, it is only used from > drivers/net/ipvlan/ipvlan_main.c > Correct, I'm working on a some other (generic) changes and I could include this suggestion as part of that / later patch or do you prefer it to be part of this change? > 2) mtu_adj does not seem to be used ? mtu_adj is set to zero so that it follows the master. The idea behind this field was that if enhancements / changes to the IPvlan driver (some sort of built-in encapsulation etc.) is added, this can be set to that magic value so that changes to master will still allow slaves to follow it without compromising the built-in mechanism.
Re: [PATCH next] ipvlan: inherit MTU from master device
On Wed, Jan 27, 2016 at 11:33 PM, Mahesh Bandewarwrote: > From: Mahesh Bandewar > > When we create IPvlan slave; we use ether_setup() and that > sets up default MTU to 1500 while the master device may have > lower / different MTU. Any subsequent changes to the masters' > MTU are reflected into the slaves' MTU setting. However if those > don't happen (most likely scenario), the slaves' MTU stays at > 1500 which could be bad. > > This change adds code to inherit MTU from the master device > instead of using the default value during the link initialization > phase. > > Signed-off-by: Mahesh Bandewar > CC: Eric Dumazet > CC: Tim Hockins > Acked-by: Eric Dumazet Two points Mahesh : 1) ipvlan_adjust_mtu() could be static, it is only used from drivers/net/ipvlan/ipvlan_main.c 2) mtu_adj does not seem to be used ?
[PATCH next] ipvlan: inherit MTU from master device
From: Mahesh BandewarWhen we create IPvlan slave; we use ether_setup() and that sets up default MTU to 1500 while the master device may have lower / different MTU. Any subsequent changes to the masters' MTU are reflected into the slaves' MTU setting. However if those don't happen (most likely scenario), the slaves' MTU stays at 1500 which could be bad. This change adds code to inherit MTU from the master device instead of using the default value during the link initialization phase. Signed-off-by: Mahesh Bandewar CC: Eric Dumazet CC: Tim Hockins --- drivers/net/ipvlan/ipvlan_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c index f94392d07126..7a3b41468a55 100644 --- a/drivers/net/ipvlan/ipvlan_main.c +++ b/drivers/net/ipvlan/ipvlan_main.c @@ -468,6 +468,7 @@ static int ipvlan_link_new(struct net *src_net, struct net_device *dev, ipvlan->dev = dev; ipvlan->port = port; ipvlan->sfeatures = IPVLAN_FEATURES; + ipvlan_adjust_mtu(ipvlan, phy_dev); INIT_LIST_HEAD(>addrs); /* TODO Probably put random address here to be presented to the -- 2.7.0.rc3.207.g0ac5344