sonic-net / sonic-buildimage

Scripts which perform an installable binary image build for SONiC
Other
734 stars 1.41k forks source link

sfputil show eeprom -d command reports errors #18164

Open Alicia-Zhu opened 8 months ago

Alicia-Zhu commented 8 months ago

Description

When installing the master version on Broadcom's Trident 4 and Tomahawk 4 chipset devices, there is an abnormality in reading module information. Upon investigating the code, we found the following:

if (rpllen is None) or (rpl_chkcode is None):
    return {'status': False, 'info': "Interface fail", 'result': 0} # Return result 0 for distinguishing CDB is maybe in busy or failure.

In practice, there may be situations where rpllen == 0, rpl_chkcode == 0, and rpl == None. This scenario can lead to abnormal exits of xcvrd.

Steps to reproduce the issue:

  1. sfputil show eeprom -d
  2. show interfaces status

Describe the results you received:

root@sonic:/sys/bus/spi/devices/spi0.0# sfputil show eeprom -d 
Traceback (most recent call last):
  File "/usr/local/bin/sfputil", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/sfputil/main.py", line 668, in eeprom
    xcvr_info = platform_chassis.get_sfp(physical_port).get_transceiver_info()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sonic_platform/sfp.py", line 100, in get_transceiver_info
    api_get = self._sfp_api.get_transceiver_info(SfpOptoeBase, self)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sonic_platform/sfp.py", line 300, in get_transceiver_info
    transceiver_info = class_optoeBase.get_transceiver_info(class_sfp)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/sonic_platform_base/sonic_xcvr/sfp_optoe_base.py", line 24, in get_transceiver_info
    return api.get_transceiver_info() if api is not None else None
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/sonic_platform_base/sonic_xcvr/api/public/cmis.py", line 184, in get_transceiver_info
    xcvr_info['active_firmware'], xcvr_info['inactive_firmware'] = self.get_transceiver_info_firmware_versions()
                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/sonic_platform_base/sonic_xcvr/api/public/cmis.py", line 197, in get_transceiver_info_firmware_versions
    result = self.get_module_fw_info()
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/sonic_platform_base/sonic_xcvr/api/public/cmis.py", line 1303, in get_module_fw_info
    if self.cdb.cdb_chkcode(rpl) != rpl_chkcode:
       ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/sonic_platform_base/sonic_xcvr/api/public/cmisCDB.py", line 73, in cdb_chkcode
    for byte in cmd:
TypeError: 'NoneType' object is not iterable
 root@sonic:/home/admin# show interfaces status 
  Interface            Lanes    Speed    MTU    FEC    Alias    Vlan    Oper    Admin                                             Type    Asym PFC
-----------  ---------------  -------  -----  -----  -------  ------  ------  -------  -----------------------------------------------  ----------
  Ethernet1      65,66,67,68     400G   9100    N/A     Eth1   trunk      up       up                                              N/A         N/A
  Ethernet9      69,70,71,72     400G   9100    N/A     Eth2   trunk      up       up                                              N/A         N/A
 Ethernet17      25,26,27,28     400G   9100    N/A     Eth3   trunk      up       up  QSFP-DD Double Density 8X Pluggable Transceiver         N/A
 Ethernet25      21,22,23,24     400G   9100    N/A     Eth4   trunk      up       up                                              N/A         N/A
 Ethernet33      73,74,75,76     400G   9100    N/A     Eth5   trunk    down       up                                              N/A         N/A
 Ethernet41      77,78,79,80     400G   9100    N/A     Eth6   trunk      up       up                                              N/A         N/A
 Ethernet49      33,34,35,36     400G   9100    N/A     Eth7   trunk    down       up                                              N/A         N/A
 Ethernet57      29,30,31,32     400G   9100    N/A     Eth8   trunk    down       up                                              N/A         N/A
 Ethernet65      81,82,83,84     400G   9100    N/A     Eth9   trunk      up       up  QSFP-DD Double Density 8X Pluggable Transceiver         N/A
 Ethernet73      85,86,87,88     400G   9100    N/A    Eth10   trunk      up       up                                              N/A         N/A
 Ethernet81      41,42,43,44     400G   9100    N/A    Eth11   trunk    down       up                                              N/A         N/A
 Ethernet89      37,38,39,40     400G   9100    N/A    Eth12   trunk    down       up                                              N/A         N/A
 Ethernet97      89,90,91,92     400G   9100    N/A    Eth13   trunk    down       up                                              N/A         N/A
Ethernet105      93,94,95,96     400G   9100    N/A    Eth14   trunk    down       up                                              N/A         N/A
Ethernet113      49,50,51,52     400G   9100    N/A    Eth15   trunk    down       up                                              N/A         N/A
Ethernet121      45,46,47,48     400G   9100    N/A    Eth16   trunk    down       up                                              N/A         N/A
Ethernet129     97,98,99,100     400G   9100    N/A    Eth17   trunk    down       up                                              N/A         N/A
Ethernet137  101,102,103,104     400G   9100    N/A    Eth18   trunk    down       up                                              N/A         N/A
Ethernet145      57,58,59,60     400G   9100    N/A    Eth19   trunk    down       up                                              N/A         N/A
Ethernet153      53,54,55,56     400G   9100    N/A    Eth20   trunk    down       up                                              N/A         N/A
Ethernet161  105,106,107,108     400G   9100    N/A    Eth21   trunk    down       up                                              N/A         N/A
Ethernet169  109,110,111,112     400G   9100    N/A    Eth22   trunk    down       up                                              N/A         N/A
Ethernet177      17,18,19,20     400G   9100    N/A    Eth23   trunk    down       up                                              N/A         N/A
Ethernet185      61,62,63,64     400G   9100    N/A    Eth24   trunk    down       up                                              N/A         N/A
Ethernet193  113,114,115,116     400G   9100    N/A    Eth25   trunk      up       up                                              N/A         N/A
Ethernet201  117,118,119,120     400G   9100    N/A    Eth26   trunk    down       up                                              N/A         N/A
Ethernet209       9,10,11,12     400G   9100    N/A    Eth27   trunk    down       up                                              N/A         N/A
Ethernet217      13,14,15,16     400G   9100    N/A    Eth28   trunk    down       up                                              N/A         N/A
Ethernet225  121,122,123,124     400G   9100    N/A    Eth29   trunk      up       up                                              N/A         N/A
Ethernet233  125,126,127,128     400G   9100    N/A    Eth30   trunk      up       up                                              N/A         N/A
Ethernet241          1,2,3,4     400G   9100    N/A    Eth31   trunk      up       up                                              N/A         N/A
Ethernet249          5,6,7,8     400G   9100    N/A    Eth32   trunk      up       up                                              N/A         N/A
Ethernet257  133,134,135,136     400G   9100    N/A    Eth33   trunk      up       up                                              N/A         N/A
Ethernet265  129,130,131,132     400G   9100    N/A    Eth34   trunk    down       up                                              N/A         N/A
Ethernet273  249,250,251,252     400G   9100    N/A    Eth35   trunk    down       up                                              N/A         N/A
Ethernet281  253,254,255,256     400G   9100    N/A    Eth36   trunk    down       up                                              N/A         N/A
Ethernet289  141,142,143,144     400G   9100    N/A    Eth37   trunk      up       up                                              N/A         N/A
Ethernet297  137,138,139,140     400G   9100    N/A    Eth38   trunk    down       up                                              N/A         N/A
Ethernet305  241,242,243,244     400G   9100    N/A    Eth39   trunk    down       up                                              N/A         N/A
Ethernet313  245,246,247,248     400G   9100    N/A    Eth40   trunk    down       up                                              N/A         N/A
Ethernet321  149,150,151,152     400G   9100    N/A    Eth41   trunk      up       up  QSFP-DD Double Density 8X Pluggable Transceiver         N/A
Ethernet329  145,146,147,148     400G   9100    N/A    Eth42   trunk    down       up                                              N/A         N/A
Ethernet337  237,238,239,240     400G   9100    N/A    Eth43   trunk    down       up                                              N/A         N/A
Ethernet345  197,198,199,200     400G   9100    N/A    Eth44   trunk    down       up                                              N/A         N/A
Ethernet353  157,158,159,160     400G   9100    N/A    Eth45   trunk      up       up                                              N/A         N/A
Ethernet361  153,154,155,156     400G   9100    N/A    Eth46   trunk    down       up                                              N/A         N/A
Ethernet369  193,194,195,196     400G   9100    N/A    Eth47   trunk    down       up                                              N/A         N/A
Ethernet377  205,206,207,208     400G   9100    N/A    Eth48   trunk    down       up                                              N/A         N/A
Ethernet385  165,166,167,168     400G   9100    N/A    Eth49   trunk      up       up                                              N/A         N/A
Ethernet393  161,162,163,164     400G   9100    N/A    Eth50   trunk    down       up                                              N/A         N/A
Ethernet401  201,202,203,204     400G   9100    N/A    Eth51   trunk    down       up                                              N/A         N/A
Ethernet409  213,214,215,216     400G   9100    N/A    Eth52   trunk    down       up                                              N/A         N/A
Ethernet417  173,174,175,176     400G   9100    N/A    Eth53   trunk      up       up                                              N/A         N/A
Ethernet425  169,170,171,172     400G   9100    N/A    Eth54   trunk    down       up                                              N/A         N/A
Ethernet433  209,210,211,212     400G   9100    N/A    Eth55   trunk    down       up                                              N/A         N/A
Ethernet441  221,222,223,224     400G   9100    N/A    Eth56   trunk    down       up                                              N/A         N/A
Ethernet449  181,182,183,184     400G   9100    N/A    Eth57   trunk      up       up                                              N/A         N/A
Ethernet457  177,178,179,180     400G   9100    N/A    Eth58   trunk    down       up                                              N/A         N/A
Ethernet465  217,218,219,220     400G   9100    N/A    Eth59   trunk    down       up                                              N/A         N/A
Ethernet473  229,230,231,232     400G   9100    N/A    Eth60   trunk    down       up                                              N/A         N/A
Ethernet481  189,190,191,192     400G   9100    N/A    Eth61   trunk      up       up                                              N/A         N/A
Ethernet489  185,186,187,188     400G   9100    N/A    Eth62   trunk    down       up                                              N/A         N/A
Ethernet497  225,226,227,228     400G   9100    N/A    Eth63   trunk    down       up                                              N/A         N/A
Ethernet505  233,234,235,236     400G   9100    N/A    Eth64   trunk    down       up                                              N/A         N/A

Describe the results you expected:

The information of the inserted optical modules or copper cables display normally.

Output of show version:

root@sonic:/home/admin# show version 

SONiC Software Version: SONiC.master-16148.481924-d57b61f55
SONiC OS Version: 12
Distribution: Debian 12.4
Kernel: 6.1.0-11-2-amd64
Build commit: d57b61f55
Build date: Tue Feb 20 12:35:00 UTC 2024
Built by: AzDevOps@vmss-soni0034BK

Platform: x86_64-micas_m2-w6930-64qc-r0
HwSKU: M2-W6930-64QC
ASIC: broadcom
ASIC Count: 1
Serial Number: G1SA10J000485
Model Number: 01019AQ0
Hardware Revision: 100
Uptime: 03:17:16 up  1:43,  2 users,  load average: 0.47, 0.55, 0.65
Date: Thu 22 Feb 2024 03:17:16

Docker images:
REPOSITORY                    TAG                             IMAGE ID       SIZE
docker-sonic-restapi          latest                          afdd4da78b93   302MB
docker-sonic-restapi          master-16148.481924-d57b61f55   afdd4da78b93   302MB
docker-dhcp-relay             latest                          06cd0e458dce   312MB
docker-macsec                 latest                          92bd8c8d64c6   333MB
docker-eventd                 latest                          0df7d6b6a414   302MB
docker-eventd                 master-16148.481924-d57b61f55   0df7d6b6a414   302MB
docker-orchagent              latest                          b4eb005e0ec3   342MB
docker-orchagent              master-16148.481924-d57b61f55   b4eb005e0ec3   342MB
docker-sflow                  latest                          34b53a8347f7   332MB
docker-sflow                  master-16148.481924-d57b61f55   34b53a8347f7   332MB
docker-teamd                  latest                          ee1fb392c093   331MB
docker-teamd                  master-16148.481924-d57b61f55   ee1fb392c093   331MB
docker-snmp                   latest                          a05455b052ae   342MB
docker-snmp                   master-16148.481924-d57b61f55   a05455b052ae   342MB
docker-fpm-frr                latest                          e79b8bf88727   362MB
docker-fpm-frr                master-16148.481924-d57b61f55   e79b8bf88727   362MB
docker-syncd-brcm             latest                          1b336146b1f5   716MB
docker-syncd-brcm             master-16148.481924-d57b61f55   1b336146b1f5   716MB
docker-nat                    latest                          ee314c97b57c   333MB
docker-nat                    master-16148.481924-d57b61f55   ee314c97b57c   333MB
docker-platform-monitor       latest                          7b13508eaf0d   424MB
docker-platform-monitor       master-16148.481924-d57b61f55   7b13508eaf0d   424MB
docker-sonic-gnmi             latest                          1991af4ae3e5   391MB
docker-sonic-gnmi             master-16148.481924-d57b61f55   1991af4ae3e5   391MB
docker-router-advertiser      latest                          79194e56b6c9   303MB
docker-router-advertiser      master-16148.481924-d57b61f55   79194e56b6c9   303MB
docker-lldp                   latest                          eb4c39e5cb20   345MB
docker-lldp                   master-16148.481924-d57b61f55   eb4c39e5cb20   345MB
docker-gbsyncd-broncos        latest                          27a2b3e3b7c9   353MB
docker-gbsyncd-broncos        master-16148.481924-d57b61f55   27a2b3e3b7c9   353MB
docker-database               latest                          c3fd1c0690f9   312MB
docker-database               master-16148.481924-d57b61f55   c3fd1c0690f9   312MB
docker-mux                    latest                          41072c53d6ca   351MB
docker-mux                    master-16148.481924-d57b61f55   41072c53d6ca   351MB
docker-gbsyncd-credo          latest                          d6ae0c59f46a   325MB
docker-gbsyncd-credo          master-16148.481924-d57b61f55   d6ae0c59f46a   325MB
docker-sonic-mgmt-framework   latest                          c5958fb546ea   387MB
docker-sonic-mgmt-framework   master-16148.481924-d57b61f55   c5958fb546ea   387MB

Output of show techsupport:

sonic_dump_M2-W6930_20240222_084815.tar.gz

Additional information you deem important (e.g. issue happens only occasionally):

arlakshm commented 7 months ago

The sfputil commands needs to support by the platform drivers. Can you please triage if there are any issues in your platform. If you think this is generic sonic issue please provide more details