[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1306966500.2758.48.camel@bwh-desktop>
Date: Wed, 01 Jun 2011 23:15:00 +0100
From: Ben Hutchings <bhutchings@...arflare.com>
To: Yaniv Rosner <yanivr@...adcom.com>
Cc: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
eilong@...adcom.com
Subject: Re: [PATCH] ethtool: Add support for 20G link speed
On Mon, 2011-05-23 at 16:38 +0300, Yaniv Rosner wrote:
> Add support for 20G link speed
>
> Signed-off-by: Yaniv Rosner <yanivr@...adcom.com>
> ---
> ethtool-copy.h | 5 +++++
> ethtool.c | 18 +++++++++++++++++-
> 2 files changed, 22 insertions(+), 1 deletions(-)
>
> diff --git a/ethtool-copy.h b/ethtool-copy.h
> index 22215e9..c02a98b 100644
> --- a/ethtool-copy.h
> +++ b/ethtool-copy.h
> @@ -749,6 +749,8 @@ enum ethtool_sfeatures_retval_bits {
> #define SUPPORTED_10000baseKX4_Full (1 << 18)
> #define SUPPORTED_10000baseKR_Full (1 << 19)
> #define SUPPORTED_10000baseR_FEC (1 << 20)
> +#define SUPPORTED_20000baseMLD2_Full (1 << 21)
> +#define SUPPORTED_20000baseKR2_Full (1 << 22)
>
> /* Indicates what features are advertised by the interface. */
> #define ADVERTISED_10baseT_Half (1 << 0)
> @@ -772,6 +774,9 @@ enum ethtool_sfeatures_retval_bits {
> #define ADVERTISED_10000baseKX4_Full (1 << 18)
> #define ADVERTISED_10000baseKR_Full (1 << 19)
> #define ADVERTISED_10000baseR_FEC (1 << 20)
> +#define ADVERTISED_20000baseMLD2_Full (1 << 21)
> +#define ADVERTISED_20000baseKR2_Full (1 << 22)
> +
>
> /* The following are all involved in forcing a particular link
> * mode for the device for setting things. When getting the
You don't need to include this. I've updated ethtool-copy.h from
today's net-next-2.6.
> diff --git a/ethtool.c b/ethtool.c
> index cfdac65..a099a23 100644
> --- a/ethtool.c
> +++ b/ethtool.c
> @@ -1238,6 +1238,20 @@ static void dump_supported(struct ethtool_cmd *ep)
> if (mask & SUPPORTED_10000baseT_Full) {
> did1++; fprintf(stdout, "10000baseT/Full ");
> }
> + if (did1 && (mask & SUPPORTED_20000baseMLD2_Full)) {
> + fprintf(stdout, "\n");
> + fprintf(stdout, " ");
> + }
> + if (mask & SUPPORTED_20000baseMLD2_Full) {
> + did1++; fprintf(stdout, "20000baseMLD2/Full ");
> + }
> + if (did1 && (mask & SUPPORTED_20000baseKR2_Full)) {
> + fprintf(stdout, "\n");
> + fprintf(stdout, " ");
> + }
> + if (mask & SUPPORTED_20000baseKR2_Full) {
> + did1++; fprintf(stdout, "20000baseKR2/Full ");
> + }
> fprintf(stdout, "\n");
>
> fprintf(stdout, " Supports auto-negotiation: ");
This doesn't cover the advertised mask.
But I think I'll just combine the code to dump supported vs advertised
flags - it's ridiculous to duplicate it as the flag definitions are
deliberately kept equal to each other.
> @@ -2581,7 +2595,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;
> }
You also need to update the table in the manual page, including a note
that this these are not IEEE standard modes.
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists