Currently, there is no way of knowing how many lanes will be use to
achieve a wanted speed.
For example, 100G speed can be achieved using: 2X50 or 4X25.
In order to solve that, extend ethtool uAPI with lanes as a new link
mode setting so the command below, for example, will be supported:
$ ethtool -s swp5 lanes N
Patch #1: Update headers with the new parameter.
Patch #2: Support lanes in netlink.
Patch #3: Expose the number of lanes in use.
Patch #4: Add auto-completion for lanes.
Patch #5: Add lanes to man page.
Danielle Ratson (5):
ethtool: Extend ethtool link modes settings uAPI with lanes
netlink: settings: Add netlink support for lanes parameter
netlink: settings: Expose the number of lanes in use
shell-completion: Add completion for lanes
man: Add man page for setting lanes parameter
ethtool.8.in | 4 ++++
ethtool.c | 1 +
netlink/desc-ethtool.c | 1 +
netlink/settings.c | 14 ++++++++++++++
shell-completion/bash/ethtool | 4 ++++
uapi/linux/ethtool_netlink.h | 1 +
6 files changed, 25 insertions(+)
--
2.26.2
Lanes was added as a new link mode setting in ethtool.
Support completion for lanes when setting parameters.
Signed-off-by: Danielle Ratson <redacted>
Reviewed-by: Jiri Pirko <redacted>
---
shell-completion/bash/ethtool | 4 ++++
1 file changed, 4 insertions(+)
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 <redacted>
---
Notes:
v2:
* Update headers after changes in upstream patches.
netlink/desc-ethtool.c | 1 +
uapi/linux/ethtool_netlink.h | 1 +
2 files changed, 2 insertions(+)
Currently, the user does not have the information regarding how many lanes
are used when the link is up.
After adding a possibility to advertise or force a specific number of
lanes this information becomes helpful.
Expose the number of lanes in use if the information is passed from
kernel.
Signed-off-by: Danielle Ratson <redacted>
---
Notes:
v2:
* Remove possibility for printing unknown lanes, as now unknown
lanes attribute doesn't pass to netlink.
netlink/settings.c | 6 ++++++
1 file changed, 6 insertions(+)
Add support for "ethtool -s <dev> lanes N ..." for setting a specific
number of lanes.
Signed-off-by: Danielle Ratson <redacted>
Reviewed-by: Jiri Pirko <redacted>
---
ethtool.c | 1 +
netlink/settings.c | 8 ++++++++
2 files changed, 9 insertions(+)
Lanes parameter was added for setting using ethtool.
Update the man page to include the new parameter.
Signed-off-by: Danielle Ratson <redacted>
---
ethtool.8.in | 4 ++++
1 file changed, 4 insertions(+)
@@ -251,6 +251,7 @@ ethtool \- query or control network driver and hardware settings .B ethtool \-s .I devname .BN speed+.BN lanes .B2 duplex half full .B4 port tp aui bnc mii fibre da .B3 mdix auto on off
@@ -685,6 +686,9 @@ Set speed in Mb/s. .B ethtool with just the device name as an argument will show you the supported device speeds. .TP+.BI lanes \ N+Set number of lanes.+.TP .A2 duplex half full Sets full or half duplex mode. .TP
From: Michal Kubecek <hidden> Date: 2021-02-09 19:54:40
On Tue, Feb 02, 2021 at 08:25:10PM +0200, Danielle Ratson wrote:
quoted hunk
Add support for "ethtool -s <dev> lanes N ..." for setting a specific
number of lanes.
Signed-off-by: Danielle Ratson <redacted>
Reviewed-by: Jiri Pirko <redacted>
---
ethtool.c | 1 +
netlink/settings.c | 8 ++++++++
2 files changed, 9 insertions(+)
This structure member is not used anywhere in this patch and, AFAICS,
not even in the rest of your series. Perhaps a leftover from an older
version?
Michal
From: Michal Kubecek <hidden> Date: 2021-02-09 19:58:57
On Tue, Feb 02, 2021 at 08:25:09PM +0200, Danielle Ratson wrote:
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 <redacted>
---
When updating the UAPI header copies, please do it in a separate commit
which updates the whole uapi/ subdirectory to the state of a specific
kernel commit. You can use the script at
https://www.kernel.org/pub/software/network/ethtool/ethtool-import-uapi
It expects the LINUX_GIT environment variable to point to your local git
repository with kernel tree and takes one argument identifying the
commit you want to import the uapi headers from (commit id, tag or
branch name can be used). In your case, net-next would be the most
likely choice.
Michal
From: Michal Kubecek <hidden> Date: 2021-02-09 20:12:45
On Tue, Feb 02, 2021 at 08:25:08PM +0200, Danielle Ratson wrote:
Currently, there is no way of knowing how many lanes will be use to
achieve a wanted speed.
For example, 100G speed can be achieved using: 2X50 or 4X25.
In order to solve that, extend ethtool uAPI with lanes as a new link
mode setting so the command below, for example, will be supported:
$ ethtool -s swp5 lanes N
Patch #1: Update headers with the new parameter.
Patch #2: Support lanes in netlink.
Patch #3: Expose the number of lanes in use.
Patch #4: Add auto-completion for lanes.
Patch #5: Add lanes to man page.
Danielle Ratson (5):
ethtool: Extend ethtool link modes settings uAPI with lanes
netlink: settings: Add netlink support for lanes parameter
netlink: settings: Expose the number of lanes in use
shell-completion: Add completion for lanes
man: Add man page for setting lanes parameter
ethtool.8.in | 4 ++++
ethtool.c | 1 +
netlink/desc-ethtool.c | 1 +
netlink/settings.c | 14 ++++++++++++++
shell-completion/bash/ethtool | 4 ++++
uapi/linux/ethtool_netlink.h | 1 +
6 files changed, 25 insertions(+)
Sorry for the delay, I was busy with other stuff last week and missed
that with kernel part accepted, I should take care of the userspace
counterpart.
The series looks good to me, except for two minor issues I'll comment to
relevant patches.
Michal
-----Original Message-----
From: Michal Kubecek <redacted>
Sent: Tuesday, February 9, 2021 9:40 PM
To: Danielle Ratson <redacted>
Cc: netdev@vger.kernel.org; f.fainelli@gmail.com; kuba@kernel.org; andrew@lunn.ch; mlxsw <redacted>
Subject: Re: [PATCH ethtool v2 1/5] ethtool: Extend ethtool link modes settings uAPI with lanes
On Tue, Feb 02, 2021 at 08:25:09PM +0200, Danielle Ratson wrote:
quoted
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 <redacted>
---
When updating the UAPI header copies, please do it in a separate commit which updates the whole uapi/ subdirectory to the state of
a specific kernel commit. You can use the script at
https://www.kernel.org/pub/software/network/ethtool/ethtool-import-uapi
It expects the LINUX_GIT environment variable to point to your local git repository with kernel tree and takes one argument
identifying the commit you want to import the uapi headers from (commit id, tag or branch name can be used). In your case, net-next
would be the most likely choice.
Michal
Should I use the commit in net-next that I added it uapi headers, or generally the last commit of net-next?
Thanks,
Danielle
From: Michal Kubecek <hidden> Date: 2021-02-10 12:23:15
On Wed, Feb 10, 2021 at 12:06:04PM +0000, Danielle Ratson wrote:
quoted
When updating the UAPI header copies, please do it in a separate
commit which updates the whole uapi/ subdirectory to the state of a
specific kernel commit. You can use the script at
https://www.kernel.org/pub/software/network/ethtool/ethtool-import-uapi
It expects the LINUX_GIT environment variable to point to your local
git repository with kernel tree and takes one argument identifying
the commit you want to import the uapi headers from (commit id, tag
or branch name can be used). In your case, net-next would be the
most likely choice.
Should I use the commit in net-next that I added it uapi headers, or
generally the last commit of net-next?
That's up to you, I'm fine with either. The important point is to have
a consistent snapshot of all copied (and sanitized) uapi headers.
Michal