From 91be6c47f5d428588598b7a7c1cfc44db17778da Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Aug 24 2021 22:26:41 +0000 Subject: import ethtool-5.8-7.el8 --- diff --git a/SOURCES/0038-update-UAPI-header-copies.patch b/SOURCES/0038-update-UAPI-header-copies.patch new file mode 100644 index 0000000..47f1b1c --- /dev/null +++ b/SOURCES/0038-update-UAPI-header-copies.patch @@ -0,0 +1,152 @@ +From b70c39e968db6cb67d64526cafd72fc0763d959a Mon Sep 17 00:00:00 2001 +From: Danielle Ratson +Date: Wed, 10 Feb 2021 15:48:36 +0200 +Subject: [PATCH 38/42] update UAPI header copies + +Update to kernel commit 012ce4dd3102. + +Signed-off-by: Danielle Ratson +Signed-off-by: Michal Kubecek +(cherry picked from commit 18e509526a727c594c29622489437c7376f44d32) +--- + uapi/linux/ethtool.h | 2 +- + uapi/linux/ethtool_netlink.h | 1 + + uapi/linux/if_link.h | 10 ++++++++-- + uapi/linux/netlink.h | 2 +- + uapi/linux/rtnetlink.h | 20 +++++++++++++++----- + 5 files changed, 26 insertions(+), 9 deletions(-) + +diff --git a/uapi/linux/ethtool.h b/uapi/linux/ethtool.h +index 052689bcc90c..a951137bdba9 100644 +--- a/uapi/linux/ethtool.h ++++ b/uapi/linux/ethtool.h +@@ -14,7 +14,7 @@ + #ifndef _LINUX_ETHTOOL_H + #define _LINUX_ETHTOOL_H + +-#include ++#include + #include + #include + +diff --git a/uapi/linux/ethtool_netlink.h b/uapi/linux/ethtool_netlink.h +index c022883cdb22..0cd6906aa5d5 100644 +--- a/uapi/linux/ethtool_netlink.h ++++ b/uapi/linux/ethtool_netlink.h +@@ -227,6 +227,7 @@ enum { + ETHTOOL_A_LINKMODES_DUPLEX, /* u8 */ + ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */ + ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */ ++ ETHTOOL_A_LINKMODES_LANES, /* u32 */ + + /* add new constants above here */ + __ETHTOOL_A_LINKMODES_CNT, +diff --git a/uapi/linux/if_link.h b/uapi/linux/if_link.h +index 307e5c245e9f..c96880c51c93 100644 +--- a/uapi/linux/if_link.h ++++ b/uapi/linux/if_link.h +@@ -75,8 +75,9 @@ struct rtnl_link_stats { + * + * @rx_dropped: Number of packets received but not processed, + * e.g. due to lack of resources or unsupported protocol. +- * For hardware interfaces this counter should not include packets +- * dropped by the device which are counted separately in ++ * For hardware interfaces this counter may include packets discarded ++ * due to L2 address filtering but should not include packets dropped ++ * by the device due to buffer exhaustion which are counted separately in + * @rx_missed_errors (since procfs folds those two counters together). + * + * @tx_dropped: Number of packets dropped on their way to transmission, +@@ -522,6 +523,8 @@ enum { + IFLA_BRPORT_BACKUP_PORT, + IFLA_BRPORT_MRP_RING_OPEN, + IFLA_BRPORT_MRP_IN_OPEN, ++ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, ++ IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, + __IFLA_BRPORT_MAX + }; + #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) +@@ -586,6 +589,8 @@ enum { + IFLA_MACVLAN_MACADDR, + IFLA_MACVLAN_MACADDR_DATA, + IFLA_MACVLAN_MACADDR_COUNT, ++ IFLA_MACVLAN_BC_QUEUE_LEN, ++ IFLA_MACVLAN_BC_QUEUE_LEN_USED, + __IFLA_MACVLAN_MAX, + }; + +@@ -804,6 +809,7 @@ enum { + IFLA_GTP_FD1, + IFLA_GTP_PDP_HASHSIZE, + IFLA_GTP_ROLE, ++ IFLA_GTP_COLLECT_METADATA, + __IFLA_GTP_MAX, + }; + #define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1) +diff --git a/uapi/linux/netlink.h b/uapi/linux/netlink.h +index dfef006be9f9..5024c5435749 100644 +--- a/uapi/linux/netlink.h ++++ b/uapi/linux/netlink.h +@@ -2,7 +2,7 @@ + #ifndef __LINUX_NETLINK_H + #define __LINUX_NETLINK_H + +-#include ++#include + #include /* for __kernel_sa_family_t */ + #include + +diff --git a/uapi/linux/rtnetlink.h b/uapi/linux/rtnetlink.h +index 5ad84e663d01..c66fd247d90a 100644 +--- a/uapi/linux/rtnetlink.h ++++ b/uapi/linux/rtnetlink.h +@@ -396,11 +396,13 @@ struct rtnexthop { + #define RTNH_F_DEAD 1 /* Nexthop is dead (used by multipath) */ + #define RTNH_F_PERVASIVE 2 /* Do recursive gateway lookup */ + #define RTNH_F_ONLINK 4 /* Gateway is forced on link */ +-#define RTNH_F_OFFLOAD 8 /* offloaded route */ ++#define RTNH_F_OFFLOAD 8 /* Nexthop is offloaded */ + #define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */ + #define RTNH_F_UNRESOLVED 32 /* The entry is unresolved (ipmr) */ ++#define RTNH_F_TRAP 64 /* Nexthop is trapping packets */ + +-#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD) ++#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | \ ++ RTNH_F_OFFLOAD | RTNH_F_TRAP) + + /* Macros to handle hexthops */ + +@@ -764,12 +766,18 @@ enum { + #define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg)) + /* tcamsg flags stored in attribute TCA_ROOT_FLAGS + * +- * TCA_FLAG_LARGE_DUMP_ON user->kernel to request for larger than TCA_ACT_MAX_PRIO +- * actions in a dump. All dump responses will contain the number of actions +- * being dumped stored in for user app's consumption in TCA_ROOT_COUNT ++ * TCA_ACT_FLAG_LARGE_DUMP_ON user->kernel to request for larger than ++ * TCA_ACT_MAX_PRIO actions in a dump. All dump responses will contain the ++ * number of actions being dumped stored in for user app's consumption in ++ * TCA_ROOT_COUNT ++ * ++ * TCA_ACT_FLAG_TERSE_DUMP user->kernel to request terse (brief) dump that only ++ * includes essential action info (kind, index, etc.) + * + */ + #define TCA_FLAG_LARGE_DUMP_ON (1 << 0) ++#define TCA_ACT_FLAG_LARGE_DUMP_ON TCA_FLAG_LARGE_DUMP_ON ++#define TCA_ACT_FLAG_TERSE_DUMP (1 << 1) + + /* New extended info filters for IFLA_EXT_MASK */ + #define RTEXT_FILTER_VF (1 << 0) +@@ -777,6 +785,8 @@ enum { + #define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2) + #define RTEXT_FILTER_SKIP_STATS (1 << 3) + #define RTEXT_FILTER_MRP (1 << 4) ++#define RTEXT_FILTER_CFM_CONFIG (1 << 5) ++#define RTEXT_FILTER_CFM_STATUS (1 << 6) + + /* End of information exported to user level */ + +-- +2.31.1 + diff --git a/SOURCES/0039-netlink-settings-Add-netlink-support-for-lanes-param.patch b/SOURCES/0039-netlink-settings-Add-netlink-support-for-lanes-param.patch new file mode 100644 index 0000000..b8a9ea8 --- /dev/null +++ b/SOURCES/0039-netlink-settings-Add-netlink-support-for-lanes-param.patch @@ -0,0 +1,63 @@ +From e9ee8ed549fbc02527356c3c82cec23434fc2f56 Mon Sep 17 00:00:00 2001 +From: Danielle Ratson +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 lanes N ..." for setting a specific +number of lanes. + +Signed-off-by: Danielle Ratson +Signed-off-by: Michal Kubecek +(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 + diff --git a/SOURCES/0040-netlink-settings-Expose-the-number-of-lanes-in-use.patch b/SOURCES/0040-netlink-settings-Expose-the-number-of-lanes-in-use.patch new file mode 100644 index 0000000..047897c --- /dev/null +++ b/SOURCES/0040-netlink-settings-Expose-the-number-of-lanes-in-use.patch @@ -0,0 +1,41 @@ +From 53e33fe5f4f982afe13e45677d134eb1b11d4d2a Mon Sep 17 00:00:00 2001 +From: Danielle Ratson +Date: Wed, 10 Feb 2021 15:48:38 +0200 +Subject: [PATCH 40/42] netlink: settings: Expose the number of lanes in use + +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 +Signed-off-by: Michal Kubecek +(cherry picked from commit db7d457e49833d8a68be03d48cffa1d617498adc) +--- + netlink/settings.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/netlink/settings.c b/netlink/settings.c +index 37222db5c833..2835805667d2 100644 +--- a/netlink/settings.c ++++ b/netlink/settings.c +@@ -471,6 +471,12 @@ int linkmodes_reply_cb(const struct nlmsghdr *nlhdr, void *data) + else + printf("\tSpeed: %uMb/s\n", val); + } ++ if (tb[ETHTOOL_A_LINKMODES_LANES]) { ++ uint32_t val = mnl_attr_get_u32(tb[ETHTOOL_A_LINKMODES_LANES]); ++ ++ print_banner(nlctx); ++ printf("\tLanes: %u\n", val); ++ } + if (tb[ETHTOOL_A_LINKMODES_DUPLEX]) { + uint8_t val = mnl_attr_get_u8(tb[ETHTOOL_A_LINKMODES_DUPLEX]); + +-- +2.31.1 + diff --git a/SOURCES/0041-shell-completion-Add-completion-for-lanes.patch b/SOURCES/0041-shell-completion-Add-completion-for-lanes.patch new file mode 100644 index 0000000..a41e40e --- /dev/null +++ b/SOURCES/0041-shell-completion-Add-completion-for-lanes.patch @@ -0,0 +1,42 @@ +From 68c18af78f4e5eac30ed4fd4c6f3bb0ca8dc347e Mon Sep 17 00:00:00 2001 +From: Danielle Ratson +Date: Wed, 10 Feb 2021 15:48:39 +0200 +Subject: [PATCH 41/42] shell-completion: Add completion for lanes + +Lanes was added as a new link mode setting in ethtool. + +Support completion for lanes when setting parameters. + +Signed-off-by: Danielle Ratson +Reviewed-by: Jiri Pirko +Signed-off-by: Michal Kubecek +(cherry picked from commit c323bcb248c2424cebe533cb2607283aa4538a0b) +--- + shell-completion/bash/ethtool | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/shell-completion/bash/ethtool b/shell-completion/bash/ethtool +index 53055594b649..45573413985d 100644 +--- a/shell-completion/bash/ethtool ++++ b/shell-completion/bash/ethtool +@@ -97,6 +97,7 @@ _ethtool_change() + [speed]=notseen + [wol]=notseen + [xcvr]=notseen ++ [lanes]=notseen + ) + + local -A msgtypes=( +@@ -175,6 +176,9 @@ _ethtool_change() + xcvr) + COMPREPLY=( $( compgen -W 'internal external' -- "$cur" ) ) + return ;; ++ lanes) ++ # Number ++ return ;; + esac + + local -a comp_words=() +-- +2.31.1 + diff --git a/SOURCES/0042-man-Add-man-page-for-setting-lanes-parameter.patch b/SOURCES/0042-man-Add-man-page-for-setting-lanes-parameter.patch new file mode 100644 index 0000000..c99481d --- /dev/null +++ b/SOURCES/0042-man-Add-man-page-for-setting-lanes-parameter.patch @@ -0,0 +1,41 @@ +From c8883327ddbbdcc8241104a98800bd50c0a667e1 Mon Sep 17 00:00:00 2001 +From: Danielle Ratson +Date: Wed, 10 Feb 2021 15:48:40 +0200 +Subject: [PATCH 42/42] man: Add man page for setting lanes parameter + +Lanes parameter was added for setting using ethtool. + +Update the man page to include the new parameter. + +Signed-off-by: Danielle Ratson +Signed-off-by: Michal Kubecek +(cherry picked from commit e2a120e1d44e6c4d64f53ac78c9c08427922b33b) +--- + ethtool.8.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/ethtool.8.in b/ethtool.8.in +index e0601b3db0cf..3a7a8f947cc1 100644 +--- a/ethtool.8.in ++++ b/ethtool.8.in +@@ -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 +@@ -682,6 +683,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 +-- +2.31.1 + diff --git a/SPECS/ethtool.spec b/SPECS/ethtool.spec index 7193b50..c5bf8ad 100644 --- a/SPECS/ethtool.spec +++ b/SPECS/ethtool.spec @@ -1,7 +1,7 @@ Name: ethtool Epoch: 2 Version: 5.8 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Settings tool for Ethernet NICs License: GPLv2 Group: Applications/System @@ -44,6 +44,11 @@ Patch34: 0034-netlink-support-u32-enumerated-types-in-pretty-print.patch Patch35: 0035-netlink-support-64-bit-attribute-types-in-pretty-pri.patch Patch36: 0036-netlink-add-descriptions-for-genetlink-policy-dumps.patch Patch37: 0037-netlink-add-message-descriptions-for-pause-stats.patch +Patch38: 0038-update-UAPI-header-copies.patch +Patch39: 0039-netlink-settings-Add-netlink-support-for-lanes-param.patch +Patch40: 0040-netlink-settings-Expose-the-number-of-lanes-in-use.patch +Patch41: 0041-shell-completion-Add-completion-for-lanes.patch +Patch42: 0042-man-Add-man-page-for-setting-lanes-parameter.patch BuildRequires: libmnl-devel Conflicts: filesystem < 3 @@ -91,6 +96,11 @@ network devices, especially of Ethernet devices. %patch35 -p1 %patch36 -p1 %patch37 -p1 +%patch38 -p1 +%patch39 -p1 +%patch40 -p1 +%patch41 -p1 +%patch42 -p1 %build %configure @@ -107,6 +117,9 @@ make DESTDIR=%{buildroot} INSTALL='install -p' install %{_datadir}/bash-completion/completions/ethtool %changelog +* Thu Jun 03 2021 Ivan Vecera - 2:5.8-7 +- Added support for lanes + * Thu Mar 11 2021 Ivan Vecera - 2:5.8-6 - Added support for pause frame statistics