diff options
author | Michal Kubecek <mkubecek@suse.cz> | 2023-05-10 08:20:56 +0200 |
---|---|---|
committer | Michal Kubecek <mkubecek@suse.cz> | 2023-05-10 08:20:56 +0200 |
commit | 40c30c9e67e68d85e9b4e5a1d1b134cacefc9c99 (patch) | |
tree | 29188a37f2d026b94c85166fa87ff3aa31e118c1 | |
parent | 7bdf78f0d2a9ae1571fe9444e552490130e573fd (diff) | |
parent | 946d18be1fce43da467bf2ee54dbb8012d3b1a32 (diff) | |
download | ethtool-40c30c9e67e68d85e9b4e5a1d1b134cacefc9c99.tar.gz |
Merge branch 'next' into master
-rw-r--r-- | ethtool.8.in | 5 | ||||
-rw-r--r-- | ethtool.c | 1 | ||||
-rw-r--r-- | netlink/desc-ethtool.c | 2 | ||||
-rw-r--r-- | netlink/rings.c | 38 | ||||
-rw-r--r-- | uapi/linux/const.h | 2 | ||||
-rw-r--r-- | uapi/linux/ethtool_netlink.h | 2 | ||||
-rw-r--r-- | uapi/linux/if_link.h | 2 |
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 @@ -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, }; |