The module EEPROM decoder shows the identity and the digital
diagnostics of a module, but not the signal status, which is
usually the first thing to check when a link does not come up.
Patches 1-2 report the SFF-8636 per-lane loss of signal,
CDR loss of lock and Tx fault flags, as ethtool does since
commit 045d8db ("sff-8636: report LOL / LOS / Tx Fault").
The code is written for DPDK, not copied from ethtool.
Patches 3-4 report the SFF-8472 Rx_LOS and TX_FAULT state
from page A2h byte 110. ethtool does not show it, so it is
split out and can be dropped independently of patches 1-2.
The SFF-8636 flags are latched and cleared on read,
so they report the events since the previous read;
the SFF-8472 bits are the current state of the pins.
The series depends on the module EEPROM decode API series and on
the testpmd decode command, which are in next-net but not in main
yet. It is based on next-net/for-main with patch 170851 applied,
so the release notes entry no longer conflicts.
Depends-on: series-39436 ("ethdev: add API to decode module EEPROM")
Depends-on: series-39455 ("ethdev: fix SFF-8472 external Rx power calibration")
Depends-on: series-39480 ("ethdev: fix SFF-8472 calibration overflow")
Depends-on: patch-170851 ("app/testpmd: add command to decode module EEPROM")
v2:
- 1/4: always report the Rx loss of signal instead of gating it on
the Tx loss of signal implemented bit. SFF-8636 Rev 2.12 Table 6-5
lists the Rx LOS flags as optional, but there is no implemented
bit for them, and a module without them reads as not flagged.
- 2/4, 4/4: set the option bits with |= in the tests.
- 3/4: use the SFF-8636 format with a single lane ("None" or
"[ Yes ]") for the same field names, which also removes the
multi-line ternaries; "also reports" in the release notes.
- rebased on next-net/for-main with patch 170851 applied.
Roman Khromenok (4):
ethdev: report SFF-8636 lane status flags
test: check SFF-8636 lane status flags
ethdev: report SFF-8472 Rx LOS and Tx fault state
test: check SFF-8472 Rx LOS and Tx fault state
app/test/test_ethdev_module_eeprom.c | 118 +++++++++++++++++++++++++
doc/guides/rel_notes/release_26_11.rst | 3 +
lib/ethdev/sff_8472.c | 19 ++++
lib/ethdev/sff_8636.c | 34 +++++++
lib/ethdev/sff_8636.h | 12 +++
lib/ethdev/sff_common.c | 25 ++++++
lib/ethdev/sff_common.h | 2 +
7 files changed, 213 insertions(+)
--
2.47.3