dentproject / dentOS

dentOS SwitchDev based NOS
Other
200 stars 59 forks source link

DentOS Support for AS7712-32X #156

Closed abhiranjeet closed 2 years ago

abhiranjeet commented 2 years ago

Hi,

I have been referring to https://github.com/opencomputeproject/OpenNetworkLinux.git for building ONL and now I have started with DentOS. To build it for AS7712-32X switch, I have added it under ONLPM_OPTION_PLATFORM_ALLOWLIST in setup.env file. Build was successful with a Debian 9 Installer.

Although, when installing the image on that switch, I am doing lsmod and don't see any platform modules loaded, even onlpdump is giving all sorts of error. Is this intended ?

Enclosing error log of onlpdump

root@localhost:~# onlpdump
   System Information: = {
       MAC: 00:00:00:00:00:00
   }
   thermal @ 1 = {
       Description: CPU Core
       Status: 0x00000001 [ PRESENT ]
       Caps:   0x0000000f [ GET_TEMPERATURE,GET_WARNING_THRESHOLD,GET_ERROR_THRESHOLD,GET_SHUTDOWN_THRESHOLD ]
       Temperature: 37000
       thresholds = {
           Warning: 45000
           Error: 55000
           Shutdown: 60000
       }
   }
   thermal @ 2 = {
       Error retrieving status: E_MISSING
   }
   thermal @ 3 = {
       Error retrieving status: E_MISSING
   }
   thermal @ 4 = {
       Error retrieving status: E_MISSING
   }
   thermal @ 5 = {
       Error retrieving status: E_MISSING
   }
   led @ 1 = {
       Description: Chassis LED 1 (DIAG LED)
       Status: 0x00000005 [ PRESENT,ON ]
       Caps:   0x00011401 [ ON_OFF,RED,ORANGE,GREEN ]
       Mode: ORANGE
       Char:
   }
   led @ 2 = {
       Description: Chassis LED 2 (LOC LED)
       Status: 0x00000005 [ PRESENT,ON ]
       Caps:   0x00040001 [ ON_OFF,BLUE ]
       Mode: BLUE
       Char:
   }
   led @ 3 = {
       Description: Chassis LED 3 (FAN LED)
       Status: 0x00000005 [ PRESENT,ON ]
       Caps:   0x00400000 [ AUTO ]
       Mode: AUTO
       Char:
   }
   led @ 4 = {
       Description: Chassis LED 4 (PSU1 LED)
       Status: 0x00000005 [ PRESENT,ON ]
       Caps:   0x00400000 [ AUTO ]
       Mode: AUTO
       Char:
   }
   led @ 5 = {
       Description: Chassis LED 4 (PSU2 LED)
       Status: 0x00000005 [ PRESENT,ON ]
       Caps:   0x00400000 [ AUTO ]
       Mode: AUTO
       Char:
   }
   psu @ 1 = {
Unable to read PSU(1) node(psu_present)
       Description: PSU-1
       Not present.
   }
   psu @ 2 = {
Unable to read PSU(2) node(psu_present)
       Description: PSU-2
       Not present.
   }
   fan @ 1 = {
       Error retrieving status: E_INTERNAL
   }
   fan @ 2 = {
       Error retrieving status: E_INTERNAL
   }
   fan @ 3 = {
       Error retrieving status: E_INTERNAL
   }
   fan @ 4 = {
       Error retrieving status: E_INTERNAL
   }
   fan @ 5 = {
       Error retrieving status: E_INTERNAL
   }
   fan @ 6 = {
       Error retrieving status: E_INTERNAL
   }

SFPs:
12-12 16:31:08.837546 [x86_64_accton_as7712_32x] Unable to open the sfp_is_present_all device file.
  Presence Bitmap: Error: E_INTERNAL
  RX_LOS Bitmap: Error: E_UNSUPPORTED

12-12 16:31:08.837705 [x86_64_accton_as7712_32x] Unable to read present status from port(0)

Port 00: Error: E_INTERNAL
12-12 16:31:08.837778 [x86_64_accton_as7712_32x] Unable to read present status from port(1)

Port 01: Error: E_INTERNAL
12-12 16:31:08.837859 [x86_64_accton_as7712_32x] Unable to read present status from port(2)

Port 02: Error: E_INTERNAL
12-12 16:31:08.837938 [x86_64_accton_as7712_32x] Unable to read present status from port(3)

Port 03: Error: E_INTERNAL
12-12 16:31:08.838017 [x86_64_accton_as7712_32x] Unable to read present status from port(4)

Port 04: Error: E_INTERNAL
12-12 16:31:08.838095 [x86_64_accton_as7712_32x] Unable to read present status from port(5)

Port 05: Error: E_INTERNAL
12-12 16:31:08.838174 [x86_64_accton_as7712_32x] Unable to read present status from port(6)

Port 06: Error: E_INTERNAL
12-12 16:31:08.838252 [x86_64_accton_as7712_32x] Unable to read present status from port(7)

Port 07: Error: E_INTERNAL
12-12 16:31:08.838331 [x86_64_accton_as7712_32x] Unable to read present status from port(8)

Port 08: Error: E_INTERNAL
12-12 16:31:08.838411 [x86_64_accton_as7712_32x] Unable to read present status from port(9)

Port 09: Error: E_INTERNAL
12-12 16:31:08.838491 [x86_64_accton_as7712_32x] Unable to read present status from port(10)

Port 10: Error: E_INTERNAL
12-12 16:31:08.838574 [x86_64_accton_as7712_32x] Unable to read present status from port(11)

Port 11: Error: E_INTERNAL
12-12 16:31:08.838653 [x86_64_accton_as7712_32x] Unable to read present status from port(12)

Port 12: Error: E_INTERNAL
12-12 16:31:08.838731 [x86_64_accton_as7712_32x] Unable to read present status from port(13)

Port 13: Error: E_INTERNAL
12-12 16:31:08.838810 [x86_64_accton_as7712_32x] Unable to read present status from port(14)

Port 14: Error: E_INTERNAL
12-12 16:31:08.838890 [x86_64_accton_as7712_32x] Unable to read present status from port(15)

Port 15: Error: E_INTERNAL
12-12 16:31:08.838964 [x86_64_accton_as7712_32x] Unable to read present status from port(16)

Port 16: Error: E_INTERNAL
12-12 16:31:08.839030 [x86_64_accton_as7712_32x] Unable to read present status from port(17)

Port 17: Error: E_INTERNAL
12-12 16:31:08.839101 [x86_64_accton_as7712_32x] Unable to read present status from port(18)

Port 18: Error: E_INTERNAL
12-12 16:31:08.839179 [x86_64_accton_as7712_32x] Unable to read present status from port(19)

Port 19: Error: E_INTERNAL
12-12 16:31:08.839277 [x86_64_accton_as7712_32x] Unable to read present status from port(20)

Port 20: Error: E_INTERNAL
12-12 16:31:08.839358 [x86_64_accton_as7712_32x] Unable to read present status from port(21)

Port 21: Error: E_INTERNAL
12-12 16:31:08.839437 [x86_64_accton_as7712_32x] Unable to read present status from port(22)

Port 22: Error: E_INTERNAL
12-12 16:31:08.839517 [x86_64_accton_as7712_32x] Unable to read present status from port(23)

Port 23: Error: E_INTERNAL
12-12 16:31:08.839597 [x86_64_accton_as7712_32x] Unable to read present status from port(24)

Port 24: Error: E_INTERNAL
12-12 16:31:08.839677 [x86_64_accton_as7712_32x] Unable to read present status from port(25)

Port 25: Error: E_INTERNAL
12-12 16:31:08.839756 [x86_64_accton_as7712_32x] Unable to read present status from port(26)

Port 26: Error: E_INTERNAL
12-12 16:31:08.839835 [x86_64_accton_as7712_32x] Unable to read present status from port(27)

Port 27: Error: E_INTERNAL
12-12 16:31:08.839904 [x86_64_accton_as7712_32x] Unable to read present status from port(28)

Port 28: Error: E_INTERNAL
12-12 16:31:08.839984 [x86_64_accton_as7712_32x] Unable to read present status from port(29)

Port 29: Error: E_INTERNAL
12-12 16:31:08.840064 [x86_64_accton_as7712_32x] Unable to read present status from port(30)

Port 30: Error: E_INTERNAL
12-12 16:31:08.840143 [x86_64_accton_as7712_32x] Unable to read present status from port(31)

Port 31: Error: E_INTERNAL
root@localhost:~#
root@localhost:~#
root@localhost:~#
root@localhost:~#
paulmenzel commented 2 years ago

DentOS only supports switches with switch ASCIs/silico supported by Linux’ switchdev driver. The AS7712-32X uses the switch silicon Broadcom BCM56960 Tomahawk 3.2 Tbps, requiring proprietary interfaces/Linux drivers. Therefore it is not supported by DentOS. Please contact Broadcom to provide switchdev drivers, and allow their devices to be used in modern infrastructures with need for security and flexibility.

Publishing the ASIC documentation to allow writing drivers would even be better.

Until Broadcom does that, the AS7712-32X can’t and won’t be supported by DentOS. Therefore, please close the issue.

abhiranjeet commented 2 years ago

Thanks @paulmenzel