Subject: Re: [PATCH iproute2] vxlan: show correct ttl inherit info

From: Hangbin Liu <[email-masked]>
Date: Thu, 27 Sep 2018 22:07:51 +0800

On Thu, Sep 27, 2018 at 11:27:45AM +0200, Phil Sutter wrote:
> Hi Hangbin,
> 
> On Thu, Sep 27, 2018 at 03:28:36PM +0800, Hangbin Liu wrote:
> > We should only show ttl inherit when IFLA_VXLAN_TTL_INHERIT supplied.
> > Otherwise show the ttl number, or auto when it is 0.
> > 
> > Signed-off-by: Hangbin Liu <[email-masked]>
> > ---
> >  ip/iplink_vxlan.c | 16 ++++++++++------
> >  1 file changed, 10 insertions(+), 6 deletions(-)
> > 
> > diff --git a/ip/iplink_vxlan.c b/ip/iplink_vxlan.c
> > index 831f39a..7fc0e2b 100644
> > --- a/ip/iplink_vxlan.c
> > +++ b/ip/iplink_vxlan.c
> > @@ -145,7 +145,7 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv,
> >  			NEXT_ARG();
> >  			check_duparg(&attrs, IFLA_VXLAN_TTL, "ttl", *argv);
> >  			if (strcmp(*argv, "inherit") == 0) {
> > -				addattr_l(n, 1024, IFLA_VXLAN_TTL_INHERIT, NULL, 0);
> > +				addattr(n, 1024, IFLA_VXLAN_TTL_INHERIT);
> 
> So for VXLAN, the attribute is just added but with a zero value. Looking
> at respective kernel code, this seems fine. Now I wonder why for Geneve,
> you set the value to 1 and when displaying explicitly check whether the
> attribute is there *and* non-zero. OK, looks like Geneve driver always
> exports IFLA_GENEVE_TTL_INHERIT. Oddly, I can't find where VXLAN driver
> in kernel does export the IFLA_VXLAN_TTL_INHERIT attribute. Am I missing
> something?

Hi Phil,

The vxlan ttl inherit exportation is just fixed by
net commit 8fd78069874 ("vxlan: fill ttl inherit info") yesterday.

> Do you know why handling of the attributes in both drivers differ?

That's because I set IFLA_VXLAN_TTL_INHERIT type to NLA_FLAG. But when fix
the geneve issue, I forgot this and set IFLA_GENEVE_TTL_INHERIT type to
NLA_U8... :(

I noticed this when post the iproute2 patch. But I thought this should have
no much influence, so I just leave it as it is.

If you think we'd better have a same behaver. We can drop the geneve iproute2
patch and post a fix to net kernel tree.

Thanks
Hangbin