MCPcopy Create free account
hub / github.com/F-Stack/f-stack / sff_8636_show_transceiver

Function sff_8636_show_transceiver

dpdk/lib/ethdev/sff_8636.c:232–439  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

230}
231
232static void sff_8636_show_transceiver(const uint8_t *data, struct rte_tel_data *d)
233{
234 static const char *name = "Transceiver type";
235 char val_string[SFF_ITEM_VAL_COMPOSE_SIZE];
236
237 snprintf(val_string, sizeof(val_string), "0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x",
238 data[SFF_8636_ETHERNET_COMP_OFFSET],
239 data[SFF_8636_SONET_COMP_OFFSET],
240 data[SFF_8636_SAS_COMP_OFFSET],
241 data[SFF_8636_GIGE_COMP_OFFSET],
242 data[SFF_8636_FC_LEN_OFFSET],
243 data[SFF_8636_FC_TECH_OFFSET],
244 data[SFF_8636_FC_TRANS_MEDIA_OFFSET],
245 data[SFF_8636_FC_SPEED_OFFSET]);
246 ssf_add_dict_string(d, "Transceiver codes", val_string);
247
248 /* 10G/40G Ethernet Compliance Codes */
249 if (data[SFF_8636_ETHERNET_COMP_OFFSET] & SFF_8636_ETHERNET_10G_LRM)
250 ssf_add_dict_string(d, name, "10G Ethernet: 10G Base-LRM");
251 if (data[SFF_8636_ETHERNET_COMP_OFFSET] & SFF_8636_ETHERNET_10G_LR)
252 ssf_add_dict_string(d, name, "10G Ethernet: 10G Base-LR");
253 if (data[SFF_8636_ETHERNET_COMP_OFFSET] & SFF_8636_ETHERNET_10G_SR)
254 ssf_add_dict_string(d, name, "10G Ethernet: 10G Base-SR");
255 if (data[SFF_8636_ETHERNET_COMP_OFFSET] & SFF_8636_ETHERNET_40G_CR4)
256 ssf_add_dict_string(d, name, "40G Ethernet: 40G Base-CR4");
257 if (data[SFF_8636_ETHERNET_COMP_OFFSET] & SFF_8636_ETHERNET_40G_SR4)
258 ssf_add_dict_string(d, name, "40G Ethernet: 40G Base-SR4");
259 if (data[SFF_8636_ETHERNET_COMP_OFFSET] & SFF_8636_ETHERNET_40G_LR4)
260 ssf_add_dict_string(d, name, "40G Ethernet: 40G Base-LR4");
261 if (data[SFF_8636_ETHERNET_COMP_OFFSET] & SFF_8636_ETHERNET_40G_ACTIVE)
262 ssf_add_dict_string(d, name, "40G Ethernet: 40G Active Cable (XLPPI)");
263
264 /* Extended Specification Compliance Codes from SFF-8024 */
265 if (data[SFF_8636_ETHERNET_COMP_OFFSET] & SFF_8636_ETHERNET_RSRVD) {
266 switch (data[SFF_8636_OPTION_1_OFFSET]) {
267 case SFF_8636_ETHERNET_UNSPECIFIED:
268 ssf_add_dict_string(d, name, "(reserved or unknown)");
269 break;
270 case SFF_8636_ETHERNET_100G_AOC:
271 ssf_add_dict_string(d, name,
272 "100G Ethernet: 100G AOC or 25GAUI C2M AOC with worst BER of 5x10^(-5)");
273 break;
274 case SFF_8636_ETHERNET_100G_SR4:
275 ssf_add_dict_string(d, name,
276 "100G Ethernet: 100G Base-SR4 or 25GBase-SR");
277 break;
278 case SFF_8636_ETHERNET_100G_LR4:
279 ssf_add_dict_string(d, name, "100G Ethernet: 100G Base-LR4");
280 break;
281 case SFF_8636_ETHERNET_100G_ER4:
282 ssf_add_dict_string(d, name, "100G Ethernet: 100G Base-ER4");
283 break;
284 case SFF_8636_ETHERNET_100G_SR10:
285 ssf_add_dict_string(d, name, "100G Ethernet: 100G Base-SR10");
286 break;
287 case SFF_8636_ETHERNET_100G_CWDM4_FEC:
288 ssf_add_dict_string(d, name, "100G Ethernet: 100G CWDM4 MSA with FEC");
289 break;

Callers 1

sff_8636_show_allFunction · 0.85

Calls 2

snprintfFunction · 0.85
ssf_add_dict_stringFunction · 0.85

Tested by

no test coverage detected