From b1d2f6d3faa0fe8c805e836a70d1d2a1d47501e7 Mon Sep 17 00:00:00 2001 From: dzarista Date: Mon, 26 Jan 2026 23:53:13 +0000 Subject: [PATCH] blackwolf fan config --- fboss/platform/config_lib/ConfigLibTest.cpp | 2 + .../configs/blackwolf800banw/fan_service.json | 305 ++++++++++++++++++ 2 files changed, 307 insertions(+) create mode 100644 fboss/platform/configs/blackwolf800banw/fan_service.json diff --git a/fboss/platform/config_lib/ConfigLibTest.cpp b/fboss/platform/config_lib/ConfigLibTest.cpp index 5c034e49c0f50..c398d74f70bc8 100644 --- a/fboss/platform/config_lib/ConfigLibTest.cpp +++ b/fboss/platform/config_lib/ConfigLibTest.cpp @@ -16,6 +16,7 @@ const std::string kMeru800bfa = "meru800bfa"; const std::string kMorgan800cc = "morgan800cc"; const std::string kJanga800bic = "janga800bic"; const std::string kTahan800bc = "tahan800bc"; +const std::string kBlackwolf800banw = "blackwolf800banw"; const std::string kSample = "sample"; const std::string kNonExistentPlatform = "nonExistentPlatform"; } // namespace @@ -39,6 +40,7 @@ TEST(ConfigLibTest, Basic) { EXPECT_NO_THROW(ConfigLib().getFanServiceConfig(kMorgan800cc)); EXPECT_NO_THROW(ConfigLib().getFanServiceConfig(kJanga800bic)); EXPECT_NO_THROW(ConfigLib().getFanServiceConfig(kTahan800bc)); + EXPECT_NO_THROW(ConfigLib().getFanServiceConfig(kBlackwolf800banw)); EXPECT_NO_THROW(ConfigLib().getFanServiceConfig(kSample)); EXPECT_THROW( ConfigLib().getFanServiceConfig(kNonExistentPlatform), diff --git a/fboss/platform/configs/blackwolf800banw/fan_service.json b/fboss/platform/configs/blackwolf800banw/fan_service.json new file mode 100644 index 0000000000000..34701271774c8 --- /dev/null +++ b/fboss/platform/configs/blackwolf800banw/fan_service.json @@ -0,0 +1,305 @@ +{ + "pwmBoostOnNumDeadFan": 1, + "pwmBoostOnNumDeadSensor": 0, + "pwmBoostOnNoQsfpAfterInSec": 31, + "pwmBoostValue": 100, + "pwmTransitionValue": 85, + "pwmLowerThreshold": 70, + "pwmUpperThreshold": 100, + "optics": [ + { + "opticName": "osfp_group", + "access": { + "accessType": "ACCESS_TYPE_QSFP" + }, + "portList": [], + "aggregationType": "OPTIC_AGGREGATION_TYPE_MAX", + "tempToPwmMaps": { + "OPTIC_TYPE_800_GENERIC": { + "5": 70, + "64": 70, + "65": 75, + "68": 85, + "70": 100 + } + } + } + ], + "controlInterval": { + "sensorReadInterval": 5, + "pwmUpdateInterval": 5 + }, + "sensors": [ + { + "sensorName": "SMB_Q4D_DIODE_D0_CORE_TEMP_1", + "access": { + "accessType": "ACCESS_TYPE_THRIFT" + }, + "pwmCalcType": "SENSOR_PWM_CALC_TYPE_FOUR_LINEAR_TABLE", + "normalUpTable": { + "15": 70, + "110": 100 + }, + "normalDownTable": { + "15": 70, + "110": 100 + }, + "failUpTable": { + "15": 70, + "110": 100 + }, + "failDownTable": { + "15": 70, + "110": 100 + } + }, + { + "sensorName": "SMB_Q4D_DIODE_D0_CORE_TEMP_7", + "access": { + "accessType": "ACCESS_TYPE_THRIFT" + }, + "pwmCalcType": "SENSOR_PWM_CALC_TYPE_FOUR_LINEAR_TABLE", + "normalUpTable": { + "15": 70, + "110": 100 + }, + "normalDownTable": { + "15": 70, + "110": 100 + }, + "failUpTable": { + "15": 70, + "110": 100 + }, + "failDownTable": { + "15": 70, + "110": 100 + } + }, + { + "sensorName": "SMB_Q4D_DIODE_D1_CORE_TEMP_1", + "access": { + "accessType": "ACCESS_TYPE_THRIFT" + }, + "pwmCalcType": "SENSOR_PWM_CALC_TYPE_FOUR_LINEAR_TABLE", + "normalUpTable": { + "15": 70, + "110": 100 + }, + "normalDownTable": { + "15": 70, + "110": 100 + }, + "failUpTable": { + "15": 70, + "110": 100 + }, + "failDownTable": { + "15": 70, + "110": 100 + } + }, + { + "sensorName": "SMB_Q4D_DIODE_D1_CORE_TEMP_7", + "access": { + "accessType": "ACCESS_TYPE_THRIFT" + }, + "pwmCalcType": "SENSOR_PWM_CALC_TYPE_FOUR_LINEAR_TABLE", + "normalUpTable": { + "15": 70, + "110": 100 + }, + "normalDownTable": { + "15": 70, + "110": 100 + }, + "failUpTable": { + "15": 70, + "110": 100 + }, + "failDownTable": { + "15": 70, + "110": 100 + } + }, + { + "sensorName": "SMB_Q4D_DIODE_NIF0_TEMP_1", + "access": { + "accessType": "ACCESS_TYPE_THRIFT" + }, + "pwmCalcType": "SENSOR_PWM_CALC_TYPE_FOUR_LINEAR_TABLE", + "normalUpTable": { + "15": 70, + "110": 100 + }, + "normalDownTable": { + "15": 70, + "110": 100 + }, + "failUpTable": { + "15": 70, + "110": 100 + }, + "failDownTable": { + "15": 70, + "110": 100 + } + }, + { + "sensorName": "SMB_Q4D_DIODE_NIF1_TEMP_0", + "access": { + "accessType": "ACCESS_TYPE_THRIFT" + }, + "pwmCalcType": "SENSOR_PWM_CALC_TYPE_FOUR_LINEAR_TABLE", + "normalUpTable": { + "15": 70, + "110": 100 + }, + "normalDownTable": { + "15": 70, + "110": 100 + }, + "failUpTable": { + "15": 70, + "110": 100 + }, + "failDownTable": { + "15": 70, + "110": 100 + } + }, + { + "sensorName": "SMB_Q4D_DIODE_NIF2_TEMP_1", + "access": { + "accessType": "ACCESS_TYPE_THRIFT" + }, + "pwmCalcType": "SENSOR_PWM_CALC_TYPE_FOUR_LINEAR_TABLE", + "normalUpTable": { + "15": 70, + "110": 100 + }, + "normalDownTable": { + "15": 70, + "110": 100 + }, + "failUpTable": { + "15": 70, + "110": 100 + }, + "failDownTable": { + "15": 70, + "110": 100 + } + }, + { + "sensorName": "SMB_Q4D_DIODE_NIF3_TEMP_0", + "access": { + "accessType": "ACCESS_TYPE_THRIFT" + }, + "pwmCalcType": "SENSOR_PWM_CALC_TYPE_FOUR_LINEAR_TABLE", + "normalUpTable": { + "15": 70, + "110": 100 + }, + "normalDownTable": { + "15": 70, + "110": 100 + }, + "failUpTable": { + "15": 70, + "110": 100 + }, + "failDownTable": { + "15": 70, + "110": 100 + } + } + ], + "fans": [ + { + "fanName": "fan_1", + "rpmSysfsPath": "/run/devmap/sensors/FAN_CPLD/fan1_input", + "pwmSysfsPath": "/run/devmap/sensors/FAN_CPLD/pwm1", + "presenceSysfsPath": "/run/devmap/sensors/FAN_CPLD/fan1_present", + "goodLedSysfsPath": "/sys/class/leds/fan1_led:blue:status", + "failLedSysfsPath": "/sys/class/leds/fan1_led:amber:status", + "pwmMin": 1, + "pwmMax": 255, + "fanPresentVal": 1, + "fanMissingVal": 0 + }, + { + "fanName": "fan_2", + "rpmSysfsPath": "/run/devmap/sensors/FAN_CPLD/fan2_input", + "pwmSysfsPath": "/run/devmap/sensors/FAN_CPLD/pwm2", + "presenceSysfsPath": "/run/devmap/sensors/FAN_CPLD/fan2_present", + "goodLedSysfsPath": "/sys/class/leds/fan2_led:blue:status", + "failLedSysfsPath": "/sys/class/leds/fan2_led:amber:status", + "pwmMin": 1, + "pwmMax": 255, + "fanPresentVal": 1, + "fanMissingVal": 0 + }, + { + "fanName": "fan_3", + "rpmSysfsPath": "/run/devmap/sensors/FAN_CPLD/fan3_input", + "pwmSysfsPath": "/run/devmap/sensors/FAN_CPLD/pwm3", + "presenceSysfsPath": "/run/devmap/sensors/FAN_CPLD/fan3_present", + "goodLedSysfsPath": "/sys/class/leds/fan3_led:blue:status", + "failLedSysfsPath": "/sys/class/leds/fan3_led:amber:status", + "pwmMin": 1, + "pwmMax": 255, + "fanPresentVal": 1, + "fanMissingVal": 0 + }, + { + "fanName": "fan_4", + "rpmSysfsPath": "/run/devmap/sensors/FAN_CPLD/fan4_input", + "pwmSysfsPath": "/run/devmap/sensors/FAN_CPLD/pwm4", + "presenceSysfsPath": "/run/devmap/sensors/FAN_CPLD/fan4_present", + "goodLedSysfsPath": "/sys/class/leds/fan4_led:blue:status", + "failLedSysfsPath": "/sys/class/leds/fan4_led:amber:status", + "pwmMin": 1, + "pwmMax": 255, + "fanPresentVal": 1, + "fanMissingVal": 0 + }, + { + "fanName": "fan_5", + "rpmSysfsPath": "/run/devmap/sensors/FAN_CPLD/fan5_input", + "pwmSysfsPath": "/run/devmap/sensors/FAN_CPLD/pwm5", + "presenceSysfsPath": "/run/devmap/sensors/FAN_CPLD/fan5_present", + "goodLedSysfsPath": "/sys/class/leds/fan5_led:blue:status", + "failLedSysfsPath": "/sys/class/leds/fan5_led:amber:status", + "pwmMin": 1, + "pwmMax": 255, + "fanPresentVal": 1, + "fanMissingVal": 0 + } + ], + "zones": [ + { + "zoneType": "ZONE_TYPE_MAX", + "zoneName": "main_zone", + "sensorNames": [ + "SMB_Q4D_DIODE_D0_CORE_TEMP_1", + "SMB_Q4D_DIODE_D0_CORE_TEMP_7", + "SMB_Q4D_DIODE_D1_CORE_TEMP_1", + "SMB_Q4D_DIODE_D1_CORE_TEMP_7", + "SMB_Q4D_DIODE_NIF0_TEMP_1", + "SMB_Q4D_DIODE_NIF1_TEMP_0", + "SMB_Q4D_DIODE_NIF2_TEMP_1", + "SMB_Q4D_DIODE_NIF3_TEMP_0", + "osfp_group" + ], + "fanNames": [ + "fan_1", + "fan_2", + "fan_3", + "fan_4", + "fan_5" + ], + "slope": 3 + } + ] +}