Add ETHTOOL_A_LINKMODES_LANES, expand ethtool_link_settings with
lanes attribute and define valid lanes in order to support a new
lanes-selector.

Signed-off-by: Danielle Ratson <daniel...@mellanox.com>
Reviewed-by: Jiri Pirko <j...@nvidia.com>
---
 netlink/desc-ethtool.c       | 1 +
 uapi/linux/ethtool.h         | 8 ++++++++
 uapi/linux/ethtool_netlink.h | 1 +
 3 files changed, 10 insertions(+)

diff --git a/netlink/desc-ethtool.c b/netlink/desc-ethtool.c
index 96291b9..fe5d7ba 100644
--- a/netlink/desc-ethtool.c
+++ b/netlink/desc-ethtool.c
@@ -87,6 +87,7 @@ static const struct pretty_nla_desc __linkmodes_desc[] = {
        NLATTR_DESC_U8(ETHTOOL_A_LINKMODES_DUPLEX),
        NLATTR_DESC_U8(ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG),
        NLATTR_DESC_U8(ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE),
+       NLATTR_DESC_U32(ETHTOOL_A_LINKMODES_LANES),
 };
 
 static const struct pretty_nla_desc __linkstate_desc[] = {
diff --git a/uapi/linux/ethtool.h b/uapi/linux/ethtool.h
index 052689b..85ec9c8 100644
--- a/uapi/linux/ethtool.h
+++ b/uapi/linux/ethtool.h
@@ -1736,6 +1736,14 @@ static __inline__ int ethtool_validate_speed(__u32 speed)
        return speed <= INT_MAX || speed == (__u32)SPEED_UNKNOWN;
 }
 
+/* Lanes, 1, 2, 4 or 8. */
+#define ETHTOOL_LANES_1                        1
+#define ETHTOOL_LANES_2                        2
+#define ETHTOOL_LANES_4                        4
+#define ETHTOOL_LANES_8                        8
+
+#define ETHTOOL_LANES_UNKNOWN          0
+
 /* Duplex, half or full. */
 #define DUPLEX_HALF            0x00
 #define DUPLEX_FULL            0x01
diff --git a/uapi/linux/ethtool_netlink.h b/uapi/linux/ethtool_netlink.h
index c022883..0cd6906 100644
--- a/uapi/linux/ethtool_netlink.h
+++ b/uapi/linux/ethtool_netlink.h
@@ -227,6 +227,7 @@ enum {
        ETHTOOL_A_LINKMODES_DUPLEX,             /* u8 */
        ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG,   /* u8 */
        ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */
+       ETHTOOL_A_LINKMODES_LANES,              /* u32 */
 
        /* add new constants above here */
        __ETHTOOL_A_LINKMODES_CNT,
-- 
2.26.2

Reply via email to