| 232 | } |
| 233 | |
| 234 | void 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 | } |
no test coverage detected