From bd36cff1c7b2cf4b03af40150dbe0ee444bf4c34 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Thu, 6 Jun 2024 13:29:49 -0700 Subject: [PATCH 01/30] Added schema for reboot-cause and health-info chassisStateDB --- doc/smart-switch/pmon/smartswitch-pmon.md | 112 ++++++++++++---------- 1 file changed, 61 insertions(+), 51 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 2c95cbb385..987969425f 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -5,6 +5,7 @@ | 0.1 | 12/02/2023 | Ramesh Raghupathy | Initial version| | 0.2 | 01/08/2024 | Ramesh Raghupathy | Updated API, CPI sections and addressed review comments | | 0.3 | 02/26/2024 | Ramesh Raghupathy | Addressed review comments | +| 0.4 | 06/06/2024 | Ramesh Raghupathy | Added schema for DPU health-info and added key suffix to module reboot-cause to avoid key conflicts | ## Definitions / Abbreviations @@ -195,7 +196,9 @@ Key: "CHASSIS_MODULE|DPU0" * Health * SmartSwitch DPUs should store their health data locally and also provide it to the host for a consolidated view of the CLIs * DPUs should support a CLI to display the health data “show system-health ...” (See CLIs section) - * The host pmon should use this data to support the host side CLIs. Though accessing this data from DPUs and storing them on the switch is implementation specific it is recommended to use redis call and store them on the switch chassisStateDB for faster access. use "UserDefinedChecker" class to provide this data to the CLIs. + * The host pmon should use this data to support the host side CLIs. Though accessing this data from DPUs and storing them on the switch is implementation specific it is recommended to use redis call and store them on the switch chassisStateDB for faster access. + * Please refer to section:3.1.5.1 for the HEALTH_INFO schema + * use "UserDefinedChecker" class to provide this data to the CLIs. * Vendor specific data such as interrupt events can also be placed in user defined fields under this DB * This table already exists in modular chassis design and the DPUs will use this just like a line card. * Alarm and Syslog @@ -442,20 +445,34 @@ is_midplane_reachable(self): * The get_reboot_cause will return the current reboot-cause of the module. * For persistent storage of the DPU reboot-cause and reboot-caue-history files use the existing host storage path and mechanism. -#### Schema for REBOOT_CAUSE - switch stateDB +#### Schema for REBOOT_CAUSE of SWITCH on switch stateDB ``` Key: "REBOOT_CAUSE|2023_06_18_14_56_12" "REBOOT_CAUSE|2023_06_18_14_56_12": { "value": { - "cause": "REBOOT_CAUSE_HOST_RESET_DPU", + "cause": "Unknown", "comment": "N/A", - "device": "DPU5", "time": "2023_06_18_14_56_12", "user": "N/A" } }, +``` +#### Schema for REBOOT_CAUSE of DPUs on switch ChassisStateDB +``` + Key: "REBOOT_CAUSE|2024_06_06_09_31_18|DPU0" + + "REBOOT_CAUSE|2024_06_06_09_31_18|DPU0": { + "value": { + "cause": "Software causes (Reboot)", + "comment": "User issued 'reboot' command [User: admin, Time: Thu Jun 6 09:46:43 AM UTC 2024]", + "device": "DPU0", + "time": "N/A", + "user": "N/A" + } + }, + ``` 2. Though the get_oper_status(self) can get the operational status of the DPU Modules, the current implementation only has limited capabilities. * Can only state MODULE_STATUS_FAULT and can't show exactly where in the state progression the DPU failed. This is critical in fault isolation, DPU switchover decision, resiliency and recovery @@ -492,11 +509,46 @@ dpu_data_plane_state: up refers to configuration downloaded, the pipeline stage ``` 3. Each DPU has to store the health data in its local DB and should provide it to the switch. -* When the "show system-health ..." CLI is executed on the switch, the "UserDefinedChecker" class will collect the data and feed it to the CLI. It is up to the platform on how this is done. However, for faster access store it in the switch ChassisStateDB. +* When the "show system-health ..." CLI is executed on the switch. For faster access store it in the switch ChassisStateDB. * The DPU is a complex hardware, to facilitate debug, a consistent way of storing and accessing the health record of the DPUs is critical in a multi vendor scenario even though it is a platform specific implementation. -* Both switch and the DPUs will follow to the [SONiC system health monitor HLD](https://github.com/sonic-net/SONiC/blob/ce313db92a694e007a6c5332ce3267ac158290f6/doc/system_health_monitoring/system-health-HLD.md) +* Both switch and the DPUs will follow the [SONiC system health monitor HLD](https://github.com/sonic-net/SONiC/blob/ce313db92a694e007a6c5332ce3267ac158290f6/doc/system_health_monitoring/system-health-HLD.md) * Refer to section 3.4.5 for "show system-health .." CLIs +#### Schema for HEALTH_INFO of DPUs on switch ChassisStateDB +``` + Key: "SYSTEM_HEALTH_INFO|DPU0" + + "SYSTEM_HEALTH_INFO|DPU0": { + "value": { + "ignore_stat": "{\"psu\": {\"type\": \"Device\", \"message\": \"\", \"status\": \"Ignored\"}, + \"fan\": {\"type\": \"Device\", \"message\": \"\", \"status\": \"Ignored\"}}", + + "stat": "{ + \"Services\": { + \"sonic\": {\"type\": \"System\", \"message\": \"\", \"status\": \"OK\"}, + \"rsyslog\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, + \"root-overlay\": {\"type\": \"Filesystem\", \"message\": \"\", \"status\": \"OK\"}, + \"memory_check\": {\"type\": \"Program\", \"message\": \"\", \"status\": \"OK\"}, + \"bgp:bgpd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, + \"swss:portmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, + \"swss:coppmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, + \"swss:tunnelmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, + \"eventd:eventd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"} + }, + \"Hardware\": {}, + \"DPU Category\": { + \"dpu-pdsagent\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, + \"dpu-pciemgrd\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, + \"dpu-eth_Uplink1/1_status\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, + \"dpu-pcie_link\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"} + } + }", + + "system_status_LED": "green" + } + }, + +``` ##### 3.1.5.2 ModuleBase class new APIs The DPU ID is used only for indexing purpose. @@ -537,35 +589,9 @@ get_health_info(self): Retrieves the dpu health object having the detailed dpu health Fetched from the DPUs Returns: - An object instance of the dpu health. + An object instance of the dpu health as shown in the schema Returns None when the module is SWITCH - - Example: - { -   "led_status": "green", - -   "monitoredlists": { -     "Program": [ -       {"Name": "routeCheck", "Status": "Not OK", "Type": "Program"}, -       // Add more program items here -     ], -     "Service": [ -       {"Name": "mgmt-framework", "Status": "Not OK", "Type": "Service"}, -       // Add more service items here -     ], -     "Fan": [ -       {"Name": "Fan", "Status": "Not OK", "Type": "Fan"} -     ], -     "UserDefined": [ -       // Add user-defined items here -     ] -   }, - -   "ignore_list": [ -     {"Name": "example1", "Status": "OK", "Type": "Type1"}, -     // Add more items to ignore list -   ] - } + ``` ### 3.2 Thermal management @@ -676,26 +702,10 @@ fantray0 N/A fantray0.fan 55% intake Present OK 20230 fantray1 N/A fantray1.fan 56% intake Present OK 20230728 06:41:17 ``` -#### 3.4.1 Reboot Cause +#### 3.4.1 Reboot Cause CLIs * There are two CLIs "show reboot-cause" and "show reboot-cause history" which are applicable to both DPUs and the Switch. However, when executed on the Switch the CLIs provide a consolidated view of reboot cause as shown below. * Each DPU will update its reboot cause history in the Switch ChasissStateDB upon boot up. The recent reboot-cause can be derived from that list of reboot-causes. -* The switch side PMON will copy this into the stateDB so that the existing workflow will not be affected. -* The get_reboot_cause API will return the current reboot-cause of the module. -#### REBOOT_CAUSE DB schema -``` -Key: "REBOOT_CAUSE|2023_06_18_14_56_12" - -"REBOOT_CAUSE|2023_06_18_14_56_12": { - "value": { - "cause": "REBOOT_CAUSE_HOST_RESET_DPU", - "comment": "N/A", - "device": "DPU5", - "time": "2023_06_18_14_56_12", - "user": "N/A" - } -} -``` #### 3.4.2 Reboot Cause CLIs on the DPUs **`Executed on the DPU`** * The "show reboot-cause" shows the most recent reboot-cause * The "show reboot-cause history" shows the reboot-cause history From 98e787bda51393e1380b7e8e7bfd19a060db9b15 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Thu, 6 Jun 2024 13:37:00 -0700 Subject: [PATCH 02/30] Fixed formatting --- doc/smart-switch/pmon/smartswitch-pmon.md | 46 ++++++++++++----------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 987969425f..8684bc624e 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -520,31 +520,33 @@ dpu_data_plane_state: up refers to configuration downloaded, the pipeline stage "SYSTEM_HEALTH_INFO|DPU0": { "value": { - "ignore_stat": "{\"psu\": {\"type\": \"Device\", \"message\": \"\", \"status\": \"Ignored\"}, - \"fan\": {\"type\": \"Device\", \"message\": \"\", \"status\": \"Ignored\"}}", - - "stat": "{ - \"Services\": { - \"sonic\": {\"type\": \"System\", \"message\": \"\", \"status\": \"OK\"}, - \"rsyslog\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, - \"root-overlay\": {\"type\": \"Filesystem\", \"message\": \"\", \"status\": \"OK\"}, - \"memory_check\": {\"type\": \"Program\", \"message\": \"\", \"status\": \"OK\"}, - \"bgp:bgpd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, - \"swss:portmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, - \"swss:coppmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, - \"swss:tunnelmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, - \"eventd:eventd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"} - }, - \"Hardware\": {}, - \"DPU Category\": { - \"dpu-pdsagent\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, - \"dpu-pciemgrd\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, - \"dpu-eth_Uplink1/1_status\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, - \"dpu-pcie_link\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"} + "ignore_stat": "{ + \"psu\": {\"type\": \"Device\", \"message\": \"\", \"status\": \"Ignored\"}, + \"fan\": {\"type\": \"Device\", \"message\": \"\", \"status\": \"Ignored\"} + }", + + "stat": "{ + \"Services\": { + \"sonic\": {\"type\": \"System\", \"message\": \"\", \"status\": \"OK\"}, + \"rsyslog\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, + \"root-overlay\": {\"type\": \"Filesystem\", \"message\": \"\", \"status\": \"OK\"}, + \"memory_check\": {\"type\": \"Program\", \"message\": \"\", \"status\": \"OK\"}, + \"bgp:bgpd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, + \"swss:portmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, + \"swss:coppmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, + \"swss:tunnelmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, + \"eventd:eventd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"} + }, + \"Hardware\": {}, + \"DPU Category\": { + \"dpu-pdsagent\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, + \"dpu-pciemgrd\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, + \"dpu-eth_Uplink1/1_status\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, + \"dpu-pcie_link\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"} } }", - "system_status_LED": "green" + "system_status_LED": "green" } }, From b8b02c170cf8ec82d7949536ca28983995ad598f Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Thu, 6 Jun 2024 13:38:30 -0700 Subject: [PATCH 03/30] Fixed formatting --- doc/smart-switch/pmon/smartswitch-pmon.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 8684bc624e..334afc4764 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -456,7 +456,7 @@ is_midplane_reachable(self): "time": "2023_06_18_14_56_12", "user": "N/A" } - }, + } ``` #### Schema for REBOOT_CAUSE of DPUs on switch ChassisStateDB @@ -471,7 +471,7 @@ is_midplane_reachable(self): "time": "N/A", "user": "N/A" } - }, + } ``` 2. Though the get_oper_status(self) can get the operational status of the DPU Modules, the current implementation only has limited capabilities. @@ -548,7 +548,7 @@ dpu_data_plane_state: up refers to configuration downloaded, the pipeline stage "system_status_LED": "green" } - }, + } ``` ##### 3.1.5.2 ModuleBase class new APIs From 7918edf81d76734e61b64570aec85dd979545cf0 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Thu, 6 Jun 2024 13:45:57 -0700 Subject: [PATCH 04/30] Added TestPlan link --- doc/smart-switch/pmon/smartswitch-pmon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 334afc4764..540a957477 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -1034,4 +1034,4 @@ Note: ``` ## 4. Test Plan -In Progress +[Test Plan](https://github.com/rameshraghupathy/sonic-mgmt/blob/master/docs/testplan/SmartSwitch-PMON-testplan.md) From 1ae222262cdb76a839e1f3dcd68e22ac93935b79 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Sun, 9 Jun 2024 19:11:27 -0700 Subject: [PATCH 05/30] Did some cleanup --- doc/smart-switch/pmon/smartswitch-pmon.md | 36 +++++++++++------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 540a957477..5b56d63296 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -521,28 +521,28 @@ dpu_data_plane_state: up refers to configuration downloaded, the pipeline stage "SYSTEM_HEALTH_INFO|DPU0": { "value": { "ignore_stat": "{ - \"psu\": {\"type\": \"Device\", \"message\": \"\", \"status\": \"Ignored\"}, - \"fan\": {\"type\": \"Device\", \"message\": \"\", \"status\": \"Ignored\"} + "psu": {"type": "Device", "message": "", "status": "Ignored"}, + "fan": {"type": "Device", "message": "", "status": "Ignored"} }", "stat": "{ - \"Services\": { - \"sonic\": {\"type\": \"System\", \"message\": \"\", \"status\": \"OK\"}, - \"rsyslog\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, - \"root-overlay\": {\"type\": \"Filesystem\", \"message\": \"\", \"status\": \"OK\"}, - \"memory_check\": {\"type\": \"Program\", \"message\": \"\", \"status\": \"OK\"}, - \"bgp:bgpd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, - \"swss:portmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, - \"swss:coppmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, - \"swss:tunnelmgrd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"}, - \"eventd:eventd\": {\"type\": \"Process\", \"message\": \"\", \"status\": \"OK\"} + "Services": { + "sonic": {"type": "System", "message": "", "status": "OK"}, + "rsyslog": {"type": "Process", "message": "", "status": "OK"}, + "root-overlay": {"type": "Filesystem", "message": "", "status": "OK"}, + "memory_check": {"type": "Program", "message": "", "status": "OK"}, + "bgp:bgpd": {"type": "Process", "message": "", "status": "OK"}, + "swss:portmgrd": {"type": "Process", "message": "", "status": "OK"}, + "swss:coppmgrd": {"type": "Process", "message": "", "status": "OK"}, + "swss:tunnelmgrd": {"type": "Process", "message": "", "status": "OK"}, + "eventd:eventd": {"type": "Process", "message": "", "status": "OK"} }, - \"Hardware\": {}, - \"DPU Category\": { - \"dpu-pdsagent\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, - \"dpu-pciemgrd\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, - \"dpu-eth_Uplink1/1_status\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"}, - \"dpu-pcie_link\": {\"type\": \"UserDefine\", \"message\": \"\", \"status\": \"OK\"} + "Hardware": {}, + "DPU Category": { + "dpu-pdsagent": {"type": "UserDefine", "message": "", "status": "OK"}, + "dpu-pciemgrd": {"type": "UserDefine", "message": "", "status": "OK"}, + "dpu-eth_Uplink1/1_status": {"type": "UserDefine", "message": "", "status": "OK"}, + "dpu-pcie_link": {"type": "UserDefine", "message": "", "status": "OK"} } }", From a14fd881b41ebde1fbb232e7a35464492788536d Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Wed, 12 Jun 2024 06:58:51 -0700 Subject: [PATCH 06/30] Updated reboot-cause schema, system-health-info schema and removed the module_type_switch based on the implementation PR review --- doc/smart-switch/pmon/smartswitch-pmon.md | 68 ++++++++++------------- 1 file changed, 29 insertions(+), 39 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 5b56d63296..c088a917cd 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -222,7 +222,7 @@ SmartSwitch PMON block diagram ### 3.1. Platform monitoring and management * SmartSwitch design Extends the existing chassis_base class and module_base class as described below. -* Extend MODULE_TYPE in ModuleBase class with MODULE_TYPE_DPU and MODULE_TYPE_SWITCH to support SmartSwitch +* Extend MODULE_TYPE in ModuleBase class with MODULE_TYPE_DPU to support SmartSwitch #### 3.1.1 ChassisBase class API enhancements is_modular_chassis(self): @@ -370,7 +370,7 @@ get_type(self): Returns: A string, the module-type from one of the predefined types: - MODULE_TYPE_SWITCH, MODULE_TYPE_DPU + MODULE_TYPE_DPU ``` get_oper_status(self): @@ -461,9 +461,9 @@ is_midplane_reachable(self): ``` #### Schema for REBOOT_CAUSE of DPUs on switch ChassisStateDB ``` - Key: "REBOOT_CAUSE|2024_06_06_09_31_18|DPU0" + Key: "REBOOT_CAUSE|DPU0|2024_06_06_09_31_18" - "REBOOT_CAUSE|2024_06_06_09_31_18|DPU0": { + "REBOOT_CAUSE|DPU0|2024_06_06_09_31_18": { "value": { "cause": "Software causes (Reboot)", "comment": "User issued 'reboot' command [User: admin, Time: Thu Jun 6 09:46:43 AM UTC 2024]", @@ -516,40 +516,28 @@ dpu_data_plane_state: up refers to configuration downloaded, the pipeline stage #### Schema for HEALTH_INFO of DPUs on switch ChassisStateDB ``` - Key: "SYSTEM_HEALTH_INFO|DPU0" - - "SYSTEM_HEALTH_INFO|DPU0": { - "value": { - "ignore_stat": "{ - "psu": {"type": "Device", "message": "", "status": "Ignored"}, - "fan": {"type": "Device", "message": "", "status": "Ignored"} - }", - - "stat": "{ - "Services": { - "sonic": {"type": "System", "message": "", "status": "OK"}, - "rsyslog": {"type": "Process", "message": "", "status": "OK"}, - "root-overlay": {"type": "Filesystem", "message": "", "status": "OK"}, - "memory_check": {"type": "Program", "message": "", "status": "OK"}, - "bgp:bgpd": {"type": "Process", "message": "", "status": "OK"}, - "swss:portmgrd": {"type": "Process", "message": "", "status": "OK"}, - "swss:coppmgrd": {"type": "Process", "message": "", "status": "OK"}, - "swss:tunnelmgrd": {"type": "Process", "message": "", "status": "OK"}, - "eventd:eventd": {"type": "Process", "message": "", "status": "OK"} - }, - "Hardware": {}, - "DPU Category": { - "dpu-pdsagent": {"type": "UserDefine", "message": "", "status": "OK"}, - "dpu-pciemgrd": {"type": "UserDefine", "message": "", "status": "OK"}, - "dpu-eth_Uplink1/1_status": {"type": "UserDefine", "message": "", "status": "OK"}, - "dpu-pcie_link": {"type": "UserDefine", "message": "", "status": "OK"} - } - }", - - "system_status_LED": "green" - } - } +; Defines information for a system health +key = SYSTEM_HEALTH_INFO|DPUx ; health information for DPUx +; field = value +summary = STRING ; summary status for the DPU + = STRING ; an entry for a service or device +``` +We store items to db only if it is abnormal. Here is an example: +``` +admin@sonic:~$ redis-cli -n 6 hgetall SYSTEM_HEALTH_INFO + 1) "fan1" + 2) "fan1 speed is out of range, speed=21.0, range=[24.0,36.0]" + 3) "fan3" + 4) "fan3 speed is out of range, speed=21.0, range=[24.0,36.0]" + 5) "summary" + 6) "Not OK" +``` +If the system status is good, the data in redis is like: +``` +admin@sonic:~$ redis-cli -n 6 hgetall SYSTEM_HEALTH_INFO + 1) "summary" + 2) "OK" ``` ##### 3.1.5.2 ModuleBase class new APIs The DPU ID is used only for indexing purpose. @@ -634,6 +622,8 @@ A typical modular chassis includes a midplane-interface to interconnect the Supe * By default smartswitch midplane IP address assignment will be done using internal DHCP. * Please refer to the [ip-address-assignment document](https://github.com/sonic-net/SONiC/blob/master/doc/smart-switch/ip-address-assigment/smart-switch-ip-address-assignment.md) for IP address assignment between the switch host and the DPUs. * The second option is the static IP address assignment. +* A midplane state change handler will be implemented to monitor PCIe link state change events and DPU control-plane and data-plane state transitions mainly for HA. +* There will be a separate hld for the midplane state change handler. ### 3.4 Debug & RMA CLI Extensions and Additions @@ -706,7 +696,7 @@ fantray1 N/A fantray1.fan 56% intake Present OK 20230 #### 3.4.1 Reboot Cause CLIs * There are two CLIs "show reboot-cause" and "show reboot-cause history" which are applicable to both DPUs and the Switch. However, when executed on the Switch the CLIs provide a consolidated view of reboot cause as shown below. -* Each DPU will update its reboot cause history in the Switch ChasissStateDB upon boot up. The recent reboot-cause can be derived from that list of reboot-causes. +* Each DPU will update its reboot cause history in the Switch ChasissStateDB upon boot up. The DPUs will limit the number of history entries to a maximum of ten. The recent reboot-cause can be derived from that list of reboot-causes. Platforms which are not capable of populating the ChasissStateDB can use the "get_reboot_cause" API to fetch the data from the DPUs. The trigger to activate the API will eventually come from the midplane state change handler. #### 3.4.2 Reboot Cause CLIs on the DPUs **`Executed on the DPU`** * The "show reboot-cause" shows the most recent reboot-cause @@ -810,7 +800,7 @@ Online : All states are up Offline: dpu_midplane_link_state is down Partial Online: dpu_midplane_link_state is up and dpu_control_plane_state or dpu_data_plane_state is down -There are two parts to the state detail. 1. The midplane state 2. the dpu states (booted, control plane state, data plane state). The midplane state has to be updated by the switch side pcied. The dpu states will be updated by the DPU (redis client update) on the switch ChassisStateDB. The get_state_info() API in the moduleBase class will fetch the contents from the DB. The show CLI reads the redis table and displays the data. +There are two parts to the state detail. 1. The midplane state 2. the dpu states (control plane state, data plane state). The midplane state has to be updated by the switch side pcied. The dpu states will be updated by the DPU (redis client update) on the switch ChassisStateDB. The get_state_info() API in the moduleBase class will fetch the contents from the DB. The show CLI reads the redis table and displays the data. root@sonic:~#show system-health DPU all                Name ID Oper-Status State-Detail State-Value Time Reason From f32566709474f29334eb31b8c0c7c6f46f3bc0be Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Wed, 12 Jun 2024 08:10:21 -0700 Subject: [PATCH 07/30] updated the system-health info schema --- doc/smart-switch/pmon/smartswitch-pmon.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index c088a917cd..256d0aad92 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -526,12 +526,10 @@ summary = STRING ; summary status for th We store items to db only if it is abnormal. Here is an example: ``` admin@sonic:~$ redis-cli -n 6 hgetall SYSTEM_HEALTH_INFO - 1) "fan1" - 2) "fan1 speed is out of range, speed=21.0, range=[24.0,36.0]" - 3) "fan3" - 4) "fan3 speed is out of range, speed=21.0, range=[24.0,36.0]" - 5) "summary" - 6) "Not OK" +1) "lldp:lldpmgrd" +2) "Process 'lldpmgrd' in container 'lldp' is not running" +3) "summary" +4) "Not OK" ``` If the system status is good, the data in redis is like: ``` From 0fdd737fc060c8564960db49ec69ad79a1d572e0 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Mon, 8 Jul 2024 11:02:13 -0700 Subject: [PATCH 08/30] Removed the get_health_info API and addressed a couple of minor comments --- doc/smart-switch/pmon/smartswitch-pmon.md | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 256d0aad92..86d0bd8cd9 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -525,7 +525,7 @@ summary = STRING ; summary status for th ``` We store items to db only if it is abnormal. Here is an example: ``` -admin@sonic:~$ redis-cli -n 6 hgetall SYSTEM_HEALTH_INFO +admin@sonic:~$ redis-cli -n 13 hgetall SYSTEM_HEALTH_INFO 1) "lldp:lldpmgrd" 2) "Process 'lldpmgrd' in container 'lldp' is not running" 3) "summary" @@ -533,7 +533,7 @@ admin@sonic:~$ redis-cli -n 6 hgetall SYSTEM_HEALTH_INFO ``` If the system status is good, the data in redis is like: ``` -admin@sonic:~$ redis-cli -n 6 hgetall SYSTEM_HEALTH_INFO +admin@sonic:~$ redis-cli -n 13 hgetall SYSTEM_HEALTH_INFO 1) "summary" 2) "OK" ``` @@ -570,17 +570,7 @@ get_state_info(self): ``` #### DPU_HEALTH Use Case -* The major consumer of this data could be CLIs, fault management, debug, error recovery - -get_health_info(self): -``` - Retrieves the dpu health object having the detailed dpu health Fetched from the DPUs - - Returns: - An object instance of the dpu health as shown in the schema - Returns None when the module is SWITCH - -``` +* The major consumer of this data could be CLIs, fault management, debug, error recovery. There is no platform API for this. ### 3.2 Thermal management * Platform initializes all sensors @@ -620,8 +610,8 @@ A typical modular chassis includes a midplane-interface to interconnect the Supe * By default smartswitch midplane IP address assignment will be done using internal DHCP. * Please refer to the [ip-address-assignment document](https://github.com/sonic-net/SONiC/blob/master/doc/smart-switch/ip-address-assigment/smart-switch-ip-address-assignment.md) for IP address assignment between the switch host and the DPUs. * The second option is the static IP address assignment. -* A midplane state change handler will be implemented to monitor PCIe link state change events and DPU control-plane and data-plane state transitions mainly for HA. -* There will be a separate hld for the midplane state change handler. +* A DPU state change handler will be implemented to monitor PCIe link state change events, DPU control-plane and data-plane state transitions mainly for HA. +* There will be a separate hld for the DPU state change handler. ### 3.4 Debug & RMA CLI Extensions and Additions @@ -694,7 +684,7 @@ fantray1 N/A fantray1.fan 56% intake Present OK 20230 #### 3.4.1 Reboot Cause CLIs * There are two CLIs "show reboot-cause" and "show reboot-cause history" which are applicable to both DPUs and the Switch. However, when executed on the Switch the CLIs provide a consolidated view of reboot cause as shown below. -* Each DPU will update its reboot cause history in the Switch ChasissStateDB upon boot up. The DPUs will limit the number of history entries to a maximum of ten. The recent reboot-cause can be derived from that list of reboot-causes. Platforms which are not capable of populating the ChasissStateDB can use the "get_reboot_cause" API to fetch the data from the DPUs. The trigger to activate the API will eventually come from the midplane state change handler. +* Each DPU will update its reboot cause history in the Switch ChasissStateDB upon boot up. The DPUs will limit the number of history entries to a maximum of ten. The recent reboot-cause can be derived from that list of reboot-causes. Platforms which are not capable of populating the ChasissStateDB can use the "get_reboot_cause" API to fetch the data from the DPUs. The trigger to activate the API will eventually come from the DPU state change handler. #### 3.4.2 Reboot Cause CLIs on the DPUs **`Executed on the DPU`** * The "show reboot-cause" shows the most recent reboot-cause From aa10015c3e7882d069ea8aad3d65d57dfa266a2b Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Fri, 12 Jul 2024 17:11:39 -0700 Subject: [PATCH 09/30] Fixed reboot-cause reboot-cause history and the all option outputs --- doc/smart-switch/pmon/smartswitch-pmon.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 86d0bd8cd9..7a03b583fe 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -708,17 +708,32 @@ Name Cause Time * The "show reboot-cause history" CLI on the switch shows the history of the Switch and all DPUs * The "show reboot-cause history module-name" CLI on the switch shows the history of the specified module -"show reboot-cause history" **`Executed on the switch`** ``` root@sonic:~#show reboot-cause +Name Cause Time User Comment + +2023_10_20_18_52_28 Watchdog:1 expired; Wed 20 Oct 2023 06:52:28 PM UTC N/A N/A + + +root@sonic:~#show reboot-cause history + +Name Cause Time User Comment + +2023_10_20_18_52_28 Watchdog:1 expired; Wed 20 Oct 2023 06:52:28 PM UTC N/A N/A +2023_10_05_18_23_46 reboot Wed 05 Oct 2023 06:23:46 PM UTC user N/A + + +root@sonic:~#show reboot-cause all + Device Name Cause Time User Comment switch 2023_10_20_18_52_28 Watchdog:1 expired; Wed 20 Oct 2023 06:52:28 PM UTC N/A N/A DPU3 2023_10_03_18_23_46 Watchdog: stage 1 expired; Mon 03 Oct 2023 06:23:46 PM UTC N/A N/A DPU2 2023_10_02_17_20_46 reboot Sun 02 Oct 2023 05:20:46 PM UTC admin User issued 'reboot' -root@sonic:~#show reboot-cause history + +root@sonic:~#show reboot-cause history all Device Name Cause Time User Comment From b7b341a04936243d9b6482bbed93f67bf45f7ba2 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Sun, 28 Jul 2024 09:07:00 -0700 Subject: [PATCH 10/30] Updated rev 0.4 --- doc/smart-switch/pmon/smartswitch-pmon.md | 26 +++++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 7a03b583fe..867df66b11 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -5,7 +5,7 @@ | 0.1 | 12/02/2023 | Ramesh Raghupathy | Initial version| | 0.2 | 01/08/2024 | Ramesh Raghupathy | Updated API, CPI sections and addressed review comments | | 0.3 | 02/26/2024 | Ramesh Raghupathy | Addressed review comments | -| 0.4 | 06/06/2024 | Ramesh Raghupathy | Added schema for DPU health-info and added key suffix to module reboot-cause to avoid key conflicts | +| 0.4 | 06/06/2024 | Ramesh Raghupathy | Added schema for DPU health-info and called out phase:1 and phase:2 activities for DPU health-info. Added key suffix to module reboot-cause to avoid key conflicts | ## Definitions / Abbreviations @@ -197,7 +197,7 @@ Key: "CHASSIS_MODULE|DPU0" * SmartSwitch DPUs should store their health data locally and also provide it to the host for a consolidated view of the CLIs * DPUs should support a CLI to display the health data “show system-health ...” (See CLIs section) * The host pmon should use this data to support the host side CLIs. Though accessing this data from DPUs and storing them on the switch is implementation specific it is recommended to use redis call and store them on the switch chassisStateDB for faster access. - * Please refer to section:3.1.5.1 for the HEALTH_INFO schema + * This is done in two phases. Please refer to section:3.1.5.1 for the HEALTH_INFO schema * use "UserDefinedChecker" class to provide this data to the CLIs. * Vendor specific data such as interrupt events can also be placed in user defined fields under this DB * This table already exists in modular chassis design and the DPUs will use this just like a line card. @@ -439,6 +439,7 @@ is_midplane_reachable(self): #### 3.1.5 ModuleBase class new APIs ##### 3.1.5.1 Need for consistent storage and access of DPU reboot cause, state and health +#### Reboot Cause 1. The smartswitch needs to know the reboot cause for DPUs. Please refer to the CLI section for the various options and their effects when executed on the switch and DPUs. * Each DPU will update its reboot cause history in the Switch ChasissStateDB upon boot up. The recent reboot-cause can be derived from that list of reboot-causes. @@ -474,6 +475,7 @@ is_midplane_reachable(self): } ``` +#### DPU State 2. Though the get_oper_status(self) can get the operational status of the DPU Modules, the current implementation only has limited capabilities. * Can only state MODULE_STATUS_FAULT and can't show exactly where in the state progression the DPU failed. This is critical in fault isolation, DPU switchover decision, resiliency and recovery * Though this is platform implementation specific, in a multi vendor use case, there has to be a consistent way of storing and accessing the information. @@ -481,6 +483,7 @@ is_midplane_reachable(self): * get_state_info(self) will return an object with the ChassisStateDB data * Potential consumers: HA, LB, Switch CLIs, Utils (install/repair images), Life Cycle Manager * Use cases: HA, Debuggability, error recovery (reset, power cycle) and fault management, consolidated view of Switch and DPU state + #### DPU_STATE definition dpu_midplane_link_state: up refers to the pcie link between the NPU and DPU is operational. This will be updated by the switch pcied. @@ -507,10 +510,14 @@ dpu_data_plane_state: up refers to configuration downloaded, the pipeline stage ”dpu_data_plane_time": ”timestamp", ”dpu_data_plane_reason": ”Pipeline failure", ``` - -3. Each DPU has to store the health data in its local DB and should provide it to the switch. -* When the "show system-health ..." CLI is executed on the switch. For faster access store it in the switch ChassisStateDB. -* The DPU is a complex hardware, to facilitate debug, a consistent way of storing and accessing the health record of the DPUs is critical in a multi vendor scenario even though it is a platform specific implementation. +#### DPU Health +3. This feature is implemented in two phases. +#### Phase:1 +* Each DPU has to store the health info locally and should be available on the DPU when the "show system-health ..." CLI is executed on the DPU just like the switch. +#### Phase:2 +* Each DPU besides storing the health info locally, should also store the DPU health info in the switch ChassisStateDB. The schema for each DPU health info is the same as the switch and also is shown below. +* When the "show system-health " CLI is executed on the switch a consolidated view of the entire system health will be provided. +* The DPU is a complex hardware. To facilitate debug, a consistent way of storing and accessing the health record of the DPUs is critical in a multi vendor scenario even though it is a platform specific implementation. * Both switch and the DPUs will follow the [SONiC system health monitor HLD](https://github.com/sonic-net/SONiC/blob/ce313db92a694e007a6c5332ce3267ac158290f6/doc/system_health_monitoring/system-health-HLD.md) * Refer to section 3.4.5 for "show system-health .." CLIs @@ -766,7 +773,12 @@ DPU1 SS-DPU1 2 Online up SN20 SWITCH Chassis 0 Online N/A FLM27000ER ``` #### 3.4.5 System health details -* The system health summary on NPU should include the DPU health. Extend the existing infrastructure. +#### Phase:1 +* The system health summary on switch will display only the NPU health +* The system health summary on DPU will display the DPU health + +#### Phase:2 +* The system health summary on switch should include the NPU and DPU health. Extend the existing CLI infrastructure. show system-health summary \ **`Executed on the switch or DPU - module-name is ignored on the DPUs`** ``` From 65f9f330c9ffac02b003d921c7cd7398e75d94e4 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Sun, 28 Jul 2024 21:34:18 -0700 Subject: [PATCH 11/30] cleaned NPU to DPU data port mapping --- doc/smart-switch/pmon/smartswitch-pmon.md | 26 ++++++++--------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 867df66b11..643db671f0 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -309,27 +309,19 @@ get_module_dpu_data_port(self, index): #### 3.1.3 NPU to DPU data port mapping platform.json of NPU/switch will show the NPU to DPU data port mapping. This will be used by services early in the system boot. ``` -{ - "DPUs" : [ + "DPUS": [ { - "dpu0": { - "interface": {"Ethernet224": "Ethernet0"} - } - }, - { - "dpu1": { - "interface": {"Ethernet232": "Ethernet0"} + "dpu0": { + "interface": {"Ethernet224": "Ethernet0"} + }, + "dpu1": { + "interface": {"Ethernet232": "Ethernet0"} + }, + "dpux": { + "interface": {"Ethernet2xx": "Ethernet0"} }, - }, - . - . - { - "dpuX": { - "interface": {"EthernetX": "EthernetY"} - } } ] -} ``` #### 3.1.4 ModuleBase class API enhancements get_base_mac(self): From 064ce290450062e34534375b3edf6dce98c0b8a6 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Sun, 4 Aug 2024 09:36:45 -0700 Subject: [PATCH 12/30] dpu_id now ranges from 0 --- doc/smart-switch/pmon/smartswitch-pmon.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 643db671f0..262c4f4ba9 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -283,7 +283,7 @@ get_dpu_id(self, name): Retrieves the DPU ID for the given dpu-module name. Returns None for non-smartswitch chassis. Returns: - An integer, indicating the DPU ID Ex: name:DPU0 return value 1, name:DPU1 return value 2, name:DPUX return value X+1 + An integer, indicating the DPU ID Ex: name:DPU0 return value 0, name:DPU1 return value 1, name:DPUX return value X ``` is_smartswitch(self): @@ -544,8 +544,7 @@ get_dpu_id(self): Retrieves the DPU ID. Returns None for non-smartswitch chassis. Returns: - An integer, indicating the DPU ID. DPU0 returns 1, DPUX returns X+1 - Returns '0' on switch module + An integer, indicating the DPU ID. DPU0 returns 0, DPUX returns X ``` #### Get DPU reboot cause def get_reboot_cause(self): From 7ae06d6f3dcd39b76eb26809ad288781a7daf906 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Mon, 5 Aug 2024 16:59:33 -0700 Subject: [PATCH 13/30] Changed the test-plan link --- doc/smart-switch/pmon/smartswitch-pmon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 262c4f4ba9..368774affc 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -1030,4 +1030,4 @@ Note: ``` ## 4. Test Plan -[Test Plan](https://github.com/rameshraghupathy/sonic-mgmt/blob/master/docs/testplan/SmartSwitch-PMON-testplan.md) +[Test Plan](https://github.com/nissampa/sonic-mgmt_dpu_test/blob/dpu_test_plan_draft_pr/docs/testplan/Smartswitch-test-plan.md) From 82f01e1a5fea55bf620be72f9c81a66302715be1 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Mon, 5 Aug 2024 17:45:36 -0700 Subject: [PATCH 14/30] Added a section for DPU dark mode --- doc/smart-switch/pmon/smartswitch-pmon.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 368774affc..99d68d1275 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -87,9 +87,18 @@ The picture below highlights the PMON vertical and its association with other lo ### DPU startup sequence diagram

-### Configuring startup and shutdown -* The DPUs can be powered down by configuring the admin_status as shown. -* The corresponding switch configDB table is also shown +#### 2.1.1 DPUs in dark mode +* Generally a smartswitch boots up with the DPUs in the dark mode with the help of platform config_db as shown in the "CHASSIS_MODULE" schema. +* NPU pmon listens to config DB events for DPU admin up/down events +* PMON use set_admin_state() API to honor the request +* The DPUs would stay power down in dark mode and will not consume power + +#### 2.1.2 Configuring startup and shutdown +* The user can use the “config chassis modules startup DPUx” to power ON a DPU Example: “config chassis modules startup DPU0” +* The “config chassis modules shutdown DPUx” is used to power OFF a DPU Example: “config chassis modules shutdown DPU0” +* The DPUs are powered down by configuring the admin_status as shown in the schema +* The config change event handler listens to the config change and sets the corresponding switch configDB table and also triggers the module set_admin_state() API +* The platform executes the power ON/OFF sequence #### config_db.json CHASSIS_MODULE table holds the list and configuration of DPU modules in a smartswitch chassis. It allows user to administratively bring down a DPU From 0a47f516fa808090e3070189f2f19a824e974b63 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Mon, 5 Aug 2024 17:59:36 -0700 Subject: [PATCH 15/30] Did a minor cleanup in 2.1.1 --- doc/smart-switch/pmon/smartswitch-pmon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 99d68d1275..8f3849ec14 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -88,7 +88,7 @@ The picture below highlights the PMON vertical and its association with other lo

#### 2.1.1 DPUs in dark mode -* Generally a smartswitch boots up with the DPUs in the dark mode with the help of platform config_db as shown in the "CHASSIS_MODULE" schema. +* Generally a smartswitch boots up with the DPUs in the dark mode with the help of platform config_db * NPU pmon listens to config DB events for DPU admin up/down events * PMON use set_admin_state() API to honor the request * The DPUs would stay power down in dark mode and will not consume power From 7d5e14e8ce5896f3c77f4d8f487f55b35656cae7 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Thu, 8 Aug 2024 19:09:27 -0700 Subject: [PATCH 16/30] replaced platform.json with hwsku.json file to represent the NPU-DPU data port association --- doc/smart-switch/pmon/smartswitch-pmon.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 8f3849ec14..87e7b2529c 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -305,7 +305,7 @@ is_smartswitch(self): get_module_dpu_data_port(self, index): ``` - Retrieves the DPU data port NPU-DPU association represented for the DPU index. Platforms that need to overwrite the platform.json file will use this API + Retrieves the DPU data port NPU-DPU association represented for the DPU index. Platforms that need to overwrite the hwsku.json file will use this API This is valid only on the Switch and not on DPUs. On the DPUs this can return None @@ -316,7 +316,7 @@ get_module_dpu_data_port(self, index): NPU-DPU port association: A string Ex: For index: 1 will return the dup0 port association which is "Ethernet224: Ethernet0" where the string left of ":" (Ethernet224) is the NPU port and the string right of ":" (Ethernet0) is the DPU port. ``` #### 3.1.3 NPU to DPU data port mapping -platform.json of NPU/switch will show the NPU to DPU data port mapping. This will be used by services early in the system boot. +hwsku.json of NPU/switch will show the NPU to DPU data port mapping. This will be used by services early in the system boot. ``` "DPUS": [ { From 962a5e16a3bc59f2a8848dd57ffa1cb4a7c9d72a Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Sat, 10 Aug 2024 07:41:25 -0700 Subject: [PATCH 17/30] platform.json is the right file for NPU-DPU port association --- doc/smart-switch/pmon/smartswitch-pmon.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 87e7b2529c..bdc7b18958 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -305,7 +305,7 @@ is_smartswitch(self): get_module_dpu_data_port(self, index): ``` - Retrieves the DPU data port NPU-DPU association represented for the DPU index. Platforms that need to overwrite the hwsku.json file will use this API + Retrieves the DPU data port NPU-DPU association represented for the DPU index. Platforms that need to overwrite the platform.json file will use this API This is valid only on the Switch and not on DPUs. On the DPUs this can return None @@ -316,7 +316,7 @@ get_module_dpu_data_port(self, index): NPU-DPU port association: A string Ex: For index: 1 will return the dup0 port association which is "Ethernet224: Ethernet0" where the string left of ":" (Ethernet224) is the NPU port and the string right of ":" (Ethernet0) is the DPU port. ``` #### 3.1.3 NPU to DPU data port mapping -hwsku.json of NPU/switch will show the NPU to DPU data port mapping. This will be used by services early in the system boot. +platform.json of NPU/switch will show the NPU to DPU data port mapping. This will be used by services early in the system boot. ``` "DPUS": [ { From 5926a4452784675977aaf59ae9cd77cff6dc909a Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Mon, 19 Aug 2024 18:43:23 -0700 Subject: [PATCH 18/30] Removed get_module_dpu_data_port API. Showed hwo the role in interfaces config is used --- doc/smart-switch/pmon/smartswitch-pmon.md | 42 ++++++++++++----------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index bdc7b18958..ec04a82763 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -303,18 +303,6 @@ is_smartswitch(self): True ``` -get_module_dpu_data_port(self, index): -``` - Retrieves the DPU data port NPU-DPU association represented for the DPU index. Platforms that need to overwrite the platform.json file will use this API - - This is valid only on the Switch and not on DPUs. On the DPUs this can return None - - Args: - index: An integer, the index of the module to retrieve - - Returns: - NPU-DPU port association: A string Ex: For index: 1 will return the dup0 port association which is "Ethernet224: Ethernet0" where the string left of ":" (Ethernet224) is the NPU port and the string right of ":" (Ethernet0) is the DPU port. -``` #### 3.1.3 NPU to DPU data port mapping platform.json of NPU/switch will show the NPU to DPU data port mapping. This will be used by services early in the system boot. ``` @@ -961,6 +949,22 @@ DDR OK UserDefine ``` show interface status - will show the NPU-DPU interface status also **`Executed on the switch`** + +The internal DPU ports use role type in interfaces to indicate NPU-DPU Data Port Type as shown here. Check the type for "Ethernet224" in the "show interface status" output +``` +{ + "interfaces": { + "Ethernet224": { + "lanes": "2828,2829,2830,2831", + "index": "28,28,28,28", + "breakout_modes": {"1x200G": ["dpu-0"]}, + "subport": "1", + "autoneg": "on", + "role": "Dpc" + }, + } +} +``` ``` root@sonic:~# show interfaces status Interface Lanes Speed MTU FEC Alias Vlan Oper Admin Type Asym PFC @@ -971,16 +975,14 @@ root@sonic:~# show interfaces status Ethernet24 2048,2049,2050,2051,2052,2053,2054,2055 400G 9100 N/A etp3 routed down up N/A N/A Ethernet32 1792,1793,1794,1795,1796,1797,1798,1799 400G 9100 N/A etp4 routed down up N/A N/A Ethernet40 1800,1801,1802,1803,1804,1805,1806,1807 400G 9100 N/A etp5 routed down up N/A N/A - ... - ... - -### These are internal DPU ports. Use role type to indicate NPU-DPU Data Port.### ... ... -Ethernet192 4,5,6,7 200G 9100 N/A dpu-0 routed down up DPU-NPU Data Port N/A -Ethernet200 0,1,2,3 200G 9100 N/A dpu-1 routed down up DPU-NPU Data Port N/A -Ethernet208 8,9,10,11 200G 9100 N/A dpu-2 routed down up DPU-NPU Data Port N/A -Ethernet216 12,13,14,15 200G 9100 N/A dpu-3 routed down up DPU-NPU Data Port N/A +... +... +Ethernet224 4,5,6,7 200G 9100 N/A dpu-0 routed down up Dpc N/A +Ethernet232 0,1,2,3 200G 9100 N/A dpu-1 routed down up Dpc N/A +Ethernet240 8,9,10,11 200G 9100 N/A dpu-2 routed down up Dpc N/A +Ethernet248 12,13,14,15 200G 9100 N/A dpu-3 routed down up Dpc N/A ``` show interface status **`Executed on the DPU`** From 58130a7758f7471d6f71a1fa6d9fe73062e56af8 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Sat, 31 Aug 2024 15:24:35 -0700 Subject: [PATCH 19/30] Addressed review comments --- doc/smart-switch/pmon/smartswitch-pmon.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index ec04a82763..fb16e0e7c2 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -948,18 +948,20 @@ CPU OK UserDefine DDR OK UserDefine ``` -show interface status - will show the NPU-DPU interface status also **`Executed on the switch`** +show interface status - will show the NPU-DPU dataplane interface status also **`Executed on the switch`** -The internal DPU ports use role type in interfaces to indicate NPU-DPU Data Port Type as shown here. Check the type for "Ethernet224" in the "show interface status" output +The internal DPU ports use "role" type in PORT config to indicate NPU-DPU Data Port Type as shown here. Check the type for "Ethernet224" in the "show interface status" output. This config is part of hwsku.json file. ``` { - "interfaces": { + "PORT": { "Ethernet224": { "lanes": "2828,2829,2830,2831", - "index": "28,28,28,28", - "breakout_modes": {"1x200G": ["dpu-0"]}, - "subport": "1", - "autoneg": "on", + "alias": "dpu-0", + "index": "28", + "speed": "200000", + "subport": "0", + "admin_status": "up", + "mtu": "9100", "role": "Dpc" }, } From c6b62cc8eca4cf5c809d8799b15ec165053af57a Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Wed, 11 Sep 2024 15:49:24 -0700 Subject: [PATCH 20/30] Added reboot hld link and updated the dpu shutdown sequence as per that --- doc/smart-switch/pmon/smartswitch-pmon.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index fb16e0e7c2..b6ab4e0c99 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -138,9 +138,10 @@ Key: "CHASSIS_MODULE|DPU0" #### DPU shutdown sequence * There could be two possible sources for DPU shutdown. 1. A configuration change to DPU "admin_status: down" 2. The GNOI logic can trigger it. * The GNOI server runs on the DPU even after the DPU is shutdown. -* The host sends a GNOI signal to shutdown the DPU. The DPU does a pre-shutdown and sends an ack back to the host. -* Upon receiving the ack or on a timeout the host may trigger the switch PMON to shutdown the DPU. -* NPU-DPU (GNOI) soft reboot workflow will be captured in another document. +* The host sends a GNOI signal to shutdown the DPU. The DPU does a graceful-shutdown and sends an ack back to the host. +* Upon receiving the ack or on a timeout the host may trigger the switch PMON vendor API to shutdown the DPU. +* If a vendor specific API is not defined, detachment is done via sysfs (echo 1 > /sys/bus/pci/devices/XXXX:XX:XX.X/remove). +* NPU-DPU (GNOI) soft reboot workflow is captured in [reboot-hld.md](https://github.com/sonic-net/SONiC/blob/26f3f4e282f3d2bd4a5c684608897850354f5c30/doc/smart-switch/reboot/reboot-hld.md) * In the first option the "admin_status: down" configDB status change event will send a message to the switch PMON. * The switch PMON will invoke the module class API "set_admin_state(self, up):" with the state being "down" and the platform in turn will call its API to gracefully shutdown the DPU. * The DPU upon receiving the shutdown message will do a graceful shutdown and send an ack back. The DPU graceful shutdown is vendor specific. The DPU power will be turned off after the graceful shutdown. In case of timeout the platform will force power down. From e734c2f96f17afa86baa240035b7cd87c00b5c2e Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Wed, 2 Oct 2024 17:55:32 -0700 Subject: [PATCH 21/30] Addressed review comments --- doc/smart-switch/pmon/smartswitch-pmon.md | 81 ++++++++++++++++++++--- 1 file changed, 71 insertions(+), 10 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index b6ab4e0c99..a4808058c2 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -88,16 +88,17 @@ The picture below highlights the PMON vertical and its association with other lo

#### 2.1.1 DPUs in dark mode -* Generally a smartswitch boots up with the DPUs in the dark mode with the help of platform config_db -* NPU pmon listens to config DB events for DPU admin up/down events -* PMON use set_admin_state() API to honor the request -* The DPUs would stay power down in dark mode and will not consume power +* A smartswitch when configured to boot up with all the DPUs in it are powered down upon boot up is referred as DPUs in dark mode. +* In the dark mode the platform.json file shown in section "3.1.3" will not have the dictionary for the DPUS. +* The term dark mode is overloaded in some cases where the platform.json may have the dictionary but the config_db.json will have the admin_state of all DPU modules as "down". +* Generally a smartswitch boots up with the DPUs in the dark mode. +* The DPUs would stay power down in dark mode and will not consume power. #### 2.1.2 Configuring startup and shutdown * The user can use the “config chassis modules startup DPUx” to power ON a DPU Example: “config chassis modules startup DPU0” * The “config chassis modules shutdown DPUx” is used to power OFF a DPU Example: “config chassis modules shutdown DPU0” * The DPUs are powered down by configuring the admin_status as shown in the schema -* The config change event handler listens to the config change and sets the corresponding switch configDB table and also triggers the module set_admin_state() API +* The config change event handler running on the chassisd of PMON listens to the config change and sets the corresponding switch configDB table and also triggers the module set_admin_state() API. * The platform executes the power ON/OFF sequence #### config_db.json @@ -137,7 +138,7 @@ Key: "CHASSIS_MODULE|DPU0" * DPU: Maintenance, Critical alarm, Service migration, RMA #### DPU shutdown sequence * There could be two possible sources for DPU shutdown. 1. A configuration change to DPU "admin_status: down" 2. The GNOI logic can trigger it. -* The GNOI server runs on the DPU even after the DPU is shutdown. +* The GNOI server runs on the DPU even after the DPU is pre-shutdown and listens until the graceful shutdown finishes. * The host sends a GNOI signal to shutdown the DPU. The DPU does a graceful-shutdown and sends an ack back to the host. * Upon receiving the ack or on a timeout the host may trigger the switch PMON vendor API to shutdown the DPU. * If a vendor specific API is not defined, detachment is done via sysfs (echo 1 > /sys/bus/pci/devices/XXXX:XX:XX.X/remove). @@ -466,10 +467,10 @@ is_midplane_reachable(self): ``` #### DPU State -2. Though the get_oper_status(self) can get the operational status of the DPU Modules, the current implementation only has limited capabilities. +2. Though the get_oper_status(self) can get the operational status of the DPU modules, the current implementation only has limited capabilities. * Can only state MODULE_STATUS_FAULT and can't show exactly where in the state progression the DPU failed. This is critical in fault isolation, DPU switchover decision, resiliency and recovery * Though this is platform implementation specific, in a multi vendor use case, there has to be a consistent way of storing and accessing the information. - * Store the state progression (dpu_midplane_link_state, dpu_control_plane_state, dpu_data_plane_state) on the host ChassisStateDB. + * Store the state progression (dpu_midplane_link_state, dpu_control_plane_state, dpu_data_plane_state) on the host ChassisStateDB using the push model specified in [section: 3.2.4 of SONiC Chassis Platform Management & Monitoring HLD](https://github.com/sonic-net/SONiC/blob/master/doc/pmon/pmon-chassis-design.md) * get_state_info(self) will return an object with the ChassisStateDB data * Potential consumers: HA, LB, Switch CLIs, Utils (install/repair images), Life Cycle Manager * Use cases: HA, Debuggability, error recovery (reset, power cycle) and fault management, consolidated view of Switch and DPU state @@ -680,7 +681,7 @@ fantray1 N/A fantray1.fan 56% intake Present OK 20230 #### 3.4.1 Reboot Cause CLIs * There are two CLIs "show reboot-cause" and "show reboot-cause history" which are applicable to both DPUs and the Switch. However, when executed on the Switch the CLIs provide a consolidated view of reboot cause as shown below. -* Each DPU will update its reboot cause history in the Switch ChasissStateDB upon boot up. The DPUs will limit the number of history entries to a maximum of ten. The recent reboot-cause can be derived from that list of reboot-causes. Platforms which are not capable of populating the ChasissStateDB can use the "get_reboot_cause" API to fetch the data from the DPUs. The trigger to activate the API will eventually come from the DPU state change handler. +* Each DPU will update its reboot cause history in the Switch ChassisStateDB upon boot up. The PMON on the DPU side will be responsible to update the switch side chassisStateDB on DPU boot up, using the push model specified in [section: 3.2.4 of SONiC Chassis Platform Management & Monitoring HLD](https://github.com/sonic-net/SONiC/blob/master/doc/pmon/pmon-chassis-design.md) The DPUs will limit the number of history entries to a maximum of ten. The recent reboot-cause can be derived from that list of reboot-causes. Platforms which are not capable of populating the ChassisStateDB can use the "get_reboot_cause" API to fetch the data from the DPUs. The trigger to activate the API will eventually come from the DPU state change handler. #### 3.4.2 Reboot Cause CLIs on the DPUs **`Executed on the DPU`** * The "show reboot-cause" shows the most recent reboot-cause @@ -998,7 +999,67 @@ root@sonic:/home/admin# show interfaces status ### 3.5 Console Management The console access to smartswitch needs to support DPU access in addition to the switch. * By default the management port should be connected to the switch CPU console -* Once inside the switch, the DPUs should be accesssible from it. The design workflow for this will be covered in another document. +* Once inside the switch, the DPUs should be accesssible from it. + +#### 3.5.1 Dpu Console Utility +* Sonic now supports a DPU console utility "dpu-tty.py" +* The scope of this is limited only to smartswitch paltforms +* The user can invoke one or more DPU consoles as shown below by invoking the script "dpu-tty.py" with the module name option "-n dpu0" + +``` +root@MtFuji:/home/cisco# dpu-tty.py -n dpu0 +picocom v3.1 + +port is : /dev/ttyS4 +flowcontrol : none +baudrate is : 115200 +parity is : none +databits are : 8 +stopbits are : 1 +escape is : C-a +local echo is : no +noinit is : no +noreset is : no +hangup is : no +nolock is : no +send_cmd is : sz -vv +receive_cmd is : rz -vv -E +imap is : +omap is : +emap is : crcrlf,delbs, +logfile is : none +initstring : none +exit_after is : not set +exit is : no + +Type [C-a] [C-h] to see available commands +Terminal ready + +sonic login: admin +Password: + +``` +#### 3.5.2 Dpu Console Configuration +* The console configuration is provided via the platform.json file as shown +* This file is responsible for selecting the baud rate and mapping the module name to the underlying TTY device name. +``` +Sample platform.json configuration + +"DPUS": { + "dpu0": { + "serial-console": { + "device": "ttyS4", + "baud-rate": "115200" + } + }, + "dpu1": { + "serial-console": { + "device": "ttyS5", + "baud-rate": "115200" + } + } +}, +``` ### 3.6 Firmware Upgrade * The fwutility should remain unchanged, but the vendor plugin should be extended to support the DPU FW upgrade. From fa6af050256ef17313f3060edadb64a672f6473d Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Thu, 3 Oct 2024 08:08:10 -0700 Subject: [PATCH 22/30] Addressed a couple of review comments --- doc/smart-switch/pmon/smartswitch-pmon.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index a4808058c2..568d7ff4dc 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -572,11 +572,13 @@ get_state_info(self): ### 3.2 Thermal management * Platform initializes all sensors * Thermalctld fetch CPU temperature, DPU temperature, fan speed, monitor and update the DB +* The thermal management runs on NPU * Thermal manager reads all thermal sensor data, run thermal policy and take policy action Ex. Set fan speed, set alarm, set syslog, set LEDs * Platform collects fan related data such as presence, failure and then applies fan algorithm to set the new fan speed * The north bound CLI/Utils/App use DB data to ”show environment”, ”show platform temp” show platform fan” * The DPUs will update the ChassisStateDB "TEMPERATURE_INFO" tables through redis client call which in turn will be pushed into the switch StateDB. * The existing "TEMPERATURE_INFO" schema will be used to store the values and is shown below for convenience. +* For phase:1 implementation the sensor values collected by DPU will not be pushed to the chassisStateDB. #### TEMPERATURE_INFO schema in StateDB ``` "TEMPERATURE_INFO|DPU_0_T": { @@ -681,7 +683,11 @@ fantray1 N/A fantray1.fan 56% intake Present OK 20230 #### 3.4.1 Reboot Cause CLIs * There are two CLIs "show reboot-cause" and "show reboot-cause history" which are applicable to both DPUs and the Switch. However, when executed on the Switch the CLIs provide a consolidated view of reboot cause as shown below. -* Each DPU will update its reboot cause history in the Switch ChassisStateDB upon boot up. The PMON on the DPU side will be responsible to update the switch side chassisStateDB on DPU boot up, using the push model specified in [section: 3.2.4 of SONiC Chassis Platform Management & Monitoring HLD](https://github.com/sonic-net/SONiC/blob/master/doc/pmon/pmon-chassis-design.md) The DPUs will limit the number of history entries to a maximum of ten. The recent reboot-cause can be derived from that list of reboot-causes. Platforms which are not capable of populating the ChassisStateDB can use the "get_reboot_cause" API to fetch the data from the DPUs. The trigger to activate the API will eventually come from the DPU state change handler. +* Each DPU will update its reboot cause history in the Switch ChassisStateDB upon boot up. +* The PMON on the DPU side will be responsible to update the switch side chassisStateDB on DPU boot up, using the push model specified in [section: 3.2.4 of SONiC Chassis Platform Management & Monitoring HLD](https://github.com/sonic-net/SONiC/blob/master/doc/pmon/pmon-chassis-design.md) +* Though how DPU pmon updates this is vendor dependent, it is recommended to use the sonic telemetry agent to align with the existing SONiC implementation. +* The DPUs will limit the number of history entries to a maximum of ten. +* The recent reboot-cause can be derived from that list of reboot-causes. Platforms which are not capable of populating the ChassisStateDB can use the "get_reboot_cause" API to fetch the data from the DPUs. The trigger to activate the API will eventually come from the DPU state change handler. #### 3.4.2 Reboot Cause CLIs on the DPUs **`Executed on the DPU`** * The "show reboot-cause" shows the most recent reboot-cause From c04c6067dd3a7ca56384bb6eb61201bb047ff284 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Mon, 21 Oct 2024 17:22:44 -0700 Subject: [PATCH 23/30] Addressed the default dpu mode all over --- doc/smart-switch/pmon/smartswitch-pmon.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 568d7ff4dc..ad7d206844 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -61,7 +61,7 @@ The picture below highlights the PMON vertical and its association with other lo * The SmartSwitch host PMON should be able to Startup, Shutdown, Restart, and Soft Reboot the entire system or the individual DPUs. The DPU_MODULE will behave like the LINE_CARD_MODULE of a modular chassis with respect to these functions. ### SmartSwitch Power up/down sequence: -* When the smartswitch device is booted, the host will boot first and leave the DPUs either up or down depending on the configuration. The DPUs will be up by default. +* When the smartswitch device is booted, the host will boot first and leave the DPUs down by defualt. * This section describes the cold startup, shutdown, restart and soft reboot. ### Cold Startup @@ -78,7 +78,7 @@ The picture below highlights the PMON vertical and its association with other lo #### DPU cold startup Sequence * The chassis is powered up and the host is booting up. * The switch PMON is registered with the configDB state change handler. -* DPU "admin_status: up" is set in the configDB. When not explicitly configured the default is "up". +* If the DPU's "admin_status: down" in the configDB, the DPU will remain powered down. The default setting is "down". * The switch PMON gets the admin up notification from the configDB * The switch PMON invokes the platform API to power on the DPU * DPU boots up and attaches itself to the midplane. @@ -91,7 +91,7 @@ The picture below highlights the PMON vertical and its association with other lo * A smartswitch when configured to boot up with all the DPUs in it are powered down upon boot up is referred as DPUs in dark mode. * In the dark mode the platform.json file shown in section "3.1.3" will not have the dictionary for the DPUS. * The term dark mode is overloaded in some cases where the platform.json may have the dictionary but the config_db.json will have the admin_state of all DPU modules as "down". -* Generally a smartswitch boots up with the DPUs in the dark mode. +* Default mode on smartswitch is dark mode, unless platform.json configures it to be in light up mode. * The DPUs would stay power down in dark mode and will not consume power. #### 2.1.2 Configuring startup and shutdown @@ -397,7 +397,7 @@ reboot(self, reboot_type): set_admin_state(self, up): ``` Request to keep the card/DPU in administratively up/down state. - Default state is up. + Default state is down. ``` get_maximum_consumed_power(self): From 4b61f2adb66102fdaa4342ed1b20c0ca70322354 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Tue, 5 Nov 2024 07:40:35 -0800 Subject: [PATCH 24/30] Included dpu-reboot-seq diagram, updated the spec for reboot-sequence, removed the ID cloum in "show system-health dpu DPU0", changed the DPU admin_state default behavior, added the dpu_state transition update. --- .../pmon/images/dpu-reboot-seq.jpg | Bin 0 -> 298057 bytes doc/smart-switch/pmon/smartswitch-pmon.md | 86 ++++++++++++------ 2 files changed, 60 insertions(+), 26 deletions(-) create mode 100644 doc/smart-switch/pmon/images/dpu-reboot-seq.jpg diff --git a/doc/smart-switch/pmon/images/dpu-reboot-seq.jpg b/doc/smart-switch/pmon/images/dpu-reboot-seq.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0689a89bb2ee21919c7261fec0e27288c8314d6f GIT binary patch literal 298057 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 F{15pMTABa= literal 0 HcmV?d00001 diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index ad7d206844..5aa77a65d5 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -61,7 +61,7 @@ The picture below highlights the PMON vertical and its association with other lo * The SmartSwitch host PMON should be able to Startup, Shutdown, Restart, and Soft Reboot the entire system or the individual DPUs. The DPU_MODULE will behave like the LINE_CARD_MODULE of a modular chassis with respect to these functions. ### SmartSwitch Power up/down sequence: -* When the smartswitch device is booted, the host will boot first and leave the DPUs down by defualt. +* When the smartswitch device is booted, the host will boot first and leave the DPUs down by default. * This section describes the cold startup, shutdown, restart and soft reboot. ### Cold Startup @@ -95,14 +95,14 @@ The picture below highlights the PMON vertical and its association with other lo * The DPUs would stay power down in dark mode and will not consume power. #### 2.1.2 Configuring startup and shutdown -* The user can use the “config chassis modules startup DPUx” to power ON a DPU Example: “config chassis modules startup DPU0” -* The “config chassis modules shutdown DPUx” is used to power OFF a DPU Example: “config chassis modules shutdown DPU0” +* The user can use the “config chassis modules startup DPUx” to power ON a DPU. Example: “config chassis modules startup DPU0” +* The “config chassis modules shutdown DPUx” is used to power OFF a DPU. Example: “config chassis modules shutdown DPU0” * The DPUs are powered down by configuring the admin_status as shown in the schema * The config change event handler running on the chassisd of PMON listens to the config change and sets the corresponding switch configDB table and also triggers the module set_admin_state() API. * The platform executes the power ON/OFF sequence #### config_db.json -CHASSIS_MODULE table holds the list and configuration of DPU modules in a smartswitch chassis. It allows user to administratively bring down a DPU +CHASSIS_MODULE table holds the list and configuration of DPU modules in a smartswitch chassis. It allows user to administratively bring down a DPU. The following example assumes four DPUs in the system. Unlike the existing modular chassis configuration in a SmartSwitch a DPU module has to be explicitly configured to be "up", otherwise it be configured in the DB to be down as shown in the example. The example assumes four DPUs in the system. ``` { "CHASSIS_MODULE": { @@ -110,9 +110,10 @@ CHASSIS_MODULE table holds the list and configuration of DPU modules in a smarts "admin_status": "down" }, "DPU1": { - "admin_status": "down" + "admin_status": "up" } } + Note: There is no config for DPU2, DPU3 and the default is "down" as shown below } ``` #### switch configDB @@ -122,6 +123,21 @@ Key: "CHASSIS_MODULE|DPU0" "value": { "admin_status":"down" } + }, + "CHASSIS_MODULE|DPU1": { + "value": { + "admin_status":"up" + } + }, + "CHASSIS_MODULE|DPU2": { + "value": { + "admin_status":"down" + } + }, + "CHASSIS_MODULE|DPU3": { + "value": { + "admin_status":"down" + } } ``` @@ -139,7 +155,7 @@ Key: "CHASSIS_MODULE|DPU0" #### DPU shutdown sequence * There could be two possible sources for DPU shutdown. 1. A configuration change to DPU "admin_status: down" 2. The GNOI logic can trigger it. * The GNOI server runs on the DPU even after the DPU is pre-shutdown and listens until the graceful shutdown finishes. -* The host sends a GNOI signal to shutdown the DPU. The DPU does a graceful-shutdown and sends an ack back to the host. +* The host sends a GNOI signal to shutdown the DPU. The DPU does a graceful-shutdown if not already done and sends an ack back to the host. * Upon receiving the ack or on a timeout the host may trigger the switch PMON vendor API to shutdown the DPU. * If a vendor specific API is not defined, detachment is done via sysfs (echo 1 > /sys/bus/pci/devices/XXXX:XX:XX.X/remove). * NPU-DPU (GNOI) soft reboot workflow is captured in [reboot-hld.md](https://github.com/sonic-net/SONiC/blob/26f3f4e282f3d2bd4a5c684608897850354f5c30/doc/smart-switch/reboot/reboot-hld.md) @@ -170,14 +186,14 @@ Key: "CHASSIS_MODULE|DPU0" * DPU: Gracefully restart SONiC on DPU #### Trigger * Switch: “reboot” command issued on switch console. -* DPU: “reboot” command issued on DPU console or Switch Software issues GNOI +* DPU: “reboot” command issued to the DPU or Switch Software issues GNOI #### Use case * Switch: Fault recovery, Maintenance, debug -* DPU: Fault recover, Maintenance, debug, Service provisioning +* DPU: Fault recovery, Maintenance, debug, Service provisioning #### Onboarding requirements * The DPU must provide additional control-plane and data-plane state information, timestamp, etc to DPU_STATE table as explained in the DPU_STATE schema once booted up. -* When the DPU reboots itself, should log the reboot cause and update the previous-reboot-cause field in the stateDB +* When the DPU reboots itself, should log the reboot cause and update the previous-reboot-cause field in the stateDB and persist in on the Switch. * The reboot-cause history on the switch should provide a holistic view of the reboot cause of the SmartSwitch host CPU, and the reboot-cause of all the DPUs * The DPUs should be uniquely identified and the DPU upon boot may get this ID from the host and identify itself. * Implement the required API enhancements and new APIs for DPU management (see details in design section) @@ -191,6 +207,7 @@ Key: "CHASSIS_MODULE|DPU0" * The DPUs should provide their state to the host by updating the dpu state data in the DPU_STATE table in the host ChassisStateDB (explained in DB schema). This holds the minimal, viable set of low latency dpu state data and can be consumed by HA, LB, FaultManagement logics. * DPUs should be able to store the data using a redis call directly on to the switch chassisStateDB * The DPU must provide the state information once it boots its OS to DPU_STATE table. + * The chassisd on the NPU-PMON will update the dpu_midplane_link_state, dpu_midplane_link_time, dpu_midplane_link_reason fields whenever there is a dpu_midplane_link_state transition. * Thermal management * Besides additional DPU specific sensors, cooling device changes the logic remains the same. @@ -201,7 +218,7 @@ Key: "CHASSIS_MODULE|DPU0" * Show CLIs * Extend existing CLIs such as 'show platform fan/temperature' to support the new HW * Extend the modular chassis CLI 'show chassis modules status" to display the detailed DPU states. (See CLIs section) - * The data for the CLIs come either from the DBs or through the platform APIs. Example: The reboot-cause history and the DPU_STATE are stored in the ChassisStateDB directly using a redis call and the CLIs access them from the DB. It is upt to the platform implementation on how do they fetch the DPU inventory and health data and store them on the host. For the sake of consistency and efficiency we recommend using the redis call and storing them in the chassisStateDB on the host. + * The data for the CLIs come either from the DBs or through the platform APIs. Example: The DPU_STATE data are stored in the ChassisStateDB directly using a redis call and the CLIs access them from the DB. It is upto to the platform implementation on how do they fetch the DPU inventory and health data and store them on the host. For the sake of consistency and efficiency we recommend using the redis call and storing them in the chassisStateDB on the host. ### 2.3. Detect and Debug * Health @@ -431,11 +448,28 @@ is_midplane_reachable(self): ##### 3.1.5.1 Need for consistent storage and access of DPU reboot cause, state and health #### Reboot Cause -1. The smartswitch needs to know the reboot cause for DPUs. Please refer to the CLI section for the various options and their effects when executed on the switch and DPUs. - -* Each DPU will update its reboot cause history in the Switch ChasissStateDB upon boot up. The recent reboot-cause can be derived from that list of reboot-causes. -* The get_reboot_cause will return the current reboot-cause of the module. -* For persistent storage of the DPU reboot-cause and reboot-caue-history files use the existing host storage path and mechanism. +1. The smartswitch needs to know the reboot cause for DPUs. Please refer to the CLI section for the various "show reboot-cause" options and their effects. + * Each DPU will update its reboot cause history in the Switch ChassisStateDB upon boot up and also persist this on the host. The recent reboot-cause is derived from that list of reboot-causes. + * The get_reboot_cause will return the current reboot-cause of the module. + * For persistent storage of the DPU reboot-cause and reboot-cause-history files use the existing host storage path and mechanism under "/host/reboot-cause/module/dpux". + * The storage and retrieval of the reboot-cause of the Switch and PDUs are shown in the sequence diagram + +

+ +* The switch boots up. Determines the NPU reboot cause. +* Processes the previously stored NPU and DPU reboot-cause files and history files and updates the NPU reboot-cause into the StateDB and the DPU reboot-cause into the ChassisStateDB. +* The above process is a one-shot event on boot up. +* NPU-PMON chassisd comes up and looks constantly for any DPU config resulting in dpu admin_state change. +* The NPU-PMON chassisd triggers "set_admin_state" API on a config change. The platform API not only turns on the DPU but also persists and provides the user triggered reboot-cause when queried by chassisd. +* When the SONiC triggers a "reboot" API, the reboot API not only reboots the DPU but also persists and provides this user triggered reboot-cause when queried by chassisd. +* The module_db_update function in the NPU-PMON chassisd is an existing function constantly updating the operational status of the DPUs. This function looks for operational status change events and when the DPUs come out of "offline" state issues "get_reboot_cause" API to the platform. +* The platform gathers the presence of user triggered reboot-cause and DPU self triggered reboot-cause and process the data and returns the following results. + * Neither of the reboot-cause is present: Returns "REBOOT_CAUSE_NO_REBOOT". No need to persist. + * User triggered reboot-cause is present: Returns either "REBOOT_CAUSE_SWITCH_POWERED_UP_DPU" or "REBOOT_CAUSE_SONIC_REBOOTED_DPU" + * DPU self reboot-cause is present: Returns the appropriate cause. The exact cause will be updated when ready. + * Both user triggered reboot-cause and dpu self-reboot cause are present: "REBOOT_CAUSE_MULTIPLE_REBOOTS" will be returned. +* The switch reboot use case will follow the same sequence. +* The pmon container restart should not affect this sequence as the states are persisted either in the DB or in the file system. #### Schema for REBOOT_CAUSE of SWITCH on switch stateDB ``` @@ -814,22 +848,22 @@ Partial Online: dpu_midplane_link_state is up and dpu_control_plane_state or dpu There are two parts to the state detail. 1. The midplane state 2. the dpu states (control plane state, data plane state). The midplane state has to be updated by the switch side pcied. The dpu states will be updated by the DPU (redis client update) on the switch ChassisStateDB. The get_state_info() API in the moduleBase class will fetch the contents from the DB. The show CLI reads the redis table and displays the data. root@sonic:~#show system-health DPU all                -Name ID Oper-Status State-Detail State-Value Time Reason -DPU0 1 Partial Online dpu_midplane_link_state up Wed 20 Oct 2023 06:52:28 PM UTC - dpu_control_plane_state up Wed 20 Oct 2023 06:52:28 PM UTC - dpu_data_plane_state down Wed 20 Oct 2023 06:52:28 PM UTC Pipeline failure +Name Oper-Status State-Detail State-Value Time Reason +DPU0 Partial Online dpu_midplane_link_state up Wed 20 Oct 2023 06:52:28 PM UTC + dpu_control_plane_state up Wed 20 Oct 2023 06:52:28 PM UTC + dpu_data_plane_state down Wed 20 Oct 2023 06:52:28 PM UTC Pipeline failure -DPU1 2 Online dpu_midplane_link_state up Wed 20 Oct 2023 06:52:28 PM UTC - dpu_control_plane_state up Wed 20 Oct 2023 06:52:28 PM UTC - dpu_data_plane_state up Wed 20 Oct 2023 06:52:28 PM UTC +DPU1 Online dpu_midplane_link_state up Wed 20 Oct 2023 06:52:28 PM UTC + dpu_control_plane_state up Wed 20 Oct 2023 06:52:28 PM UTC + dpu_data_plane_state up Wed 20 Oct 2023 06:52:28 PM UTC root@sonic:~#show system-health DPU 0   -Name ID Oper-Status State-Detail State-Value Time Reason -DPU0 1 Offline dpu_midplane_link_state down Wed 20 Oct 2023 06:52:28 PM UTC PCIe link is down - dpu_control_plane_state down Wed 20 Oct 2023 06:52:28 PM UTC - dpu_data_plane_state down Wed 20 Oct 2023 06:52:28 PM UTC +Name Oper-Status State-Detail State-Value Time Reason +DPU0 Offline dpu_midplane_link_state down Wed 20 Oct 2023 06:52:28 PM UTC PCIe link is down + dpu_control_plane_state down Wed 20 Oct 2023 06:52:28 PM UTC + dpu_data_plane_state down Wed 20 Oct 2023 06:52:28 PM UTC ``` #### System health cli extended further as shown * Detailed output from the switch can be obtained with the following CLI From 2bcff7e05f3345f66f5385a4ca37fe7eba27e52c Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Thu, 7 Nov 2024 16:01:44 -0800 Subject: [PATCH 25/30] updated reboot-cause section --- .../pmon/images/dpu-reboot-seq.jpg | Bin 298057 -> 0 bytes .../pmon/images/dpu-reboot-seq.svg | 1 + doc/smart-switch/pmon/smartswitch-pmon.md | 30 ++++++++++++------ 3 files changed, 21 insertions(+), 10 deletions(-) delete mode 100644 doc/smart-switch/pmon/images/dpu-reboot-seq.jpg create mode 100644 doc/smart-switch/pmon/images/dpu-reboot-seq.svg diff --git a/doc/smart-switch/pmon/images/dpu-reboot-seq.jpg b/doc/smart-switch/pmon/images/dpu-reboot-seq.jpg deleted file mode 100644 index 0689a89bb2ee21919c7261fec0e27288c8314d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298057 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

+

* The switch boots up. Determines the NPU reboot cause. * Processes the previously stored NPU and DPU reboot-cause files and history files and updates the NPU reboot-cause into the StateDB and the DPU reboot-cause into the ChassisStateDB. * The above process is a one-shot event on boot up. -* NPU-PMON chassisd comes up and looks constantly for any DPU config resulting in dpu admin_state change. -* The NPU-PMON chassisd triggers "set_admin_state" API on a config change. The platform API not only turns on the DPU but also persists and provides the user triggered reboot-cause when queried by chassisd. -* When the SONiC triggers a "reboot" API, the reboot API not only reboots the DPU but also persists and provides this user triggered reboot-cause when queried by chassisd. -* The module_db_update function in the NPU-PMON chassisd is an existing function constantly updating the operational status of the DPUs. This function looks for operational status change events and when the DPUs come out of "offline" state issues "get_reboot_cause" API to the platform. -* The platform gathers the presence of user triggered reboot-cause and DPU self triggered reboot-cause and process the data and returns the following results. - * Neither of the reboot-cause is present: Returns "REBOOT_CAUSE_NO_REBOOT". No need to persist. - * User triggered reboot-cause is present: Returns either "REBOOT_CAUSE_SWITCH_POWERED_UP_DPU" or "REBOOT_CAUSE_SONIC_REBOOTED_DPU" - * DPU self reboot-cause is present: Returns the appropriate cause. The exact cause will be updated when ready. - * Both user triggered reboot-cause and dpu self-reboot cause are present: "REBOOT_CAUSE_MULTIPLE_REBOOTS" will be returned. +* The module_db_update function in the NPU-PMON chassisd is an existing function constantly updating the operational status of the DPUs. This function looks for DPU operational status change events and when the DPUs come out of "offline" state, issues "get_reboot_cause" API to the platform. +* The platform code will extract the DPU reboot cause from the NPU hardware itself even when the DPU is not reachable. +* The DPU reboot cause will be mapped to one of the following existing reboot causes and returned back. + * REBOOT_CAUSE_POWER_LOSS = "Power Loss" + * REBOOT_CAUSE_THERMAL_OVERLOAD_CPU = "Thermal Overload: CPU" + * REBOOT_CAUSE_THERMAL_OVERLOAD_ASIC = "Thermal Overload: ASIC" + * REBOOT_CAUSE_THERMAL_OVERLOAD_OTHER = "Thermal Overload: Other" + * REBOOT_CAUSE_INSUFFICIENT_FAN_SPEED = "Insufficient Fan Speed" + * REBOOT_CAUSE_WATCHDOG = "Watchdog" + * REBOOT_CAUSE_HARDWARE_OTHER = "Hardware - Other" + * REBOOT_CAUSE_HARDWARE_BIOS = "BIOS" + * REBOOT_CAUSE_HARDWARE_CPU = "CPU" + * REBOOT_CAUSE_HARDWARE_BUTTON = "Push button" + * REBOOT_CAUSE_HARDWARE_RESET_FROM_ASIC = "Reset from ASIC" + * REBOOT_CAUSE_NON_HARDWARE = "Non-Hardware" +* When the platform wants to provide additional details to the reboot cause they can append it to the string with a ',' separation as shown below. +``` +return REBOOT_CAUSE_NON_HARDWARE + ', ' + 'kernel panic' +``` * The switch reboot use case will follow the same sequence. * The pmon container restart should not affect this sequence as the states are persisted either in the DB or in the file system. From 4f6e157a73d27c2d1208b0fc8a3d6fb677501daf Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Fri, 8 Nov 2024 14:53:52 -0800 Subject: [PATCH 26/30] Addressed review comments --- doc/smart-switch/pmon/smartswitch-pmon.md | 65 ++++++++++++++--------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index d9263e16a5..665fda3519 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -447,19 +447,46 @@ is_midplane_reachable(self): #### 3.1.5 ModuleBase class new APIs ##### 3.1.5.1 Need for consistent storage and access of DPU reboot cause, state and health -#### Reboot Cause -1. The smartswitch needs to know the reboot cause for DPUs. Please refer to the CLI section for the various "show reboot-cause" options and their effects. - * Each DPU will update its reboot cause history in the Switch ChassisStateDB upon boot up and also persist this on the host. The recent reboot-cause is derived from that list of reboot-causes. - * The get_reboot_cause will return the current reboot-cause of the module. - * For persistent storage of the DPU reboot-cause and reboot-cause-history files use the existing host storage path and mechanism under "/host/reboot-cause/module/dpux". - * The storage and retrieval of the reboot-cause of the Switch and PDUs are shown in the sequence diagram +#### 1 Reboot Cause +The smartswitch needs to know the reboot cause for the NPU and the DPUs. + +#### NPU Reboot Cause +* When the NPU undergoes a reboot the existing reboot-cause workflow for a switch still remains the same for a smartswitch as well. +* When the NPU reboots the "determine_reboot_cause" fetches the npu reboot-cause and persists the files in "/host/reboot-cause" path. +* The "update_reboot_cause" function updates the stateDB with reboot-cause, time, user etc as shown in the schema. +* The existing "show reboot-cause" and "show reboot-cause history" CLIs will be backward compatible. Please refer to the CLI section. + +#### Schema for REBOOT_CAUSE of SWITCH on switch stateDB +``` + Key: "REBOOT_CAUSE|2023_06_18_14_56_12" + + "REBOOT_CAUSE|2023_06_18_14_56_12": { + "value": { + "cause": "Unknown", + "comment": "N/A", + "time": "2023_06_18_14_56_12", + "user": "N/A" + } + } + +``` +#### DPU Reboot Cause +* The smartswitch needs to know the reboot cause for all the DPUs. +* The NPU hardware should be capable of providing the DPU reboot-cause even when the DPUs are dead. +* The get_reboot_cause will return the current reboot-cause of the module. +* For persistent storage of the DPU reboot-cause and reboot-cause-history files use the existing mechanism and host storage path under "/host/reboot-cause/module/dpux". +* The storage and retrieval of the reboot-cause of the Switch and PDUs are shown in the sequence diagram

+#### Reboot workflow * The switch boots up. Determines the NPU reboot cause. -* Processes the previously stored NPU and DPU reboot-cause files and history files and updates the NPU reboot-cause into the StateDB and the DPU reboot-cause into the ChassisStateDB. +* Processes the previously stored NPU and DPU reboot-cause files and history files. +* Updates the NPU reboot-cause into the StateDB and the DPU reboot-cause into the ChassisStateDB. * The above process is a one-shot event on boot up. -* The module_db_update function in the NPU-PMON chassisd is an existing function constantly updating the operational status of the DPUs. This function looks for DPU operational status change events and when the DPUs come out of "offline" state, issues "get_reboot_cause" API to the platform. +* The module_db_update function in the NPU-PMON chassisd is an existing function constantly updating the operational status of the DPUs. +* This function looks for DPU operational status change events and when the DPUs come out of "offline" state, issues "get_reboot_cause" API to the platform. +* The dpu operational state transition from 'offline' to 'online' guarantees the reboot of a DPU. * The platform code will extract the DPU reboot cause from the NPU hardware itself even when the DPU is not reachable. * The DPU reboot cause will be mapped to one of the following existing reboot causes and returned back. * REBOOT_CAUSE_POWER_LOSS = "Power Loss" @@ -481,20 +508,6 @@ return REBOOT_CAUSE_NON_HARDWARE + ', ' + 'kernel panic' * The switch reboot use case will follow the same sequence. * The pmon container restart should not affect this sequence as the states are persisted either in the DB or in the file system. -#### Schema for REBOOT_CAUSE of SWITCH on switch stateDB -``` - Key: "REBOOT_CAUSE|2023_06_18_14_56_12" - - "REBOOT_CAUSE|2023_06_18_14_56_12": { - "value": { - "cause": "Unknown", - "comment": "N/A", - "time": "2023_06_18_14_56_12", - "user": "N/A" - } - } - -``` #### Schema for REBOOT_CAUSE of DPUs on switch ChassisStateDB ``` Key: "REBOOT_CAUSE|DPU0|2024_06_06_09_31_18" @@ -510,8 +523,8 @@ return REBOOT_CAUSE_NON_HARDWARE + ', ' + 'kernel panic' } ``` -#### DPU State -2. Though the get_oper_status(self) can get the operational status of the DPU modules, the current implementation only has limited capabilities. +#### 2. DPU State +Though the get_oper_status(self) can get the operational status of the DPU modules, the current implementation only has limited capabilities. * Can only state MODULE_STATUS_FAULT and can't show exactly where in the state progression the DPU failed. This is critical in fault isolation, DPU switchover decision, resiliency and recovery * Though this is platform implementation specific, in a multi vendor use case, there has to be a consistent way of storing and accessing the information. * Store the state progression (dpu_midplane_link_state, dpu_control_plane_state, dpu_data_plane_state) on the host ChassisStateDB using the push model specified in [section: 3.2.4 of SONiC Chassis Platform Management & Monitoring HLD](https://github.com/sonic-net/SONiC/blob/master/doc/pmon/pmon-chassis-design.md) @@ -545,8 +558,8 @@ dpu_data_plane_state: up refers to configuration downloaded, the pipeline stage ”dpu_data_plane_time": ”timestamp", ”dpu_data_plane_reason": ”Pipeline failure", ``` -#### DPU Health -3. This feature is implemented in two phases. +#### 3 DPU Health +This feature is implemented in two phases. #### Phase:1 * Each DPU has to store the health info locally and should be available on the DPU when the "show system-health ..." CLI is executed on the DPU just like the switch. #### Phase:2 From 8de19588d3bcaacedd23add1a8df92d57e7d26d1 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Mon, 11 Nov 2024 14:03:41 -0800 Subject: [PATCH 27/30] Updated the reboot-cause cli section 3.4.1 --- doc/smart-switch/pmon/smartswitch-pmon.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 665fda3519..950f76ef60 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -739,12 +739,13 @@ fantray1 N/A fantray1.fan 56% intake Present OK 20230 ``` #### 3.4.1 Reboot Cause CLIs -* There are two CLIs "show reboot-cause" and "show reboot-cause history" which are applicable to both DPUs and the Switch. However, when executed on the Switch the CLIs provide a consolidated view of reboot cause as shown below. -* Each DPU will update its reboot cause history in the Switch ChassisStateDB upon boot up. -* The PMON on the DPU side will be responsible to update the switch side chassisStateDB on DPU boot up, using the push model specified in [section: 3.2.4 of SONiC Chassis Platform Management & Monitoring HLD](https://github.com/sonic-net/SONiC/blob/master/doc/pmon/pmon-chassis-design.md) -* Though how DPU pmon updates this is vendor dependent, it is recommended to use the sonic telemetry agent to align with the existing SONiC implementation. +* There are two existing CLIs "show reboot-cause" and "show reboot-cause history" +* These two CLIs are extended to "show reboot-cause all" and "show reboot-cause history \", where the "option" could be DPUx, all or SWITCH +* When each DPU turns online the NPU chassisd will fetch the reboot-cause using the "get_reboot_cause()" API. +* The NPU chassisd will persist the reboot cause under "/host/reboot-cause/module/dpux" and update the chassisStateDB REBOOT_CAUSE table. * The DPUs will limit the number of history entries to a maximum of ten. -* The recent reboot-cause can be derived from that list of reboot-causes. Platforms which are not capable of populating the ChassisStateDB can use the "get_reboot_cause" API to fetch the data from the DPUs. The trigger to activate the API will eventually come from the DPU state change handler. +* The recent reboot-cause can be derived from that list of reboot-causes. +* Platform hardware should have the DPU reboot-cause available on the NPU side and provided it to the "get_reboot_cause()" API #### 3.4.2 Reboot Cause CLIs on the DPUs **`Executed on the DPU`** * The "show reboot-cause" shows the most recent reboot-cause From bb5318201fae22b4b2fac9349d26bfe094e8e01c Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Tue, 12 Nov 2024 17:41:20 -0800 Subject: [PATCH 28/30] Updated the reboot-cause CLIs section and added the max history count in multiple places to be clear. Called out the output of the new CLI extensions on the DPUs. --- doc/smart-switch/pmon/smartswitch-pmon.md | 117 ++++++++++++---------- 1 file changed, 63 insertions(+), 54 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 950f76ef60..6cc43e9d9f 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -453,6 +453,7 @@ The smartswitch needs to know the reboot cause for the NPU and the DPUs. #### NPU Reboot Cause * When the NPU undergoes a reboot the existing reboot-cause workflow for a switch still remains the same for a smartswitch as well. * When the NPU reboots the "determine_reboot_cause" fetches the npu reboot-cause and persists the files in "/host/reboot-cause" path. +* A maximum of ten reboot-cause history entries per dpu will be persisted just like the npu. * The "update_reboot_cause" function updates the stateDB with reboot-cause, time, user etc as shown in the schema. * The existing "show reboot-cause" and "show reboot-cause history" CLIs will be backward compatible. Please refer to the CLI section. @@ -482,6 +483,7 @@ The smartswitch needs to know the reboot cause for the NPU and the DPUs. #### Reboot workflow * The switch boots up. Determines the NPU reboot cause. * Processes the previously stored NPU and DPU reboot-cause files and history files. +* A maximum of ten reboot-cause history entries per dpu will be persisted just like the npu. * Updates the NPU reboot-cause into the StateDB and the DPU reboot-cause into the ChassisStateDB. * The above process is a one-shot event on boot up. * The module_db_update function in the NPU-PMON chassisd is an existing function constantly updating the operational status of the DPUs. @@ -750,82 +752,89 @@ fantray1 N/A fantray1.fan 56% intake Present OK 20230 #### 3.4.2 Reboot Cause CLIs on the DPUs **`Executed on the DPU`** * The "show reboot-cause" shows the most recent reboot-cause * The "show reboot-cause history" shows the reboot-cause history +* The new cli extensions will not have any effect on the DPUs as shown in the example. ``` -root@sonic:~#show reboot-cause +root@sonic:~#show reboot-cause -Name Cause Time User Comment - -2023_10_02_17_20_46 reboot Sun 02 Oct 2023 05:20:46 PM UTC admin User issued 'reboot' +Hardware - Other (NPU side powercycle) -root@sonic:~#show reboot-cause history +root@sonic:~#show reboot-cause history -Name Cause Time User Comment +Name Cause Time User Comment +2024_11_12_16_09_41 Hardware - Other (NPU side powercycle) N/A N/A Unknown +2024_11_12_02_03_12 Hardware - Other (NPU side powercycle) N/A N/A Unknown -2023_10_02_17_20_46 reboot Sun 02 Oct 2023 05:20:46 PM UTC admin User issued 'reboot' -2023_10_02_18_10_00 reboot Sun 02 Oct 2023 06:10:00 PM UTC admin User issued 'reboot' +root@sonic:~#show reboot-cause all +root@sonic:~#show reboot-cause history all +root@sonic:~#show reboot-cause history DPU0 ``` + #### 3.4.3 Reboot Cause CLIs on the Switch **`Executed on the switch`** -* The "show reboot-cause" CLI on the switch shows the most recent rebooted device, time and the cause. The could be the NPU or any DPU -* The "show reboot-cause history" CLI on the switch shows the history of the Switch and all DPUs -* The "show reboot-cause history module-name" CLI on the switch shows the history of the specified module +* The "show reboot-cause" CLI on the switch remains the same. +* The "show reboot-cause all" CLI on the switch shows the recent reboot-cause of the Switch and the DPUs. +* The "show reboot-cause history" CLI on the switch shows the history of the smartswitch and is the same as any switch. +* The "show reboot-cause history \" CLI on the switch shows the history of the specified module depending on the option as show below. ``` -root@sonic:~#show reboot-cause +root@sonic:~#show reboot-cause -Name Cause Time User Comment - -2023_10_20_18_52_28 Watchdog:1 expired; Wed 20 Oct 2023 06:52:28 PM UTC N/A N/A +Power Loss - -root@sonic:~#show reboot-cause history +root@sonic:~#show reboot-cause history Name Cause Time User Comment - -2023_10_20_18_52_28 Watchdog:1 expired; Wed 20 Oct 2023 06:52:28 PM UTC N/A N/A -2023_10_05_18_23_46 reboot Wed 05 Oct 2023 06:23:46 PM UTC user N/A +------------------- ------------------- ------------------------------- ------ ------ +2023_10_20_18_52_28 Watchdog:1 expired; Wed 20 Oct 2023 06:52:28 PM UTC N/A N/A +2023_10_05_18_23_46 reboot Wed 05 Oct 2023 06:23:46 PM UTC user N/A -root@sonic:~#show reboot-cause all +root@sonic:~#show reboot-cause all -Device Name Cause Time User Comment +Device Name Cause Time User +-------- ------------------- -------------------------------------- ------------------------------- ------ +SWITCH 2024_11_12_02_03_08 Power Loss N/A N/A +DPU3 2024_11_12_02_06_01 Hardware - Other (NPU side powercycle) Tue Nov 12 02:06:01 AM UTC 2024 N/A +DPU2 2024_11_12_02_05_58 Hardware - Other (NPU side powercycle) Tue Nov 12 02:05:58 AM UTC 2024 N/A +DPU1 2024_11_12_02_05_55 Hardware - Other (NPU side powercycle) Tue Nov 12 02:05:55 AM UTC 2024 N/A +DPU0 2024_11_12_16_08_43 Non-Hardware, Switch rebooted DPU Tue Nov 12 04:08:43 PM UTC 2024 N/A -switch 2023_10_20_18_52_28 Watchdog:1 expired; Wed 20 Oct 2023 06:52:28 PM UTC N/A N/A -DPU3 2023_10_03_18_23_46 Watchdog: stage 1 expired; Mon 03 Oct 2023 06:23:46 PM UTC N/A N/A -DPU2 2023_10_02_17_20_46 reboot Sun 02 Oct 2023 05:20:46 PM UTC admin User issued 'reboot' +root@sonic:~# show reboot-cause history all +Device Name Cause Time User Comment +-------- ------------------- -------------------------------------- ------------------------------- ------ ------------------------------------------------------------------------ +SWITCH 2024_11_12_02_03_08 Power Loss N/A N/A Unknown (First boot of SONiC version master.18096-dirty-20241111.203125) +DPU3 2024_11_12_02_06_01 Hardware - Other (NPU side powercycle) Tue Nov 12 02:06:01 AM UTC 2024 N/A +DPU2 2024_11_12_02_05_58 Hardware - Other (NPU side powercycle) Tue Nov 12 02:05:58 AM UTC 2024 N/A +DPU1 2024_11_12_02_05_55 Hardware - Other (NPU side powercycle) Tue Nov 12 02:05:55 AM UTC 2024 N/A +DPU0 2024_11_12_16_08_43 Non-Hardware, Switch rebooted DPU Tue Nov 12 04:08:43 PM UTC 2024 N/A +DPU0 2024_11_12_02_05_52 Hardware - Other (NPU side powercycle) Tue Nov 12 02:05:52 AM UTC 2024 N/A -root@sonic:~#show reboot-cause history all -Device Name Cause Time User Comment +show reboot-cause history DPU0 +Device Name Cause Time User Comment +-------- ------------------- -------------------------------------- ------------------------------- ------ --------- +DPU0 2024_11_12_16_08_43 Non-Hardware, Switch rebooted DPU Tue Nov 12 04:08:43 PM UTC 2024 N/A +DPU0 2024_11_12_02_05_52 Hardware - Other (NPU side powercycle) Tue Nov 12 02:05:52 AM UTC 2024 N/A -switch 2023_10_20_18_52_28 Watchdog:1 expired; Wed 20 Oct 2023 06:52:28 PM UTC N/A N/A -switch 2023_10_05_18_23_46 reboot Wed 05 Oct 2023 06:23:46 PM UTC user N/A -DPU3 2023_10_03_18_23_46 Watchdog: stage 1 expired; Mon 03 Oct 2023 06:23:46 PM UTC N/A N/A -DPU3 2023_10_02_18_23_46 Host Power-cycle Sun 02 Oct 2023 06:23:46 PM UTC N/A Host lost DPU -DPU3 2023_10_02_17_23_46 Host Reset DPU Sun 02 Oct 2023 05:23:46 PM UTC N/A N/A -DPU2 2023_10_02_17_20_46 reboot Sun 02 Oct 2023 05:20:46 PM UTC admin User issued 'reboot' -"show reboot-cause history module-name" - -root@sonic:~#show reboot-cause history dpu3 - -Device Name Cause Time User Comment -    -DPU3 2023_10_03_18_23_46 Watchdog: stage 1 expired; Mon 03 Oct 2023 06:23:46 PM UTC N/A N/A -DPU3 2023_10_02_18_23_46 Host Power-cycle Sun 02 Oct 2023 06:23:46 PM UTC N/A Host lost DPU -DPU3 2023_10_02_17_23_46 Host Reset DPU Sun 02 Oct 2023 05:23:46 PM UTC N/A N/A +root@sonic:~# show reboot-cause history SWITCH +Device Name Cause Time User Comment +-------- ------------------- ------------ ------ ------ ------------------------------------------------------------------------ +SWITCH 2024_11_12_02_03_08 Power Loss N/A N/A Unknown (First boot of SONiC version master.18096-dirty-20241111.203125) ``` + #### 3.4.4 Chassis Module Status * The "show chassis modules status" is an existing CLI but extended to include the status of all DPUs and switch. **`Executed on the switch. This CLI is not available on the DPU.`** ``` -root@sonic:~#show chassis modules status                                                                                       -Name Description ID Oper-Status Admin-Status Serial - -DPU0 SS-DPU0 1 Online up SN20240105 -DPU1 SS-DPU1 2 Online up SN20240102 -... -SWITCH Chassis 0 Online N/A FLM27000ER +root@sonic:~#show chassis modules status + Name Description Physical-Slot Oper-Status Admin-Status Serial +------ ------------- --------------- ------------- -------------- -------- + DPU0 N/A N/A Offline down N/A + DPU1 N/A N/A Online up N/A + DPU2 N/A N/A Online up N/A + DPU3 N/A N/A Online up N/A ``` + #### 3.4.5 System health details #### Phase:1 * The system health summary on switch will display only the NPU health @@ -867,13 +876,13 @@ When the idex is "all" shows the detailed state of all DPUs Oper-Status definition: Online : All states are up Offline: dpu_midplane_link_state is down -Partial Online: dpu_midplane_link_state is up and dpu_control_plane_state or dpu_data_plane_state is down +Fault: dpu_midplane_link_state is up and dpu_control_plane_state or dpu_data_plane_state is down There are two parts to the state detail. 1. The midplane state 2. the dpu states (control plane state, data plane state). The midplane state has to be updated by the switch side pcied. The dpu states will be updated by the DPU (redis client update) on the switch ChassisStateDB. The get_state_info() API in the moduleBase class will fetch the contents from the DB. The show CLI reads the redis table and displays the data. -root@sonic:~#show system-health DPU all   -             +root@sonic:~#show system-health DPU all + Name Oper-Status State-Detail State-Value Time Reason -DPU0 Partial Online dpu_midplane_link_state up Wed 20 Oct 2023 06:52:28 PM UTC +DPU0 Fault dpu_midplane_link_state up Wed 20 Oct 2023 06:52:28 PM UTC dpu_control_plane_state up Wed 20 Oct 2023 06:52:28 PM UTC dpu_data_plane_state down Wed 20 Oct 2023 06:52:28 PM UTC Pipeline failure @@ -883,7 +892,7 @@ DPU1 Online dpu_midplane_link_state up W dpu_data_plane_state up Wed 20 Oct 2023 06:52:28 PM UTC root@sonic:~#show system-health DPU 0 -  + Name Oper-Status State-Detail State-Value Time Reason DPU0 Offline dpu_midplane_link_state down Wed 20 Oct 2023 06:52:28 PM UTC PCIe link is down dpu_control_plane_state down Wed 20 Oct 2023 06:52:28 PM UTC From b0f1ca23e9b5158f6e3c71f2c9742fc05d18eca5 Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Thu, 14 Nov 2024 08:56:46 -0800 Subject: [PATCH 29/30] Addressed a few review comments --- doc/smart-switch/pmon/smartswitch-pmon.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 6cc43e9d9f..b3f1d79b8e 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -91,6 +91,7 @@ The picture below highlights the PMON vertical and its association with other lo * A smartswitch when configured to boot up with all the DPUs in it are powered down upon boot up is referred as DPUs in dark mode. * In the dark mode the platform.json file shown in section "3.1.3" will not have the dictionary for the DPUS. * The term dark mode is overloaded in some cases where the platform.json may have the dictionary but the config_db.json will have the admin_state of all DPU modules as "down". +* When platform.json has DPU information, but config DB doesn't have the DPU admin state configuration, the DPUs should be in downstate. * Default mode on smartswitch is dark mode, unless platform.json configures it to be in light up mode. * The DPUs would stay power down in dark mode and will not consume power. @@ -250,7 +251,6 @@ SmartSwitch PMON block diagram ### 3.1. Platform monitoring and management * SmartSwitch design Extends the existing chassis_base class and module_base class as described below. -* Extend MODULE_TYPE in ModuleBase class with MODULE_TYPE_DPU to support SmartSwitch #### 3.1.1 ChassisBase class API enhancements is_modular_chassis(self): @@ -529,8 +529,10 @@ return REBOOT_CAUSE_NON_HARDWARE + ', ' + 'kernel panic' Though the get_oper_status(self) can get the operational status of the DPU modules, the current implementation only has limited capabilities. * Can only state MODULE_STATUS_FAULT and can't show exactly where in the state progression the DPU failed. This is critical in fault isolation, DPU switchover decision, resiliency and recovery * Though this is platform implementation specific, in a multi vendor use case, there has to be a consistent way of storing and accessing the information. - * Store the state progression (dpu_midplane_link_state, dpu_control_plane_state, dpu_data_plane_state) on the host ChassisStateDB using the push model specified in [section: 3.2.4 of SONiC Chassis Platform Management & Monitoring HLD](https://github.com/sonic-net/SONiC/blob/master/doc/pmon/pmon-chassis-design.md) + * Store the state progression (dpu_midplane_link_state, dpu_control_plane_state, dpu_data_plane_state) on the host ChassisStateDB. * get_state_info(self) will return an object with the ChassisStateDB data + * Two more APIs get_dataplane_state(self) and get_controlplane_state(self) are available to get the dataplane_state and controlplane_state are available to access them individually. + * The dpu_midplane_link_state will be monitored and updated by the NPU PMON chassisd. * Potential consumers: HA, LB, Switch CLIs, Utils (install/repair images), Life Cycle Manager * Use cases: HA, Debuggability, error recovery (reset, power cycle) and fault management, consolidated view of Switch and DPU state @@ -635,9 +637,8 @@ get_state_info(self): * Thermal manager reads all thermal sensor data, run thermal policy and take policy action Ex. Set fan speed, set alarm, set syslog, set LEDs * Platform collects fan related data such as presence, failure and then applies fan algorithm to set the new fan speed * The north bound CLI/Utils/App use DB data to ”show environment”, ”show platform temp” show platform fan” -* The DPUs will update the ChassisStateDB "TEMPERATURE_INFO" tables through redis client call which in turn will be pushed into the switch StateDB. * The existing "TEMPERATURE_INFO" schema will be used to store the values and is shown below for convenience. -* For phase:1 implementation the sensor values collected by DPU will not be pushed to the chassisStateDB. + #### TEMPERATURE_INFO schema in StateDB ``` "TEMPERATURE_INFO|DPU_0_T": { @@ -743,8 +744,6 @@ fantray1 N/A fantray1.fan 56% intake Present OK 20230 #### 3.4.1 Reboot Cause CLIs * There are two existing CLIs "show reboot-cause" and "show reboot-cause history" * These two CLIs are extended to "show reboot-cause all" and "show reboot-cause history \", where the "option" could be DPUx, all or SWITCH -* When each DPU turns online the NPU chassisd will fetch the reboot-cause using the "get_reboot_cause()" API. -* The NPU chassisd will persist the reboot cause under "/host/reboot-cause/module/dpux" and update the chassisStateDB REBOOT_CAUSE table. * The DPUs will limit the number of history entries to a maximum of ten. * The recent reboot-cause can be derived from that list of reboot-causes. * Platform hardware should have the DPU reboot-cause available on the NPU side and provided it to the "get_reboot_cause()" API From 9acaa87252412b3e07d21ec85edcd2c33f2aec3d Mon Sep 17 00:00:00 2001 From: Ramesh Raghupathy Date: Wed, 20 Nov 2024 12:11:13 -0800 Subject: [PATCH 30/30] Addressed a review comment --- doc/smart-switch/pmon/smartswitch-pmon.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index b3f1d79b8e..9c58b1bfd0 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -526,8 +526,7 @@ return REBOOT_CAUSE_NON_HARDWARE + ', ' + 'kernel panic' ``` #### 2. DPU State -Though the get_oper_status(self) can get the operational status of the DPU modules, the current implementation only has limited capabilities. - * Can only state MODULE_STATUS_FAULT and can't show exactly where in the state progression the DPU failed. This is critical in fault isolation, DPU switchover decision, resiliency and recovery + * Added supporting fileds such as "time" and "reason" to show exactly where in the state progression the DPU failed. This will be helpful in fault isolation, DPU switchover decision, resiliency and recovery * Though this is platform implementation specific, in a multi vendor use case, there has to be a consistent way of storing and accessing the information. * Store the state progression (dpu_midplane_link_state, dpu_control_plane_state, dpu_data_plane_state) on the host ChassisStateDB. * get_state_info(self) will return an object with the ChassisStateDB data

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 F{15pMTABa= diff --git a/doc/smart-switch/pmon/images/dpu-reboot-seq.svg b/doc/smart-switch/pmon/images/dpu-reboot-seq.svg new file mode 100644 index 0000000000..8182562f92 --- /dev/null +++ b/doc/smart-switch/pmon/images/dpu-reboot-seq.svg @@ -0,0 +1 @@ +NPU: Platform codeNPU: platform APINPU: chassisdNPU: chassisStateDBNPU: stateDBNPU: host-serviceNPU: Platform codeNPU: platform APINPU: chassisdNPU: chassisStateDBNPU: stateDBNPU: host-serviceloop[moduel_db_update]UserInput: PowerOn or Reboot config or clidetermine-reboot-causeupdate-reboot-causeupdate-reboot-causeupdate-reboot-causeend processingoper-status out of offlineget-reboot-causextract-dpu-reboot-causedpu-reboot-causereboot-causepersist-dpu-reboot-causeupdate-dpu-reboot-causeUser \ No newline at end of file diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md index 5aa77a65d5..d9263e16a5 100644 --- a/doc/smart-switch/pmon/smartswitch-pmon.md +++ b/doc/smart-switch/pmon/smartswitch-pmon.md @@ -454,20 +454,30 @@ is_midplane_reachable(self): * For persistent storage of the DPU reboot-cause and reboot-cause-history files use the existing host storage path and mechanism under "/host/reboot-cause/module/dpux". * The storage and retrieval of the reboot-cause of the Switch and PDUs are shown in the sequence diagram -