diff mbox series

[ethtool,v3,2/5] netlink: settings: Add netlink support for lanes parameter

Message ID 20210210134840.2187696-3-danieller@nvidia.com (mailing list archive)
State Accepted
Delegated to: Michal Kubecek
Headers show
Series Extend uAPI with lanes parameter | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Danielle Ratson Feb. 10, 2021, 1:48 p.m. UTC
From: Danielle Ratson <danieller@mellanox.com>

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

Signed-off-by: Danielle Ratson <danieller@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 mbox series

Patch

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,