Add a new attribute that indicates the port split ability to devlink port. Expose the attribute to user space as RO value, for example:
$devlink port show swp1 pci/0000:03:00.0/61: type eth netdev swp1 flavour physical port 1 splittable false lanes 1 Signed-off-by: Danielle Ratson <daniel...@mellanox.com> --- devlink/devlink.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devlink/devlink.c b/devlink/devlink.c index 39bc1119..a22e931e 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -582,6 +582,7 @@ static const enum mnl_attr_data_type devlink_policy[DEVLINK_ATTR_MAX + 1] = { [DEVLINK_ATTR_PORT_NETDEV_NAME] = MNL_TYPE_NUL_STRING, [DEVLINK_ATTR_PORT_IBDEV_NAME] = MNL_TYPE_NUL_STRING, [DEVLINK_ATTR_PORT_LANES] = MNL_TYPE_U32, + [DEVLINK_ATTR_PORT_SPLITTABLE] = MNL_TYPE_U8, [DEVLINK_ATTR_SB_INDEX] = MNL_TYPE_U32, [DEVLINK_ATTR_SB_SIZE] = MNL_TYPE_U32, [DEVLINK_ATTR_SB_INGRESS_POOL_COUNT] = MNL_TYPE_U16, @@ -3424,6 +3425,9 @@ static void pr_out_port(struct dl *dl, struct nlattr **tb) if (tb[DEVLINK_ATTR_PORT_SPLIT_GROUP]) print_uint(PRINT_ANY, "split_group", " split_group %u", mnl_attr_get_u32(tb[DEVLINK_ATTR_PORT_SPLIT_GROUP])); + if (tb[DEVLINK_ATTR_PORT_SPLITTABLE]) + print_bool(PRINT_ANY, "splittable", " splittable %s", + mnl_attr_get_u8(tb[DEVLINK_ATTR_PORT_SPLITTABLE])); if (tb[DEVLINK_ATTR_PORT_LANES]) print_uint(PRINT_ANY, "lanes", " lanes %u", mnl_attr_get_u32(tb[DEVLINK_ATTR_PORT_LANES])); -- 2.20.1