All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] ethtool: Expose MDI-X status
       [not found] <F169D4F5E1F1974DBFAFABF47F60C10A33527C9D@orsmsx507.amr.corp.intel.com>
@ 2009-05-22 14:54 ` Chaitanya Lala
  2009-05-22 15:02   ` Stephen Hemminger
  2009-05-22 15:03   ` Ben Hutchings
  2009-05-22 14:55 ` [net-next-2.6 PATCH 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala
  1 sibling, 2 replies; 22+ messages in thread
From: Chaitanya Lala @ 2009-05-22 14:54 UTC (permalink / raw)
  To: jgarzik; +Cc: netdev

The MDI-X status is a useful tool for diagnosing network
connectivity issues. We expose MDI-X status as a tri-state value
status which drivers can optionally implement.

Signed-off-by: Chaitanya Lala <clala@riverbed.com>
Signed-off-by: Arthur Jones <ajones@riverbed.com>
---
 ethtool-copy.h |    6 ++++++
 ethtool.c      |   13 +++++++++++++
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/ethtool-copy.h b/ethtool-copy.h
index 3ca4e2c..37bbeaf 100644
--- a/ethtool-copy.h
+++ b/ethtool-copy.h
@@ -23,6 +23,7 @@ struct ethtool_cmd {
 	__u8	phy_address;
 	__u8	transceiver;	/* Which transceiver to use */
 	__u8	autoneg;	/* Enable or disable autonegotiation */
+	__u8	is_mdix;
 	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
 	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
 	__u16	speed_hi;
@@ -416,6 +417,11 @@ struct ethtool_rxnfc {
 #define AUTONEG_DISABLE		0x00
 #define AUTONEG_ENABLE		0x01
 
+/* Mode MDI or MDI-X */
+#define MDI_INVALID 0x00
+#define MDI         0x01
+#define MDI_X       0x02
+
 /* Wake-On-Lan options. */
 #define WAKE_PHY		(1 << 0)
 #define WAKE_UCAST		(1 << 1)
diff --git a/ethtool.c b/ethtool.c
index 0110682..bf12168 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -964,6 +964,19 @@ static int dump_ecmd(struct ethtool_cmd *ep)
 	fprintf(stdout, "	Auto-negotiation: %s\n",
 		(ep->autoneg == AUTONEG_DISABLE) ?
 		"off" : "on");
+
+	switch (ep->is_mdix) {
+	case MDI:
+		fprintf(stdout, "	MDI-X: off\n");
+		break;
+	case MDI_X:
+		fprintf(stdout, "	MDI-X: on\n");
+		break;
+	default:
+		fprintf(stdout, "	MDI-X: Unknown\n");
+		break;
+	}
+
 	return 0;
 }
 
-- 
1.6.0.4


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next-2.6 PATCH 1/1] e1000e: Expose MDI-X status via ethtool change
       [not found] <F169D4F5E1F1974DBFAFABF47F60C10A33527C9D@orsmsx507.amr.corp.intel.com>
  2009-05-22 14:54 ` [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
@ 2009-05-22 14:55 ` Chaitanya Lala
  2009-05-22 15:05   ` Ben Hutchings
  1 sibling, 1 reply; 22+ messages in thread
From: Chaitanya Lala @ 2009-05-22 14:55 UTC (permalink / raw)
  To: jesse.brandeburg; +Cc: netdev

Ethtool is a standard way of getting information about ethernet
interfaces. We enhance ethtool kernel interface & e1000e to make
the MDI-X status readable via ethtool in userspace.

Signed-off-by: Chaitanya Lala <clala@riverbed.com>
Signed-off-by: Arthur Jones <ajones@riverbed.com>
---
 drivers/net/e1000e/ethtool.c |    8 ++++++++
 include/linux/ethtool.h      |    6 ++++++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
index 4d25ede..8bbade1 100644
--- a/drivers/net/e1000e/ethtool.c
+++ b/drivers/net/e1000e/ethtool.c
@@ -167,6 +167,14 @@ static int e1000_get_settings(struct net_device *netdev,
 
 	ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) ||
 			 hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE;
+
+	/* MDI-X => 2; MDI =>1; Invalid =>0 */
+	if ((hw->phy.media_type == e1000_media_type_copper) &&
+			!hw->mac.get_link_status)
+		ecmd->is_mdix = hw->phy.is_mdix ? MDI_X : MDI;
+	else
+		ecmd->is_mdix = MDI_INVALID;
+
 	return 0;
 }
 
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 380b042..0533d70 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -26,6 +26,7 @@ struct ethtool_cmd {
 	__u8	phy_address;
 	__u8	transceiver;	/* Which transceiver to use */
 	__u8	autoneg;	/* Enable or disable autonegotiation */
+	__u8	is_mdix;	/* MDI-X status tri-state value */
 	__u8	mdio_support;
 	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
 	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
@@ -632,6 +633,11 @@ struct ethtool_ops {
 #define AUTONEG_DISABLE		0x00
 #define AUTONEG_ENABLE		0x01
 
+/* Mode MDI or MDI-X */
+#define MDI_INVALID	0x00
+#define MDI		0x01
+#define MDI_X		0x02
+
 /* Wake-On-Lan options. */
 #define WAKE_PHY		(1 << 0)
 #define WAKE_UCAST		(1 << 1)
-- 
1.6.0.4


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/1] ethtool: Expose MDI-X status
  2009-05-22 14:54 ` [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
@ 2009-05-22 15:02   ` Stephen Hemminger
  2009-05-22 15:03   ` Ben Hutchings
  1 sibling, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2009-05-22 15:02 UTC (permalink / raw)
  To: Chaitanya Lala; +Cc: jgarzik, netdev

On Fri, 22 May 2009 07:54:26 -0700
Chaitanya Lala <clala@riverbed.com> wrote:

> The MDI-X status is a useful tool for diagnosing network
> connectivity issues. We expose MDI-X status as a tri-state value
> status which drivers can optionally implement.
> 
> Signed-off-by: Chaitanya Lala <clala@riverbed.com>
> Signed-off-by: Arthur Jones <ajones@riverbed.com>
> ---
>  ethtool-copy.h |    6 ++++++
>  ethtool.c      |   13 +++++++++++++
>  2 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/ethtool-copy.h b/ethtool-copy.h
> index 3ca4e2c..37bbeaf 100644
> --- a/ethtool-copy.h
> +++ b/ethtool-copy.h
> @@ -23,6 +23,7 @@ struct ethtool_cmd {
>  	__u8	phy_address;
>  	__u8	transceiver;	/* Which transceiver to use */
>  	__u8	autoneg;	/* Enable or disable autonegotiation */
> +	__u8	is_mdix;
>  	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
>  	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
>  	__u16	speed_hi;
>

Is this an ABI change (or are you just reusing a pad hole)?

-- 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/1] ethtool: Expose MDI-X status
  2009-05-22 14:54 ` [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
  2009-05-22 15:02   ` Stephen Hemminger
@ 2009-05-22 15:03   ` Ben Hutchings
  1 sibling, 0 replies; 22+ messages in thread
From: Ben Hutchings @ 2009-05-22 15:03 UTC (permalink / raw)
  To: Chaitanya Lala; +Cc: jgarzik, netdev

On Fri, 2009-05-22 at 07:54 -0700, Chaitanya Lala wrote:
> The MDI-X status is a useful tool for diagnosing network
> connectivity issues. We expose MDI-X status as a tri-state value
> status which drivers can optionally implement.
> 
> Signed-off-by: Chaitanya Lala <clala@riverbed.com>
> Signed-off-by: Arthur Jones <ajones@riverbed.com>
> ---
>  ethtool-copy.h |    6 ++++++
>  ethtool.c      |   13 +++++++++++++
>  2 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/ethtool-copy.h b/ethtool-copy.h
> index 3ca4e2c..37bbeaf 100644
> --- a/ethtool-copy.h
> +++ b/ethtool-copy.h
> @@ -23,6 +23,7 @@ struct ethtool_cmd {
>  	__u8	phy_address;
>  	__u8	transceiver;	/* Which transceiver to use */
>  	__u8	autoneg;	/* Enable or disable autonegotiation */
> +	__u8	is_mdix;
[...]

I have already filled this hole in the structure.  See Dave's
net-next-2.6 repository and my previously submitted changes to ethtool
<http://thread.gmane.org/gmane.linux.network/127025>.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [net-next-2.6 PATCH 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-05-22 14:55 ` [net-next-2.6 PATCH 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala
@ 2009-05-22 15:05   ` Ben Hutchings
  2009-05-22 15:24     ` Chaitanya Lala
                       ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Ben Hutchings @ 2009-05-22 15:05 UTC (permalink / raw)
  To: Chaitanya Lala; +Cc: jesse.brandeburg, netdev

On Fri, 2009-05-22 at 07:55 -0700, Chaitanya Lala wrote:
> Ethtool is a standard way of getting information about ethernet
> interfaces. We enhance ethtool kernel interface & e1000e to make
> the MDI-X status readable via ethtool in userspace.
[...] 
> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
> index 380b042..0533d70 100644
> --- a/include/linux/ethtool.h
> +++ b/include/linux/ethtool.h
> @@ -26,6 +26,7 @@ struct ethtool_cmd {
>  	__u8	phy_address;
>  	__u8	transceiver;	/* Which transceiver to use */
>  	__u8	autoneg;	/* Enable or disable autonegotiation */
> +	__u8	is_mdix;	/* MDI-X status tri-state value */
>  	__u8	mdio_support;
[...]

There's no gap here, so this would move all the following fields and
break all older ethtool clients.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [net-next-2.6 PATCH 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-05-22 15:05   ` Ben Hutchings
@ 2009-05-22 15:24     ` Chaitanya Lala
  2009-05-22 17:18     ` [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
  2009-05-22 17:20     ` [net-next-2.6 PATCH 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala
  2 siblings, 0 replies; 22+ messages in thread
From: Chaitanya Lala @ 2009-05-22 15:24 UTC (permalink / raw)
  To: Ben Hutchings; +Cc: jesse.brandeburg, netdev

Ben Hutchings wrote:
> On Fri, 2009-05-22 at 07:55 -0700, Chaitanya Lala wrote:
>   
>> Ethtool is a standard way of getting information about ethernet
>> interfaces. We enhance ethtool kernel interface & e1000e to make
>> the MDI-X status readable via ethtool in userspace.
>>     
> [...] 
>   
>> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
>> index 380b042..0533d70 100644
>> --- a/include/linux/ethtool.h
>> +++ b/include/linux/ethtool.h
>> @@ -26,6 +26,7 @@ struct ethtool_cmd {
>>  	__u8	phy_address;
>>  	__u8	transceiver;	/* Which transceiver to use */
>>  	__u8	autoneg;	/* Enable or disable autonegotiation */
>> +	__u8	is_mdix;	/* MDI-X status tri-state value */
>>  	__u8	mdio_support;
>>     
> [...]
>
> There's no gap here, so this would move all the following fields and
> break all older ethtool clients.
>
> Ben.
>
>   
Then should I move it to the bottom ?

Chaitanya


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 1/1] ethtool: Expose MDI-X status
  2009-05-22 15:05   ` Ben Hutchings
  2009-05-22 15:24     ` Chaitanya Lala
@ 2009-05-22 17:18     ` Chaitanya Lala
  2009-05-23  1:04       ` Ben Hutchings
  2009-05-22 17:20     ` [net-next-2.6 PATCH 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala
  2 siblings, 1 reply; 22+ messages in thread
From: Chaitanya Lala @ 2009-05-22 17:18 UTC (permalink / raw)
  To: jgarzik; +Cc: netdev

The MDI-X status is a useful tool for diagnosing network
connectivity issues. We expose MDI-X status as a tri-state value
status which drivers can optionally implement.

Signed-off-by: Chaitanya Lala <clala@riverbed.com>
Signed-off-by: Arthur Jones <ajones@riverbed.com>
---
 ethtool-copy.h |    6 ++++++
 ethtool.c      |   13 +++++++++++++
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/ethtool-copy.h b/ethtool-copy.h
index 3ca4e2c..d3e1524 100644
--- a/ethtool-copy.h
+++ b/ethtool-copy.h
@@ -28,6 +28,7 @@ struct ethtool_cmd {
 	__u16	speed_hi;
 	__u16	reserved2;
 	__u32	reserved[3];
+	__u8	is_mdix;	/* Tri-state value to expose MDI-X */
 };
 
 static inline void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
@@ -416,6 +417,11 @@ struct ethtool_rxnfc {
 #define AUTONEG_DISABLE		0x00
 #define AUTONEG_ENABLE		0x01
 
+/* Mode MDI or MDI-X */
+#define MDI_INVALID 0x00
+#define MDI         0x01
+#define MDI_X       0x02
+
 /* Wake-On-Lan options. */
 #define WAKE_PHY		(1 << 0)
 #define WAKE_UCAST		(1 << 1)
diff --git a/ethtool.c b/ethtool.c
index 0110682..bf12168 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -964,6 +964,19 @@ static int dump_ecmd(struct ethtool_cmd *ep)
 	fprintf(stdout, "	Auto-negotiation: %s\n",
 		(ep->autoneg == AUTONEG_DISABLE) ?
 		"off" : "on");
+
+	switch (ep->is_mdix) {
+	case MDI:
+		fprintf(stdout, "	MDI-X: off\n");
+		break;
+	case MDI_X:
+		fprintf(stdout, "	MDI-X: on\n");
+		break;
+	default:
+		fprintf(stdout, "	MDI-X: Unknown\n");
+		break;
+	}
+
 	return 0;
 }
 
-- 
1.6.0.4


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [net-next-2.6 PATCH 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-05-22 15:05   ` Ben Hutchings
  2009-05-22 15:24     ` Chaitanya Lala
  2009-05-22 17:18     ` [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
@ 2009-05-22 17:20     ` Chaitanya Lala
  2 siblings, 0 replies; 22+ messages in thread
From: Chaitanya Lala @ 2009-05-22 17:20 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev

Ethtool is a standard way of getting information about ethernet
interfaces. We enhance ethtool kernel interface & e1000e to make
the MDI-X status readable via ethtool in userspace.

Signed-off-by: Chaitanya Lala <clala@riverbed.com>
Signed-off-by: Arthur Jones <ajones@riverbed.com>
---
 drivers/net/e1000e/ethtool.c |    8 ++++++++
 include/linux/ethtool.h      |    6 ++++++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
index 4d25ede..8bbade1 100644
--- a/drivers/net/e1000e/ethtool.c
+++ b/drivers/net/e1000e/ethtool.c
@@ -167,6 +167,14 @@ static int e1000_get_settings(struct net_device *netdev,
 
 	ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) ||
 			 hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE;
+
+	/* MDI-X => 2; MDI =>1; Invalid =>0 */
+	if ((hw->phy.media_type == e1000_media_type_copper) &&
+			!hw->mac.get_link_status)
+		ecmd->is_mdix = hw->phy.is_mdix ? MDI_X : MDI;
+	else
+		ecmd->is_mdix = MDI_INVALID;
+
 	return 0;
 }
 
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 380b042..5211f59 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -33,6 +33,7 @@ struct ethtool_cmd {
 	__u16	reserved2;
 	__u32	lp_advertising;	/* Features the link partner advertises */
 	__u32	reserved[2];
+	__u8	is_mdix;	/* MDI-X status tri-state value */
 };
 
 static inline void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
@@ -632,6 +633,11 @@ struct ethtool_ops {
 #define AUTONEG_DISABLE		0x00
 #define AUTONEG_ENABLE		0x01
 
+/* Mode MDI or MDI-X */
+#define MDI_INVALID	0x00
+#define MDI		0x01
+#define MDI_X		0x02
+
 /* Wake-On-Lan options. */
 #define WAKE_PHY		(1 << 0)
 #define WAKE_UCAST		(1 << 1)
-- 
1.6.0.4


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/1] ethtool: Expose MDI-X status
  2009-05-22 17:18     ` [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
@ 2009-05-23  1:04       ` Ben Hutchings
  2009-05-26 15:34         ` Chaitanya Lala
  0 siblings, 1 reply; 22+ messages in thread
From: Ben Hutchings @ 2009-05-23  1:04 UTC (permalink / raw)
  To: Chaitanya Lala; +Cc: jgarzik, netdev

On Fri, 2009-05-22 at 10:18 -0700, Chaitanya Lala wrote:
> The MDI-X status is a useful tool for diagnosing network
> connectivity issues. We expose MDI-X status as a tri-state value
> status which drivers can optionally implement.
> 
> Signed-off-by: Chaitanya Lala <clala@riverbed.com>
> Signed-off-by: Arthur Jones <ajones@riverbed.com>
> ---
>  ethtool-copy.h |    6 ++++++
>  ethtool.c      |   13 +++++++++++++
>  2 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/ethtool-copy.h b/ethtool-copy.h
> index 3ca4e2c..d3e1524 100644
> --- a/ethtool-copy.h
> +++ b/ethtool-copy.h
> @@ -28,6 +28,7 @@ struct ethtool_cmd {
>  	__u16	speed_hi;
>  	__u16	reserved2;
>  	__u32	reserved[3];
> +	__u8	is_mdix;	/* Tri-state value to expose MDI-X */
>  };
[...]

No, you cannot change the size of this structure either.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/1] ethtool: Expose MDI-X status
  2009-05-23  1:04       ` Ben Hutchings
@ 2009-05-26 15:34         ` Chaitanya Lala
  2009-05-26 16:02           ` Ben Hutchings
  0 siblings, 1 reply; 22+ messages in thread
From: Chaitanya Lala @ 2009-05-26 15:34 UTC (permalink / raw)
  To: Ben Hutchings; +Cc: jgarzik, netdev

Ben Hutchings wrote:
> On Fri, 2009-05-22 at 10:18 -0700, Chaitanya Lala wrote:
>   
>> The MDI-X status is a useful tool for diagnosing network
>> connectivity issues. We expose MDI-X status as a tri-state value
>> status which drivers can optionally implement.
>>
>> Signed-off-by: Chaitanya Lala <clala@riverbed.com>
>> Signed-off-by: Arthur Jones <ajones@riverbed.com>
>> ---
>>  ethtool-copy.h |    6 ++++++
>>  ethtool.c      |   13 +++++++++++++
>>  2 files changed, 19 insertions(+), 0 deletions(-)
>>
>> diff --git a/ethtool-copy.h b/ethtool-copy.h
>> index 3ca4e2c..d3e1524 100644
>> --- a/ethtool-copy.h
>> +++ b/ethtool-copy.h
>> @@ -28,6 +28,7 @@ struct ethtool_cmd {
>>  	__u16	speed_hi;
>>  	__u16	reserved2;
>>  	__u32	reserved[3];
>> +	__u8	is_mdix;	/* Tri-state value to expose MDI-X */
>>  };
>>     
> [...]
>
> No, you cannot change the size of this structure either.
>   
Hi,

In that case please suggest a way to do this.

Thanks,
Chaitanya
> Ben.
>
>   


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/1] ethtool: Expose MDI-X status
  2009-05-26 15:34         ` Chaitanya Lala
@ 2009-05-26 16:02           ` Ben Hutchings
  2009-05-27 23:13             ` Chaitanya Lala
                               ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Ben Hutchings @ 2009-05-26 16:02 UTC (permalink / raw)
  To: Chaitanya Lala; +Cc: jgarzik, netdev

On Tue, 2009-05-26 at 08:34 -0700, Chaitanya Lala wrote:
> Ben Hutchings wrote:
> > On Fri, 2009-05-22 at 10:18 -0700, Chaitanya Lala wrote:
> >   
> >> The MDI-X status is a useful tool for diagnosing network
> >> connectivity issues. We expose MDI-X status as a tri-state value
> >> status which drivers can optionally implement.
> >>
> >> Signed-off-by: Chaitanya Lala <clala@riverbed.com>
> >> Signed-off-by: Arthur Jones <ajones@riverbed.com>
> >> ---
> >>  ethtool-copy.h |    6 ++++++
> >>  ethtool.c      |   13 +++++++++++++
> >>  2 files changed, 19 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/ethtool-copy.h b/ethtool-copy.h
> >> index 3ca4e2c..d3e1524 100644
> >> --- a/ethtool-copy.h
> >> +++ b/ethtool-copy.h
> >> @@ -28,6 +28,7 @@ struct ethtool_cmd {
> >>  	__u16	speed_hi;
> >>  	__u16	reserved2;
> >>  	__u32	reserved[3];
> >> +	__u8	is_mdix;	/* Tri-state value to expose MDI-X */
> >>  };
> >>     
> > [...]
> >
> > No, you cannot change the size of this structure either.
> >   
> Hi,
> 
> In that case please suggest a way to do this.

There are 14 bytes at the end of the structure reserved for future
expansion.  You could take one of them.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 1/1] ethtool: Expose MDI-X status
  2009-05-26 16:02           ` Ben Hutchings
@ 2009-05-27 23:13             ` Chaitanya Lala
  2009-05-27 23:15             ` [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala
  2009-06-10 19:11             ` Re-submit [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
  2 siblings, 0 replies; 22+ messages in thread
From: Chaitanya Lala @ 2009-05-27 23:13 UTC (permalink / raw)
  To: jgarzik; +Cc: netdev

The MDI-X status is a useful tool for diagnosing network
connectivity issues. We expose MDI-X status as a tri-state value
status which drivers can optionally implement.

Signed-off-by: Chaitanya Lala <clala@riverbed.com>
Signed-off-by: Arthur Jones <ajones@riverbed.com>
---
 ethtool-copy.h |    8 +++++++-
 ethtool.c      |   13 +++++++++++++
 2 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/ethtool-copy.h b/ethtool-copy.h
index 3ca4e2c..48fb1d3 100644
--- a/ethtool-copy.h
+++ b/ethtool-copy.h
@@ -26,7 +26,8 @@ struct ethtool_cmd {
 	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
 	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
 	__u16	speed_hi;
-	__u16	reserved2;
+	__u8	is_mdix;
+	__u8	reserved2;
 	__u32	reserved[3];
 };
 
@@ -416,6 +417,11 @@ struct ethtool_rxnfc {
 #define AUTONEG_DISABLE		0x00
 #define AUTONEG_ENABLE		0x01
 
+/* Mode MDI or MDI-X */
+#define MDI_INVALID 0x00
+#define MDI         0x01
+#define MDI_X       0x02
+
 /* Wake-On-Lan options. */
 #define WAKE_PHY		(1 << 0)
 #define WAKE_UCAST		(1 << 1)
diff --git a/ethtool.c b/ethtool.c
index 0110682..bf12168 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -964,6 +964,19 @@ static int dump_ecmd(struct ethtool_cmd *ep)
 	fprintf(stdout, "	Auto-negotiation: %s\n",
 		(ep->autoneg == AUTONEG_DISABLE) ?
 		"off" : "on");
+
+	switch (ep->is_mdix) {
+	case MDI:
+		fprintf(stdout, "	MDI-X: off\n");
+		break;
+	case MDI_X:
+		fprintf(stdout, "	MDI-X: on\n");
+		break;
+	default:
+		fprintf(stdout, "	MDI-X: Unknown\n");
+		break;
+	}
+
 	return 0;
 }
 
-- 
1.6.0.4


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-05-26 16:02           ` Ben Hutchings
  2009-05-27 23:13             ` Chaitanya Lala
@ 2009-05-27 23:15             ` Chaitanya Lala
  2009-06-02 23:02               ` Jeff Kirsher
  2009-06-03 17:34               ` Ben Hutchings
  2009-06-10 19:11             ` Re-submit [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
  2 siblings, 2 replies; 22+ messages in thread
From: Chaitanya Lala @ 2009-05-27 23:15 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev

Ethtool is a standard way of getting information about ethernet
interfaces. We enhance ethtool kernel interface & e1000e to make
the MDI-X status readable via ethtool in userspace.

Signed-off-by: Chaitanya Lala <clala@riverbed.com>
Signed-off-by: Arthur Jones <ajones@riverbed.com>
---
 drivers/net/e1000e/ethtool.c |    8 ++++++++
 include/linux/ethtool.h      |    8 +++++++-
 2 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
index 4d25ede..b6aea6b 100644
--- a/drivers/net/e1000e/ethtool.c
+++ b/drivers/net/e1000e/ethtool.c
@@ -167,6 +167,14 @@ static int e1000_get_settings(struct net_device *netdev,
 
 	ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) ||
 			 hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE;
+
+	/* MDI-X => 2; MDI =>1; Invalid =>0 */
+	if ((hw->phy.media_type == e1000_media_type_copper) &&
+		!hw->mac.get_link_status)
+		ecmd->is_mdix = hw->phy.is_mdix ? MDI_X : MDI;
+	else
+		ecmd->is_mdix = MDI_INVALID;
+
 	return 0;
 }
 
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 380b042..b553bdb 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -30,7 +30,8 @@ struct ethtool_cmd {
 	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
 	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
 	__u16	speed_hi;
-	__u16	reserved2;
+	__u8	is_mdix;
+	__u8	reserved2;
 	__u32	lp_advertising;	/* Features the link partner advertises */
 	__u32	reserved[2];
 };
@@ -632,6 +633,11 @@ struct ethtool_ops {
 #define AUTONEG_DISABLE		0x00
 #define AUTONEG_ENABLE		0x01
 
+/* Mode MDI or MDI-X */
+#define MDI_INVALID 0x00
+#define MDI         0x01
+#define MDI_X       0x02
+
 /* Wake-On-Lan options. */
 #define WAKE_PHY		(1 << 0)
 #define WAKE_UCAST		(1 << 1)
-- 
1.6.0.4


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-05-27 23:15             ` [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala
@ 2009-06-02 23:02               ` Jeff Kirsher
  2009-06-03 17:34               ` Ben Hutchings
  1 sibling, 0 replies; 22+ messages in thread
From: Jeff Kirsher @ 2009-06-02 23:02 UTC (permalink / raw)
  To: Chaitanya Lala; +Cc: netdev

On Wed, May 27, 2009 at 4:15 PM, Chaitanya Lala <clala@riverbed.com> wrote:
> Ethtool is a standard way of getting information about ethernet
> interfaces. We enhance ethtool kernel interface & e1000e to make
> the MDI-X status readable via ethtool in userspace.
>
> Signed-off-by: Chaitanya Lala <clala@riverbed.com>
> Signed-off-by: Arthur Jones <ajones@riverbed.com>
> ---
>  drivers/net/e1000e/ethtool.c |    8 ++++++++
>  include/linux/ethtool.h      |    8 +++++++-
>  2 files changed, 15 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
> index 4d25ede..b6aea6b 100644
> --- a/drivers/net/e1000e/ethtool.c
> +++ b/drivers/net/e1000e/ethtool.c
> @@ -167,6 +167,14 @@ static int e1000_get_settings(struct net_device *netdev,
>
>        ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) ||
>                         hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE;
> +
> +       /* MDI-X => 2; MDI =>1; Invalid =>0 */
> +       if ((hw->phy.media_type == e1000_media_type_copper) &&
> +               !hw->mac.get_link_status)
> +               ecmd->is_mdix = hw->phy.is_mdix ? MDI_X : MDI;
> +       else
> +               ecmd->is_mdix = MDI_INVALID;
> +
>        return 0;
>  }
>
> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
> index 380b042..b553bdb 100644
> --- a/include/linux/ethtool.h
> +++ b/include/linux/ethtool.h
> @@ -30,7 +30,8 @@ struct ethtool_cmd {
>        __u32   maxtxpkt;       /* Tx pkts before generating tx int */
>        __u32   maxrxpkt;       /* Rx pkts before generating rx int */
>        __u16   speed_hi;
> -       __u16   reserved2;
> +       __u8    is_mdix;
> +       __u8    reserved2;
>        __u32   lp_advertising; /* Features the link partner advertises */
>        __u32   reserved[2];
>  };
> @@ -632,6 +633,11 @@ struct ethtool_ops {
>  #define AUTONEG_DISABLE                0x00
>  #define AUTONEG_ENABLE         0x01
>
> +/* Mode MDI or MDI-X */
> +#define MDI_INVALID 0x00
> +#define MDI         0x01
> +#define MDI_X       0x02
> +
>  /* Wake-On-Lan options. */
>  #define WAKE_PHY               (1 << 0)
>  #define WAKE_UCAST             (1 << 1)
> --
> 1.6.0.4
>

I have pulled this into my queue for testing and submission, thanks.

-- 
Cheers,
Jeff

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-05-27 23:15             ` [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala
  2009-06-02 23:02               ` Jeff Kirsher
@ 2009-06-03 17:34               ` Ben Hutchings
  2009-06-03 17:45                 ` Chaitanya Lala
  1 sibling, 1 reply; 22+ messages in thread
From: Ben Hutchings @ 2009-06-03 17:34 UTC (permalink / raw)
  To: Chaitanya Lala; +Cc: jeffrey.t.kirsher, netdev

On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote:
[...]
> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
> index 380b042..b553bdb 100644
> --- a/include/linux/ethtool.h
> +++ b/include/linux/ethtool.h
> @@ -30,7 +30,8 @@ struct ethtool_cmd {
>  	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
>  	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
>  	__u16	speed_hi;
> -	__u16	reserved2;
> +	__u8	is_mdix;

Since this is specific to Ethernet over twisted-pair cable, could you
please rename this to "eth_tp_mdix".

> +	__u8	reserved2;
>  	__u32	lp_advertising;	/* Features the link partner advertises */
>  	__u32	reserved[2];
>  };
> @@ -632,6 +633,11 @@ struct ethtool_ops {
>  #define AUTONEG_DISABLE		0x00
>  #define AUTONEG_ENABLE		0x01
>  
> +/* Mode MDI or MDI-X */
> +#define MDI_INVALID 0x00
> +#define MDI         0x01
> +#define MDI_X       0x02
[...]

Similarly, please add the prefix "ETH_TP_" to these.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-06-03 17:34               ` Ben Hutchings
@ 2009-06-03 17:45                 ` Chaitanya Lala
  2009-06-03 21:04                   ` Jeff Kirsher
  0 siblings, 1 reply; 22+ messages in thread
From: Chaitanya Lala @ 2009-06-03 17:45 UTC (permalink / raw)
  To: Ben Hutchings; +Cc: jeffrey.t.kirsher, netdev

Ben Hutchings wrote:
> On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote:
> [...]
>   
>> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
>> index 380b042..b553bdb 100644
>> --- a/include/linux/ethtool.h
>> +++ b/include/linux/ethtool.h
>> @@ -30,7 +30,8 @@ struct ethtool_cmd {
>>  	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
>>  	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
>>  	__u16	speed_hi;
>> -	__u16	reserved2;
>> +	__u8	is_mdix;
>>     
>
> Since this is specific to Ethernet over twisted-pair cable, could you
> please rename this to "eth_tp_mdix".
>   
Will do for sure.
>   
>> +	__u8	reserved2;
>>  	__u32	lp_advertising;	/* Features the link partner advertises */
>>  	__u32	reserved[2];
>>  };
>> @@ -632,6 +633,11 @@ struct ethtool_ops {
>>  #define AUTONEG_DISABLE		0x00
>>  #define AUTONEG_ENABLE		0x01
>>  
>> +/* Mode MDI or MDI-X */
>> +#define MDI_INVALID 0x00
>> +#define MDI         0x01
>> +#define MDI_X       0x02
>>     
> [...]
>
> Similarly, please add the prefix "ETH_TP_" to these.
>   
Sure.
> Ben.
>
>   


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-06-03 17:45                 ` Chaitanya Lala
@ 2009-06-03 21:04                   ` Jeff Kirsher
  2009-06-03 21:19                     ` Chaitanya Lala
  0 siblings, 1 reply; 22+ messages in thread
From: Jeff Kirsher @ 2009-06-03 21:04 UTC (permalink / raw)
  To: Chaitanya Lala; +Cc: Ben Hutchings, netdev

On Wed, Jun 3, 2009 at 10:45 AM, Chaitanya Lala <clala@riverbed.com> wrote:
> Ben Hutchings wrote:
>>
>> On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote:
>> [...]
>>
>>>
>>> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
>>> index 380b042..b553bdb 100644
>>> --- a/include/linux/ethtool.h
>>> +++ b/include/linux/ethtool.h
>>> @@ -30,7 +30,8 @@ struct ethtool_cmd {
>>>        __u32   maxtxpkt;       /* Tx pkts before generating tx int */
>>>        __u32   maxrxpkt;       /* Rx pkts before generating rx int */
>>>        __u16   speed_hi;
>>> -       __u16   reserved2;
>>> +       __u8    is_mdix;
>>>
>>
>> Since this is specific to Ethernet over twisted-pair cable, could you
>> please rename this to "eth_tp_mdix".
>>
>
> Will do for sure.
>>
>>
>>>
>>> +       __u8    reserved2;
>>>        __u32   lp_advertising; /* Features the link partner advertises */
>>>        __u32   reserved[2];
>>>  };
>>> @@ -632,6 +633,11 @@ struct ethtool_ops {
>>>  #define AUTONEG_DISABLE                0x00
>>>  #define AUTONEG_ENABLE         0x01
>>>  +/* Mode MDI or MDI-X */
>>> +#define MDI_INVALID 0x00
>>> +#define MDI         0x01
>>> +#define MDI_X       0x02
>>>
>>
>> [...]
>>
>> Similarly, please add the prefix "ETH_TP_" to these.
>>
>
> Sure.

Chaitanya, I have made the requested changes to the patch in my tree.

-- 
Cheers,
Jeff

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-06-03 21:04                   ` Jeff Kirsher
@ 2009-06-03 21:19                     ` Chaitanya Lala
  2009-06-03 21:31                       ` Jeff Kirsher
  0 siblings, 1 reply; 22+ messages in thread
From: Chaitanya Lala @ 2009-06-03 21:19 UTC (permalink / raw)
  To: Jeff Kirsher; +Cc: Ben Hutchings, netdev

Jeff Kirsher wrote:
> On Wed, Jun 3, 2009 at 10:45 AM, Chaitanya Lala <clala@riverbed.com> wrote:
>   
>> Ben Hutchings wrote:
>>     
>>> On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote:
>>> [...]
>>>
>>>       
>>>> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
>>>> index 380b042..b553bdb 100644
>>>> --- a/include/linux/ethtool.h
>>>> +++ b/include/linux/ethtool.h
>>>> @@ -30,7 +30,8 @@ struct ethtool_cmd {
>>>>        __u32   maxtxpkt;       /* Tx pkts before generating tx int */
>>>>        __u32   maxrxpkt;       /* Rx pkts before generating rx int */
>>>>        __u16   speed_hi;
>>>> -       __u16   reserved2;
>>>> +       __u8    is_mdix;
>>>>
>>>>         
>>> Since this is specific to Ethernet over twisted-pair cable, could you
>>> please rename this to "eth_tp_mdix".
>>>
>>>       
>> Will do for sure.
>>     
>>>       
>>>> +       __u8    reserved2;
>>>>        __u32   lp_advertising; /* Features the link partner advertises */
>>>>        __u32   reserved[2];
>>>>  };
>>>> @@ -632,6 +633,11 @@ struct ethtool_ops {
>>>>  #define AUTONEG_DISABLE                0x00
>>>>  #define AUTONEG_ENABLE         0x01
>>>>  +/* Mode MDI or MDI-X */
>>>> +#define MDI_INVALID 0x00
>>>> +#define MDI         0x01
>>>> +#define MDI_X       0x02
>>>>
>>>>         
>>> [...]
>>>
>>> Similarly, please add the prefix "ETH_TP_" to these.
>>>
>>>       
>> Sure.
>>     
>
> Chaitanya, I have made the requested changes to the patch in my tree.
>
>   
Thanks. I am very new to procedure of submitting kernel patches. Just 
want to make sure if this means that I not need to send another patch to 
netdev ?

Thanks,
Chaitanya

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-06-03 21:19                     ` Chaitanya Lala
@ 2009-06-03 21:31                       ` Jeff Kirsher
  2009-06-03 21:41                         ` Chaitanya Lala
  0 siblings, 1 reply; 22+ messages in thread
From: Jeff Kirsher @ 2009-06-03 21:31 UTC (permalink / raw)
  To: Chaitanya Lala; +Cc: Ben Hutchings, netdev

On Wed, Jun 3, 2009 at 2:19 PM, Chaitanya Lala <clala@riverbed.com> wrote:
> Jeff Kirsher wrote:
>>
>> On Wed, Jun 3, 2009 at 10:45 AM, Chaitanya Lala <clala@riverbed.com>
>> wrote:
>>
>>>
>>> Ben Hutchings wrote:
>>>
>>>>
>>>> On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote:
>>>> [...]
>>>>
>>>>
>>>>>
>>>>> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
>>>>> index 380b042..b553bdb 100644
>>>>> --- a/include/linux/ethtool.h
>>>>> +++ b/include/linux/ethtool.h
>>>>> @@ -30,7 +30,8 @@ struct ethtool_cmd {
>>>>>       __u32   maxtxpkt;       /* Tx pkts before generating tx int */
>>>>>       __u32   maxrxpkt;       /* Rx pkts before generating rx int */
>>>>>       __u16   speed_hi;
>>>>> -       __u16   reserved2;
>>>>> +       __u8    is_mdix;
>>>>>
>>>>>
>>>>
>>>> Since this is specific to Ethernet over twisted-pair cable, could you
>>>> please rename this to "eth_tp_mdix".
>>>>
>>>>
>>>
>>> Will do for sure.
>>>
>>>>
>>>>
>>>>>
>>>>> +       __u8    reserved2;
>>>>>       __u32   lp_advertising; /* Features the link partner advertises
>>>>> */
>>>>>       __u32   reserved[2];
>>>>>  };
>>>>> @@ -632,6 +633,11 @@ struct ethtool_ops {
>>>>>  #define AUTONEG_DISABLE                0x00
>>>>>  #define AUTONEG_ENABLE         0x01
>>>>>  +/* Mode MDI or MDI-X */
>>>>> +#define MDI_INVALID 0x00
>>>>> +#define MDI         0x01
>>>>> +#define MDI_X       0x02
>>>>>
>>>>>
>>>>
>>>> [...]
>>>>
>>>> Similarly, please add the prefix "ETH_TP_" to these.
>>>>
>>>>
>>>
>>> Sure.
>>>
>>
>> Chaitanya, I have made the requested changes to the patch in my tree.
>>
>>
>
> Thanks. I am very new to procedure of submitting kernel patches. Just want
> to make sure if this means that I not need to send another patch to netdev ?
>
> Thanks,
> Chaitanya
> --

When there are changes requested on a patch, yes the patch needs to be
re-submitted to netdev.  Since I will be pushing this patch along with
other patches for Intel drivers to Dave once testing has been
completed, there is no need for you to re-submit this patch.  I have
already sucked in the changes that Ben has requested into the patch
that is in my tree.

-- 
Cheers,
Jeff

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change
  2009-06-03 21:31                       ` Jeff Kirsher
@ 2009-06-03 21:41                         ` Chaitanya Lala
  0 siblings, 0 replies; 22+ messages in thread
From: Chaitanya Lala @ 2009-06-03 21:41 UTC (permalink / raw)
  To: Jeff Kirsher; +Cc: Ben Hutchings, netdev

Jeff Kirsher wrote:
> On Wed, Jun 3, 2009 at 2:19 PM, Chaitanya Lala <clala@riverbed.com> wrote:
>   
>> Jeff Kirsher wrote:
>>     
>>> On Wed, Jun 3, 2009 at 10:45 AM, Chaitanya Lala <clala@riverbed.com>
>>> wrote:
>>>
>>>       
>>>> Ben Hutchings wrote:
>>>>
>>>>         
>>>>> On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote:
>>>>> [...]
>>>>>
>>>>>
>>>>>           
>>>>>> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
>>>>>> index 380b042..b553bdb 100644
>>>>>> --- a/include/linux/ethtool.h
>>>>>> +++ b/include/linux/ethtool.h
>>>>>> @@ -30,7 +30,8 @@ struct ethtool_cmd {
>>>>>>       __u32   maxtxpkt;       /* Tx pkts before generating tx int */
>>>>>>       __u32   maxrxpkt;       /* Rx pkts before generating rx int */
>>>>>>       __u16   speed_hi;
>>>>>> -       __u16   reserved2;
>>>>>> +       __u8    is_mdix;
>>>>>>
>>>>>>
>>>>>>             
>>>>> Since this is specific to Ethernet over twisted-pair cable, could you
>>>>> please rename this to "eth_tp_mdix".
>>>>>
>>>>>
>>>>>           
>>>> Will do for sure.
>>>>
>>>>         
>>>>>           
>>>>>> +       __u8    reserved2;
>>>>>>       __u32   lp_advertising; /* Features the link partner advertises
>>>>>> */
>>>>>>       __u32   reserved[2];
>>>>>>  };
>>>>>> @@ -632,6 +633,11 @@ struct ethtool_ops {
>>>>>>  #define AUTONEG_DISABLE                0x00
>>>>>>  #define AUTONEG_ENABLE         0x01
>>>>>>  +/* Mode MDI or MDI-X */
>>>>>> +#define MDI_INVALID 0x00
>>>>>> +#define MDI         0x01
>>>>>> +#define MDI_X       0x02
>>>>>>
>>>>>>
>>>>>>             
>>>>> [...]
>>>>>
>>>>> Similarly, please add the prefix "ETH_TP_" to these.
>>>>>
>>>>>
>>>>>           
>>>> Sure.
>>>>
>>>>         
>>> Chaitanya, I have made the requested changes to the patch in my tree.
>>>
>>>
>>>       
>> Thanks. I am very new to procedure of submitting kernel patches. Just want
>> to make sure if this means that I not need to send another patch to netdev ?
>>
>> Thanks,
>> Chaitanya
>> --
>>     
>
> When there are changes requested on a patch, yes the patch needs to be
> re-submitted to netdev.  Since I will be pushing this patch along with
> other patches for Intel drivers to Dave once testing has been
> completed, there is no need for you to re-submit this patch.  I have
> already sucked in the changes that Ben has requested into the patch
> that is in my tree.
>
>   
Thanks for the clarification.

Chaitanya


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re-submit [PATCH 1/1] ethtool: Expose MDI-X status
  2009-05-26 16:02           ` Ben Hutchings
  2009-05-27 23:13             ` Chaitanya Lala
  2009-05-27 23:15             ` [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala
@ 2009-06-10 19:11             ` Chaitanya Lala
  2009-06-10 19:22               ` Ben Hutchings
  2 siblings, 1 reply; 22+ messages in thread
From: Chaitanya Lala @ 2009-06-10 19:11 UTC (permalink / raw)
  To: jgarzik; +Cc: jeff, netdev

The MDI-X status is a useful tool for diagnosing network
connectivity issues. We expose MDI-X status as a tri-state value
status which drivers can optionally implement.

Signed-off-by: Chaitanya Lala <clala@riverbed.com>
Signed-off-by: Arthur Jones <ajones@riverbed.com>
---
 ethtool-copy.h |    8 +++++++-
 ethtool.c      |   13 +++++++++++++
 2 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/ethtool-copy.h b/ethtool-copy.h
index 3ca4e2c..48fb1d3 100644
--- a/ethtool-copy.h
+++ b/ethtool-copy.h
@@ -26,7 +26,8 @@ struct ethtool_cmd {
 	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
 	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
 	__u16	speed_hi;
-	__u16	reserved2;
+	__u8	is_mdix;
+	__u8	reserved2;
 	__u32	reserved[3];
 };
 
@@ -416,6 +417,11 @@ struct ethtool_rxnfc {
 #define AUTONEG_DISABLE		0x00
 #define AUTONEG_ENABLE		0x01
 
+/* Mode MDI or MDI-X */
+#define MDI_INVALID 0x00
+#define MDI         0x01
+#define MDI_X       0x02
+
 /* Wake-On-Lan options. */
 #define WAKE_PHY		(1 << 0)
 #define WAKE_UCAST		(1 << 1)
diff --git a/ethtool.c b/ethtool.c
index 0110682..bf12168 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -964,6 +964,19 @@ static int dump_ecmd(struct ethtool_cmd *ep)
 	fprintf(stdout, "	Auto-negotiation: %s\n",
 		(ep->autoneg == AUTONEG_DISABLE) ?
 		"off" : "on");
+
+	switch (ep->is_mdix) {
+	case MDI:
+		fprintf(stdout, "	MDI-X: off\n");
+		break;
+	case MDI_X:
+		fprintf(stdout, "	MDI-X: on\n");
+		break;
+	default:
+		fprintf(stdout, "	MDI-X: Unknown\n");
+		break;
+	}
+
 	return 0;
 }
 
-- 
1.6.0.4


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: Re-submit [PATCH 1/1] ethtool: Expose MDI-X status
  2009-06-10 19:11             ` Re-submit [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
@ 2009-06-10 19:22               ` Ben Hutchings
  0 siblings, 0 replies; 22+ messages in thread
From: Ben Hutchings @ 2009-06-10 19:22 UTC (permalink / raw)
  To: Chaitanya Lala; +Cc: jgarzik, jeff, netdev

[-- Attachment #1: Type: text/plain, Size: 1548 bytes --]

On Wed, 2009-06-10 at 12:11 -0700, Chaitanya Lala wrote:
> The MDI-X status is a useful tool for diagnosing network
> connectivity issues. We expose MDI-X status as a tri-state value
> status which drivers can optionally implement.
> 
> Signed-off-by: Chaitanya Lala <clala@riverbed.com>
> Signed-off-by: Arthur Jones <ajones@riverbed.com>
> ---
>  ethtool-copy.h |    8 +++++++-
>  ethtool.c      |   13 +++++++++++++
>  2 files changed, 20 insertions(+), 1 deletions(-)
> 
> diff --git a/ethtool-copy.h b/ethtool-copy.h
> index 3ca4e2c..48fb1d3 100644
> --- a/ethtool-copy.h
> +++ b/ethtool-copy.h
> @@ -26,7 +26,8 @@ struct ethtool_cmd {
>  	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
>  	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
>  	__u16	speed_hi;
> -	__u16	reserved2;
> +	__u8	is_mdix;
> +	__u8	reserved2;
>  	__u32	reserved[3];
>  };
>  
> @@ -416,6 +417,11 @@ struct ethtool_rxnfc {
>  #define AUTONEG_DISABLE		0x00
>  #define AUTONEG_ENABLE		0x01
>  
> +/* Mode MDI or MDI-X */
> +#define MDI_INVALID 0x00
> +#define MDI         0x01
> +#define MDI_X       0x02
> +
>  /* Wake-On-Lan options. */
>  #define WAKE_PHY		(1 << 0)
>  #define WAKE_UCAST		(1 << 1)
[...]

This doesn't match the changes in <linux/ethtool.h>.  I'm attaching the
patch I applied locally for testing MDI-X reporting in sfc.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

[-- Attachment #2: 0001-ethtool-Expose-MDI-X-status.patch --]
[-- Type: application/mbox, Size: 1883 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2009-06-10 19:22 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <F169D4F5E1F1974DBFAFABF47F60C10A33527C9D@orsmsx507.amr.corp.intel.com>
2009-05-22 14:54 ` [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
2009-05-22 15:02   ` Stephen Hemminger
2009-05-22 15:03   ` Ben Hutchings
2009-05-22 14:55 ` [net-next-2.6 PATCH 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala
2009-05-22 15:05   ` Ben Hutchings
2009-05-22 15:24     ` Chaitanya Lala
2009-05-22 17:18     ` [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
2009-05-23  1:04       ` Ben Hutchings
2009-05-26 15:34         ` Chaitanya Lala
2009-05-26 16:02           ` Ben Hutchings
2009-05-27 23:13             ` Chaitanya Lala
2009-05-27 23:15             ` [PATCH net-next-2.6 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala
2009-06-02 23:02               ` Jeff Kirsher
2009-06-03 17:34               ` Ben Hutchings
2009-06-03 17:45                 ` Chaitanya Lala
2009-06-03 21:04                   ` Jeff Kirsher
2009-06-03 21:19                     ` Chaitanya Lala
2009-06-03 21:31                       ` Jeff Kirsher
2009-06-03 21:41                         ` Chaitanya Lala
2009-06-10 19:11             ` Re-submit [PATCH 1/1] ethtool: Expose MDI-X status Chaitanya Lala
2009-06-10 19:22               ` Ben Hutchings
2009-05-22 17:20     ` [net-next-2.6 PATCH 1/1] e1000e: Expose MDI-X status via ethtool change Chaitanya Lala

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.