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

Function sff_8472_show_all

dpdk/lib/ethdev/sff_8472.c:234–280  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

232}
233
234void sff_8472_show_all(const uint8_t *data, struct rte_tel_data *d)
235{
236 struct sff_diags sd = {0};
237 const char *rx_power_string = NULL;
238 char val_string[SFF_ITEM_VAL_COMPOSE_SIZE];
239 int i;
240
241 sff_8472_parse_eeprom(data, &sd);
242
243 if (!sd.supports_dom) {
244 ssf_add_dict_string(d, "Optical diagnostics support", "No");
245 return;
246 }
247 ssf_add_dict_string(d, "Optical diagnostics support", "Yes");
248
249 SFF_SPRINT_BIAS(val_string, sd.bias_cur[SFF_MCURR]);
250 ssf_add_dict_string(d, "Laser bias current", val_string);
251
252 SFF_SPRINT_xX_PWR(val_string, sd.tx_power[SFF_MCURR]);
253 ssf_add_dict_string(d, "Laser output power", val_string);
254
255 if (!sd.rx_power_type)
256 rx_power_string = "Receiver signal OMA";
257 else
258 rx_power_string = "Receiver signal average optical power";
259
260 SFF_SPRINT_xX_PWR(val_string, sd.rx_power[SFF_MCURR]);
261 ssf_add_dict_string(d, rx_power_string, val_string);
262
263 SFF_SPRINT_TEMP(val_string, sd.sfp_temp[SFF_MCURR]);
264 ssf_add_dict_string(d, "Module temperature", val_string);
265
266 SFF_SPRINT_VCC(val_string, sd.sfp_voltage[SFF_MCURR]);
267 ssf_add_dict_string(d, "Module voltage", val_string);
268
269 ssf_add_dict_string(d, "Alarm/warning flags implemented",
270 (sd.supports_alarms ? "Yes" : "No"));
271
272 if (sd.supports_alarms) {
273 for (i = 0; sff_8472_aw_flags[i].str; ++i) {
274 ssf_add_dict_string(d, sff_8472_aw_flags[i].str,
275 data[SFF_A2_BASE + sff_8472_aw_flags[i].offset]
276 & sff_8472_aw_flags[i].value ? "On" : "Off");
277 }
278 sff_show_thresholds(sd, d);
279 }
280}

Callers 1

Calls 3

sff_8472_parse_eepromFunction · 0.85
ssf_add_dict_stringFunction · 0.85
sff_show_thresholdsFunction · 0.85

Tested by

no test coverage detected