Skip to content

Commit ad40508

Browse files
authored
Merge pull request #984 from muthukumars-arrcus/sfp_softselect_multirate
Enhanced the ONLP_SFP_CONTROL for 'Soft Rate_Select Select' in Optional Status/Control Bits as per SFF-8472 Specification for Management Interface for SFP+
2 parents 800e123 + 83b4174 commit ad40508

4 files changed

Lines changed: 13 additions & 3 deletions

File tree

packages/base/any/onlp/src/onlp/module/inc/onlp/sfp.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ typedef enum onlp_sfp_control_e {
4141
ONLP_SFP_CONTROL_TX_DISABLE,
4242
ONLP_SFP_CONTROL_TX_DISABLE_CHANNEL,
4343
ONLP_SFP_CONTROL_LP_MODE,
44+
ONLP_SFP_CONTROL_SOFT_RATE_SELECT,
4445
ONLP_SFP_CONTROL_POWER_OVERRIDE,
4546
ONLP_SFP_CONTROL_LAST = ONLP_SFP_CONTROL_POWER_OVERRIDE,
4647
ONLP_SFP_CONTROL_COUNT,
@@ -58,7 +59,8 @@ typedef enum onlp_sfp_control_flag_e {
5859
ONLP_SFP_CONTROL_FLAG_TX_DISABLE = (1 << 4),
5960
ONLP_SFP_CONTROL_FLAG_TX_DISABLE_CHANNEL = (1 << 5),
6061
ONLP_SFP_CONTROL_FLAG_LP_MODE = (1 << 6),
61-
ONLP_SFP_CONTROL_FLAG_POWER_OVERRIDE = (1 << 7),
62+
ONLP_SFP_CONTROL_FLAG_SOFT_RATE_SELECT = (1 << 7),
63+
ONLP_SFP_CONTROL_FLAG_POWER_OVERRIDE = (1 << 8),
6264
} onlp_sfp_control_flag_t;
6365
/* <auto.end.enum(tag:sfp2).define> */
6466

@@ -242,6 +244,7 @@ int onlp_sfp_control_flags_get(int port, uint32_t* flags);
242244
"TX_DISABLE", \
243245
"TX_DISABLE_CHANNEL", \
244246
"LP_MODE", \
247+
"SOFT_RATE_SELECT", \
245248
"POWER_OVERRIDE", \
246249
}
247250
/** Enum names. */

packages/base/any/onlp/src/onlp/module/src/onlp_enums.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -856,6 +856,7 @@ aim_map_si_t onlp_sfp_control_map[] =
856856
{ "TX_DISABLE", ONLP_SFP_CONTROL_TX_DISABLE },
857857
{ "TX_DISABLE_CHANNEL", ONLP_SFP_CONTROL_TX_DISABLE_CHANNEL },
858858
{ "LP_MODE", ONLP_SFP_CONTROL_LP_MODE },
859+
{ "SOFT_RATE_SELECT", ONLP_SFP_CONTROL_SOFT_RATE_SELECT},
859860
{ "POWER_OVERRIDE", ONLP_SFP_CONTROL_POWER_OVERRIDE },
860861
{ NULL, 0 }
861862
};
@@ -869,6 +870,7 @@ aim_map_si_t onlp_sfp_control_desc_map[] =
869870
{ "None", ONLP_SFP_CONTROL_TX_DISABLE },
870871
{ "None", ONLP_SFP_CONTROL_TX_DISABLE_CHANNEL },
871872
{ "None", ONLP_SFP_CONTROL_LP_MODE },
873+
{ "None", ONLP_SFP_CONTROL_SOFT_RATE_SELECT },
872874
{ "None", ONLP_SFP_CONTROL_POWER_OVERRIDE },
873875
{ NULL, 0 }
874876
};
@@ -922,6 +924,7 @@ aim_map_si_t onlp_sfp_control_flag_map[] =
922924
{ "TX_DISABLE", ONLP_SFP_CONTROL_FLAG_TX_DISABLE },
923925
{ "TX_DISABLE_CHANNEL", ONLP_SFP_CONTROL_FLAG_TX_DISABLE_CHANNEL },
924926
{ "LP_MODE", ONLP_SFP_CONTROL_FLAG_LP_MODE },
927+
{ "SOFT_RATE_SELECT", ONLP_SFP_CONTROL_FLAG_SOFT_RATE_SELECT},
925928
{ "POWER_OVERRIDE", ONLP_SFP_CONTROL_FLAG_POWER_OVERRIDE },
926929
{ NULL, 0 }
927930
};
@@ -935,6 +938,7 @@ aim_map_si_t onlp_sfp_control_flag_desc_map[] =
935938
{ "None", ONLP_SFP_CONTROL_FLAG_TX_DISABLE },
936939
{ "None", ONLP_SFP_CONTROL_FLAG_TX_DISABLE_CHANNEL },
937940
{ "None", ONLP_SFP_CONTROL_FLAG_LP_MODE },
941+
{ "None", ONLP_SFP_CONTROL_FLAG_SOFT_RATE_SELECT },
938942
{ "None", ONLP_SFP_CONTROL_FLAG_POWER_OVERRIDE },
939943
{ NULL, 0 }
940944
};
@@ -1243,4 +1247,3 @@ onlp_thermal_threshold_valid(onlp_thermal_threshold_t e)
12431247
}
12441248

12451249
/* <auto.end.enum(ALL).source> */
1246-

packages/base/any/onlp/src/onlp/module/src/onlp_main.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ show_inventory__(aim_pvs_t* pvs, int database)
113113
if(status & ONLP_SFP_CONTROL_FLAG_LP_MODE) {
114114
*cp++ = 'L';
115115
}
116+
if(status & ONLP_SFP_CONTROL_FLAG_SOFT_RATE_SELECT) {
117+
*cp++ = 'M';
118+
}
116119
aim_printf(pvs, "%4d %-14s %-6s %-6.6s %-5.5s %-16.16s %-16.16s %16.16s\n",
117120
port,
118121
sff.info.module_type_name,

packages/base/any/onlp/src/onlp/module/src/sfp.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,8 @@ onlp_sfp_control_flags_get(int port, uint32_t* flags)
353353
ONLP_SFP_CONTROL_RESET_STATE,
354354
ONLP_SFP_CONTROL_RX_LOS,
355355
ONLP_SFP_CONTROL_TX_DISABLE,
356-
ONLP_SFP_CONTROL_LP_MODE
356+
ONLP_SFP_CONTROL_LP_MODE,
357+
ONLP_SFP_CONTROL_SOFT_RATE_SELECT
357358
};
358359

359360
if(flags) {

0 commit comments

Comments
 (0)