For a given logical port, CmisManagerTask thread updates the application specific fields in TRANSCEIVER_INFO table only for the relevant active lanes for a given subport.
However, the "show interfaces transceiver eeprom PORT_NAME" CLI shows data for all the 8 lanes and not just the active lanes for the given logical port. However, the data of non-active lanes is incorrect. This needs to be corrected.
In the below example, logical ports Ethernet16 through Ethernet22 are subports 1 through subport 4 respectively. Each logical ports has different values of "Active application selected code assigned to host lane" for their corresponding non-active lanes (the corresponding active lanes are populated correctly).
admin@th5-sw3:~$ show int trans eeprom -d Ethernet16 | grep code
Active application selected code assigned to host lane 1: 5
Active application selected code assigned to host lane 2: 5
Active application selected code assigned to host lane 3: 1
Active application selected code assigned to host lane 4: 1
Active application selected code assigned to host lane 5: 1
Active application selected code assigned to host lane 6: 1
Active application selected code assigned to host lane 7: 1
Active application selected code assigned to host lane 8: 1
admin@th5-sw3:~$ show int trans eeprom -d Ethernet18 | grep code
Active application selected code assigned to host lane 1: 0
Active application selected code assigned to host lane 2: 0
Active application selected code assigned to host lane 3: 5
Active application selected code assigned to host lane 4: 5
Active application selected code assigned to host lane 5: 0
Active application selected code assigned to host lane 6: 0
Active application selected code assigned to host lane 7: 0
Active application selected code assigned to host lane 8: 0
admin@th5-sw3:~$ show int trans eeprom -d Ethernet20 | grep code
Active application selected code assigned to host lane 1: 5
Active application selected code assigned to host lane 2: 5
Active application selected code assigned to host lane 3: 5
Active application selected code assigned to host lane 4: 5
Active application selected code assigned to host lane 5: 5
Active application selected code assigned to host lane 6: 5
Active application selected code assigned to host lane 7: 5
Active application selected code assigned to host lane 8: 5
admin@th5-sw3:~$ show int trans eeprom -d Ethernet22 | grep code
Active application selected code assigned to host lane 1: 5
Active application selected code assigned to host lane 2: 5
Active application selected code assigned to host lane 3: 5
Active application selected code assigned to host lane 4: 5
Active application selected code assigned to host lane 5: 0
Active application selected code assigned to host lane 6: 0
Active application selected code assigned to host lane 7: 5
Active application selected code assigned to host lane 8: 5
admin@th5-sw3:~$
MSFT ADO - 28628591
Motivation and Context
Initializing the application related data consumed by "show interfaces transceiver eeprom" CLI with "N/A"
Ensuring that the active app select relevant fields are updated to the DB in case if CMIS application update is not required.
Added check to ensure intf_tbl is present before TRANSCEIVER_INFO table is updated with the application specific values. This helps in handling case wherein xcvrd restarts and the the CMIS SM is triggered due to CONFIG_DB update but TRANSCEIVER_INFO table is not yet created by the SfpStateUpdateTask thread or xcvrd main thread with all other fields (such as transceiver type, serial number vendor PN etc).
How Has This Been Tested?
Ensured CLI output for all subports after device boot-up
Ensured CLI output for all subports after xcvrd restart
Ensured CLI output for all subports after performing xcvr OIR
root@str3-8111-03:/home/admin# show int transceiver info Ethernet32
Ethernet32: SFP EEPROM detected
Active Firmware: 94.7.0
Active application selected code assigned to host lane 1: 3
Active application selected code assigned to host lane 2: 3
Active application selected code assigned to host lane 3: 3
Active application selected code assigned to host lane 4: 3
Active application selected code assigned to host lane 5: N/A
Active application selected code assigned to host lane 6: N/A
Active application selected code assigned to host lane 7: N/A
Active application selected code assigned to host lane 8: N/A
Application Advertisement: 800G L C2M (placeholder) - Host Assign (0x1) - Undefined - Media Assign (0x1)
800G S C2M (placeholder) - Host Assign (0x1) - Undefined - Media Assign (0x1)
400GAUI-4-L C2M (Annex 120G) - Host Assign (0x11) - 400GBASE-DR4 (Cl 124) - Media Assign (0x11)
400GAUI-4-S C2M (Annex 120G) - Host Assign (0x11) - 400GBASE-DR4 (Cl 124) - Media Assign (0x11)
100GAUI-1-L C2M (Annex 120G) - Host Assign (0xff) - 100G-FR/100GBASE-FR1 (Cl 140) - Media Assign (0xff)
100GAUI-1-S C2M (Annex 120G) - Host Assign (0xff) - 100G-FR/100GBASE-FR1 (Cl 140) - Media Assign (0xff)
CMIS Rev: 5.0
Connector: MPO 1x12
Encoding: N/A
Extended Identifier: Power Class 8 (17.0W Max)
Extended RateSelect Compliance: N/A
Host Lane Count: 4
Identifier: QSFP-DD Double Density 8X Pluggable Transceiver
Inactive Firmware: 0.0.0
Length Cable Assembly(m): 0.0
Media Interface Technology: 1310 nm EML
Media Lane Count: 4
Module Hardware Rev: 1.11
Nominal Bit Rate(100Mbs): 0
Specification compliance: sm_media_interface
Supported Max Laser Frequency: N/A
Supported Max TX Power: N/A
Supported Min Laser Frequency: N/A
Supported Min TX Power: N/A
Vendor Date Code(YYYY-MM-DD Lot): 2022-10-10
Vendor Name: VENDOR_A
Vendor OUI: 11-aa-bb
Vendor PN: A123456
Vendor Rev: 2C
Vendor SN: SN1234
root@str3-8111-03:/home/admin# show int transceiver info Ethernet36
Ethernet36: SFP EEPROM detected
Active Firmware: 94.7.0
Active application selected code assigned to host lane 1: N/A
Active application selected code assigned to host lane 2: N/A
Active application selected code assigned to host lane 3: N/A
Active application selected code assigned to host lane 4: N/A
Active application selected code assigned to host lane 5: 3
Active application selected code assigned to host lane 6: 3
Active application selected code assigned to host lane 7: 3
Active application selected code assigned to host lane 8: 3
Application Advertisement: 800G L C2M (placeholder) - Host Assign (0x1) - Undefined - Media Assign (0x1)
800G S C2M (placeholder) - Host Assign (0x1) - Undefined - Media Assign (0x1)
400GAUI-4-L C2M (Annex 120G) - Host Assign (0x11) - 400GBASE-DR4 (Cl 124) - Media Assign (0x11)
400GAUI-4-S C2M (Annex 120G) - Host Assign (0x11) - 400GBASE-DR4 (Cl 124) - Media Assign (0x11)
100GAUI-1-L C2M (Annex 120G) - Host Assign (0xff) - 100G-FR/100GBASE-FR1 (Cl 140) - Media Assign (0xff)
100GAUI-1-S C2M (Annex 120G) - Host Assign (0xff) - 100G-FR/100GBASE-FR1 (Cl 140) - Media Assign (0xff)
CMIS Rev: 5.0
Connector: MPO 1x12
Encoding: N/A
Extended Identifier: Power Class 8 (17.0W Max)
Extended RateSelect Compliance: N/A
Host Lane Count: 4
Identifier: QSFP-DD Double Density 8X Pluggable Transceiver
Inactive Firmware: 0.0.0
Length Cable Assembly(m): 0.0
Media Interface Technology: 1310 nm EML
Media Lane Count: 4
Module Hardware Rev: 1.11
Nominal Bit Rate(100Mbs): 0
Specification compliance: sm_media_interface
Supported Max Laser Frequency: N/A
Supported Max TX Power: N/A
Supported Min Laser Frequency: N/A
Supported Min TX Power: N/A
Vendor Date Code(YYYY-MM-DD Lot): 2022-10-10
Vendor Name: VENDOR_A
Vendor OUI: 11-aa-bb
Vendor PN: A123456
Vendor Rev: 2C
Vendor SN: SN1234
root@str3-8111-03:/home/admin#
Cherry-pick for https://github.com/sonic-net/sonic-platform-daemons/pull/511
Description
For a given logical port, CmisManagerTask thread updates the application specific fields in TRANSCEIVER_INFO table only for the relevant active lanes for a given subport. However, the "show interfaces transceiver eeprom PORT_NAME" CLI shows data for all the 8 lanes and not just the active lanes for the given logical port. However, the data of non-active lanes is incorrect. This needs to be corrected.
In the below example, logical ports Ethernet16 through Ethernet22 are subports 1 through subport 4 respectively. Each logical ports has different values of "Active application selected code assigned to host lane" for their corresponding non-active lanes (the corresponding active lanes are populated correctly).
MSFT ADO - 28628591
Motivation and Context
TRANSCEIVER_INFO
table is updated with the application specific values. This helps in handling case wherein xcvrd restarts and the the CMIS SM is triggered due to CONFIG_DB update but TRANSCEIVER_INFO table is not yet created by the SfpStateUpdateTask thread or xcvrd main thread with all other fields (such as transceiver type, serial number vendor PN etc).How Has This Been Tested?
Additional Information (Optional)