[PATCH] ethtool: Add support for 20G link speed
From: Yaniv Rosner <hidden>
Date: 2011-06-05 17:39:47
Hi Ben, I'm resubmitting the addition of 20G with your corrections to ethtool. Thanks, Yaniv Signed-off-by: Yaniv Rosner <redacted> --- ethtool.8.in | 2 ++ ethtool.c | 18 +++++++++++++++++- 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; }
--
1.7.1