Blob Blame History Raw
From e9ee8ed549fbc02527356c3c82cec23434fc2f56 Mon Sep 17 00:00:00 2001
From: Danielle Ratson <danieller@mellanox.com>
Date: Wed, 10 Feb 2021 15:48:37 +0200
Subject: [PATCH 39/42] netlink: settings: Add netlink support for lanes
 parameter

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

Signed-off-by: Danielle Ratson <danieller@mellanox.com>
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
(cherry picked from commit 107ee330ec7bf83e8c3938375f3466bc8e102b93)
---
 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 f5fbb01e553a..61f136c5bf2c 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -5568,6 +5568,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 8dd4a91ad0d7..c8447ce33f4d 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 01c1d38d323f..37222db5c833 100644
--- a/netlink/settings.c
+++ b/netlink/settings.c
@@ -1065,6 +1065,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.31.1