On Thu, 18 Jun 2020 12:13:22 +0200 Sabrina Dubroca <s...@queasysnail.net> wrote:
> Currently, trying to change the DF parameter of a geneve device does > nothing: > > # ip -d link show geneve1 > 14: geneve1: <snip> > link/ether <snip> > geneve id 1 remote 10.0.0.1 ttl auto df set dstport 6081 <snip> > # ip link set geneve1 type geneve id 1 df unset > # ip -d link show geneve1 > 14: geneve1: <snip> > link/ether <snip> > geneve id 1 remote 10.0.0.1 ttl auto df set dstport 6081 <snip> > > We just need to update the value in geneve_changelink. > > Fixes: a025fb5f49ad ("geneve: Allow configuration of DF behaviour") > Signed-off-by: Sabrina Dubroca <s...@queasysnail.net> > --- > drivers/net/geneve.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c > index 75266580b586..4661ef865807 100644 > --- a/drivers/net/geneve.c > +++ b/drivers/net/geneve.c > @@ -1649,6 +1649,7 @@ static int geneve_changelink(struct net_device *dev, > struct nlattr *tb[], > geneve->collect_md = metadata; > geneve->use_udp6_rx_checksums = use_udp6_rx_checksums; > geneve->ttl_inherit = ttl_inherit; > + geneve->df = df; I introduced this bug as I didn't notice the asymmetry with VXLAN, where vxlan_nl2conf() takes care of this for both new links and link changes. Here, this block is duplicated in geneve_configure(), which, somewhat surprisingly given the name, is not called from geneve_changelink(). Did you consider factoring out (at least) this block to have it shared? Either way, Reviewed-by: Stefano Brivio <sbri...@redhat.com> -- Stefano