]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
devlink: introduce support for showing port flavours
authorJiri Pirko <jiri@mellanox.com>
Sun, 20 May 2018 08:15:38 +0000 (10:15 +0200)
committerDavid Ahern <dsahern@gmail.com>
Wed, 23 May 2018 19:58:55 +0000 (12:58 -0700)
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
devlink/devlink.c

index fa33684cb20ae5133fab6977a9c402e63c5fcbbc..df2c66dac1c79d0ea34e501c3e226945ce338911 100644 (file)
@@ -1693,6 +1693,20 @@ static const char *port_type_name(uint32_t type)
        }
 }
 
+static const char *port_flavour_name(uint16_t flavour)
+{
+       switch (flavour) {
+       case DEVLINK_PORT_FLAVOUR_PHYSICAL:
+               return "physical";
+       case DEVLINK_PORT_FLAVOUR_CPU:
+               return "cpu";
+       case DEVLINK_PORT_FLAVOUR_DSA:
+               return "dsa";
+       default:
+               return "<unknown flavour>";
+       }
+}
+
 static void pr_out_port(struct dl *dl, struct nlattr **tb)
 {
        struct nlattr *pt_attr = tb[DEVLINK_ATTR_PORT_TYPE];
@@ -1717,6 +1731,12 @@ static void pr_out_port(struct dl *dl, struct nlattr **tb)
        if (tb[DEVLINK_ATTR_PORT_IBDEV_NAME])
                pr_out_str(dl, "ibdev",
                           mnl_attr_get_str(tb[DEVLINK_ATTR_PORT_IBDEV_NAME]));
+       if (tb[DEVLINK_ATTR_PORT_FLAVOUR]) {
+               uint16_t port_flavour =
+                               mnl_attr_get_u16(tb[DEVLINK_ATTR_PORT_FLAVOUR]);
+
+               pr_out_str(dl, "flavour", port_flavour_name(port_flavour));
+       }
        if (tb[DEVLINK_ATTR_PORT_SPLIT_GROUP])
                pr_out_uint(dl, "split_group",
                            mnl_attr_get_u32(tb[DEVLINK_ATTR_PORT_SPLIT_GROUP]));