Merge pull request #404 from zhouzi88/swl-4588

support 1G-ZX optic type
This commit is contained in:
Jeffrey Townsend
2018-06-12 13:17:51 -07:00
committed by GitHub
7 changed files with 27 additions and 11 deletions

View File

@@ -105,6 +105,8 @@ sff_module_types: &sff_module_types
desc: "1GBASE-SX"
- 1G_BASE_LX:
desc: "1GBASE-LX"
- 1G_BASE_ZX:
desc: "1GBASE-ZX"
- 1G_BASE_CX:
desc: "1GBASE-CX"
- 1G_BASE_T:

View File

@@ -209,6 +209,9 @@
#define SFF8472_MEDIA_XGE_ER(idprom) \
((idprom[3] & SFF8472_CC3_XGE_BASE_ER) != 0)
#define SFF8472_MEDIA_LENGTH_ZX(idprom) \
(idprom[14] >= 70)
/*
* some CR cables identify as infiniband copper
* some CR cables identify as FC twinax

View File

@@ -128,6 +128,7 @@ typedef enum sff_module_type_e {
SFF_MODULE_TYPE_10G_BASE_SRL,
SFF_MODULE_TYPE_1G_BASE_SX,
SFF_MODULE_TYPE_1G_BASE_LX,
SFF_MODULE_TYPE_1G_BASE_ZX,
SFF_MODULE_TYPE_1G_BASE_CX,
SFF_MODULE_TYPE_1G_BASE_T,
SFF_MODULE_TYPE_100_BASE_LX,
@@ -172,6 +173,7 @@ typedef enum sff_module_type_e {
"10G_BASE_SRL", \
"1G_BASE_SX", \
"1G_BASE_LX", \
"1G_BASE_ZX", \
"1G_BASE_CX", \
"1G_BASE_T", \
"100_BASE_LX", \

View File

@@ -38,6 +38,7 @@ SFF_MEDIA_TYPE_ENTRY(10G_BASE_ZR, 10GBASE-ZR)
SFF_MEDIA_TYPE_ENTRY(10G_BASE_SRL, 10GBASE-SRL)
SFF_MEDIA_TYPE_ENTRY(1G_BASE_SX, 1GBASE-SX)
SFF_MEDIA_TYPE_ENTRY(1G_BASE_LX, 1GBASE-LX)
SFF_MEDIA_TYPE_ENTRY(1G_BASE_ZX, 1GBASE-ZX)
SFF_MEDIA_TYPE_ENTRY(1G_BASE_CX, 1GBASE-CX)
SFF_MEDIA_TYPE_ENTRY(1G_BASE_T, 1GBASE-T)
SFF_MEDIA_TYPE_ENTRY(100_BASE_LX, 100BASE-LX)
@@ -88,6 +89,7 @@ SFF_MODULE_TYPE_ENTRY(10G_BASE_ZR, 10GBASE-ZR)
SFF_MODULE_TYPE_ENTRY(10G_BASE_SRL, 10GBASE-SRL)
SFF_MODULE_TYPE_ENTRY(1G_BASE_SX, 1GBASE-SX)
SFF_MODULE_TYPE_ENTRY(1G_BASE_LX, 1GBASE-LX)
SFF_MODULE_TYPE_ENTRY(1G_BASE_ZX, 1GBASE-ZX)
SFF_MODULE_TYPE_ENTRY(1G_BASE_CX, 1GBASE-CX)
SFF_MODULE_TYPE_ENTRY(1G_BASE_T, 1GBASE-T)
SFF_MODULE_TYPE_ENTRY(100_BASE_LX, 100BASE-LX)

View File

@@ -58,11 +58,12 @@ class SFF_MODULE_TYPE(Enumeration):
_10G_BASE_SRL = 28
_1G_BASE_SX = 29
_1G_BASE_LX = 30
_1G_BASE_CX = 31
_1G_BASE_T = 32
_100_BASE_LX = 33
_100_BASE_FX = 34
_4X_MUX = 35
_1G_BASE_ZX = 31
_1G_BASE_CX = 32
_1G_BASE_T = 33
_100_BASE_LX = 34
_100_BASE_FX = 35
_4X_MUX = 36
class SFF_SFP_TYPE(Enumeration):

View File

@@ -213,8 +213,13 @@ sff_module_type_get(const uint8_t* eeprom)
return SFF_MODULE_TYPE_1G_BASE_SX;
if (SFF8472_MODULE_SFP(eeprom)
&& SFF8472_MEDIA_GBE_LX(eeprom))
return SFF_MODULE_TYPE_1G_BASE_LX;
&& SFF8472_MEDIA_GBE_LX(eeprom)) {
if (SFF8472_MEDIA_LENGTH_ZX(eeprom)) {
return SFF_MODULE_TYPE_1G_BASE_ZX;
} else {
return SFF_MODULE_TYPE_1G_BASE_LX;
}
}
if (SFF8472_MODULE_SFP(eeprom)
&& SFF8472_MEDIA_GBE_CX(eeprom))
@@ -224,10 +229,6 @@ sff_module_type_get(const uint8_t* eeprom)
&& SFF8472_MEDIA_GBE_T(eeprom))
return SFF_MODULE_TYPE_1G_BASE_T;
if (SFF8472_MODULE_SFP(eeprom)
&& SFF8472_MEDIA_GBE_LX(eeprom))
return SFF_MODULE_TYPE_1G_BASE_LX;
if (SFF8472_MODULE_SFP(eeprom)
&& SFF8472_MEDIA_CBE_LX(eeprom))
return SFF_MODULE_TYPE_100_BASE_LX;
@@ -289,6 +290,7 @@ sff_media_type_get(sff_module_type_t mt)
case SFF_MODULE_TYPE_10G_BASE_SRL:
case SFF_MODULE_TYPE_1G_BASE_SX:
case SFF_MODULE_TYPE_1G_BASE_LX:
case SFF_MODULE_TYPE_1G_BASE_ZX:
case SFF_MODULE_TYPE_100_BASE_LX:
case SFF_MODULE_TYPE_100_BASE_FX:
case SFF_MODULE_TYPE_4X_MUX:
@@ -354,6 +356,7 @@ sff_module_caps_get(sff_module_type_t mt, uint32_t *caps)
case SFF_MODULE_TYPE_1G_BASE_SX:
case SFF_MODULE_TYPE_1G_BASE_LX:
case SFF_MODULE_TYPE_1G_BASE_ZX:
case SFF_MODULE_TYPE_1G_BASE_CX:
case SFF_MODULE_TYPE_1G_BASE_T:
*caps |= SFF_MODULE_CAPS_F_1G;
@@ -790,6 +793,7 @@ sff_info_init(sff_info_t* info, sff_module_type_t mt,
case SFF_MODULE_TYPE_1G_BASE_SX:
case SFF_MODULE_TYPE_1G_BASE_LX:
case SFF_MODULE_TYPE_1G_BASE_ZX:
info->sfp_type = SFF_SFP_TYPE_SFP;
info->media_type = SFF_MEDIA_TYPE_FIBER;
info->caps = SFF_MODULE_CAPS_F_1G;

View File

@@ -162,6 +162,7 @@ aim_map_si_t sff_module_type_map[] =
{ "10G_BASE_SRL", SFF_MODULE_TYPE_10G_BASE_SRL },
{ "1G_BASE_SX", SFF_MODULE_TYPE_1G_BASE_SX },
{ "1G_BASE_LX", SFF_MODULE_TYPE_1G_BASE_LX },
{ "1G_BASE_ZX", SFF_MODULE_TYPE_1G_BASE_ZX },
{ "1G_BASE_CX", SFF_MODULE_TYPE_1G_BASE_CX },
{ "1G_BASE_T", SFF_MODULE_TYPE_1G_BASE_T },
{ "100_BASE_LX", SFF_MODULE_TYPE_100_BASE_LX },
@@ -203,6 +204,7 @@ aim_map_si_t sff_module_type_desc_map[] =
{ "10GBASE-SRL", SFF_MODULE_TYPE_10G_BASE_SRL },
{ "1GBASE-SX", SFF_MODULE_TYPE_1G_BASE_SX },
{ "1GBASE-LX", SFF_MODULE_TYPE_1G_BASE_LX },
{ "1GBASE-ZX", SFF_MODULE_TYPE_1G_BASE_ZX },
{ "1GBASE-CX", SFF_MODULE_TYPE_1G_BASE_CX },
{ "1GBASE-T", SFF_MODULE_TYPE_1G_BASE_T },
{ "100BASE-LX", SFF_MODULE_TYPE_100_BASE_LX },