fboss icon indicating copy to clipboard operation
fboss copied to clipboard

DARWIN_NETOS: sync platform manager

Open aalamsi22 opened this issue 3 months ago • 16 comments

Description

  • Initialize the qsfp ports (1-32) and generate the necessary symlinks.
  • Port leds support using scd-leds-darwin.
  • Initialize smbus buses
  • We have also resolved the issue encountered here https://github.com/facebook/fboss/commit/3281ee8d669dafdd917ebc5d6461fc06621ce3d6 by preloading spidev similar to how the meru systems do it.

Testing

PlatformManagerHwTest 7/8 tests pass. NOTE that the failing test is due to the expectation of blue/amber leds to be present which are not supported on Darwin. Arista will add a special case in the test to account for this.

[  FAILED  ] PlatformManagerHwTest.XcvrLedFiles (35479 ms)
[----------] 8 tests from PlatformManagerHwTest (289530 ms total)

[----------] Global test environment tear-down
[==========] 8 tests from 1 test suite ran. (289530 ms total)
[  PASSED  ] 7 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] PlatformManagerHwTest.XcvrLedFiles

 1 FAILED TEST

PM Init of Xcvrs

Ports on Darwin reflect the expected values through the xcvr driver

# ls /run/devmap/xcvrs/
xcvr_1   xcvr_14  xcvr_19  xcvr_23  xcvr_28  xcvr_32  xcvr_8        xcvr_ctrl_12  xcvr_ctrl_17  xcvr_ctrl_21  xcvr_ctrl_26  xcvr_ctrl_30  xcvr_ctrl_6  xcvr_io_10  xcvr_io_15  xcvr_io_2   xcvr_io_24  xcvr_io_29  xcvr_io_4  xcvr_io_9
xcvr_10  xcvr_15  xcvr_2   xcvr_24  xcvr_29  xcvr_4   xcvr_9        xcvr_ctrl_13  xcvr_ctrl_18  xcvr_ctrl_22  xcvr_ctrl_27  xcvr_ctrl_31  xcvr_ctrl_7  xcvr_io_11  xcvr_io_16  xcvr_io_20  xcvr_io_25  xcvr_io_3   xcvr_io_5
xcvr_11  xcvr_16  xcvr_20  xcvr_25  xcvr_3   xcvr_5   xcvr_ctrl_1   xcvr_ctrl_14  xcvr_ctrl_19  xcvr_ctrl_23  xcvr_ctrl_28  xcvr_ctrl_32  xcvr_ctrl_8  xcvr_io_12  xcvr_io_17  xcvr_io_21  xcvr_io_26  xcvr_io_30  xcvr_io_6
xcvr_12  xcvr_17  xcvr_21  xcvr_26  xcvr_30  xcvr_6   xcvr_ctrl_10  xcvr_ctrl_15  xcvr_ctrl_2   xcvr_ctrl_24  xcvr_ctrl_29  xcvr_ctrl_4   xcvr_ctrl_9  xcvr_io_13  xcvr_io_18  xcvr_io_22  xcvr_io_27  xcvr_io_31  xcvr_io_7
xcvr_13  xcvr_18  xcvr_22  xcvr_27  xcvr_31  xcvr_7   xcvr_ctrl_11  xcvr_ctrl_16  xcvr_ctrl_20  xcvr_ctrl_25  xcvr_ctrl_3   xcvr_ctrl_5   xcvr_io_1    xcvr_io_14  xcvr_io_19  xcvr_io_23  xcvr_io_28  xcvr_io_32  xcvr_io_8

Port 1 is expected to be present

# cat /run/devmap/xcvrs/xcvr_ctrl_1/xcvr_present_1
0 <-- 0 is present

Testing with a non-existing xcvr

# cat /run/devmap/xcvrs/xcvr_ctrl_5/xcvr_present_5
1  <---- 1 is absent

Port Leds

Verified that the green led is on at first, and turning on yellow leds turns off the green led: E.g. Setting Port 1 LED to yellow # echo 1 > port1_led1\:yellow\:status/brightness image image

aalamsi22 avatar Nov 06 '25 20:11 aalamsi22