From ad20db3bef50cd32fc63307980da4739146742ce6d3a6d9d0fe42682a9cc089a Mon Sep 17 00:00:00 2001 From: Petr Uzel Date: Thu, 6 Feb 2014 14:32:06 +0000 Subject: [PATCH] - Drop ethtool-display-switch-port-attributes.patch (failed upstream acceptance and has to be reworked) OBS-URL: https://build.opensuse.org/package/show/network:utilities/ethtool?expand=0&rev=46 --- ethtool-display-switch-port-attributes.patch | 200 ------------------- ethtool.changes | 6 + ethtool.spec | 4 +- 3 files changed, 7 insertions(+), 203 deletions(-) delete mode 100644 ethtool-display-switch-port-attributes.patch diff --git a/ethtool-display-switch-port-attributes.patch b/ethtool-display-switch-port-attributes.patch deleted file mode 100644 index b249151..0000000 --- a/ethtool-display-switch-port-attributes.patch +++ /dev/null @@ -1,200 +0,0 @@ -ethtool: Add option '-q' to display adjacent switch port's attributes - -Add new option '-q|--query-switch-port' to display information on the -adjacent switch port's settings as perceived by the respective NIC. -In the output, - - unsupported attributes are indicated as such ('unsupported'), - - supported but disabled attributes display 'no', and - - enabled attributes display 'yes'. -Attributes supported by this patch are - - forwarding modes: - standard (802.1) and reflective relay (RR) aka hairpin - - edge virtual bridging (EVB) related capabilities: - edge control protocol (ECP), VSI discovery and configuration protocol (VDP), - and retransmission timer exponent (RTE). - -Signed-off-by: Stefan Raspl - ---- - ethtool-copy.h | 35 +++++++++++++++++++++++++++++ - ethtool.8 | 6 +++++ - ethtool.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 109 insertions(+) - -Index: ethtool-3.12.1/ethtool-copy.h -=================================================================== ---- ethtool-3.12.1.orig/ethtool-copy.h -+++ ethtool-3.12.1/ethtool-copy.h -@@ -348,6 +348,22 @@ struct ethtool_pauseparam { - __u32 tx_pause; - }; - -+/** -+ * struct ethtool_swport_attrs - query adjacent switch port attributes -+ * @cmd: ETHTOOL_GPORT -+ * @port_rc: Use GPORT_RC_* as appropriate. -+ * @supported: Forwarding modes and capabilities supported by the switch port, -+ * see SUPPORTED_SP_* flags. -+ * @enabled: Forwarding modes and capabilities currently activated at the -+ * adjacent switch port, see ENABLED_SP_* flags. -+ */ -+struct ethtool_swport_attrs { -+ __u32 cmd; -+ __u32 port_rc; -+ __u32 supported; -+ __u32 enabled; -+}; -+ - #define ETH_GSTRING_LEN 32 - enum ethtool_stringset { - ETH_SS_TEST = 0, -@@ -900,6 +916,7 @@ enum ethtool_sfeatures_retval_bits { - #define ETHTOOL_GMODULEEEPROM 0x00000043 /* Get plug-in module eeprom */ - #define ETHTOOL_GEEE 0x00000044 /* Get EEE settings */ - #define ETHTOOL_SEEE 0x00000045 /* Set EEE settings */ -+#define ETHTOOL_GPORT 0x00000046 /* Get switch port attributes */ - - /* compatibility with older code */ - #define SPARC_ETH_GSET ETHTOOL_GSET -@@ -1067,6 +1084,24 @@ enum ethtool_sfeatures_retval_bits { - #define ETH_MODULE_SFF_8472 0x2 - #define ETH_MODULE_SFF_8472_LEN 512 - -+/* Bad return codes for switch ports */ -+#define GPORT_RC_LLDP_UNSUP 1 /* switch port doesn't support */ -+ /* required LLDP EVB TLV */ -+ -+/* Indicates what features the adjacent switch port supports. */ -+#define SUPPORTED_SP_FWD_802_1 (1 << 0) -+#define SUPPORTED_SP_FWD_RR (1 << 1) -+#define SUPPORTED_SP_CAP_RTE (1 << 9) -+#define SUPPORTED_SP_CAP_ECP (1 << 10) -+#define SUPPORTED_SP_CAP_VDP (1 << 11) -+ -+/* Indicates what features the adjacent switch port has enabled. */ -+#define ENABLED_SP_FWD_802_1 (1 << 0) -+#define ENABLED_SP_FWD_RR (1 << 1) -+#define ENABLED_SP_CAP_RTE (1 << 9) -+#define ENABLED_SP_CAP_ECP (1 << 10) -+#define ENABLED_SP_CAP_VDP (1 << 11) -+ - /* Reset flags */ - /* The reset() operation must clear the flags for the components which - * were actually reset. On successful return, the flags indicate the -Index: ethtool-3.12.1/ethtool.8 -=================================================================== ---- ethtool-3.12.1.orig/ethtool.8 -+++ ethtool-3.12.1/ethtool.8 -@@ -214,6 +214,9 @@ ethtool \- query or control network driv - .B ethtool \-P|\-\-show\-permaddr - .I devname - .HP -+.B ethtool \-q|\-\-query-switch-port -+.I devname -+.HP - .B ethtool \-r|\-\-negotiate - .I devname - .HP -@@ -483,6 +486,9 @@ Length of time to perform phys-id, in se - .B \-P \-\-show\-permaddr - Queries the specified network device for permanent hardware address. - .TP -+.B \-q \-\-query-switch-port -+Queries the specified Ethernet device for adjacent switch port's attributes. -+.TP - .B \-r \-\-negotiate - Restarts auto-negotiation on the specified Ethernet device, if - auto-negotiation is enabled. -Index: ethtool-3.12.1/ethtool.c -=================================================================== ---- ethtool-3.12.1.orig/ethtool.c -+++ ethtool-3.12.1/ethtool.c -@@ -714,6 +714,54 @@ static int dump_drvinfo(struct ethtool_d - return 0; - } - -+static const char *port_setting(struct ethtool_swport_attrs *attrs, -+ u32 supported, u32 enabled) -+{ -+ char *rc = "unsupported"; -+ -+ if (supported & attrs->supported) { -+ if (enabled & attrs->enabled) -+ rc = "yes"; -+ else -+ rc = "no"; -+ } -+ -+ return rc; -+} -+ -+static int dump_switch_port_attrs(const char *devname, -+ struct ethtool_swport_attrs *attrs) -+{ -+ static const struct { -+ const char *name; -+ int type; /* 0=forwarding, 1=capability */ -+ u32 supported; -+ u32 enabled; -+ } port_defs[] = { -+ { "802.1", 0, SUPPORTED_SP_FWD_802_1, ENABLED_SP_FWD_802_1 }, -+ { "RR", 0, SUPPORTED_SP_FWD_RR, ENABLED_SP_FWD_RR }, -+ { "RTE", 1, SUPPORTED_SP_CAP_RTE, ENABLED_SP_CAP_RTE }, -+ { "ECP", 1, SUPPORTED_SP_CAP_ECP, ENABLED_SP_CAP_ECP }, -+ { "VDP", 1, SUPPORTED_SP_CAP_VDP, ENABLED_SP_CAP_VDP }, -+ }; -+ int i; -+ -+ if (attrs->port_rc == GPORT_RC_LLDP_UNSUP) { -+ fprintf(stderr, "Required LLDP EVB TLV not supported by " -+ "adjacent switch\n"); -+ return 1; -+ } -+ fprintf(stdout, "Adjacent switch port attributes of %s:\n", -+ devname); -+ for (i = 0; i < ARRAY_SIZE(port_defs); i++) -+ fprintf(stdout, "%s %s: %s\n", port_defs[i].name, -+ (port_defs[i].type ? "capability" : "forwarding"), -+ port_setting(attrs, port_defs[i].supported, -+ port_defs[i].enabled)); -+ -+ return 0; -+} -+ - static int parse_wolopts(char *optstr, u32 *data) - { - *data = 0; -@@ -2863,6 +2911,24 @@ static int do_phys_id(struct cmd_context - return err; - } - -+static int do_switch_port(struct cmd_context *ctx) -+{ -+ struct ethtool_swport_attrs attrs; -+ int err; -+ -+ if (ctx->argc != 0) -+ exit_bad_args(); -+ -+ attrs.cmd = ETHTOOL_GPORT; -+ err = send_ioctl(ctx, &attrs); -+ if (err < 0) { -+ perror("Cannot get driver information"); -+ return 1; -+ } -+ -+ return dump_switch_port_attrs(ctx->devname, &attrs); -+} -+ - static int do_gstats(struct cmd_context *ctx) - { - struct ethtool_gstrings *strings; -@@ -3799,6 +3865,8 @@ static const struct option { - { "-p|--identify", 1, do_phys_id, - "Show visible port identification (e.g. blinking)", - " [ TIME-IN-SECONDS ]\n" }, -+ { "-q|--query-switch-port", 1, do_switch_port, "Query adjacent " -+ "switch port attributes" }, - { "-t|--test", 1, do_test, "Execute adapter self test", - " [ online | offline | external_lb ]\n" }, - { "-S|--statistics", 1, do_gstats, "Show adapter statistics" }, diff --git a/ethtool.changes b/ethtool.changes index fec525a..d21d275 100644 --- a/ethtool.changes +++ b/ethtool.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Feb 6 14:28:19 UTC 2014 - puzel@suse.com + +- Drop ethtool-display-switch-port-attributes.patch (failed + upstream acceptance and has to be reworked) + ------------------------------------------------------------------- Thu Dec 5 14:19:38 UTC 2013 - puzel@suse.com diff --git a/ethtool.spec b/ethtool.spec index b937d99..3171126 100644 --- a/ethtool.spec +++ b/ethtool.spec @@ -1,7 +1,7 @@ # # spec file for package ethtool # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -27,7 +27,6 @@ Url: http://kernel.org/pub/software/network/ethtool/ #Freecode-URL: https://freecode.com/projects/ethtool Source: http://kernel.org/pub/software/network/ethtool/%{name}-%{version}.tar.xz Source2: http://kernel.org/pub/software/network/ethtool/%{name}-%{version}.tar.sign -Patch1: ethtool-display-switch-port-attributes.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: xz @@ -38,7 +37,6 @@ network interfaces. See the man page for more details. %prep %{?gpg_verify: xz -dk "%{S:0}"; %gpg_verify %{S:2}} %setup -q -%patch1 -p1 %build export CFLAGS="%{optflags} -W -Wall -Wstrict-prototypes -Wformat-security -Wpointer-arith"