]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
bpf: update printing of generic xdp mode
authorDaniel Borkmann <daniel@iogearbox.net>
Sat, 13 May 2017 00:32:34 +0000 (02:32 +0200)
committerStephen Hemminger <stephen@networkplumber.org>
Wed, 31 May 2017 00:49:09 +0000 (17:49 -0700)
Follow-up to d67b9cd28c1d ("xdp: refine xdp api with regards to
generic xdp") in order to update the XDP dumping part.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
ip/iplink_xdp.c

index a1380eec7db7962b916b3ef6a3d23a6386a0f2c2..98503fab7d3c0729bca642ff61d500d7f0dfb438 100644 (file)
@@ -79,17 +79,20 @@ int xdp_parse(int *argc, char ***argv, struct iplink_req *req, bool generic)
 void xdp_dump(FILE *fp, struct rtattr *xdp)
 {
        struct rtattr *tb[IFLA_XDP_MAX + 1];
-       __u32 flags = 0;
+       __u8 mode;
 
        parse_rtattr_nested(tb, IFLA_XDP_MAX, xdp);
 
-       if (!tb[IFLA_XDP_ATTACHED] ||
-           !rta_getattr_u8(tb[IFLA_XDP_ATTACHED]))
+       if (!tb[IFLA_XDP_ATTACHED])
                return;
 
-       if (tb[IFLA_XDP_FLAGS])
-               flags = rta_getattr_u32(tb[IFLA_XDP_FLAGS]);
-
-       fprintf(fp, "xdp%s ",
-               flags & XDP_FLAGS_SKB_MODE ? "generic" : "");
+       mode = rta_getattr_u8(tb[IFLA_XDP_ATTACHED]);
+       if (mode == XDP_ATTACHED_NONE)
+               return;
+       else if (mode == XDP_ATTACHED_DRV)
+               fprintf(fp, "xdp ");
+       else if (mode == XDP_ATTACHED_SKB)
+               fprintf(fp, "xdpgeneric ");
+       else
+               fprintf(fp, "xdp[%u] ", mode);
 }