ethtool/0004-ethtool-add-support-to-get-set-tx-push-by-ethtool-G-.patch
Jiantao Xiao f2c66b07c9 add support to set or get rx buf len and add support to set or get tx push by ethtool -G
Signed-off-by: Jiantao Xiao <xiaojiantao1@h-partners.com>
2022-09-22 16:19:02 +08:00

93 lines
2.6 KiB
Diff

From 0a0460a0e7c3d862a577fd048375f2ab0a024a97 Mon Sep 17 00:00:00 2001
From: Jie Wang <wangjie125@huawei.com>
Date: Fri, 29 Apr 2022 17:17:04 +0800
Subject: ethtool: add support to get/set tx push by ethtool -G/g
Currently tx push is a standard feature for NICs such as Mellanox, HNS3.
But there is no command to set or get this feature.
So this patch adds support for "ethtool -G <dev> tx-push on|off" and
"ethtool -g <dev>" to set/get tx push mode.
commit: d772518
Reference: https://git.kernel.org/pub/scm/network/ethtool/ethtool.git/commit/?id=d77251806eaa
change log: use tab instead of space before [rx-buf-len]; To avoid
add other content, add missing content for rx buf len, like ".BN
rx\-buf\len"
Signed-off-by: Jie Wang <wangjie125@huawei.com>
---
ethtool.8.in | 8 ++++++++
ethtool.c | 3 ++-
netlink/rings.c | 7 +++++++
3 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/ethtool.8.in b/ethtool.8.in
index d2c7e5c..af1c5bc 100644
--- a/ethtool.8.in
+++ b/ethtool.8.in
@@ -198,6 +198,8 @@ ethtool \- query or control network driver and hardware settings
.BN rx\-mini
.BN rx\-jumbo
.BN tx
+.BN rx\-buf\-len
+.BN tx\-push
.HP
.B ethtool \-i|\-\-driver
.I devname
@@ -559,6 +561,12 @@ Changes the number of ring entries for the Rx Jumbo ring.
.TP
.BI tx \ N
Changes the number of ring entries for the Tx ring.
+.TP
+.BI rx\-buf\-len \ N
+Changes the size of a buffer in the Rx ring.
+.TP
+.BI tx\-push \ on|off
+Specifies whether TX push should be enabled.
.RE
.TP
.B \-i \-\-driver
diff --git a/ethtool.c b/ethtool.c
index 040e911..46250eb 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -5730,7 +5730,8 @@ static const struct option args[] = {
" [ rx-mini N ]\n"
" [ rx-jumbo N ]\n"
" [ tx N ]\n"
- " [ rx-buf-len N]\n"
+ " [ rx-buf-len N]\n"
+ " [ tx-push on|off]\n"
},
{
.opts = "-k|--show-features|--show-offload",
diff --git a/netlink/rings.c b/netlink/rings.c
index 119178e..3718c10 100644
--- a/netlink/rings.c
+++ b/netlink/rings.c
@@ -47,6 +47,7 @@ int rings_reply_cb(const struct nlmsghdr *nlhdr, void *data)
show_u32(tb[ETHTOOL_A_RINGS_RX_JUMBO], "RX Jumbo:\t");
show_u32(tb[ETHTOOL_A_RINGS_TX], "TX:\t\t");
show_u32(tb[ETHTOOL_A_RINGS_RX_BUF_LEN], "RX Buf Len:\t\t");
+ show_bool("tx-push", "TX Push:\t%s\n", tb[ETHTOOL_A_RINGS_TX_PUSH]);
return MNL_CB_OK;
}
@@ -105,6 +106,12 @@ static const struct param_parser sring_params[] = {
.handler = nl_parse_direct_u32,
.min_argc = 1,
},
+ {
+ .arg = "tx-push",
+ .type = ETHTOOL_A_RINGS_TX_PUSH,
+ .handler = nl_parse_u8bool,
+ .min_argc = 1,
+ },
{}
};
--
2.33.0