Browse Source

ethtool package update

Signed-off-by: basebuilder_pel7x64builder0 <basebuilder@powerel.org>
master
basebuilder_pel7x64builder0 6 years ago
parent
commit
4d66a0d01e
  1. 174
      SOURCES/0001-ethtool-add-register-dump-support-for-fjes-driver.patch
  2. 34
      SOURCES/0002-ethtool-sync-help-output-for-x-X-with-man-page.patch
  3. 44
      SOURCES/0003-ethtool-Fix-the-advertise-parameter-logic.patch
  4. 36
      SOURCES/0004-ethtool-Fix-SFF-8079-cable-technology-bit-parsing.patch
  5. 188
      SOURCES/0005-ethtool-Support-for-configurable-RSS-hash-function.patch
  6. 129
      SOURCES/0006-net_tstamp.h-sync-with-net-next.patch
  7. 40
      SOURCES/0007-ethtool-add-support-for-HWTSTAMP_FILTER_NTP_ALL.patch
  8. 96
      SOURCES/0008-ethtool-copy.h-sync-with-net-next.patch
  9. 83
      SOURCES/0009-ethtool-Add-support-for-2500baseT-5000baseT-link-mod.patch
  10. 37
      SOURCES/0010-ethtool.8-Fix-formatting-of-advertise-bitmask.patch
  11. 37
      SOURCES/0011-ethtool.8-Document-56000-advertise-link-modes.patch
  12. 39
      SOURCES/0012-ethtool-Remove-UDP-Fragmentation-Offload-error-print.patch
  13. 174
      SOURCES/0013-ethtool-copy.h-sync-with-net-next.patch
  14. 298
      SOURCES/0014-ethtool-Support-for-FEC-encoding-control.patch
  15. 304
      SPECS/ethtool.spec

174
SOURCES/0001-ethtool-add-register-dump-support-for-fjes-driver.patch

@ -0,0 +1,174 @@ @@ -0,0 +1,174 @@
From 1be465a88eb247b78ddbc3129f53cc547ce8687b Mon Sep 17 00:00:00 2001
From: Taku Izumi <izumi.taku@jp.fujitsu.com>
Date: Wed, 16 Nov 2016 09:55:32 +0900
Subject: [PATCH 1/3] ethtool: add register dump support for fjes driver

This patch adds the register dump format for FUJITSU Extended
Network device like the following:

# ethtool -d es0

0x0000: OWNER_EPID (Owner EPID) 0x00000001
0x0004: MAX_EP (Maximum EP) 0x00000008
0x0010: DCTL (Device Control) 0x00000000
0x0020: CR (Command request) 0x80000002
0x0024: CS (Command status) 0x80000002
0x0028: SHSTSAL (Share status address Low) 0xE8215304
0x002C: SHSTSAH (Share status address High) 0x00000007
0x0034: REQBL (Request Buffer length) 0x00008028
0x0038: REQBAL (Request Buffer Address Low) 0xEB0A0000
0x003C: REQBAH (Request Buffer Address High) 0x00000007
0x0044: RESPBL (Response Buffer Length) 0x00000018
0x0048: RESPBAL (Response Buffer Address Low) 0xE41E1220
0x004C: RESPBAH (Response Buffer Address High) 0x00000007
0x0080: IS (Interrupt status) 0x00000000
0x0084: IMS (Interrupt mask set) 0x7FE00000
0x0088: IMC (Interrupt mask clear) 0x001F0000
0x008C: IG (Interrupt generator) 0x00010000
0x0090: ICTL (Interrupt control) 0x00000000

Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit acc3d3a32940cdd3325520d212fa94f44b86ed09)
---
Makefile.am | 2 +-
ethtool.c | 1 +
fjes.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
internal.h | 2 ++
4 files changed, 93 insertions(+), 1 deletion(-)
create mode 100644 fjes.c

diff --git a/Makefile.am b/Makefile.am
index de2db2e..edbda57 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,7 +14,7 @@ ethtool_SOURCES += \
pcnet32.c realtek.c tg3.c marvell.c vioc.c \
smsc911x.c at76c50x-usb.c sfc.c stmmac.c \
sff-common.c sff-common.h sfpid.c sfpdiag.c \
- ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h
+ ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h fjes.c
endif
TESTS = test-cmdline test-features
diff --git a/ethtool.c b/ethtool.c
index 49ac94e..75299c6 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -1136,6 +1136,7 @@ static const struct {
{ "et131x", et131x_dump_regs },
{ "altera_tse", altera_tse_dump_regs },
{ "vmxnet3", vmxnet3_dump_regs },
+ { "fjes", fjes_dump_regs },
#endif
};
diff --git a/fjes.c b/fjes.c
new file mode 100644
index 0000000..52f7c28
--- /dev/null
+++ b/fjes.c
@@ -0,0 +1,89 @@
+/* Copyright (c) 2016 FUJITSU LIMITED */
+#include <stdio.h>
+#include "internal.h"
+
+int fjes_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs)
+{
+ u32 *regs_buff = (u32 *)regs->data;
+
+ if (regs->version != 1)
+ return -1;
+
+ /* Information registers */
+ fprintf(stdout,
+ "0x0000: OWNER_EPID (Owner EPID) 0x%08X\n",
+ regs_buff[0]);
+
+ fprintf(stdout,
+ "0x0004: MAX_EP (Maximum EP) 0x%08X\n",
+ regs_buff[1]);
+
+ /* Device Control registers */
+ fprintf(stdout,
+ "0x0010: DCTL (Device Control) 0x%08X\n",
+ regs_buff[4]);
+
+ /* Command Control registers */
+ fprintf(stdout,
+ "0x0020: CR (Command request) 0x%08X\n",
+ regs_buff[8]);
+
+ fprintf(stdout,
+ "0x0024: CS (Command status) 0x%08X\n",
+ regs_buff[9]);
+
+ fprintf(stdout,
+ "0x0028: SHSTSAL (Share status address Low) 0x%08X\n",
+ regs_buff[10]);
+
+ fprintf(stdout,
+ "0x002C: SHSTSAH (Share status address High) 0x%08X\n",
+ regs_buff[11]);
+
+ fprintf(stdout,
+ "0x0034: REQBL (Request Buffer length) 0x%08X\n",
+ regs_buff[13]);
+
+ fprintf(stdout,
+ "0x0038: REQBAL (Request Buffer Address Low) 0x%08X\n",
+ regs_buff[14]);
+
+ fprintf(stdout,
+ "0x003C: REQBAH (Request Buffer Address High) 0x%08X\n",
+ regs_buff[15]);
+
+ fprintf(stdout,
+ "0x0044: RESPBL (Response Buffer Length) 0x%08X\n",
+ regs_buff[17]);
+
+ fprintf(stdout,
+ "0x0048: RESPBAL (Response Buffer Address Low) 0x%08X\n",
+ regs_buff[18]);
+
+ fprintf(stdout,
+ "0x004C: RESPBAH (Response Buffer Address High) 0x%08X\n",
+ regs_buff[19]);
+
+ /* Interrupt Control registers */
+ fprintf(stdout,
+ "0x0080: IS (Interrupt status) 0x%08X\n",
+ regs_buff[32]);
+
+ fprintf(stdout,
+ "0x0084: IMS (Interrupt mask set) 0x%08X\n",
+ regs_buff[33]);
+
+ fprintf(stdout,
+ "0x0088: IMC (Interrupt mask clear) 0x%08X\n",
+ regs_buff[34]);
+
+ fprintf(stdout,
+ "0x008C: IG (Interrupt generator) 0x%08X\n",
+ regs_buff[35]);
+
+ fprintf(stdout,
+ "0x0090: ICTL (Interrupt control) 0x%08X\n",
+ regs_buff[36]);
+
+ return 0;
+}
diff --git a/internal.h b/internal.h
index 3c08b74..4e658ea 100644
--- a/internal.h
+++ b/internal.h
@@ -348,4 +348,6 @@ void sff8472_show_all(const __u8 *id);
/* QSFP Optics diagnostics */
void sff8636_show_all(const __u8 *id, __u32 eeprom_len);
+/* FUJITSU Extended Socket network device */
+int fjes_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs);
#endif /* ETHTOOL_INTERNAL_H__ */
--
1.8.3.1

34
SOURCES/0002-ethtool-sync-help-output-for-x-X-with-man-page.patch

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
From d695f60666453d964a653c5033764c4b80121f56 Mon Sep 17 00:00:00 2001
From: Ivan Vecera <cera@cera.cz>
Date: Mon, 20 Feb 2017 15:13:52 +0100
Subject: [PATCH 2/3] ethtool: sync help output for -x/-X with man page

Add missing words to the help output for -x and -X commands as well
as an ability to set the indirection table to default value.

Signed-off-by: Ivan Vecera <cera@cera.cz>
---
ethtool.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ethtool.c b/ethtool.c
index 75299c6..0d3244e 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -4645,10 +4645,10 @@ static const struct option {
{ "-T|--show-time-stamping", 1, do_tsinfo,
"Show time stamping capabilities" },
{ "-x|--show-rxfh-indir|--show-rxfh", 1, do_grxfh,
- "Show Rx flow hash indirection and/or hash key" },
+ "Show Rx flow hash indirection table and/or RSS hash key" },
{ "-X|--set-rxfh-indir|--rxfh", 1, do_srxfh,
- "Set Rx flow hash indirection and/or hash key",
- " [ equal N | weight W0 W1 ... ]\n"
+ "Set Rx flow hash indirection table and/or RSS hash key",
+ " [ equal N | weight W0 W1 ... | default ]\n"
" [ hkey %x:%x:%x:%x:%x:.... ]\n" },
{ "-f|--flash", 1, do_flash,
"Flash firmware image from the specified file to a region on the device",
--
1.8.3.1

44
SOURCES/0003-ethtool-Fix-the-advertise-parameter-logic.patch

@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
From 47b95959941b3d7d2d35a128da5685799329aaf6 Mon Sep 17 00:00:00 2001
From: Michael Chan <mchan@broadcom.com>
Date: Tue, 22 Nov 2016 18:55:47 -0500
Subject: [PATCH 3/3] ethtool: Fix the "advertise" parameter logic.

The current code ignores the value of the advertise parameter. For example,

ethtool -s ethx advertise 0x1000

The full_advertising_wanted parameter of 0x1000 is not passed to the kernel.
The reason is that advertising_wanted is NULL in this case, and ethtool
will think that the user has given no advertisement input and so it will
proceed to pass all supported advertisement speeds to the kernel.

The older legacy ethtool with similar logic worked because
advertising_wanted was an integer and could take on -1 and 0. It would pass
the full_advertising_wanted value if advertising_wanted == -1.

This fix is to pass all supported advertisement speeds only when both
advertising_wanted == NULL && full_advertising_wanted == NULL.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
ethtool.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ethtool.c b/ethtool.c
index 0d3244e..ce48639 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -2972,7 +2972,8 @@ static int do_sset(struct cmd_context *ctx)
fprintf(stderr, "\n");
}
if (autoneg_wanted == AUTONEG_ENABLE &&
- advertising_wanted == NULL) {
+ advertising_wanted == NULL &&
+ full_advertising_wanted == NULL) {
unsigned int i;
/* Auto negotiation enabled, but with
--
1.8.3.1

36
SOURCES/0004-ethtool-Fix-SFF-8079-cable-technology-bit-parsing.patch

@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
From 51f9fba287ff7c8b10e0d5291cd66e78d40b6b8f Mon Sep 17 00:00:00 2001
From: Gal Pressman <galp@mellanox.com>
Date: Sun, 19 Mar 2017 14:10:41 +0200
Subject: [PATCH 4/7] ethtool: Fix SFF 8079 cable technology bit parsing

According to the transceiver compliance code definition in the spec, bits
2 & 3 in the 8th byte are indication of active/passive cable, and not
specifically related to FC/copper.

Fixes: 2edf56749abe ("ethtool: Addition of -m option to dump module eeprom")
Signed-off-by: Gal Pressman <galp@mellanox.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit e33c8841f26090031d571fddd71dab06f56ab1bf)
---
sfpid.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sfpid.c b/sfpid.c
index fd6415c..1732e5e 100644
--- a/sfpid.c
+++ b/sfpid.c
@@ -137,9 +137,9 @@ static void sff8079_show_transceiver(const __u8 *id)
if (id[8] & (1 << 4))
printf("%s FC: Longwave laser (LL)\n", pfx);
if (id[8] & (1 << 3))
- printf("%s FC: Copper Active\n", pfx);
+ printf("%s Active Cable\n", pfx);
if (id[8] & (1 << 2))
- printf("%s FC: Copper Passive\n", pfx);
+ printf("%s Passive Cable\n", pfx);
if (id[8] & (1 << 1))
printf("%s FC: Copper FC-BaseT\n", pfx);
/* Fibre Channel transmission media */
--
1.8.3.1

188
SOURCES/0005-ethtool-Support-for-configurable-RSS-hash-function.patch

@ -0,0 +1,188 @@ @@ -0,0 +1,188 @@
From e89f3c656ff17741aa3ea33c57bc177afedc999b Mon Sep 17 00:00:00 2001
From: Gal Pressman <galp@mellanox.com>
Date: Wed, 8 Mar 2017 16:03:51 +0200
Subject: [PATCH 5/7] ethtool: Support for configurable RSS hash function

This ethtool patch adds support to set and get the current RSS hash
function for the device through the new hfunc mask field in the
ethtool_rxfh struct. Kernel supported hash function names are queried
with ETHTOOL_GSTRINGS - each string is corresponding with a bit in hfunc
mask according to its index in the string-set.

(This corrects the mistaken revert from commit 126464e4da182064. -- JWL)

Signed-off-by: Eyal Perry <eyalpe@mellanox.com>
Signed-off-by: Gal Pressman <galp@mellanox.com>
Reviewed-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit b888f358763a20625a381e071ea50524a520c7c1)
---
ethtool.8.in | 6 ++++++
ethtool.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 69 insertions(+), 3 deletions(-)

diff --git a/ethtool.8.in b/ethtool.8.in
index 9631847..b69c5c6 100644
--- a/ethtool.8.in
+++ b/ethtool.8.in
@@ -301,6 +301,8 @@ ethtool \- query or control network driver and hardware settings
.BI weight\ W0
.IR W1
.RB ...\ | \ default \ ]
+.RB [ hfunc
+.IR FUNC ]
.HP
.B ethtool \-f|\-\-flash
.I devname file
@@ -853,6 +855,10 @@ Sets RSS hash key of the specified network device. RSS hash key should be of dev
Hash key format must be in xx:yy:zz:aa:bb:cc format meaning both the nibbles of a byte should be mentioned
even if a nibble is zero.
.TP
+.BI hfunc
+Sets RSS hash function of the specified network device.
+List of RSS hash functions which kernel supports is shown as a part of the --show-rxfh command output.
+.TP
.BI equal\ N
Sets the receive flow hash indirection table to spread flows evenly
between the first \fIN\fR receive queues.
diff --git a/ethtool.c b/ethtool.c
index ce48639..8eba6e6 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -3640,6 +3640,7 @@ static int do_grxfhindir(struct cmd_context *ctx,
static int do_grxfh(struct cmd_context *ctx)
{
+ struct ethtool_gstrings *hfuncs = NULL;
struct ethtool_rxfh rss_head = {0};
struct ethtool_rxnfc ring_count;
struct ethtool_rxfh *rss;
@@ -3697,6 +3698,26 @@ static int do_grxfh(struct cmd_context *ctx)
printf("%02x:", (u8) hkey[i]);
}
+ printf("RSS hash function:\n");
+ if (!rss->hfunc) {
+ printf(" Operation not supported\n");
+ goto out;
+ }
+
+ hfuncs = get_stringset(ctx, ETH_SS_RSS_HASH_FUNCS, 0, 1);
+ if (!hfuncs) {
+ perror("Cannot get hash functions names");
+ free(rss);
+ return 1;
+ }
+
+ for (i = 0; i < hfuncs->len; i++)
+ printf(" %s: %s\n",
+ (const char *)hfuncs->data + i * ETH_GSTRING_LEN,
+ (rss->hfunc & (1 << i)) ? "on" : "off");
+
+out:
+ free(hfuncs);
free(rss);
return 0;
}
@@ -3800,11 +3821,16 @@ static int do_srxfh(struct cmd_context *ctx)
struct ethtool_rxfh *rss;
struct ethtool_rxnfc ring_count;
int rxfhindir_equal = 0, rxfhindir_default = 0;
+ struct ethtool_gstrings *hfuncs = NULL;
char **rxfhindir_weight = NULL;
char *rxfhindir_key = NULL;
+ char *req_hfunc_name = NULL;
+ char *hfunc_name = NULL;
char *hkey = NULL;
int err = 0;
+ int i;
u32 arg_num = 0, indir_bytes = 0;
+ u32 req_hfunc = 0;
u32 entry_size = sizeof(rss_head.rss_config[0]);
u32 num_weights = 0;
@@ -3836,6 +3862,12 @@ static int do_srxfh(struct cmd_context *ctx)
} else if (!strcmp(ctx->argp[arg_num], "default")) {
++arg_num;
rxfhindir_default = 1;
+ } else if (!strcmp(ctx->argp[arg_num], "hfunc")) {
+ ++arg_num;
+ req_hfunc_name = ctx->argp[arg_num];
+ if (!req_hfunc_name)
+ exit_bad_args();
+ ++arg_num;
} else {
exit_bad_args();
}
@@ -3868,7 +3900,8 @@ static int do_srxfh(struct cmd_context *ctx)
rss_head.cmd = ETHTOOL_GRSSH;
err = send_ioctl(ctx, &rss_head);
- if (err < 0 && errno == EOPNOTSUPP && !rxfhindir_key) {
+ if (err < 0 && errno == EOPNOTSUPP && !rxfhindir_key &&
+ !req_hfunc_name) {
return do_srxfhindir(ctx, rxfhindir_default, rxfhindir_equal,
rxfhindir_weight, num_weights);
} else if (err < 0) {
@@ -3886,14 +3919,39 @@ static int do_srxfh(struct cmd_context *ctx)
if (rxfhindir_equal || rxfhindir_weight)
indir_bytes = rss_head.indir_size * entry_size;
+ if (rss_head.hfunc && req_hfunc_name) {
+ hfuncs = get_stringset(ctx, ETH_SS_RSS_HASH_FUNCS, 0, 1);
+ if (!hfuncs) {
+ perror("Cannot get hash functions names");
+ return 1;
+ }
+
+ for (i = 0; i < hfuncs->len && !req_hfunc ; i++) {
+ hfunc_name = (char *)(hfuncs->data +
+ i * ETH_GSTRING_LEN);
+ if (!strncmp(hfunc_name, req_hfunc_name,
+ ETH_GSTRING_LEN))
+ req_hfunc = (u32)1 << i;
+ }
+
+ if (!req_hfunc) {
+ fprintf(stderr,
+ "Unknown hash function: %s\n", req_hfunc_name);
+ free(hfuncs);
+ return 1;
+ }
+ }
+
rss = calloc(1, sizeof(*rss) + indir_bytes + rss_head.key_size);
if (!rss) {
perror("Cannot allocate memory for RX flow hash config");
- return 1;
+ err = 1;
+ goto free;
}
rss->cmd = ETHTOOL_SRSSH;
rss->indir_size = rss_head.indir_size;
rss->key_size = rss_head.key_size;
+ rss->hfunc = req_hfunc;
if (fill_indir_table(&rss->indir_size, rss->rss_config, rxfhindir_default,
rxfhindir_equal, rxfhindir_weight, num_weights)) {
@@ -3918,6 +3976,7 @@ free:
free(hkey);
free(rss);
+ free(hfuncs);
return err;
}
@@ -4650,7 +4709,8 @@ static const struct option {
{ "-X|--set-rxfh-indir|--rxfh", 1, do_srxfh,
"Set Rx flow hash indirection table and/or RSS hash key",
" [ equal N | weight W0 W1 ... | default ]\n"
- " [ hkey %x:%x:%x:%x:%x:.... ]\n" },
+ " [ hkey %x:%x:%x:%x:%x:.... ]\n"
+ " [ hfunc FUNC ]\n" },
{ "-f|--flash", 1, do_flash,
"Flash firmware image from the specified file to a region on the device",
" FILENAME [ REGION-NUMBER-TO-FLASH ]\n" },
--
1.8.3.1

129
SOURCES/0006-net_tstamp.h-sync-with-net-next.patch

@ -0,0 +1,129 @@ @@ -0,0 +1,129 @@
From 13e8c7b8c8537488bc7612c11c429cec274db1f9 Mon Sep 17 00:00:00 2001
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Tue, 23 May 2017 16:29:29 +0200
Subject: [PATCH 6/7] net_tstamp.h: sync with net-next

This covers kernel changes up to:

commit b50a5c70ffa4fd6b6da324ab54c84adf48fb17d9
Author: Miroslav Lichvar <mlichvar@redhat.com>
Date: Fri May 19 17:52:40 2017 +0200

net: allow simultaneous SW and HW transmit timestamping

Add SOF_TIMESTAMPING_OPT_TX_SWHW option to allow an outgoing packet to
be looped to the socket's error queue with a software timestamp even
when a hardware transmit timestamp is expected to be provided by the
driver.

Applications using this option will receive two separate messages from
the error queue, one with a software timestamp and the other with a
hardware timestamp. As the hardware timestamp is saved to the shared skb
info, which may happen before the first message with software timestamp
is received by the application, the hardware timestamp is copied to the
SCM_TIMESTAMPING control message only when the skb has no software
timestamp or it is an incoming packet.

While changing sw_tx_timestamp(), inline it in skb_tx_timestamp() as
there are no other users.

CC: Richard Cochran <richardcochran@gmail.com>
CC: Willem de Bruijn <willemb@google.com>
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

CC: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit ba800e3b4acd0692fc16013acbab2c3ac1ecfe66)
---
net_tstamp-copy.h | 52 +++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 41 insertions(+), 11 deletions(-)

diff --git a/net_tstamp-copy.h b/net_tstamp-copy.h
index ae5df12..3d421d9 100644
--- a/net_tstamp-copy.h
+++ b/net_tstamp-copy.h
@@ -9,6 +9,7 @@
#ifndef _NET_TIMESTAMPING_H
#define _NET_TIMESTAMPING_H
+#include <linux/types.h>
#include <linux/socket.h> /* for SO_TIMESTAMPING */
/* SO_TIMESTAMPING gets an integer bit field comprised of these values */
@@ -20,23 +21,42 @@ enum {
SOF_TIMESTAMPING_SOFTWARE = (1<<4),
SOF_TIMESTAMPING_SYS_HARDWARE = (1<<5),
SOF_TIMESTAMPING_RAW_HARDWARE = (1<<6),
- SOF_TIMESTAMPING_MASK =
- (SOF_TIMESTAMPING_RAW_HARDWARE - 1) |
- SOF_TIMESTAMPING_RAW_HARDWARE
+ SOF_TIMESTAMPING_OPT_ID = (1<<7),
+ SOF_TIMESTAMPING_TX_SCHED = (1<<8),
+ SOF_TIMESTAMPING_TX_ACK = (1<<9),
+ SOF_TIMESTAMPING_OPT_CMSG = (1<<10),
+ SOF_TIMESTAMPING_OPT_TSONLY = (1<<11),
+ SOF_TIMESTAMPING_OPT_STATS = (1<<12),
+ SOF_TIMESTAMPING_OPT_PKTINFO = (1<<13),
+ SOF_TIMESTAMPING_OPT_TX_SWHW = (1<<14),
+
+ SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW,
+ SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
+ SOF_TIMESTAMPING_LAST
};
+/*
+ * SO_TIMESTAMPING flags are either for recording a packet timestamp or for
+ * reporting the timestamp to user space.
+ * Recording flags can be set both via socket options and control messages.
+ */
+#define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | \
+ SOF_TIMESTAMPING_TX_SOFTWARE | \
+ SOF_TIMESTAMPING_TX_SCHED | \
+ SOF_TIMESTAMPING_TX_ACK)
+
/**
- * struct hwtstamp_config - %SIOCSHWTSTAMP parameter
+ * struct hwtstamp_config - %SIOCGHWTSTAMP and %SIOCSHWTSTAMP parameter
*
- * @flags: no flags defined right now, must be zero
+ * @flags: no flags defined right now, must be zero for %SIOCSHWTSTAMP
* @tx_type: one of HWTSTAMP_TX_*
- * @rx_type: one of one of HWTSTAMP_FILTER_*
+ * @rx_filter: one of HWTSTAMP_FILTER_*
*
- * %SIOCSHWTSTAMP expects a &struct ifreq with a ifr_data pointer to
- * this structure. dev_ifsioc() in the kernel takes care of the
- * translation between 32 bit userspace and 64 bit kernel. The
- * structure is intentionally chosen so that it has the same layout on
- * 32 and 64 bit systems, don't break this!
+ * %SIOCGHWTSTAMP and %SIOCSHWTSTAMP expect a &struct ifreq with a
+ * ifr_data pointer to this structure. For %SIOCSHWTSTAMP, if the
+ * driver or hardware does not support the requested @rx_filter value,
+ * the driver may use a more general filter mode. In this case
+ * @rx_filter will indicate the actual mode on return.
*/
struct hwtstamp_config {
int flags;
@@ -108,6 +128,16 @@ enum hwtstamp_rx_filters {
HWTSTAMP_FILTER_PTP_V2_SYNC,
/* PTP v2/802.AS1, any layer, Delay_req packet */
HWTSTAMP_FILTER_PTP_V2_DELAY_REQ,
+
+ /* NTP, UDP, all versions and packet modes */
+ HWTSTAMP_FILTER_NTP_ALL,
+};
+
+/* SCM_TIMESTAMPING_PKTINFO control message */
+struct scm_ts_pktinfo {
+ __u32 if_index;
+ __u32 pkt_length;
+ __u32 reserved[2];
};
#endif /* _NET_TIMESTAMPING_H */
--
1.8.3.1

40
SOURCES/0007-ethtool-add-support-for-HWTSTAMP_FILTER_NTP_ALL.patch

@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
From ee10917f5cb60f8602deac815ec9923258fa6ab2 Mon Sep 17 00:00:00 2001
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Tue, 23 May 2017 16:29:30 +0200
Subject: [PATCH 7/7] ethtool: add support for HWTSTAMP_FILTER_NTP_ALL

Add HWTSTAMP_FILTER_NTP_ALL to the list of hardware receive
filters which can be printed by ethtool -T.

CC: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit d976d5dada4e58d3fdc31506943307159289493a)
---
ethtool.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ethtool.c b/ethtool.c
index 8eba6e6..5465f59 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -1583,7 +1583,7 @@ static char *tx_type_labels[N_TX_TYPES] = {
"one-step-sync (HWTSTAMP_TX_ONESTEP_SYNC)",
};
-#define N_RX_FILTERS (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ + 1)
+#define N_RX_FILTERS (HWTSTAMP_FILTER_NTP_ALL + 1)
static char *rx_filter_labels[N_RX_FILTERS] = {
"none (HWTSTAMP_FILTER_NONE)",
@@ -1601,6 +1601,7 @@ static char *rx_filter_labels[N_RX_FILTERS] = {
"ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT)",
"ptpv2-sync (HWTSTAMP_FILTER_PTP_V2_SYNC)",
"ptpv2-delay-req (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ)",
+ "ntp-all (HWTSTAMP_FILTER_NTP_ALL)",
};
static int dump_tsinfo(const struct ethtool_ts_info *info)
--
1.8.3.1

96
SOURCES/0008-ethtool-copy.h-sync-with-net-next.patch

@ -0,0 +1,96 @@ @@ -0,0 +1,96 @@
From 1cfc4bab2c9109f8d9c58344e21da4fa0cae17ca Mon Sep 17 00:00:00 2001
From: "Allan W. Nielsen" <allan.nielsen@microsemi.com>
Date: Thu, 24 Nov 2016 09:56:50 +0100
Subject: [PATCH 08/11] ethtool-copy.h:sync with net-next

This covers kernel changes upto:

commit 607c7029146790201e90b58c4235ddff0304d6e0
Author: Raju Lakkaraju <Raju.Lakkaraju@microsemi.com>
Date: Thu Nov 17 13:07:22 2016 +0100

ethtool: (uapi) Add ETHTOOL_PHY_DOWNSHIFT to PHY tunables

For operation in cabling environments that are incompatible with
1000BASE-T, PHY device may provide an automatic link speed downshift
operation. When enabled, the device automatically changes its 1000BASE-T
auto-negotiation to the next slower speed after a configured number of
failed attempts at 1000BASE-T. This feature is useful in setting up in
networks using older cable installations that include only pairs A and B,
and not pairs C and D.

Signed-off-by: Raju Lakkaraju <Raju.Lakkaraju@microsemi.com>
Signed-off-by: Allan W. Nielsen <allan.nielsen@microsemi.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>

Signed-off-by: Allan W. Nielsen <allan.nielsen@microsemi.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit af5af00a644e117c573d9afe591f8ce51348953f)
---
ethtool-copy.h | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/ethtool-copy.h b/ethtool-copy.h
index 70748f5..3d299e3 100644
--- a/ethtool-copy.h
+++ b/ethtool-copy.h
@@ -117,8 +117,7 @@ struct ethtool_cmd {
static __inline__ void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
__u32 speed)
{
-
- ep->speed = (__u16)speed;
+ ep->speed = (__u16)(speed & 0xFFFF);
ep->speed_hi = (__u16)(speed >> 16);
}
@@ -247,6 +246,19 @@ struct ethtool_tunable {
void *data[0];
};
+#define DOWNSHIFT_DEV_DEFAULT_COUNT 0xff
+#define DOWNSHIFT_DEV_DISABLE 0
+
+enum phy_tunable_id {
+ ETHTOOL_PHY_ID_UNSPEC,
+ ETHTOOL_PHY_DOWNSHIFT,
+ /*
+ * Add your fresh new phy tunable attribute above and remember to update
+ * phy_tunable_strings[] in net/core/ethtool.c
+ */
+ __ETHTOOL_PHY_TUNABLE_COUNT,
+};
+
/**
* struct ethtool_regs - hardware register dump
* @cmd: Command number = %ETHTOOL_GREGS
@@ -547,6 +559,7 @@ struct ethtool_pauseparam {
* @ETH_SS_FEATURES: Device feature names
* @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
* @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
+ * @ETH_SS_PHY_TUNABLES: PHY tunable names
*/
enum ethtool_stringset {
ETH_SS_TEST = 0,
@@ -557,6 +570,7 @@ enum ethtool_stringset {
ETH_SS_RSS_HASH_FUNCS,
ETH_SS_TUNABLES,
ETH_SS_PHY_STATS,
+ ETH_SS_PHY_TUNABLES,
};
/**
@@ -1312,7 +1326,8 @@ struct ethtool_per_queue_op {
#define ETHTOOL_GLINKSETTINGS 0x0000004c /* Get ethtool_link_settings */
#define ETHTOOL_SLINKSETTINGS 0x0000004d /* Set ethtool_link_settings */
-
+#define ETHTOOL_PHY_GTUNABLE 0x0000004e /* Get PHY tunable configuration */
+#define ETHTOOL_PHY_STUNABLE 0x0000004f /* Set PHY tunable configuration */
/* compatibility with older code */
#define SPARC_ETH_GSET ETHTOOL_GSET
--
1.8.3.1

83
SOURCES/0009-ethtool-Add-support-for-2500baseT-5000baseT-link-mod.patch

@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
From c5c7c33cb83947523e954c7410216e6b8c0dd942 Mon Sep 17 00:00:00 2001
From: Pavel Belous <pavel.s.belous@gmail.com>
Date: Mon, 30 Jan 2017 20:03:30 +0300
Subject: [PATCH 09/11] ethtool: Add support for 2500baseT/5000baseT link modes

This patch introduce ethtool support for 2500BaseT and 5000BaseT link modes
from new IEEE 802.3bz standard.

ethtool-copy.h file sync with net.

Signed-off-by: Pavel Belous <pavel.s.belous@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit 64dfc5e2f0467a4f61c066165eb42c118ca744e3)
---
ethtool-copy.h | 4 +++-
ethtool.8.in | 4 +++-
ethtool.c | 6 ++++++
3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/ethtool-copy.h b/ethtool-copy.h
index 3d299e3..06fc04c 100644
--- a/ethtool-copy.h
+++ b/ethtool-copy.h
@@ -1382,6 +1382,8 @@ enum ethtool_link_mode_bit_indices {
ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44,
ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45,
ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46,
+ ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47,
+ ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48,
/* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit
@@ -1391,7 +1393,7 @@ enum ethtool_link_mode_bit_indices {
*/
__ETHTOOL_LINK_MODE_LAST
- = ETHTOOL_LINK_MODE_10000baseER_Full_BIT,
+ = ETHTOOL_LINK_MODE_5000baseT_Full_BIT,
};
#define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \
diff --git a/ethtool.8.in b/ethtool.8.in
index b69c5c6..eb0f551 100644
--- a/ethtool.8.in
+++ b/ethtool.8.in
@@ -578,7 +578,9 @@ lB l lB.
0x020 1000baseT Full
0x20000 1000baseKX Full
0x20000000000 1000baseX Full
-0x8000 2500baseX Full (not supported by IEEE standards)
+0x800000000000 2500baseT Full
+0x8000 2500baseX Full (not supported by IEEE standards)'
+0x1000000000000 5000baseT Full
0x1000 10000baseT Full
0x40000 10000baseKX4 Full
0x80000 10000baseKR Full
diff --git a/ethtool.c b/ethtool.c
index 5465f59..9650f54 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -529,6 +529,8 @@ static void init_global_link_mode_masks(void)
ETHTOOL_LINK_MODE_10000baseLR_Full_BIT,
ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT,
ETHTOOL_LINK_MODE_10000baseER_Full_BIT,
+ ETHTOOL_LINK_MODE_2500baseT_Full_BIT,
+ ETHTOOL_LINK_MODE_5000baseT_Full_BIT,
};
static const enum ethtool_link_mode_bit_indices
additional_advertised_flags_bits[] = {
@@ -681,6 +683,10 @@ static void dump_link_caps(const char *prefix, const char *an_prefix,
"10000baseLRM/Full" },
{ 0, ETHTOOL_LINK_MODE_10000baseER_Full_BIT,
"10000baseER/Full" },
+ { 0, ETHTOOL_LINK_MODE_2500baseT_Full_BIT,
+ "2500baseT/Full" },
+ { 0, ETHTOOL_LINK_MODE_5000baseT_Full_BIT,
+ "5000baseT/Full" },
};
int indent;
int did1, new_line_pend, i;
--
1.8.3.1

37
SOURCES/0010-ethtool.8-Fix-formatting-of-advertise-bitmask.patch

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
From f4578eaf711f3d5e15f3e5fdb98cce3ebae80a2b Mon Sep 17 00:00:00 2001
From: Gal Pressman <galp@mellanox.com>
Date: Thu, 28 Sep 2017 15:08:52 +0300
Subject: [PATCH 10/11] ethtool.8: Fix formatting of advertise bitmask

Fields should be separated with a tab instead of spaces.
Also, remove an accidental ' character from 2500baseX Full mode.

Fixes: 64dfc5e2f046 ("ethtool: Add support for 2500baseT/5000baseT link modes")
Signed-off-by: Gal Pressman <galp@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit f35a4bcd55164495deb4eef0975a1623d760ff91)
---
ethtool.8.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ethtool.8.in b/ethtool.8.in
index eb0f551..c7208ab 100644
--- a/ethtool.8.in
+++ b/ethtool.8.in
@@ -578,9 +578,9 @@ lB l lB.
0x020 1000baseT Full
0x20000 1000baseKX Full
0x20000000000 1000baseX Full
-0x800000000000 2500baseT Full
-0x8000 2500baseX Full (not supported by IEEE standards)'
-0x1000000000000 5000baseT Full
+0x800000000000 2500baseT Full
+0x8000 2500baseX Full (not supported by IEEE standards)
+0x1000000000000 5000baseT Full
0x1000 10000baseT Full
0x40000 10000baseKX4 Full
0x80000 10000baseKR Full
--
1.8.3.1

37
SOURCES/0011-ethtool.8-Document-56000-advertise-link-modes.patch

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
From 2c64f09bee9b601cb60fd0398f1e4eb1b09a3ebb Mon Sep 17 00:00:00 2001
From: Gal Pressman <galp@mellanox.com>
Date: Thu, 28 Sep 2017 15:08:53 +0300
Subject: [PATCH 11/11] ethtool.8: Document 56000 advertise link modes

Add the following advertise modes to the manual:
56000baseKR4 Full
56000baseCR4 Full
56000baseSR4 Full
56000baseLR4 Full

Signed-off-by: Gal Pressman <galp@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit 47c71e3c45cd6e248a25e87cbd8afa201836e59d)
---
ethtool.8.in | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/ethtool.8.in b/ethtool.8.in
index c7208ab..c176cac 100644
--- a/ethtool.8.in
+++ b/ethtool.8.in
@@ -601,6 +601,10 @@ lB l lB.
0x400000000 50000baseCR2 Full
0x800000000 50000baseKR2 Full
0x10000000000 50000baseSR2 Full
+0x8000000 56000baseKR4 Full
+0x10000000 56000baseCR4 Full
+0x20000000 56000baseSR4 Full
+0x40000000 56000baseLR4 Full
0x1000000000 100000baseKR4 Full
0x2000000000 100000baseSR4 Full
0x4000000000 100000baseCR4 Full
--
1.8.3.1

39
SOURCES/0012-ethtool-Remove-UDP-Fragmentation-Offload-error-print.patch

@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
From b41605a9328686d45f6f4ee7791f476866bcc7a9 Mon Sep 17 00:00:00 2001
From: Shaker Daibes <shakerd@mellanox.com>
Date: Mon, 18 Sep 2017 10:35:38 +0300
Subject: [PATCH 12/12] ethtool: Remove UDP Fragmentation Offload error prints

UFO was removed in kernel, here we remove UFO error prints when using
"ethtool -k" command.

Fixes the following issue:
Features for ens8:
Cannot get device udp-fragmentation-offload settings: Operation not
supported

Signed-off-by: Shaker Daibes <shakerd@mellanox.com>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit d5d35d8331dee79a7453d3ea501bcc7b8b90582c)
---
ethtool.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/ethtool.c b/ethtool.c
index 9650f54..1411d62 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -2187,6 +2187,10 @@ get_features(struct cmd_context *ctx, const struct feature_defs *defs)
eval.cmd = off_flag_def[i].get_cmd;
err = send_ioctl(ctx, &eval);
if (err) {
+ if (errno == EOPNOTSUPP &&
+ off_flag_def[i].get_cmd == ETHTOOL_GUFO)
+ continue;
+
fprintf(stderr,
"Cannot get device %s settings: %m\n",
off_flag_def[i].long_name);
--
1.8.3.1

174
SOURCES/0013-ethtool-copy.h-sync-with-net-next.patch

@ -0,0 +1,174 @@ @@ -0,0 +1,174 @@
From 3ad39b7b490fc130b47ec248de707d3ae481c9ed Mon Sep 17 00:00:00 2001
From: Scott Branden <scott.branden@broadcom.com>
Date: Tue, 12 Dec 2017 12:20:02 -0800
Subject: [PATCH 13/14] ethtool-copy.h: sync with net-next

This covers kernel changes up to:

commit 40e44a1e669d078946f46853808a60d29e6f0885
Author: Scott Branden <scott.branden@broadcom.com>
Date: Thu Nov 30 11:35:59 2017 -0800

net: ethtool: add support for reset of AP inside NIC interface.

Add ETH_RESET_AP to reset the application processor(s) inside the NIC
interface.

Current ETH_RESET_MGMT supports a management processor inside this NIC.
This is typically used for remote NIC management purposes.

Application processors exist inside some SmartNICs to run various
applications inside the NIC processor - be it a simple algorithm without
an OS to as complex as hosting multiple VMs.

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit 83634baa75b5831ed9bfd135f9747b94aacdd842)
---
ethtool-copy.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 61 insertions(+), 5 deletions(-)

diff --git a/ethtool-copy.h b/ethtool-copy.h
index 06fc04c..f4e7bb2 100644
--- a/ethtool-copy.h
+++ b/ethtool-copy.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* ethtool.h: Defines for Linux ethtool.
*
@@ -1236,6 +1237,47 @@ struct ethtool_per_queue_op {
char data[];
};
+/**
+ * struct ethtool_fecparam - Ethernet forward error correction(fec) parameters
+ * @cmd: Command number = %ETHTOOL_GFECPARAM or %ETHTOOL_SFECPARAM
+ * @active_fec: FEC mode which is active on porte
+ * @fec: Bitmask of supported/configured FEC modes
+ * @rsvd: Reserved for future extensions. i.e FEC bypass feature.
+ *
+ * Drivers should reject a non-zero setting of @autoneg when
+ * autoneogotiation is disabled (or not supported) for the link.
+ *
+ */
+struct ethtool_fecparam {
+ __u32 cmd;
+ /* bitmask of FEC modes */
+ __u32 active_fec;
+ __u32 fec;
+ __u32 reserved;
+};
+
+/**
+ * enum ethtool_fec_config_bits - flags definition of ethtool_fec_configuration
+ * @ETHTOOL_FEC_NONE: FEC mode configuration is not supported
+ * @ETHTOOL_FEC_AUTO: Default/Best FEC mode provided by driver
+ * @ETHTOOL_FEC_OFF: No FEC Mode
+ * @ETHTOOL_FEC_RS: Reed-Solomon Forward Error Detection mode
+ * @ETHTOOL_FEC_BASER: Base-R/Reed-Solomon Forward Error Detection mode
+ */
+enum ethtool_fec_config_bits {
+ ETHTOOL_FEC_NONE_BIT,
+ ETHTOOL_FEC_AUTO_BIT,
+ ETHTOOL_FEC_OFF_BIT,
+ ETHTOOL_FEC_RS_BIT,
+ ETHTOOL_FEC_BASER_BIT,
+};
+
+#define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT)
+#define ETHTOOL_FEC_AUTO (1 << ETHTOOL_FEC_AUTO_BIT)
+#define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT)
+#define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT)
+#define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT)
+
/* CMDs currently supported */
#define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings.
* Please use ETHTOOL_GLINKSETTINGS
@@ -1328,6 +1370,8 @@ struct ethtool_per_queue_op {
#define ETHTOOL_SLINKSETTINGS 0x0000004d /* Set ethtool_link_settings */
#define ETHTOOL_PHY_GTUNABLE 0x0000004e /* Get PHY tunable configuration */
#define ETHTOOL_PHY_STUNABLE 0x0000004f /* Set PHY tunable configuration */
+#define ETHTOOL_GFECPARAM 0x00000050 /* Get FEC settings */
+#define ETHTOOL_SFECPARAM 0x00000051 /* Set FEC settings */
/* compatibility with older code */
#define SPARC_ETH_GSET ETHTOOL_GSET
@@ -1382,9 +1426,12 @@ enum ethtool_link_mode_bit_indices {
ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44,
ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45,
ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46,
- ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47,
- ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48,
+ ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47,
+ ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48,
+ ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49,
+ ETHTOOL_LINK_MODE_FEC_RS_BIT = 50,
+ ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51,
/* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit
* 31. Please do NOT define any SUPPORTED_* or ADVERTISED_*
@@ -1393,7 +1440,7 @@ enum ethtool_link_mode_bit_indices {
*/
__ETHTOOL_LINK_MODE_LAST
- = ETHTOOL_LINK_MODE_5000baseT_Full_BIT,
+ = ETHTOOL_LINK_MODE_FEC_BASER_BIT,
};
#define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \
@@ -1484,13 +1531,17 @@ enum ethtool_link_mode_bit_indices {
* it was forced up into this mode or autonegotiated.
*/
-/* The forced speed, in units of 1Mb. All values 0 to INT_MAX are legal. */
+/* The forced speed, in units of 1Mb. All values 0 to INT_MAX are legal.
+ * Update drivers/net/phy/phy.c:phy_speed_to_str() and
+ * drivers/net/bonding/bond_3ad.c:__get_link_speed() when adding new values.
+ */
#define SPEED_10 10
#define SPEED_100 100
#define SPEED_1000 1000
#define SPEED_2500 2500
#define SPEED_5000 5000
#define SPEED_10000 10000
+#define SPEED_14000 14000
#define SPEED_20000 20000
#define SPEED_25000 25000
#define SPEED_40000 40000
@@ -1633,6 +1684,7 @@ enum ethtool_reset_flags {
ETH_RESET_PHY = 1 << 6, /* Transceiver/PHY */
ETH_RESET_RAM = 1 << 7, /* RAM shared between
* multiple components */
+ ETH_RESET_AP = 1 << 8, /* Application processor */
ETH_RESET_DEDICATED = 0x0000ffff, /* All components dedicated to
* this interface */
@@ -1701,6 +1753,8 @@ enum ethtool_reset_flags {
* %ethtool_link_mode_bit_indices for the link modes, and other
* link features that the link partner advertised through
* autonegotiation; 0 if unknown or not applicable. Read-only.
+ * @transceiver: Used to distinguish different possible PHY types,
+ * reported consistently by PHYLIB. Read-only.
*
* If autonegotiation is disabled, the speed and @duplex represent the
* fixed link mode and are writable if the driver supports multiple
@@ -1752,7 +1806,9 @@ struct ethtool_link_settings {
__u8 eth_tp_mdix;
__u8 eth_tp_mdix_ctrl;
__s8 link_mode_masks_nwords;
- __u32 reserved[8];
+ __u8 transceiver;
+ __u8 reserved1[3];
+ __u32 reserved[7];
__u32 link_mode_masks[0];
/* layout of link_mode_masks fields:
* __u32 map_supported[link_mode_masks_nwords];
--
1.8.3.1

298
SOURCES/0014-ethtool-Support-for-FEC-encoding-control.patch

@ -0,0 +1,298 @@ @@ -0,0 +1,298 @@
From 6477a1f47b15c2a81a9995397942a0fc17f0b06f Mon Sep 17 00:00:00 2001
From: Dustin Byford <dustin@cumulusnetworks.com>
Date: Mon, 18 Dec 2017 14:57:41 -0800
Subject: [PATCH 14/14] ethtool: Support for FEC encoding control

As FEC settings and different FEC modes are mandatory
and configurable across various interfaces of 25G/50G/100G/40G,
the lack of FEC encoding control and reporting today is a source
for interoperability issues for many vendors

set-fec/show-fec option(s) are designed to provide control and report
the FEC encoding on the link.

$ethtool --set-fec swp1 encoding [off | RS | BaseR | auto]

Encoding: Types of encoding
Off : Turning off FEC
RS : Force RS-FEC encoding
BaseR : Force BaseR encoding
Auto : Default FEC settings for drivers, and would represent
asking the hardware to essentially go into a best effort mode.

Here are a few examples of what we would expect if encoding=auto:
- if autoneg is on, we are expecting FEC to be negotiated as on or off
as long as protocol supports it
- if the hardware is capable of detecting the FEC encoding on it's
receiver it will reconfigure its encoder to match
- in absence of the above, the configuration would be set to IEEE
defaults.

>From our understanding, this is essentially what most hardware/driver
combinations are doing today in the absence of a way for users to
control the behavior.

$ethtool --show-fec swp1
FEC parameters for swp1:
FEC encodings: RS

ethtool devname output:
$ethtool swp1
Settings for swp1:
root@hpe-7712-03:~# ethtool swp18
Settings for swp18:
Supported ports: [ FIBRE ]
Supported link modes: 40000baseCR4/Full
40000baseSR4/Full
40000baseLR4/Full
100000baseSR4/Full
100000baseCR4/Full
100000baseLR4_ER4/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: [RS | BaseR | None | Not reported]
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: [RS | BaseR | None | Not reported]
Speed: 100000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 106
Transceiver: internal
Auto-negotiation: off
Link detected: yes

Signed-off-by: Vidya Sagar Ravipati <vidya.chowdary@gmail.com>
Signed-off-by: Dustin Byford <dustin@cumulusnetworks.com>
[code style + man page edits + commit message update]
Signed-off-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

(cherry picked from commit 8db75d1e4001ac4cdfc73d5bedd0ec6d58a3d617)

Conflicts:
ethtool.8.in
ethtool.c
---
ethtool.8.in | 31 ++++++++++++++++
ethtool.c | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 150 insertions(+)

diff --git a/ethtool.8.in b/ethtool.8.in
index c176cac..6816020 100644
--- a/ethtool.8.in
+++ b/ethtool.8.in
@@ -342,6 +342,13 @@ ethtool \- query or control network driver and hardware settings
.B2 tx-lpi on off
.BN tx-timer
.BN advertise
+.HP
+.B ethtool \-\-show\-fec
+.I devname
+.HP
+.B ethtool \-\-set\-fec
+.I devname
+.B4 encoding auto off rs baser
.
.\" Adjust lines (i.e. full justification) and hyphenate.
.ad
@@ -959,6 +966,30 @@ Values are as for
Sets the amount of time the device should stay in idle mode prior to asserting
its Tx LPI (in microseconds). This has meaning only when Tx LPI is enabled.
.RE
+.TP
+.B \-\-show\-fec
+Queries the specified network device for its support of Forward Error Correction.
+.TP
+.B \-\-set\-fec
+Configures Forward Error Correction for the specified network device.
+
+Forward Error Correction modes selected by a user are expected to be persisted
+after any hotplug events. If a module is swapped that does not support the
+current FEC mode, the driver or firmware must take the link down
+administratively and report the problem in the system logs for users to correct.
+.RS 4
+.TP
+.A4 encoding auto off rs baser
+Sets the FEC encoding for the device.
+.TS
+nokeep;
+lB l.
+auto Use the driver's default encoding
+off Turn off FEC
+RS Force RS-FEC encoding
+BaseR Force BaseR encoding
+.TE
+.RE
.SH BUGS
Not supported (in part or whole) on all network drivers.
.SH AUTHOR
diff --git a/ethtool.c b/ethtool.c
index 1411d62..2e9ee2c 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -543,6 +543,9 @@ static void init_global_link_mode_masks(void)
ETHTOOL_LINK_MODE_Pause_BIT,
ETHTOOL_LINK_MODE_Asym_Pause_BIT,
ETHTOOL_LINK_MODE_Backplane_BIT,
+ ETHTOOL_LINK_MODE_FEC_NONE_BIT,
+ ETHTOOL_LINK_MODE_FEC_RS_BIT,
+ ETHTOOL_LINK_MODE_FEC_BASER_BIT,
};
unsigned int i;
@@ -690,6 +693,7 @@ static void dump_link_caps(const char *prefix, const char *an_prefix,
};
int indent;
int did1, new_line_pend, i;
+ int fecreported = 0;
/* Indent just like the separate functions used to */
indent = strlen(prefix) + 14;
@@ -741,6 +745,26 @@ static void dump_link_caps(const char *prefix, const char *an_prefix,
fprintf(stdout, "Yes\n");
else
fprintf(stdout, "No\n");
+
+ fprintf(stdout, " %s FEC modes:", prefix);
+ if (ethtool_link_mode_test_bit(ETHTOOL_LINK_MODE_FEC_NONE_BIT,
+ mask)) {
+ fprintf(stdout, " None");
+ fecreported = 1;
+ }
+ if (ethtool_link_mode_test_bit(ETHTOOL_LINK_MODE_FEC_BASER_BIT,
+ mask)) {
+ fprintf(stdout, " BaseR");
+ fecreported = 1;
+ }
+ if (ethtool_link_mode_test_bit(ETHTOOL_LINK_MODE_FEC_RS_BIT,
+ mask)) {
+ fprintf(stdout, " RS");
+ fecreported = 1;
+ }
+ if (!fecreported)
+ fprintf(stdout, " Not reported");
+ fprintf(stdout, "\n");
}
}
@@ -1569,6 +1593,20 @@ static void dump_eeecmd(struct ethtool_eee *ep)
dump_link_caps("Link partner advertised EEE", "", link_mode, 1);
}
+static void dump_fec(u32 fec)
+{
+ if (fec & ETHTOOL_FEC_NONE)
+ fprintf(stdout, " None");
+ if (fec & ETHTOOL_FEC_AUTO)
+ fprintf(stdout, " Auto");
+ if (fec & ETHTOOL_FEC_OFF)
+ fprintf(stdout, " Off");
+ if (fec & ETHTOOL_FEC_BASER)
+ fprintf(stdout, " BaseR");
+ if (fec & ETHTOOL_FEC_RS)
+ fprintf(stdout, " RS");
+}
+
#define N_SOTS 7
static char *so_timestamping_labels[N_SOTS] = {
@@ -4592,6 +4630,84 @@ static int do_seee(struct cmd_context *ctx)
return 0;
}
+static int fecmode_str_to_type(const char *str)
+{
+ int fecmode = 0;
+
+ if (!str)
+ return fecmode;
+
+ if (!strcasecmp(str, "auto"))
+ fecmode |= ETHTOOL_FEC_AUTO;
+ else if (!strcasecmp(str, "off"))
+ fecmode |= ETHTOOL_FEC_OFF;
+ else if (!strcasecmp(str, "rs"))
+ fecmode |= ETHTOOL_FEC_RS;
+ else if (!strcasecmp(str, "baser"))
+ fecmode |= ETHTOOL_FEC_BASER;
+
+ return fecmode;
+}
+
+static int do_gfec(struct cmd_context *ctx)
+{
+ struct ethtool_fecparam feccmd = { 0 };
+ int rv;
+
+ if (ctx->argc != 0)
+ exit_bad_args();
+
+ feccmd.cmd = ETHTOOL_GFECPARAM;
+ rv = send_ioctl(ctx, &feccmd);
+ if (rv != 0) {
+ perror("Cannot get FEC settings");
+ return rv;
+ }
+
+ fprintf(stdout, "FEC parameters for %s:\n", ctx->devname);
+ fprintf(stdout, "Configured FEC encodings:");
+ dump_fec(feccmd.fec);
+ fprintf(stdout, "\n");
+
+ fprintf(stdout, "Active FEC encoding:");
+ dump_fec(feccmd.active_fec);
+ fprintf(stdout, "\n");
+
+ return 0;
+}
+
+static int do_sfec(struct cmd_context *ctx)
+{
+ char *fecmode_str = NULL;
+ struct ethtool_fecparam feccmd;
+ struct cmdline_info cmdline_fec[] = {
+ { "encoding", CMDL_STR, &fecmode_str, &feccmd.fec},
+ };
+ int changed;
+ int fecmode;
+ int rv;
+
+ parse_generic_cmdline(ctx, &changed, cmdline_fec,
+ ARRAY_SIZE(cmdline_fec));
+
+ if (!fecmode_str)
+ exit_bad_args();
+
+ fecmode = fecmode_str_to_type(fecmode_str);
+ if (!fecmode)
+ exit_bad_args();
+
+ feccmd.cmd = ETHTOOL_SFECPARAM;
+ feccmd.fec = fecmode;
+ rv = send_ioctl(ctx, &feccmd);
+ if (rv != 0) {
+ perror("Cannot set FEC settings");
+ return rv;
+ }
+
+ return 0;
+}
+
#ifndef TEST_ETHTOOL
int send_ioctl(struct cmd_context *ctx, void *cmd)
{
@@ -4754,6 +4870,9 @@ static const struct option {
" [ advertise %x ]\n"
" [ tx-lpi on|off ]\n"
" [ tx-timer %d ]\n"},
+ { "--show-fec", 1, do_gfec, "Show FEC settings"},
+ { "--set-fec", 1, do_sfec, "Set FEC settings",
+ " [ encoding auto|off|rs|baser ]\n"},
{ "-h|--help", 0, show_usage, "Show this help" },
{ "--version", 0, do_version, "Show version number" },
{}
--
1.8.3.1

304
SPECS/ethtool.spec

@ -0,0 +1,304 @@ @@ -0,0 +1,304 @@
Name: ethtool
Epoch: 2
Version: 4.8
Release: 7%{?dist}
Summary: Settings tool for Ethernet NICs

License: GPLv2
Group: Applications/System
#Old URL: http://sourceforge.net/projects/gkernel/
URL: http://ftp.kernel.org/pub/software/network/%{name}/

# When using tarball from released upstream version:
# - http://ftp.kernel.org/pub/software/network/%{name}/%{name}-%{version}.tar.bz2
#
# When generating tarball package from upstream git:
# - git clone git://git.kernel.org/pub/scm/network/ethtool/ethtool.git ethtool-6
# - cd ethtool-6; git checkout 669ba5cadfb15842e90d8aa7ba5a575f7a457b3e
# - cp -f ChangeLog ChangeLog.old; git log > ChangeLog.git
# - rm -rf .git; cd ..; tar cvfz ethtool-6.tar.gz ethtool-6
# - Use the visible date of latest git log entry for %{release} in spec file
Source0: http://ftp.kernel.org/pub/software/network/%{name}/%{name}-%{version}.tar.xz
BuildRequires: automake, autoconf
Conflicts: filesystem < 3
Patch0: 0001-ethtool-add-register-dump-support-for-fjes-driver.patch
Patch1: 0002-ethtool-sync-help-output-for-x-X-with-man-page.patch
Patch2: 0003-ethtool-Fix-the-advertise-parameter-logic.patch
Patch3: 0004-ethtool-Fix-SFF-8079-cable-technology-bit-parsing.patch
Patch4: 0005-ethtool-Support-for-configurable-RSS-hash-function.patch
Patch5: 0006-net_tstamp.h-sync-with-net-next.patch
Patch6: 0007-ethtool-add-support-for-HWTSTAMP_FILTER_NTP_ALL.patch
Patch7: 0008-ethtool-copy.h-sync-with-net-next.patch
Patch8: 0009-ethtool-Add-support-for-2500baseT-5000baseT-link-mod.patch
Patch9: 0010-ethtool.8-Fix-formatting-of-advertise-bitmask.patch
Patch10: 0011-ethtool.8-Document-56000-advertise-link-modes.patch
Patch11: 0012-ethtool-Remove-UDP-Fragmentation-Offload-error-print.patch
Patch12: 0013-ethtool-copy.h-sync-with-net-next.patch
Patch13: 0014-ethtool-Support-for-FEC-encoding-control.patch

%description
This utility allows querying and changing settings such as speed,
port, auto-negotiation, PCI locations and checksum offload on many
network devices, especially of Ethernet devices.

%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1

# Only needed when using upstream git
# aclocal
# autoheader
# automake --gnu --add-missing --copy
# autoconf

%build
aclocal
automake --gnu --add-missing --copy
%configure
make %{?_smp_mflags}

%install
make DESTDIR=%{buildroot} INSTALL='install -p' install

%files
%doc AUTHORS ChangeLog* COPYING LICENSE NEWS README
%{_sbindir}/%{name}
%{_mandir}/man8/%{name}.8*

%changelog
* Wed Jan 10 2018 Ivan Vecera <ivecera@redhat.com> - 2:4.8-7
- Fixed synopsis in ethtool man page

* Tue Jan 9 2018 Ivan Vecera <ivecera@redhat.com> - 2:4.8-6
- Added support for setting FEC parameters

* Fri Jan 5 2018 Ivan Vecera <ivecera@redhat.com> - 2:4.8-5
- Fixed changelog

* Fri Jan 5 2018 Ivan Vecera <ivecera@redhat.com> - 2:4.8-4
- Fixed UDP fragmentation offloading error messages printed on kernel-alt >=4.14

* Tue Nov 14 2017 Ivan Vecera <ivecera@redhat.com> - 2:4.8-3
- Added support for 2500baseT/5000baseT link modes

* Fri Nov 3 2017 Ivan Vecera <ivecera@redhat.com> - 2:4.8-2
- Added support for configurable RSS hash function
- Fixed SFF 8079 cable technology bit parsing
- Added support for HWTSTAMP_FILTER_NTP_ALL

* Wed Mar 22 2017 Ivan Vecera <ivecera@redhat.com> - 2:4.8-1
- Rebased against upstream v4.8

* Fri Mar 17 2017 Ivan Vecera <ivecera@redhat.com> - 2:4.5-6
- Fixed the "advertise" parameter logic

* Tue Feb 21 2017 Ivan Vecera <ivecera@redhat.com> - 2:4.5-5
- Fixed help page for commands -x and -X

* Thu Feb 2 2017 Ivan Vecera <ivecera@redhat.com> - 2:4.5-4
- Add register dump support for fjes driver

* Tue Aug 16 2016 Ivan Vecera <ivecera@redhat.com> - 2:4.5-3
- Added support for new ETHTOOL_xLINKSETTINGS API
- Added support for diagnostics information for QSFP Plus/QSFP28 modules
- Added support for 25G/50G/100G supported and advertised speed modes

* Fri Mar 18 2016 Ivan Vecera <ivecera@redhat.com> - 2:4.5-2
- Fixed several memory leaks

* Wed Mar 16 2016 Ivan Vecera <ivecera@redhat.com> - 2:4.5-1
- Update to the upstream version v4.5

* Fri Oct 31 2014 Ivan Vecera <ivecera@redhat.com> - 2:3.15-2
- Support for configurable RSS hash key

* Mon Sep 15 2014 Ivan Vecera <ivecera@redhat.com> - 2:3.15-1
- Update to the latest upstream

* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 2:3.8-3
- Mass rebuild 2014-01-24

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 2:3.8-2
- Mass rebuild 2013-12-27

* Mon Mar 04 2013 Jaromir Capik <jcapik@redhat.com> - 2:3.8-1
- Update to 3.8 (#916922)

* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:3.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Mon Dec 17 2012 Jaromir Capik <jcapik@redhat.com> - 2:3.7-1
- Update to 3.7 (#887463)

* Tue Oct 23 2012 Jaromir Capik <jcapik@redhat.com> 2:3.6-1
- Update to 3.6 (#863774)

* Tue Sep 25 2012 Jaromir Capik <jcapik@redhat.com> 2:3.5-1
- Update to 3.5 (#840741)

* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:3.4.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Thu Jun 28 2012 Jaromir Capik <jcapik@redhat.com> 2:3.4.1-1
- Update to 3.4.1 (#830263)

* Wed Jan 25 2012 Harald Hoyer <harald@redhat.com> 2:3.2-2
- install everything in /usr
https://fedoraproject.org/wiki/Features/UsrMove

* Fri Jan 13 2012 Jaromir Capik <jcapik@redhat.com> 2:3.2-1
- Update to 3.2 (#781357)
- Minor spec file changes according to the latest guidelines

* Fri Dec 23 2011 Robert Scheck <robert@fedoraproject.org> 2:3.1-1
- Upgrade to 3.1 (#728480)

* Sun Jul 17 2011 Robert Scheck <robert@fedoraproject.org> 2:2.6.39-1
- Upgrade to 2.6.39 (#710400)

* Mon Mar 21 2011 Robert Scheck <robert@fedoraproject.org> 2:2.6.38-1
- Upgrade to 2.6.38 (#667594)

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2.6.36-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Fri Dec 31 2010 Robert Scheck <robert@fedoraproject.org> 2:2.6.36-1
- Upgrade to 2.6.36 (#623094)

* Wed Jul 14 2010 Jeff Garzik <jgarzik@redhat.com> 2:2.6.34-1
- Update to release 2.6.34.

* Thu Feb 4 2010 Jeff Garzik <jgarzik@redhat.com> 2.6.33-0.1
- update to version 2.6.33-pre1

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6-7.20090323git
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Sat Jul 18 2009 Robert Scheck <robert@fedoraproject.org> 6-6.20090323git
- Upgrade to GIT 20090323

* Thu Jul 16 2009 Jeff Garzik <jgarzik@redhat.com> 6-5.20090306git
- minor specfile cleanups

* Sat Mar 07 2009 Robert Scheck <robert@fedoraproject.org> 6-4.20090306git
- Upgrade to GIT 20090306

* Mon Feb 23 2009 Robert Scheck <robert@fedoraproject.org> 6-3.20090115git
- Rebuild for gcc 4.4 and rpm 4.6

* Sat Jan 17 2009 Robert Scheck <robert@fedoraproject.org> 6-2.20090115git
- Changes to match with Fedora Packaging Guidelines (#225735)
- Upgrade to GIT 20090115 (#225735, #477498)
- Removed bogus stated need of DEVNAME in -h/--help (#472038)
- Removed completely needless INSTALL file from %%doc (#472034)

* Wed Mar 12 2008 Tom "spot" Callaway <tcallawa@redhat.com> 6-1
- Upgrade to ethtool version 6

* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 5-2
- Autorebuild for GCC 4.3

* Thu Dec 14 2006 Jay Fenlason <fenlason@redhat.com> 5-1
- Upgrade to ethtool version 5 to close
bz#184985: RFE: 10gigE support
bz#204840: "buffer overflow detected" when devname's length >=16 of ethtool
Resolves: #184985, #204840

* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 3-1.2.2
- rebuild

* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 3-1.2.1
- bump again for double-long bug on ppc(64)

* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 3-1.2
- rebuilt for new gcc4.1 snapshot and glibc changes

* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt

* Thu Mar 3 2005 Jeff Garzik <jgarzik@pobox.com>
- Update to version 3.
- Use %%buildroot macro, rather than RPM_BUILD_ROOT env var,
as recommended by RPM packaging guidelines.

* Sun Feb 27 2005 Florian La Roche <laroche@redhat.com>
- Copyright: -> License

* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Fri Sep 5 2003 Bill Nottingham <notting@redhat.com> 1.8-2
- remove bogus check for devices starting with ethXX, this time applying
the patch

* Thu Jul 24 2003 Bill Nottingham <notting@redhat.com> 1.8-1
- update to 1.8
- remove bogus check for devices starting with ethXX

* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Sat Feb 8 2003 Bill Nottingham <notting@redhat.com> 1.6-5
- move to /sbin

* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
- rebuilt

* Thu Dec 12 2002 Tim Powers <timp@redhat.com> 1.6-3
- rebuild on all arches

* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
- automated rebuild

* Thu Jun 20 2002 Florian La Roche <Florian.LaRoche@redhat.de>
- update to 1.6

* Thu May 23 2002 Tim Powers <timp@redhat.com>
- automated rebuild

* Mon Mar 4 2002 Bill Nottingham <notting@redhat.com> 1.5-1
- 1.5

* Thu Feb 21 2002 Bill Nottingham <notting@redhat.com>
- rebuild

* Wed Jan 09 2002 Tim Powers <timp@redhat.com>
- automated rebuild

* Tue Dec 4 2001 Bill Nottingham <notting@redhat.com>
- update to 1.4

* Fri Aug 3 2001 Bill Nottingham <notting@redhat.com>
- return of ethtool! (#50475)

* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
- automatic rebuild

* Sun Jun 18 2000 Matt Wilson <msw@redhat.com>
- rebuilt for next release
- use FHS man path

* Tue Feb 22 2000 Bill Nottingham <notting@redhat.com>
- handle compressed manpages

* Wed Apr 14 1999 Bill Nottingham <notting@redhat.com>
- run through with new s/d

* Tue Apr 13 1999 Jakub Jelinek <jj@ultra.linux.cz>
- initial package.
Loading…
Cancel
Save