Netdev List
 help / color / mirror / Atom feed
* [PATCH ethtool-next 0/8] ethtool: Add support for CMIS diagnostic information
@ 2021-11-23 17:40 Ido Schimmel
  2021-11-23 17:40 ` [PATCH ethtool-next 1/8] sff-8636: Use an SFF-8636 specific define for maximum number of channels Ido Schimmel
                   ` (9 more replies)
  0 siblings, 10 replies; 14+ messages in thread
From: Ido Schimmel @ 2021-11-23 17:40 UTC (permalink / raw)
  To: netdev; +Cc: mkubecek, popadrian1996, andrew, mlxsw, moshe, Ido Schimmel

From: Ido Schimmel <idosch@nvidia.com>

This patchset extends ethtool(8) to retrieve, parse and print CMIS
diagnostic information. This information includes module-level monitors
(e.g., temperature, voltage), channel-level monitors (e.g., Tx optical
power) and related thresholds and flags.

ethtool(8) already supports SFF-8636 (e.g., QSFP) and SFF-8472 (e.g.,
SFP) diagnostic information, but until recently CMIS diagnostic
information was unavailable to ethtool(8) as it resides in optional and
banked pages.

Testing
=======

Build tested each patch with the following configuration options:

netlink | pretty-dump
--------|------------
v       | v
x       | x
v       | x
x       | v

Except fields that were added, no difference in output before and after
the patchset. Tested with both PC and AOC QSFP-DD modules.

No reports from AddressSanitizer / valgrind.

Patchset overview
=================

Patches #1-#2 are small preparations.

Patches #3-#4 retrieve (over netlink) and initialize the optional and
banked pages in the CMIS memory map. These pages contain the previously
mentioned diagnostic information.

Patch #5 parses and prints the CMIS diagnostic information in a similar
fashion to the way it is done for SFF-8636.

Patches #6-#7 print a few additional fields from the CMIS EEPROM dump.
The examples contain an ethtool command that is supported by the kernel,
but not yet by ethtool(8). It will be sent as a follow-up patchset.

Patch #8 prints the equivalent module-level fields for SFF-8636.

Ido Schimmel (8):
  sff-8636: Use an SFF-8636 specific define for maximum number of
    channels
  sff-common: Move OFFSET_TO_U16_PTR() to common header file
  cmis: Initialize Page 02h in memory map
  cmis: Initialize Banked Page 11h in memory map
  cmis: Parse and print diagnostic information
  cmis: Print Module State and Fault Cause
  cmis: Print Module-Level Controls
  sff-8636: Print Power set and Power override bits

 cmis.c       | 611 ++++++++++++++++++++++++++++++++++++++++++++++++---
 cmis.h       | 107 +++++++++
 qsfp.c       |  16 +-
 qsfp.h       |   2 +-
 sff-common.h |   6 +-
 5 files changed, 702 insertions(+), 40 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-12-02 22:01 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-23 17:40 [PATCH ethtool-next 0/8] ethtool: Add support for CMIS diagnostic information Ido Schimmel
2021-11-23 17:40 ` [PATCH ethtool-next 1/8] sff-8636: Use an SFF-8636 specific define for maximum number of channels Ido Schimmel
2021-11-23 17:40 ` [PATCH ethtool-next 2/8] sff-common: Move OFFSET_TO_U16_PTR() to common header file Ido Schimmel
2021-12-02 21:55   ` Michal Kubecek
2021-11-23 17:40 ` [PATCH ethtool-next 3/8] cmis: Initialize Page 02h in memory map Ido Schimmel
2021-11-23 17:40 ` [PATCH ethtool-next 4/8] cmis: Initialize Banked Page 11h " Ido Schimmel
2021-11-23 17:40 ` [PATCH ethtool-next 5/8] cmis: Parse and print diagnostic information Ido Schimmel
2021-11-23 17:41 ` [PATCH ethtool-next 6/8] cmis: Print Module State and Fault Cause Ido Schimmel
2021-11-23 17:41 ` [PATCH ethtool-next 7/8] cmis: Print Module-Level Controls Ido Schimmel
2021-11-23 17:41 ` [PATCH ethtool-next 8/8] sff-8636: Print Power set and Power override bits Ido Schimmel
2021-12-02 21:45 ` [PATCH ethtool-next 0/8] ethtool: Add support for CMIS diagnostic information Michal Kubecek
2021-12-02 21:52   ` Ido Schimmel
2021-12-02 22:01     ` Michal Kubecek
2021-12-02 22:00 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox