Skip to content

DOM for flat memory transceiver modules#3950

Merged
prgeor merged 8 commits intosonic-net:masterfrom
az-pz:ariz/dom-for-flat-memory-txvr-modules
Aug 1, 2025
Merged

DOM for flat memory transceiver modules#3950
prgeor merged 8 commits intosonic-net:masterfrom
az-pz:ariz/dom-for-flat-memory-txvr-modules

Conversation

@az-pz
Copy link
Contributor

@az-pz az-pz commented Jul 3, 2025

What I did

Return DOM for flat memory modules if it's available.

How I did it

Removed the conditional which skipped returning DOM for flat memory modules when using sfputil show eeprom -d -p <interface> command.

How to verify it

Run sfputil show eeprom -d -p <interface> for a flat memory module.

Previous command output (if the output of a command-line utility has changed)

Previously, sfputil show eeprom -d -p <interface> for a flat memory module would have DOM values not supported for flat memory module in the end and no DOM would be printed.

New command output (if the output of a command-line utility has changed)

Now, the command returns the DOM for flat memory modules if it's available.
CLI output for a flat memory transceiver now:

admin@sonic:~$ show int trans eeprom -d Ethernet256
Ethernet256: SFP EEPROM detected
        Application Advertisement: N/A
        Connector: LC
        Encoding: 64B/66B
        Extended Identifier: GBIC/SFP defined by two-wire interface ID
        Extended RateSelect Compliance: Unknown
        Identifier: SFP/SFP+/SFP28
        Length OM3(10m): 30.0
        Nominal Bit Rate(100Mbs): 103
        Specification compliance:
                10G Ethernet Compliance: 10GBASE-SR
                ESCON Compliance: Unknown
                Ethernet Compliance: Unknown
                Fibre Channel Link Length: Unknown
                Fibre Channel Speed: Unknown
                Fibre Channel Transmission Media: Unknown
                Fibre Channel Transmitter Technology: Unknown
                Infiniband Compliance: Unknown
                SFP+CableTechnology: Unknown
                SONET Compliance Codes: Unknown
        Vendor Date Code(YYYY-MM-DD Lot): 2009-06-27   
        Vendor Name: FINISAR CORP.   
        Vendor OUI: 00-90-65
        Vendor PN: FTLX8571D3BCL   
        Vendor Rev: A   
        Vendor SN: UFS073Z         
        MonitorData:
                RXPower: -1.739dBm
                TXBias: 7.054mA
                TXPower: -2.865dBm
                Temperature: 21.129C
                Vcc: 3.375Volts
        ThresholdData:
                TempHighAlarm  : 78.0C
                TempHighWarning: 73.0C
                TempLowAlarm   : -13.0C
                TempLowWarning : -8.0C
                VccHighAlarm   : 3.7Volts
                VccHighWarning : 3.6Volts
                VccLowAlarm    : 2.9Volts
                VccLowWarning  : 3.0Volts
                RxPowerHighAlarm  : 0.0dBm
                RxPowerHighWarning: -1.0dBm
                RxPowerLowAlarm   : -20.0dBm
                RxPowerLowWarning : -18.013dBm
                TxBiasHighAlarm   : 11.8mA
                TxBiasHighWarning : 10.8mA
                TxBiasLowAlarm    : 4.0mA
                TxBiasLowWarning  : 5.0mA
                TxPowerHighAlarm  : -0.8dBm
                TxPowerHighWarning: -1.8dBm
                TxPowerLowAlarm   : -6.0dBm
                TxPowerLowWarning : -5.0dBm
admin@sonic:~$ sudo sfputil show eeprom -d -p Ethernet256
Ethernet256: SFP EEPROM detected
        Application Advertisement: N/A
        Connector: LC
        Encoding: 64B/66B
        Extended Identifier: GBIC/SFP defined by two-wire interface ID
        Extended RateSelect Compliance: Unknown
        Identifier: SFP/SFP+/SFP28
        Length OM3(10m): 30.0
        Nominal Bit Rate(100Mbs): 103
        Specification compliance:
                10G Ethernet Compliance: 10GBASE-SR
                ESCON Compliance: Unknown
                Ethernet Compliance: Unknown
                Fibre Channel Link Length: Unknown
                Fibre Channel Speed: Unknown
                Fibre Channel Transmission Media: Unknown
                Fibre Channel Transmitter Technology: Unknown
                Infiniband Compliance: Unknown
                SFP+CableTechnology: Unknown
                SONET Compliance Codes: Unknown
        Vendor Date Code(YYYY-MM-DD Lot): 2009-06-27   
        Vendor Name: FINISAR CORP.   
        Vendor OUI: 00-90-65
        Vendor PN: FTLX8571D3BCL   
        Vendor Rev: A   
        Vendor SN: UFS073Z         
        MonitorData:
                RXPower: -1.785dBm
                TXBias: 7.058mA
                TXPower: -2.857dBm
                Temperature: 21.301C
                Vcc: 3.374Volts
        ThresholdData:
                TempHighAlarm  : 78.0C
                TempHighWarning: 73.0C
                TempLowAlarm   : -13.0C
                TempLowWarning : -8.0C
                VccHighAlarm   : 3.7Volts
                VccHighWarning : 3.6Volts
                VccLowAlarm    : 2.9Volts
                VccLowWarning  : 3.0Volts
                RxPowerHighAlarm  : 0.0dBm
                RxPowerHighWarning: -1.0dBm
                RxPowerLowAlarm   : -20.0dBm
                RxPowerLowWarning : -18.013dBm
                TxBiasHighAlarm   : 11.8mA
                TxBiasHighWarning : 10.8mA
                TxBiasLowAlarm    : 4.0mA
                TxBiasLowWarning  : 5.0mA
                TxPowerHighAlarm  : -0.8dBm
                TxPowerHighWarning: -1.8dBm
                TxPowerLowAlarm   : -6.0dBm
                TxPowerLowWarning : -5.0dBm

CLI output for non-cmis DAC:

~$ sudo sfputil show eeprom -d -p Ethernet184
Ethernet184: SFP EEPROM detected
        Application Advertisement: N/A
        Connector: No separable connector
        Encoding: 64B/66B
        Extended Identifier: Power Class 1 Module (1.5W max.), No CLEI code present in Page 02h, No CDR in TX, No CDR in RX
        Extended RateSelect Compliance: Unknown
        Identifier: QSFP28 or later
        Length Cable Assembly(m): 1.0
        Nominal Bit Rate(100Mbs): 255
        Specification compliance:
                10/40G Ethernet Compliance Code: 40GBASE-CR4,Extended
                Extended Specification Compliance: 100GBASE-CR4, 25GBASE-CR CA-25G-L or 50GBASE-CR2 with RS
                Fibre Channel Link Length: Unknown
                Fibre Channel Speed: Unknown
                Fibre Channel Transmission Media: Unknown
                Fibre Channel Transmitter Technology: Unknown
                Gigabit Ethernet Compliant Codes: Unknown
                SAS/SATA Compliance Codes: Unknown
                SONET Compliance Codes: Unknown
        Vendor Date Code(YYYY-MM-DD Lot): 2019-10-22   
        Vendor Name: Amphenol        
        Vendor OUI: 78-a7-14
        Vendor PN: NDAAFF-0004     
        Vendor Rev: P 
        Vendor SN: APF19420041LAG  
        ChannelMonitorValues:
        ChannelThresholdValues:
        ModuleMonitorValues:
        ModuleThresholdValues:


CLI output of CMIS DAC:

~$ sudo sfputil show eeprom -d -p Ethernet136
Ethernet136: SFP EEPROM detected
        Active App Selection Host Lane 1: N/A
        Active App Selection Host Lane 2: N/A
        Active App Selection Host Lane 3: N/A
        Active App Selection Host Lane 4: N/A
        Active App Selection Host Lane 5: N/A
        Active App Selection Host Lane 6: N/A
        Active App Selection Host Lane 7: N/A
        Active App Selection Host Lane 8: N/A
        Application Advertisement: 400G CR8 - Host Assign (0x1) - Copper cable - Media Assign (Unknown)
        CMIS Revision: 3.0
        Connector: No separable connector
        Encoding: N/A
        Extended Identifier: Power Class 1 (0.5W Max)
        Extended RateSelect Compliance: N/A
        Hardware Revision: 0.0
        Host Electrical Interface: N/A
        Host Lane Assignment Options: 1
        Host Lane Count: 8
        Identifier: QSFP-DD Double Density 8X Pluggable Transceiver
        Length Cable Assembly(m): 2.0
        Media Interface Code: Copper cable
        Media Interface Technology: Copper cable unequalized
        Media Lane Assignment Options: N/A
        Media Lane Count: 0
        Nominal Bit Rate(100Mbs): N/A
        Specification compliance: passive_copper_media_interface
        Vendor Date Code(YYYY-MM-DD Lot): 2023-04-01   
        Vendor Name: DELL EMC        
        Vendor OUI: 3c-18-a0
        Vendor PN: XR11M           
        Vendor Rev: A0
        Vendor SN: VN0LXV0034166JD 
        ChannelMonitorValues:
        ChannelThresholdValues:
        ModuleMonitorValues:
        ModuleThresholdValues:


@mssonicbld
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@az-pz az-pz marked this pull request as ready for review July 3, 2025 20:12
@mssonicbld
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@az-pz
Copy link
Contributor Author

az-pz commented Jul 21, 2025

This PR needs to go with sonic-net/sonic-platform-common#586 for it work with SFF8436 and SFF8636 modules.

@mihirpat1 mihirpat1 requested a review from Copilot July 22, 2025 17:15
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request enables DOM (Digital Optical Monitoring) data retrieval for flat memory transceiver modules by removing a conditional check that previously blocked this functionality.

  • Removed the condition that skipped DOM data retrieval for flat memory modules
  • Updated test expectations to reflect that DOM data (even if empty) is now returned for flat memory modules

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
sfputil/main.py Removed conditional check that blocked DOM retrieval for flat memory modules
tests/sfputil_test.py Updated test to expect empty DOM values instead of unsupported message for flat memory modules
Comments suppressed due to low confidence (1)

tests/sfputil_test.py:63

  • The test only verifies the case where DOM values are empty for flat memory modules. Consider adding a test case that verifies DOM data is actually returned when available for flat memory modules to ensure the feature works as intended.
EMPTY_DOM_VALUES = """        ChannelMonitorValues:

Copy link
Contributor

@mihirpat1 mihirpat1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@az-pz Can you please add the CLI output for a flat memory transceiver in the test description?
CLIs to be tested

  1. show int transceiver eeprom -d EthernetXX
  2. sfputil show eeprom -d -p EthernetXX

@az-pz az-pz requested a review from mihirpat1 July 23, 2025 17:03
@prgeor
Copy link
Contributor

prgeor commented Jul 25, 2025

@az-pz can you also paste the DOM output for CMIS DAC cable and non-CMIS DAC cable?

@az-pz
Copy link
Contributor Author

az-pz commented Jul 30, 2025

@prgeor , added the dom cli output for cmis and non-cmis DAC in the description.

@prgeor prgeor merged commit 3282ab3 into sonic-net:master Aug 1, 2025
7 checks passed
@mssonicbld
Copy link
Collaborator

Cherry-pick PR to msft-202412: Azure/sonic-utilities.msft#240

@yejianquan
Copy link
Contributor

from Mihir:
image

@mssonicbld
Copy link
Collaborator

Cherry-pick PR to 202505: #4063

YairRaviv pushed a commit to YairRaviv/sonic-utilities that referenced this pull request Jan 12, 2026
* Fix: show interface transceiver info Ethernet0 command fails for CMIS SFP

* Fix variable name error.

* Return DOM for flat memory modules if it's available.

* Update unit tests.

* Update unit tests.

* Update unit tests.

* Update unit tests.
JibinBao added a commit to JibinBao/sonic-mgmt that referenced this pull request Feb 24, 2026
1. Update the function to get the port with flat memory, because the PR sonic-net/sonic-utilities#3950 removed the string of 'DOM values not supported for flat memory module' from the output of "sudo sfputil show eeprom -d"
2. To avoid a circular import, move get_ports_with_flat_memory from platform/transceiver_utils.py to  platform/interface_utils.py.
3. Update test_check_sfp_eeprom_with_option_dom: For ports that do not have flat memory, it implies DOM support. Remove the old code for checking DOM support, as the previous method is no longer applicable.
JibinBao added a commit to JibinBao/sonic-mgmt that referenced this pull request Feb 24, 2026
1. Update the function to get the port with flat memory, because the PR sonic-net/sonic-utilities#3950 removed the string of 'DOM values not supported for flat memory module' from the output of "sudo sfputil show eeprom -d"
2. To avoid a circular import, move get_ports_with_flat_memory from platform/transceiver_utils.py to  platform/interface_utils.py.
3. Update test_check_sfp_eeprom_with_option_dom: For ports that do not have flat memory, it implies DOM support. Remove the old code for checking DOM support, as the previous method is no longer applicable.

Signed-off-by: jbao <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants