On 05/13/2017 11:01 AM, Sergei Shtylyov wrote:
On 5/13/2017 3:32 AM, Daniel Borkmann wrote:

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 <dan...@iogearbox.net>
---
 ip/iplink_xdp.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/ip/iplink_xdp.c b/ip/iplink_xdp.c
index a1380ee..98503fa 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);

    This is asking to be a *switch* statement.

The code is fine as-is, thank you !

Reply via email to