From: Daniel Borkmann Date: Sat, 13 May 2017 00:32:34 +0000 (+0200) Subject: bpf: update printing of generic xdp mode X-Git-Tag: v4.12.0~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=077bb1803cf98deea2f1a8be40f2590120bfb4b5;p=thirdparty%2Fiproute2.git bpf: update printing of generic xdp mode 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 --- diff --git a/ip/iplink_xdp.c b/ip/iplink_xdp.c index a1380eec7..98503fab7 100644 --- a/ip/iplink_xdp.c +++ b/ip/iplink_xdp.c @@ -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); }