ethtool:Reorganizing SFF-8024 fields for SFP/QSFP
This patch provides following support
a) Reorganized fields based out of SFF-8024 fields i.e. Identifier/
Encoding/Connector types which are common across SFP/SFP+ (SFF-8472)
and QSFP+/QSFP28 (SFF-8436/SFF-8636) modules into sff-common files.
b) Moving the common functions for SFP+ and QSFP+ DOM into sff-common
files
Standards for SFF-8024
a) SFF-8024 Rev 4.0 dated May 31, 2016
Signed-off-by: Vidya Sagar Ravipati <vidya@cumulusnetworks.com>
Acked-by: Bert Kenward <bkenward@solarflare.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
diff --git a/sfpid.c b/sfpid.c
index 0b5cd62..fd6415c 100644
--- a/sfpid.c
+++ b/sfpid.c
@@ -9,27 +9,11 @@
#include <stdio.h>
#include "internal.h"
+#include "sff-common.h"
static void sff8079_show_identifier(const __u8 *id)
{
- printf("\t%-41s : 0x%02x", "Identifier", id[0]);
- switch (id[0]) {
- case 0x00:
- printf(" (no module present, unknown, or unspecified)\n");
- break;
- case 0x01:
- printf(" (GBIC)\n");
- break;
- case 0x02:
- printf(" (module soldered to motherboard)\n");
- break;
- case 0x03:
- printf(" (SFP)\n");
- break;
- default:
- printf(" (reserved or unknown)\n");
- break;
- }
+ sff8024_show_identifier(id, 0);
}
static void sff8079_show_ext_identifier(const __u8 *id)
@@ -47,60 +31,7 @@
static void sff8079_show_connector(const __u8 *id)
{
- printf("\t%-41s : 0x%02x", "Connector", id[2]);
- switch (id[2]) {
- case 0x00:
- printf(" (unknown or unspecified)\n");
- break;
- case 0x01:
- printf(" (SC)\n");
- break;
- case 0x02:
- printf(" (Fibre Channel Style 1 copper)\n");
- break;
- case 0x03:
- printf(" (Fibre Channel Style 2 copper)\n");
- break;
- case 0x04:
- printf(" (BNC/TNC)\n");
- break;
- case 0x05:
- printf(" (Fibre Channel coaxial headers)\n");
- break;
- case 0x06:
- printf(" (FibreJack)\n");
- break;
- case 0x07:
- printf(" (LC)\n");
- break;
- case 0x08:
- printf(" (MT-RJ)\n");
- break;
- case 0x09:
- printf(" (MU)\n");
- break;
- case 0x0a:
- printf(" (SG)\n");
- break;
- case 0x0b:
- printf(" (Optical pigtail)\n");
- break;
- case 0x0c:
- printf(" (MPO Parallel Optic)\n");
- break;
- case 0x20:
- printf(" (HSSDC II)\n");
- break;
- case 0x21:
- printf(" (Copper pigtail)\n");
- break;
- case 0x22:
- printf(" (RJ45)\n");
- break;
- default:
- printf(" (reserved or unknown)\n");
- break;
- }
+ sff8024_show_connector(id, 2);
}
static void sff8079_show_transceiver(const __u8 *id)
@@ -241,33 +172,7 @@
static void sff8079_show_encoding(const __u8 *id)
{
- printf("\t%-41s : 0x%02x", "Encoding", id[11]);
- switch (id[11]) {
- case 0x00:
- printf(" (unspecified)\n");
- break;
- case 0x01:
- printf(" (8B/10B)\n");
- break;
- case 0x02:
- printf(" (4B/5B)\n");
- break;
- case 0x03:
- printf(" (NRZ)\n");
- break;
- case 0x04:
- printf(" (Manchester)\n");
- break;
- case 0x05:
- printf(" (SONET Scrambled)\n");
- break;
- case 0x06:
- printf(" (64B/66B)\n");
- break;
- default:
- printf(" (reserved or unknown)\n");
- break;
- }
+ sff8024_show_encoding(id, 11, ETH_MODULE_SFF_8472);
}
static void sff8079_show_rate_identifier(const __u8 *id)