sonic-net / sonic-platform-daemons

Platform module daemons for SONiC
Other
25 stars 159 forks source link

[202305] Initialize application specific fields as 'N/A' in TRANSCEIVER_INFO table #514

Closed mihirpat1 closed 4 months ago

mihirpat1 commented 4 months ago

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).

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

  1. Initializing the application related data consumed by "show interfaces transceiver eeprom" CLI with "N/A"
  2. Ensuring that the active app select relevant fields are updated to the DB in case if CMIS application update is not required.
  3. 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?

  1. Ensured CLI output for all subports after device boot-up
  2. Ensured CLI output for all subports after xcvrd restart
  3. 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# 

Additional Information (Optional)

mihirpat1 commented 4 months ago

@StormLiangMS Can you please help in merging this to 202305 branch? I have tested this on 202305 MSFT ADO - 28628591

mihirpat1 commented 4 months ago

Since this is a cosmetic defect, it is decided to not merge this PR to 202305.