]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
ip link gre: print only relevant info in external mode
authorJiri Benc <jbenc@redhat.com>
Wed, 27 Apr 2016 14:11:14 +0000 (16:11 +0200)
committerStephen Hemminger <shemming@brocade.com>
Fri, 6 May 2016 18:49:08 +0000 (11:49 -0700)
Display only attributes that are relevant when a GRE interface is in
'external' mode instead of the default values (which are ignored by the
kernel even if passed back).

Fixes: 926b39e1feffd ("gre: add support for collect metadata flag")
Signed-off-by: Jiri Benc <jbenc@redhat.com>
ip/link_gre.c

index 36ce1252675b4dd58b9da60ffe4cb86ed8252ca5..492c22053b8919e9daf8e855fb9d1bb4c77560f7 100644 (file)
@@ -339,7 +339,7 @@ get_failed:
        return 0;
 }
 
-static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
+static void gre_print_direct_opt(FILE *f, struct rtattr *tb[])
 {
        char s2[64];
        const char *local = "any";
@@ -347,9 +347,6 @@ static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
        unsigned int iflags = 0;
        unsigned int oflags = 0;
 
-       if (!tb)
-               return;
-
        if (tb[IFLA_GRE_REMOTE]) {
                unsigned int addr = rta_getattr_u32(tb[IFLA_GRE_REMOTE]);
 
@@ -421,8 +418,16 @@ static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
                fputs("icsum ", f);
        if (oflags & GRE_CSUM)
                fputs("ocsum ", f);
+}
 
-       if (tb[IFLA_GRE_COLLECT_METADATA])
+static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
+{
+       if (!tb)
+               return;
+
+       if (!tb[IFLA_GRE_COLLECT_METADATA])
+               gre_print_direct_opt(f, tb);
+       else
                fputs("external ", f);
 
        if (tb[IFLA_GRE_ENCAP_TYPE] &&