summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaniv Rosner <yanivr@broadcom.com>2011-06-05 20:39:43 +0300
committerBen Hutchings <bhutchings@solarflare.com>2011-06-06 11:10:51 +0100
commit42a76bec31d6289121a96d16ef0f776bcc393f44 (patch)
treec1f422f9536a1a8b4cdbe480bf741cd9b259642c
parent4292820f0ee56190a2d2b87bc54585201c0eae81 (diff)
downloadethtool-42a76bec31d6289121a96d16ef0f776bcc393f44.tar.gz
ethtool: Add support for 20G link speed
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
-rw-r--r--ethtool.8.in2
-rw-r--r--ethtool.c18
2 files changed, 19 insertions, 1 deletions
diff --git a/ethtool.8.in b/ethtool.8.in
index 7b1cdf5..2983b3e 100644
--- a/ethtool.8.in
+++ b/ethtool.8.in
@@ -499,6 +499,8 @@ lB l lB.
0x020 1000 Full
0x8000 2500 Full (not supported by IEEE standards)
0x1000 10000 Full
+0x20000 20000MLD2 Full (not supported by IEEE standards)
+0x40000 20000KR2 Full (not supported by IEEE standards)
.TE
.TP
.BI phyad \ N
diff --git a/ethtool.c b/ethtool.c
index c189c78..35c3733 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -1244,6 +1244,20 @@ dump_link_caps(const char *prefix, const char *an_prefix, u32 mask)
if (mask & ADVERTISED_10000baseT_Full) {
did1++; fprintf(stdout, "10000baseT/Full ");
}
+ if (did1 && (mask & ADVERTISED_20000baseMLD2_Full)) {
+ fprintf(stdout, "\n");
+ fprintf(stdout, " %*s", indent, "");
+ }
+ if (mask & ADVERTISED_20000baseMLD2_Full) {
+ did1++; fprintf(stdout, "20000baseMLD2/Full ");
+ }
+ if (did1 && (mask & ADVERTISED_20000baseKR2_Full)) {
+ fprintf(stdout, "\n");
+ fprintf(stdout, " %*s", indent, "");
+ }
+ if (mask & ADVERTISED_20000baseKR2_Full) {
+ did1++; fprintf(stdout, "20000baseKR2/Full ");
+ }
if (did1 == 0)
fprintf(stdout, "Not reported");
fprintf(stdout, "\n");
@@ -2474,7 +2488,9 @@ static int do_sset(int fd, struct ifreq *ifr)
ADVERTISED_1000baseT_Half |
ADVERTISED_1000baseT_Full |
ADVERTISED_2500baseX_Full |
- ADVERTISED_10000baseT_Full);
+ ADVERTISED_10000baseT_Full |
+ ADVERTISED_20000baseMLD2_Full |
+ ADVERTISED_20000baseKR2_Full);
} else if (advertising_wanted > 0) {
ecmd.advertising = advertising_wanted;
}