diff options
| author | Andrew Gallatin <gallatin@FreeBSD.org> | 2026-04-05 21:43:48 +0000 |
|---|---|---|
| committer | Andrew Gallatin <gallatin@FreeBSD.org> | 2026-04-14 18:47:56 +0000 |
| commit | 963f1a5455c9f94457c1fa122d18ab9c059db834 (patch) | |
| tree | ad21b64e02127a3ce93780a66fbfe350c853e970 /sbin | |
| parent | c48381df77e15fda271555dcd5ef0cbbbd7cd9bf (diff) | |
Diffstat (limited to 'sbin')
| -rw-r--r-- | sbin/ifconfig/sfp.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/sbin/ifconfig/sfp.c b/sbin/ifconfig/sfp.c index b51393ea750e..f6400684ba7a 100644 --- a/sbin/ifconfig/sfp.c +++ b/sbin/ifconfig/sfp.c @@ -77,7 +77,9 @@ sfp_status(if_ctx *ctx) printf("\tvendor: %s PN: %s SN: %s DATE: %s\n", vendor_info.name, vendor_info.pn, vendor_info.sn, vendor_info.date); - if (ifconfig_sfp_id_is_qsfp(info.sfp_id)) { + if (ifconfig_sfp_id_is_cmis(info.sfp_id)) { + /* CMIS: no legacy compliance info to show */ + } else if (ifconfig_sfp_id_is_qsfp(info.sfp_id)) { if (verbose > 1) printf("\tcompliance level: %s\n", strings.sfp_rev); } else { @@ -113,7 +115,17 @@ sfp_status(if_ctx *ctx) if (ifconfig_sfp_get_sfp_dump(lifh, ctx->ifname, &dump) == -1) return; - if (ifconfig_sfp_id_is_qsfp(info.sfp_id)) { + if (ifconfig_sfp_id_is_cmis(info.sfp_id)) { + printf("\n\tCMIS DUMP (Lower Memory 0..127):\n"); + hexdump(dump.data, 128, + "\t", HD_OMIT_COUNT | HD_OMIT_CHARS); + printf("\n\tCMIS DUMP (Page 00h 128..255):\n"); + hexdump(dump.data + 128, 128, + "\t", HD_OMIT_COUNT | HD_OMIT_CHARS); + printf("\n\tCMIS DUMP (Page 11h 128..255):\n"); + hexdump(dump.data + CMIS_DUMP_P11, 128, + "\t", HD_OMIT_COUNT | HD_OMIT_CHARS); + } else if (ifconfig_sfp_id_is_qsfp(info.sfp_id)) { printf("\n\tSFF8436 DUMP (0xA0 128..255 range):\n"); hexdump(dump.data + QSFP_DUMP1_START, QSFP_DUMP1_SIZE, "\t", HD_OMIT_COUNT | HD_OMIT_CHARS); |
