mbox series

[ethtool-next,00/14] Add JSON output to --module-info

Message ID 20250126115635.801935-1-danieller@nvidia.com (mailing list archive)
Headers show
Series Add JSON output to --module-info | expand

Message

Danielle Ratson Jan. 26, 2025, 11:56 a.m. UTC
Add JSON output for 'ethtool -m' / --module-info, following the
guideline below:

1. Fields with description, will have a separate description field.
2. Fields with units, will have a separate unit field.
3. ASCII fields will be presented as strings.
4. On/Off is rendered as true/false.
5. Yes/no is rendered as true/false.
6. Per-channel fields will be presented as array, when each element
   represents a channel.
7. Fields that hold version, will be split to major and minor sub
   fields.

This patchset suppose to extend [1] to cover all types of modules.

Patchset overview:
Patches #1-#6: Preparations.
Patches #7-#8: Add JSON output support for CMIS compliant modules.
Patches #9-#10: Add JSON output support for SFF8636 modules.
Patches #11-#13: Add JSON output support for SFF8079 and SFF8472 modules.
Patches #14: Add '-j' support to ethtool

[1] https://lore.kernel.org/all/20220704054114.22582-2-matt@traverse.com.au/

Danielle Ratson (14):
  module_common: Add a new file to all the common code for all module
    types
  sff_common: Move sff_show_revision_compliance() to qsfp.c
  cmis: Change loop order in cmis_show_dom_chan_lvl_flags()
  qsfp: Reorder the channel-level flags list for SFF8636 module type
  qsfp: Refactor sff8636_show_dom() by moving code into separate
    functions
  module_common: Add helpers to support JSON printing for common value
    types
  cmis: Add JSON output handling to --module-info in CMIS modules
  cmis: Enable JSON output support in CMIS modules
  qsfp: Add JSON output handling to --module-info in SFF8636 modules
  qsfp: Enable JSON output support for SFF8636 modules
  sfpid: Add JSON output handling to --module-info in SFF8079 modules
  sfpdiag: Add JSON output handling to --module-info in SFF8472 modules
  ethtool: Enable JSON output support for SFF8079 and SFF8472 modules
  ethtool: Add '-j' support to ethtool

 Makefile.am             |   7 +-
 cmis.c                  | 500 +++++++++++-----------
 cmis.h                  |  62 ---
 ethtool.c               |  10 +-
 module-common.c         | 689 ++++++++++++++++++++++++++++++
 module-common.h         | 288 +++++++++++++
 netlink/module-eeprom.c |  26 +-
 qsfp.c                  | 907 +++++++++++++++++++++-------------------
 qsfp.h                  | 108 -----
 sff-common.c            | 353 ++++------------
 sff-common.h            | 119 ++----
 sfpdiag.c               |  47 ++-
 sfpid.c                 | 420 ++++++++++---------
 13 files changed, 2091 insertions(+), 1445 deletions(-)
 create mode 100644 module-common.c
 create mode 100644 module-common.h