Re: [PATCH next] ipvlan: inherit MTU from master device

2016-02-04 Thread David Miller
From: Mahesh Bandewar 
Date: 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

2016-01-28 Thread Mahesh Bandewar
On Thu, Jan 28, 2016 at 5:13 AM, Eric Dumazet  wrote:
> 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

2016-01-28 Thread Eric Dumazet
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

2) mtu_adj does not seem to be used ?


[PATCH next] ipvlan: inherit MTU from master device

2016-01-27 Thread Mahesh Bandewar
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 
---
 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