QSFPDD CMIS support for SONiC
- List of Tables
- Revision
- About This Manual
- Scope
- Abbreviation
- References
- Requirement Overview
- Functionality
- Design
- Testing
Rev | Date | Author | Change Description |
---|---|---|---|
0.1 | 09/27/2021 | Dante (Kuo-Jung) Su | Initial version |
This document provides general information about the QSFPDD CMIS support for SONiC.
This document describes functional behavior of the QSFPDD CMIS support for SONiC.
Term | Definition |
---|---|
pmon | Platform Monitoring Service |
xcvr | Transceiver |
xcvrd | Transceiver Daemon |
CMIS | QSFPDD Common Management Interface Specification |
QSFPDD | Quad Small Form Factor Pluggable Double Density |
Document | Location |
---|---|
QSFPDD Common Management Interface Specification (CMIS) | CMIS5p0.pdf |
This document describes functional behavior of the QSFPDD CMIS support in SONiC.
The QSFPDD Common Management Interface Specification (CMIS) version 4.0 was finalized in May of 2019 and provides a variety of features and support for different transceiver form factors. From a software perspective, a CMIS application initialization sequence is now mandatory as per the current dynamic port breakout mode activated. And these is also a new diagnostic support tha could be useful to SONiC users and developers.
The current SONiC platform API model is such that base classes in sonic-platform-common define a common, platform-independent interface that can be implemented in platform-specific classes.
Unfortunately, the legacy SFP libraries (sonic-sfp) do not provide full featured support for the SFP, and and vendors are having to fill in implementation gaps for themselves. This is resulting in a lot of duplicate work being done for things that should be common across platforms.
The goal of this SONIC QSFPDD CMIS support is to
- Provide an unified common SFP parser for the QSFPDD transceivers
- Enhance the pmon#xcvrd for the QSFPDD application initialization sequence
- Enhance the pmon#xcvrd for the QSFPDD diagnostics loopback controls
- Ability to parse the advertised applications from the transceivers
- Ability to post the advertised applications to the STATE_DB
- Ability to decode the current module state from the transceivers
- Ability to post the current module state to the STATE_DB
- Ability to decode the error code of the application initialization sequence from the transceivers
- Ability to post the error code of the application initialization sequence
- Ability to process the application initialization sequence in multi-thread/process model.
- Ability to enable / disable the transceiver loopback controls
Note:
The duration of the CMIS application initialization sequence greatly differs from transceivers
to transceivers, while some take 3 seconds for activating the 4x100G mode, some require 15 seconds.
Hence it's mandatory to support multi-threaded/processed models.
- Show commands to display the QSFPDD EEPROM and DOM information, as described in Show Commands section below.
Functionality should continue to work across warm boot.
- To support planned system warm boot.
- To support pmon docker restart.
The QSFPDD CMIS support is used to perform application initialization as per the operational port breakout mode, otherwise the links will be down if the modules is with CMIS v4/v5 firmwares.
The loopback controls at the transceiver layer can quickly be tested by a remote user to triage either system-side or line-side issues and help isolate failing hardware.
- The pmon#xcvrd will detect the module type of the attched transceivers and post the information to the STATE_DB
- If the transceiver is a QSFPDD CMIS module, the pmon#xcvrd will activate the desired application mode as per the current port mode.
- If the transceiver is a QSFPDD CMIS module, the show interfaces transceiver eeprom should display the advertised applications of the transceiver.
- If the transceiver is a QSFPDD CMIS module, the users will be able to enable or disable the loopbacks at the transceiver layer to triage link issues.
- If the transceiver is a QSFPDD CMIS module, the users will be able to check the state of the application initialization.
The transceiver daemon will be enhanced as below:
- Post the QSFP-DD infomration to STATE_DB
- Add a new CMIS task to handle the multiple CMIS initializations in parallel
This library will be enhanced as below
- Add support for decoding the advertised applications of the QSFPDD CMIS transceiver
- Add support for decoding the DOM information of the QSFPDD CMIS transceiver
This is a new common SFP base class that's supposed to be inherited by the SFP drivers of the individual platforms, and it will later be refactored when sfp-refactor is open for business.
This utility will be enhanced to support the following features
- Show the current application mode of the QSFPDD CMIS transceiver
- Show the current configuration errors of the QSFPDD CMIS transceiver
- Show the loopback capabilities of the QSFPDD CMIS transceiver
- Enable/Disable the loopback controls provided by the QSFPDD CMIS transceiver
No modifications made.
No modifications made.
The TRANSCEIVER_INFO table will be extended as below if the transceiver is compliant with CMIS 4.0 onward:
"TRANSCEIVER_INFO|Ethernet0": {
"type": "hash",
"value": {
"application_advertisement": "{1: {'host_if': '400GAUI-8 C2M (Annex 120E)', 'media_if': '400GBASE-DR4 (Cl 124)'}, 2: {'host_if': '100GAUI-2 C2M (Annex 135G)', 'media_if': '100G-FR/100GBASE-FR1 (Cl 140)'}}",
"cable_length": "0.0",
"cable_type": "Length SMF(km)",
"connector": "SN (Mini CS)",
"connector_type": "SN (Mini CS)",
"encoding": "N/A",
"ext_identifier": "N/A",
"ext_rateselect_compliance": "N/A",
"hardware_rev": "01",
"lane_count": "4",
"manufacturer": "AVAGO",
"media_type": "sm_media_interface",
"memory_pages": "['Diagnostic Pages Implemented', 'Page 03h Implemented', 'Bank 0 Implemented']",
"memory_type": "Paged",
"model": "AFCT-93DRPHZ-AZ2",
"module_state": "Ready State",
"nominal_bit_rate": "N/A",
"revision_compliance": "4.0",
"serial": "FD2038FG0FY",
"specification_compliance": "N/A",
"type": "QSFP56-DD",
"type_abbrv_name": "QSFP-DD",
}
}
The legacy show command, show interfaces transceiver eeprom, will be enhanced for QSFPDD support.
admin@sonic:~$ show interfaces transceiver eeprom Ethernet0
Ethernet0: SFP EEPROM detected
Application Advertisement:
1: 400GAUI-8 C2M (Annex 120E) | 400GBASE-DR4 (Cl 124)
2: 100GAUI-2 C2M (Annex 135G) | 100G-FR/100GBASE-FR1 (Cl 140)
Connector: SN (Mini CS)
Identifier: QSFP56-DD
Implemented Memory Pages:
Bank 0 Implemented
Diagnostic Pages Implemented
Page 03h Implemented
Length SMF(km): 0.0
Module State: Ready State
Revision Compliance: 4.0
Vendor Date Code(YYYY-MM-DD Lot): 2020-10-07
Vendor Name: AVAGO
Vendor OUI: 00-17-6A
Vendor PN: AFCT-93DRPHZ-AZ2
Vendor Rev: 01
Vendor SN: FD2038FG0FY
admin@sonic:~$ show interfaces transceiver eeprom Ethernet0 --dom
Ethernet0: SFP EEPROM detected
Application Advertisement:
1: 400GAUI-8 C2M (Annex 120E) | 400GBASE-DR4 (Cl 124)
2: 100GAUI-2 C2M (Annex 135G) | 100G-FR/100GBASE-FR1 (Cl 140)
Connector: SN (Mini CS)
Identifier: QSFP56-DD
Implemented Memory Pages:
Bank 0 Implemented
Diagnostic Pages Implemented
Page 03h Implemented
Length SMF(km): 0.0
Module State: Ready State
Revision Compliance: 4.0
Vendor Date Code(YYYY-MM-DD Lot): 2020-10-07
Vendor Name: AVAGO
Vendor OUI: 00-17-6A
Vendor PN: AFCT-93DRPHZ-AZ2
Vendor Rev: 01
Vendor SN: FD2038FG0FY
ChannelMonitorValues:
RX1Power: 2.9217dBm
RX2Power: 1.9984dBm
RX3Power: -40.0000dBm
RX4Power: -40.0000dBm
TX1Bias: 44.9420mA
TX1Power: 2.8587dBm
TX2Bias: 47.4440mA
TX2Power: 3.0211dBm
TX3Bias: 47.4440mA
TX3Power: 2.9634dBm
TX4Bias: 49.9460mA
TX4Power: 2.7395dBm
ChannelThresholdValues:
RxPowerHighAlarm : 7.5000dBm
RxPowerHighWarning: 4.4999dBm
RxPowerLowAlarm : -10.4001dBm
RxPowerLowWarning : -6.4016dBm
TxBiasHighAlarm : 75.0000mA
TxBiasHighWarning : 70.0000mA
TxBiasLowAlarm : 10.0000mA
TxBiasLowWarning : 15.0000mA
TxPowerHighAlarm : 6.9999dBm
TxPowerHighWarning: 3.9999dBm
TxPowerLowAlarm : -6.4016dBm
TxPowerLowWarning : -2.4003dBm
ModuleMonitorValues:
Temperature: 27.4336C
Vcc: 3.2883Volts
ModuleThresholdValues:
TempHighAlarm : 75.0000C
TempHighWarning: 70.0000C
TempLowAlarm : -5.0000C
TempLowWarning : 0.0000C
VccHighAlarm : 3.6300Volts
VccHighWarning : 3.4650Volts
VccLowAlarm : 2.9700Volts
VccLowWarning : 3.1350Volts
The sfputil will be enhanced for CMIS debugging
- Verify with QSFPDD static and DOM information with show interface transceiver eeprom
- Verify with QSFPDD application initialization by show logging when reseating the QSFPDD transceiver
- Verify with QSFPDD application initialization by sfputil