aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Kubecek <mkubecek@suse.cz>2023-05-10 08:20:56 +0200
committerMichal Kubecek <mkubecek@suse.cz>2023-05-10 08:20:56 +0200
commit40c30c9e67e68d85e9b4e5a1d1b134cacefc9c99 (patch)
tree29188a37f2d026b94c85166fa87ff3aa31e118c1
parent7bdf78f0d2a9ae1571fe9444e552490130e573fd (diff)
parent946d18be1fce43da467bf2ee54dbb8012d3b1a32 (diff)
downloadethtool-40c30c9e67e68d85e9b4e5a1d1b134cacefc9c99.tar.gz
Merge branch 'next' into master
-rw-r--r--ethtool.8.in5
-rw-r--r--ethtool.c1
-rw-r--r--netlink/desc-ethtool.c2
-rw-r--r--netlink/rings.c38
-rw-r--r--uapi/linux/const.h2
-rw-r--r--uapi/linux/ethtool_netlink.h2
-rw-r--r--uapi/linux/if_link.h2
7 files changed, 37 insertions, 15 deletions
diff --git a/ethtool.8.in b/ethtool.8.in
index 3c316dc..a987d6f 100644
--- a/ethtool.8.in
+++ b/ethtool.8.in
@@ -205,6 +205,7 @@ ethtool \- query or control network driver and hardware settings
.BN cqe\-size
.BN tx\-push
.BN rx\-push
+.BN tx\-push\-buf\-len
.HP
.B ethtool \-i|\-\-driver
.I devname
@@ -636,6 +637,10 @@ Specifies whether TX push should be enabled.
.TP
.BI rx\-push \ on|off
Specifies whether RX push should be enabled.
+.TP
+.BI tx\-push\-buf\-len \ N
+Specifies the maximum number of bytes of a transmitted packet a driver can push
+directly to the underlying device
.RE
.TP
.B \-i \-\-driver
diff --git a/ethtool.c b/ethtool.c
index 0752fe4..67107ae 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -5754,6 +5754,7 @@ static const struct option args[] = {
" [ cqe-size N ]\n"
" [ tx-push on|off ]\n"
" [ rx-push on|off ]\n"
+ " [ tx-push-buf-len N]\n"
},
{
.opts = "-k|--show-features|--show-offload",
diff --git a/netlink/desc-ethtool.c b/netlink/desc-ethtool.c
index 7b77f88..661de26 100644
--- a/netlink/desc-ethtool.c
+++ b/netlink/desc-ethtool.c
@@ -159,6 +159,8 @@ static const struct pretty_nla_desc __rings_desc[] = {
NLATTR_DESC_U32(ETHTOOL_A_RINGS_CQE_SIZE),
NLATTR_DESC_BOOL(ETHTOOL_A_RINGS_TX_PUSH),
NLATTR_DESC_BOOL(ETHTOOL_A_RINGS_RX_PUSH),
+ NLATTR_DESC_U32(ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN),
+ NLATTR_DESC_U32(ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX),
};
static const struct pretty_nla_desc __channels_desc[] = {
diff --git a/netlink/rings.c b/netlink/rings.c
index 57bfb36..51d28c2 100644
--- a/netlink/rings.c
+++ b/netlink/rings.c
@@ -44,22 +44,26 @@ int rings_reply_cb(const struct nlmsghdr *nlhdr, void *data)
print_string(PRINT_ANY, "ifname", "Ring parameters for %s:\n",
nlctx->devname);
print_string(PRINT_FP, NULL, "Pre-set maximums:\n", NULL);
- show_u32("rx-max", "RX:\t\t", tb[ETHTOOL_A_RINGS_RX_MAX]);
- show_u32("rx-mini-max", "RX Mini:\t", tb[ETHTOOL_A_RINGS_RX_MINI_MAX]);
- show_u32("rx-jumbo-max", "RX Jumbo:\t",
+ show_u32("rx-max", "RX:\t\t\t", tb[ETHTOOL_A_RINGS_RX_MAX]);
+ show_u32("rx-mini-max", "RX Mini:\t\t", tb[ETHTOOL_A_RINGS_RX_MINI_MAX]);
+ show_u32("rx-jumbo-max", "RX Jumbo:\t\t",
tb[ETHTOOL_A_RINGS_RX_JUMBO_MAX]);
- show_u32("tx-max", "TX:\t\t", tb[ETHTOOL_A_RINGS_TX_MAX]);
+ show_u32("tx-max", "TX:\t\t\t", tb[ETHTOOL_A_RINGS_TX_MAX]);
+ show_u32("tx-push-buff-max-len", "TX push buff len:\t",
+ tb[ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX]);
print_string(PRINT_FP, NULL, "Current hardware settings:\n", NULL);
- show_u32("rx", "RX:\t\t", tb[ETHTOOL_A_RINGS_RX]);
- show_u32("rx-mini", "RX Mini:\t", tb[ETHTOOL_A_RINGS_RX_MINI]);
- show_u32("rx-jumbo", "RX Jumbo:\t", tb[ETHTOOL_A_RINGS_RX_JUMBO]);
- show_u32("tx", "TX:\t\t", tb[ETHTOOL_A_RINGS_TX]);
- show_u32("rx-buf-len", "RX Buf Len:\t", tb[ETHTOOL_A_RINGS_RX_BUF_LEN]);
- show_u32("cqe-size", "CQE Size:\t", tb[ETHTOOL_A_RINGS_CQE_SIZE]);
- show_bool("tx-push", "TX Push:\t%s\n", tb[ETHTOOL_A_RINGS_TX_PUSH]);
- show_bool("rx-push", "RX Push:\t%s\n", tb[ETHTOOL_A_RINGS_RX_PUSH]);
-
- tcp_hds_fmt = "TCP data split:\t%s\n";
+ show_u32("rx", "RX:\t\t\t", tb[ETHTOOL_A_RINGS_RX]);
+ show_u32("rx-mini", "RX Mini:\t\t", tb[ETHTOOL_A_RINGS_RX_MINI]);
+ show_u32("rx-jumbo", "RX Jumbo:\t\t", tb[ETHTOOL_A_RINGS_RX_JUMBO]);
+ show_u32("tx", "TX:\t\t\t", tb[ETHTOOL_A_RINGS_TX]);
+ show_u32("rx-buf-len", "RX Buf Len:\t\t", tb[ETHTOOL_A_RINGS_RX_BUF_LEN]);
+ show_u32("cqe-size", "CQE Size:\t\t", tb[ETHTOOL_A_RINGS_CQE_SIZE]);
+ show_bool("tx-push", "TX Push:\t\t%s\n", tb[ETHTOOL_A_RINGS_TX_PUSH]);
+ show_bool("rx-push", "RX Push:\t\t%s\n", tb[ETHTOOL_A_RINGS_RX_PUSH]);
+ show_u32("tx-push-buf-len", "TX push buff len:\t",
+ tb[ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN]);
+
+ tcp_hds_fmt = "TCP data split:\t\t%s\n";
tcp_hds_key = "tcp-data-split";
tcp_hds = tb[ETHTOOL_A_RINGS_TCP_DATA_SPLIT] ?
mnl_attr_get_u8(tb[ETHTOOL_A_RINGS_TCP_DATA_SPLIT]) : 0;
@@ -138,6 +142,12 @@ static const struct param_parser sring_params[] = {
.min_argc = 1,
},
{
+ .arg = "tx-push-buf-len",
+ .type = ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN,
+ .handler = nl_parse_direct_u32,
+ .min_argc = 1,
+ },
+ {
.arg = "rx-buf-len",
.type = ETHTOOL_A_RINGS_RX_BUF_LEN,
.handler = nl_parse_direct_u32,
diff --git a/uapi/linux/const.h b/uapi/linux/const.h
index 5e48987..1eb84b5 100644
--- a/uapi/linux/const.h
+++ b/uapi/linux/const.h
@@ -28,7 +28,7 @@
#define _BITUL(x) (_UL(1) << (x))
#define _BITULL(x) (_ULL(1) << (x))
-#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
+#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (__typeof__(x))(a) - 1)
#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
diff --git a/uapi/linux/ethtool_netlink.h b/uapi/linux/ethtool_netlink.h
index 13493c9..cd85de1 100644
--- a/uapi/linux/ethtool_netlink.h
+++ b/uapi/linux/ethtool_netlink.h
@@ -357,6 +357,8 @@ enum {
ETHTOOL_A_RINGS_CQE_SIZE, /* u32 */
ETHTOOL_A_RINGS_TX_PUSH, /* u8 */
ETHTOOL_A_RINGS_RX_PUSH, /* u8 */
+ ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN, /* u32 */
+ ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX, /* u32 */
/* add new constants above here */
__ETHTOOL_A_RINGS_CNT,
diff --git a/uapi/linux/if_link.h b/uapi/linux/if_link.h
index d61bd32..94fb7ef 100644
--- a/uapi/linux/if_link.h
+++ b/uapi/linux/if_link.h
@@ -567,6 +567,7 @@ enum {
IFLA_BRPORT_MAB,
IFLA_BRPORT_MCAST_N_GROUPS,
IFLA_BRPORT_MCAST_MAX_GROUPS,
+ IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
__IFLA_BRPORT_MAX
};
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -633,6 +634,7 @@ enum {
IFLA_MACVLAN_MACADDR_COUNT,
IFLA_MACVLAN_BC_QUEUE_LEN,
IFLA_MACVLAN_BC_QUEUE_LEN_USED,
+ IFLA_MACVLAN_BC_CUTOFF,
__IFLA_MACVLAN_MAX,
};