[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090610191106.GA5930@clala-laptop>
Date: Wed, 10 Jun 2009 12:11:07 -0700
From: Chaitanya Lala <clala@...erbed.com>
To: jgarzik@...hat.com
Cc: jeff@...zik.org, netdev@...r.kernel.org
Subject: Re-submit [PATCH 1/1] ethtool: Expose MDI-X status
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@...erbed.com>
Signed-off-by: Arthur Jones <ajones@...erbed.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
--
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