From: Danielle Ratson <daniel...@mellanox.com>

Add support for "ethtool -s <dev> lanes N ..." for setting a specific
number of lanes.

Signed-off-by: Danielle Ratson <daniel...@mellanox.com>
---

Notes:
    v3:
        * Remove a leftover.
        * After adding a seperated patch for uapi headers, squash rest of
          the first patch.

 ethtool.c              | 1 +
 netlink/desc-ethtool.c | 1 +
 netlink/settings.c     | 7 +++++++
 3 files changed, 9 insertions(+)

diff --git a/ethtool.c b/ethtool.c
index fb90e9e..a8339c8 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -5620,6 +5620,7 @@ static const struct option args[] = {
                .nlfunc = nl_sset,
                .help   = "Change generic options",
                .xhelp  = "             [ speed %d ]\n"
+                         "             [ lanes %d ]\n"
                          "             [ duplex half|full ]\n"
                          "             [ port tp|aui|bnc|mii|fibre|da ]\n"
                          "             [ mdix auto|on|off ]\n"
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/netlink/settings.c b/netlink/settings.c
index 90c28b1..c54fe56 100644
--- a/netlink/settings.c
+++ b/netlink/settings.c
@@ -1067,6 +1067,13 @@ static const struct param_parser sset_params[] = {
                .handler        = nl_parse_direct_u32,
                .min_argc       = 1,
        },
+       {
+               .arg            = "lanes",
+               .group          = ETHTOOL_MSG_LINKMODES_SET,
+               .type           = ETHTOOL_A_LINKMODES_LANES,
+               .handler        = nl_parse_direct_u32,
+               .min_argc       = 1,
+       },
        {
                .arg            = "duplex",
                .group          = ETHTOOL_MSG_LINKMODES_SET,
-- 
2.26.2

Reply via email to