]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Merge branch 'master' into net-next
authorStephen Hemminger <stephen@networkplumber.org>
Tue, 5 Sep 2017 16:33:29 +0000 (09:33 -0700)
committerStephen Hemminger <stephen@networkplumber.org>
Tue, 5 Sep 2017 16:33:29 +0000 (09:33 -0700)
1  2 
ip/ipaddress.c
ip/iplink_xdp.c
tc/f_bpf.c
tc/m_action.c

diff --cc ip/ipaddress.c
index 201225f74b1de38cad65dd034b095ffe841f7305,dbdd839cfe495700a245a58a1c69f6a1983b4184..9797145023966a15b2ab9067b1dd28099c1d972f
@@@ -1142,23 -835,14 +1142,23 @@@ int print_linkinfo(const struct sockadd
        print_link_flags(fp, ifi->ifi_flags, m_flag);
  
        if (tb[IFLA_MTU])
 -              fprintf(fp, "mtu %u ", rta_getattr_u32(tb[IFLA_MTU]));
 +              print_int(PRINT_ANY,
 +                        "mtu", "mtu %u ",
 +                        rta_getattr_u32(tb[IFLA_MTU]));
        if (tb[IFLA_XDP])
-               xdp_dump(fp, tb[IFLA_XDP]);
+               xdp_dump(fp, tb[IFLA_XDP], do_link, false);
        if (tb[IFLA_QDISC])
 -              fprintf(fp, "qdisc %s ", rta_getattr_str(tb[IFLA_QDISC]));
 +              print_string(PRINT_ANY,
 +                           "qdisc",
 +                           "qdisc %s ",
 +                           rta_getattr_str(tb[IFLA_QDISC]));
        if (tb[IFLA_MASTER]) {
                SPRINT_BUF(b1);
 -              fprintf(fp, "master %s ", ll_idx_n2a(rta_getattr_u32(tb[IFLA_MASTER]), b1));
 +
 +              print_string(PRINT_ANY,
 +                           "master",
 +                           "master %s ",
 +                           ll_idx_n2a(rta_getattr_u32(tb[IFLA_MASTER]), b1));
        }
  
        if (tb[IFLA_OPERSTATE])
                }
        }
  
        if ((do_link || show_details) && tb[IFLA_IFALIAS]) {
 -              fprintf(fp, "%s    alias %s", _SL_,
 -                      rta_getattr_str(tb[IFLA_IFALIAS]));
 +              print_string(PRINT_FP, NULL, "%s    ", _SL_);
 +              print_string(PRINT_ANY,
 +                           "ifalias",
 +                           "alias %s",
 +                           rta_getattr_str(tb[IFLA_IFALIAS]));
        }
  
+       if ((do_link || show_details) && tb[IFLA_XDP])
+               xdp_dump(fp, tb[IFLA_XDP], true, true);
        if (do_link && show_stats) {
 -              fprintf(fp, "%s", _SL_);
 +              print_string(PRINT_FP, NULL, "%s", _SL_);
                __print_link_stats(fp, tb);
        }
  
diff --cc ip/iplink_xdp.c
index 3a61076e02117fc1e951552037ae7336d7a98172,5aa66fe7b29795cd0bd08465ddf782beaf815ff7..71f77982580e172349ea6aa6abf11ecabc82f2ec
@@@ -93,24 -93,30 +94,34 @@@ void xdp_dump(FILE *fp, struct rtattr *
                return;
  
        mode = rta_getattr_u8(tb[IFLA_XDP_ATTACHED]);
 -      if (mode == XDP_ATTACHED_NONE)
 -              return;
 -      else if (details && link)
 -              fprintf(fp, "%s    prog/xdp", _SL_);
 -      else if (mode == XDP_ATTACHED_DRV)
 -              fprintf(fp, "xdp");
 -      else if (mode == XDP_ATTACHED_SKB)
 -              fprintf(fp, "xdpgeneric");
 -      else if (mode == XDP_ATTACHED_HW)
 -              fprintf(fp, "xdpoffload");
 -      else
 -              fprintf(fp, "xdp[%u]", mode);
 -
 -      if (tb[IFLA_XDP_PROG_ID])
 -              prog_id = rta_getattr_u32(tb[IFLA_XDP_PROG_ID]);
 -      if (!details) {
 -              if (prog_id && !link)
 -                      fprintf(fp, "/id:%u", prog_id);
 -              fprintf(fp, " ");
 -              return;
 -      }
 -
 -      if (prog_id) {
 -              fprintf(fp, " ");
 -              bpf_dump_prog_info(fp, prog_id);
 +      if (is_json_context()) {
 +              print_uint(PRINT_JSON, "attached", NULL, mode);
 +      } else {
 +              if (mode == XDP_ATTACHED_NONE)
 +                      return;
++              else if (details && link)
++                      fprintf(fp, "%s    prog/xdp", _SL_);
 +              else if (mode == XDP_ATTACHED_DRV)
 +                      fprintf(fp, "xdp");
 +              else if (mode == XDP_ATTACHED_SKB)
 +                      fprintf(fp, "xdpgeneric");
 +              else if (mode == XDP_ATTACHED_HW)
 +                      fprintf(fp, "xdpoffload");
 +              else
 +                      fprintf(fp, "xdp[%u]", mode);
-       }
 +
-       if (tb[IFLA_XDP_PROG_ID])
-               print_uint(PRINT_ANY, "prog_id", "/id:%u",
-                                  rta_getattr_u32(tb[IFLA_XDP_PROG_ID]));
++              if (tb[IFLA_XDP_PROG_ID])
++                      prog_id = rta_getattr_u32(tb[IFLA_XDP_PROG_ID]);
++              if (!details) {
++                      if (prog_id && !link)
++                              fprintf(fp, "/id:%u", prog_id);
++                      fprintf(fp, " ");
++                      return;
++              }
 +
-       print_string(PRINT_FP, NULL, "%c", " ");
++              if (prog_id) {
++                      fprintf(fp, " ");
++                      bpf_dump_prog_info(fp, prog_id);
++              }
+       }
  }
diff --cc tc/f_bpf.c
Simple merge
diff --cc tc/m_action.c
Simple merge