Hi Hangbin, On Thu, Sep 27, 2018 at 10:07:51PM +0800, Hangbin Liu wrote: > On Thu, Sep 27, 2018 at 11:27:45AM +0200, Phil Sutter wrote: > > 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 <liuhang...@gmail.com> > > > --- > > > 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.
Ah, thanks! > > 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. I guess it doesn't make much difference, but NLA_FLAG would be more appropriate. If you want to spend the extra effort to fix it, I guess now's the time - later it can't be changed anymore due to compatibility issues (I guess). Thanks, Phil