From 31729b2e1b759198c9ea0b1bc7ad95e5f297a91a Mon Sep 17 00:00:00 2001 From: Stephen Sun Date: Mon, 23 Oct 2023 08:40:25 +0800 Subject: [PATCH 1/8] Init version Signed-off-by: Stephen Sun --- .../archchart.png | Bin 0 -> 62481 bytes .../initflow.png | Bin 0 -> 111034 bytes .../normalflow.png | Bin 0 -> 80842 bytes .../suppressflow.png | Bin 0 -> 79677 bytes .../handle-ASIC-SDK-health-event.md | 607 ++++++++++++++++++ 5 files changed, 607 insertions(+) create mode 100644 doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/archchart.png create mode 100644 doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/initflow.png create mode 100644 doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/normalflow.png create mode 100644 doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/suppressflow.png create mode 100644 doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/archchart.png b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/archchart.png new file mode 100644 index 0000000000000000000000000000000000000000..3af8406c8c0180d6def8bc17098a54e358203d1b GIT binary patch literal 62481 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

-J_A8actgCBvNPZ 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 literal 0 HcmV?d00001 diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/initflow.png b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/initflow.png new file mode 100644 index 0000000000000000000000000000000000000000..6726361961d274e234d601d35844d40755e80355 GIT binary patch literal 111034 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 z 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 literal 0 HcmV?d00001 diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/normalflow.png b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/normalflow.png new file mode 100644 index 0000000000000000000000000000000000000000..0d27210bea1d11d4df24ceee3ef937317cbee480 GIT binary patch literal 80842 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 JBWdLO{{R|lZJq!C literal 0 HcmV?d00001 diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/suppressflow.png b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event-images/suppressflow.png new file mode 100644 index 0000000000000000000000000000000000000000..f11a24a08c26472c21dd5160ea39ca0deb413585 GIT binary patch literal 79677 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 literal 0 HcmV?d00001 diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md new file mode 100644 index 0000000000..b6861d212c --- /dev/null +++ b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md @@ -0,0 +1,607 @@ +# Handle ASIC/SDK health event # + +## Table of Content + +### Revision + +| Rev | Date | Author | Change Description | +|:---:|:-----------:|:------------------:|-----------------------------------| +| 0.1 | Oct 23, 2023 | Stephen Sun | Initial version | +| 0.2 | Oct 31, 2023 | Stephen Sun | Adjust according to the internal review comments. Add CLI to suppress certain event. | +| 0.3 | Nov 1, 2023 | Stephen Sun | Add ASIC/SDK health event to show techsupport. | +| 0.4 | Nov 6, 2023 | Stephen Sun | Add capabilities support and move the logic to notificatioin thread. | + +### Scope + +This document describes the high level design of handle ASIC/SDK health event framework in SONiC. + +### Definitions/Abbreviations + +| Name | Meaning | +|:----:|:-------:| +| ASIC/SDK health event | Health event is a way for SAI to inform NOS about HW/SW health issues. Usually they are not directly caused by a SAI API call. | +|| An ASIC/SDK health event is described using `asic_id`, `severity`, `category`, `timestamp`, `description`. | +| severity of an ASIC/SDK health event | one of `fatal`, `warning`, and `notice`, which represents how severe the event is | +| category of an ASIC/SDK health event | one of `software`, `firmware`, `cpu_hw`, `asic_hw`, which usually represents the component from which the event is detected | + +### Overview + +A way for syncd to notify orchagent an ASIC/SDK health event before asking orchagent to shutdown is introduced in this document. + +For most of ethernet switches, the switch ASIC is the core component in the system. It is very important to identify a switch ASIC is in a failure state and report such event to NOS. + +Currently, such failure is detected by SDK/FW on most of platforms. A vendor SAI notifies orchagent to shutdown using `switch_shutdown_request` notification when it detects an ASIC/SDK internal error. Usually, the vendor SAI prints log message before calling shutdown API. + +Orchagent can abort itself if a SAI API call fails, usually due to a bad arguments, and can not be recovered. From a customer's perspective of view, this can be distinguished from the ASIC/SDK health event only by analyzing the log message. + +The current implementation has the following limitations: + +- It is difficult for a customer to understand what occured on SAI and below or distinguish an SDK/FW internal error from a SAI API call. Even a customer can analyze the issue using the log message, it is not intuitive. +- It is unable notify an ASIC/FW/SDK event if the event is less serious to ask for shutdown. +- It is unable for telementry agent to collect such information. + +In this design, we will introduce a new way to address the limitations. + +### Requirements + +This section list out all the requirements for the HLD coverage and exemptions (not supported) if any for this design. + +1. Capabilities + 1. A vendor SAI should expose the corresponding SAI switch attributes if it supports ASIC/SDK health event so that orchagent can fetch them using `sai_query_attribute_capability` + 2. Orchagent shall not set any SAI switch attributes that is not supported by the vendor SAI. +2. For any vendor SAI who supports the feature, it shall notify a `switch_asic_sdk_health_event` when it detects a HW/SW health issues. + 1. If the issue is serious enough to shutdown the switch, the vendor SAI shall notify `switch_asic_sdk_health_event` before `switch_shutdown_request` + 2. Otherwise, the vendor SAI will not notify `switch_shutdown_request`. +3. On receiving an ASIC/SDK health event, the orchagent shall + 1. Extract data from the event (severity, timestamp, description) and push data to the STATE_DB table using timestamp and date as a key + 2. Report the event to gNMI server using the event collect mechanism +4. CLI commands shall be provided to display or clear all the ASIC/SDK health events in the STATE_DB +5. A CLI command shall be provided for a customer to suppress a certain type of ASIC/SDK health event on a certain severity. +6. ASIC/SDK health events should be collected in `show techsupport` as an independent file in `dump`. + +### Architecture Design + +The current architecture is not changed in this design. + +### High-Level Design + +![Flow](handle-ASIC-SDK-health-event-images/archchart.png "Figure: A overall block chart - handle ASIC/SDK health event") + +A mechanism to handle an SDK/FW internal events is enhanced in the following way in this design. + +- Orchagent registers a notification handler of `switch_asic_sdk_health_event` to SAI during system initialization for all severities. + - Capabilities will be fetched ahead of registering the event and exposed to `STATE_DB`. + - A user can suppress the events that he/she is not interested in by severity and category using configuration. +- A vendor SAI notifies orchagent an ASIC/SDK event using `switch_asic_sdk_health_event` notification with corresponding arguments when it detects an HW/SW issue. + - The orchagent stores the information of the ASIC/SDK health event into database and pushes it to gNMI server using event collector mechanism. +- The vendor SAI notifies orchagent to shutdown using `switch_shutdown_request` notification if the event is seriously enough. + Orchagent will abort on receiving the notification. + - Otherwise, `switch_shutdown_request` will not be sent and system continues to run. +- The ASIC/SDK health events stored in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` can be displayed or cleared using CLI commands. + +The `timestamp`, `severity`, and `category` are represented in various components. + +The `timestamp` is converted to format "%Y-%m-%d %H:%M:%S" which is a walltime based on the timezone in `swss` docker container. + +The `severity` is mapped between each other according to the next table: + +| represention in SONiC | Enumerate in SAI headers | SAI attribute to register corresponding eventa | +|:---:|:---:|:---:| +| fatal | SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_FATAL | SAI_SWITCH_ATTR_REG_FATAL_SWITCH_ASIC_SDK_HEALTH_CATEGORY | +| warning | SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_WARNING | SAI_SWITCH_ATTR_REG_WARNING_SWITCH_ASIC_SDK_HEALTH_CATEGORY | +| notice | SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_NOTICE | SAI_SWITCH_ATTR_REG_NOTICE_SWITCH_ASIC_SDK_HEALTH_CATEGORY | + +The `category` is mapped between each other according to the next table: + +| represention in SONiC | Enumerate in SAI headers | +|:---:|:---:| +| software | SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_SW | +| firmware | SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_FW | +| cpu_hw | SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_CPU_HW | +| asic_hw | SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_ASIC_HW | + +This is a built-in SONiC feature implemented in the following sub-modules + +- sonic-swss, which handles SAI notification, storing it into database and pushing it into gNMI server +- sonic-sairedis, which transmits the ASIC/SDK health events reported by vendor SAI to orchagent +- sonic-utilities, in which the CLI to display and clear ASIC/SDK health events and configure suppress ASIC/SDK health events are implemented +- sonic-buildimage, in which the new yang models for the new events are defined + +#### DB changes + +##### STATE_DB change + +###### Table ASIC_SDK_HEALTH_EVENT_TABLE + +Table `ASIC_SDK_HEALTH_EVENT_TABLE` contains the ASIC/SDK health events information. + +```text +key = ASIC_SDK_HEALTH_EVENT_TABLE:timestamp_string ; "%Y-%m-%d %H:%M:%S", full-date and partial-time separated by white space. + ; Example: 2022-09-12 09:39:19 +asicid = 1*4DIGIT ; ASIC ID for multi ASIC system +severity = "fatal" | "warning" | "notice" +category = "software" | "firmware" | "cpu_hw" | "asic_hw" +description = 1*255VCHAR ; ASIC/SDK health event's description text +``` + +###### Table SWITCH_CAPABILITY + +Table `SWITCH_CAPABILITY` is not a new table. It has been designed to represent various switch object capabilities supported on the platform. + +The following fields will be introduced in this design. + +```text +ASIC_SDK_HEALTH_EVENT = "true" | "false" ; whether SAI attribute SAI_SWITCH_ATTR_SWITCH_ASIC_SDK_HEALTH_EVENT_NOTIFY is supported +REG_FATAL_ASIC_SDK_HEALTH_CATEGORY = "true" | "false" ; whether SAI attribute SAI_SWITCH_ATTR_REG_FATAL_SWITCH_ASIC_SDK_HEALTH_CATEGORY is supported +REG_WARNING_ASIC_SDK_HEALTH_CATEGORY = "true" | "false" ; whether SAI attribute SAI_SWITCH_ATTR_REG_WARNING_SWITCH_ASIC_SDK_HEALTH_CATEGORY is supported +REG_NOTICE_ASIC_SDK_HEALTH_CATEGORY = "true" | "false" ; whether SAI attribute SAI_SWITCH_ATTR_REG_NOTICE_SWITCH_ASIC_SDK_HEALTH_CATEGORY is supported +``` + +### SAI API + +There is no new SAI API introduced nor changed. + +The following SAI attributes of switch object defined in `SAI/inc/saiswitch.h` are used in this document. + +```C + /** + * @brief Health notification callback function passed to the adapter. + * + * Use sai_switch_asic_sdk_health_event_notification_fn as notification function. + * + * @type sai_pointer_t sai_switch_asic_sdk_health_event_notification_fn + * @flags CREATE_AND_SET + * @default NULL + */ + SAI_SWITCH_ATTR_SWITCH_ASIC_SDK_HEALTH_EVENT_NOTIFY, + + /** + * @brief Registration for health fatal categories. + * + * For specifying categories of causes for severity fatal events + * + * @type sai_s32_list_t sai_switch_asic_sdk_health_category_t + * @flags CREATE_AND_SET + * @default empty + */ + SAI_SWITCH_ATTR_REG_FATAL_SWITCH_ASIC_SDK_HEALTH_CATEGORY, + + /** + * @brief Registration for health warning categories. + * + * For specifying categories of causes for severity warning events + * + * @type sai_s32_list_t sai_switch_asic_sdk_health_category_t + * @flags CREATE_AND_SET + * @default empty + */ + SAI_SWITCH_ATTR_REG_WARNING_SWITCH_ASIC_SDK_HEALTH_CATEGORY, + + /** + * @brief Registration for health notice categories. + * + * For specifying categories of causes for severity notice events + * + * @type sai_s32_list_t sai_switch_asic_sdk_health_category_t + * @flags CREATE_AND_SET + * @default empty + */ + SAI_SWITCH_ATTR_REG_NOTICE_SWITCH_ASIC_SDK_HEALTH_CATEGORY, +``` + +The following type definitions for the SAI attributes defined in `SAI/inc/saiswitch.h` are used in this document. + +``` C +/** + * @brief Switch health event severity + */ +typedef enum _sai_switch_asic_sdk_health_severity_t +{ + /** Switch event severity fatal */ + SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_FATAL, + + /** Switch event severity warning */ + SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_WARNING, + + /** Switch event severity notice */ + SAI_SWITCH_ASIC_SDK_HEALTH_SEVERITY_NOTICE + +} sai_switch_asic_sdk_health_severity_t; + +/** + * @brief Switch health categories + */ +typedef enum _sai_switch_asic_sdk_health_category_t +{ + /** Switch health software category */ + SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_SW, + + /** Switch health firmware category */ + SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_FW, + + /** Switch health cpu hardware category */ + SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_CPU_HW, + + /** Switch health ASIC hardware category */ + SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_ASIC_HW + +} sai_switch_asic_sdk_health_category_t; + +/** + * @brief Switch health event callback + * + * @objects switch_id SAI_OBJECT_TYPE_SWITCH + * + * @param[in] switch_id Switch Id + * @param[in] severity Health event severity + * @param[in] timestamp Time and date of receiving the SDK Health event + * @param[in] category Category of cause + * @param[in] data Data of switch health + * @param[in] description JSON-encoded description string with information delivered from SDK event/trap + * Example of a possible description: + * { + * "switch_id": "0x00000000000000AB", + * "severity": "2", + * "timestamp": { + * "tv_sec": "22429", + * "tv_nsec": "3428724" + * }, + * "category": "3", + * "data": { + * data_type: "0" + * }, + * "additional_data": "Some additional information" + * } + */ + +typedef void (*sai_switch_asic_sdk_health_event_notification_fn)( + _In_ sai_object_id_t switch_id, + _In_ sai_switch_asic_sdk_health_severity_t severity, + _In_ sai_timespec_t timestamp, + _In_ sai_switch_asic_sdk_health_category_t category, + _In_ sai_switch_health_data_t data, + _In_ const sai_u8_list_t description); + +``` + +The following type definitions for the SAI attributes defined in `SAI/inc/saitypes.h` are used in this document. + +```C +typedef enum _sai_health_data_type_t +{ + /** General health data type */ + SAI_HEALTH_DATA_TYPE_GENERAL +} sai_health_data_type_t; + +typedef struct _sai_switch_health_data_t +{ + /** Type of switch health data */ + sai_health_data_type_t data_type; + +} sai_switch_health_data_t; +``` + +### Configuration and management + +#### Manifest (if the feature is an Application Extension) + +N/A. + +#### CLI Enhancements + +##### Configure suporess ASIC/SDK health events by severity and category + +Command `config asic-sdk-health-event suppress |` is introduced for a customer to configure the categories that he/she wants to suppress for a certain severity. + +The severity can be one of `fatal`, `warning`, and `notice`. + +The category-list is a list whose element is one of `software`, `firmware`, `cpu_hw`, `asic_hw` separated by a comma. The order does not matter. + +If the category-list is `none`, all the categories will be notified for `severity`. + +The ASIC/SDK health events whose `category` is in `category-list` with the `severity` will not be reported by the vendor SAI once the corresponding SAI attributes are set. +But the events that were reported after the command is executed but before the SAI attributes are set will be handled by orchagent and pushed into `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` as usual. + +Eg. the following command will suppress `notice` events with category `asic_hw` and `cpu_hw`: + +`config asic-sdk-health-event suppress notice asic_hw,cpu_hw` + +The following error message will be shown if a customer configures it on a platform that does not support it. + +`ASIC/SDK health event is not supported on the platform` + +The following error message will be shown if a customer suppresses a severity which is not supported on the platform. + +`Suppressing ASIC/SDK health {severity} event is not supported on the platform` + +##### Display the ASIC/SDK health events + +Command `show asic-sdk-health-events received-events` is introduced to display the ASIC/SDK health events as a table. +An example of the output is as below: + +``` +admin@sonic:~$ show asic-sdk-health-events +Time ASIC ID Severity Category Description +------------------- ------- ----------- --------- ----------------- +2023-10-20 05:07:34 0 fatal firmware Command timeout +2023-10-20 03:06:25 0 fatal software SDK daemon keep alive failed +2023-10-20 05:07:34 0 fatal asic_hw Uncorrectable ECC error +2023-10-20 01:58:43 0 notice asic_hw Correctable ECC error +``` + +The following error message will be shown if a customer executes the command on a platform that does not support it. + +`ASIC/SDK health event is not supported on the platform` + +##### Display the ASIC/SDK health suppress configuration + +Command `show asic-sdk-health-events suppressed-category-list` is introduced to display the suppressed categories of each severity of ASIC/SDK health events. + +An example of the output is as below: + +``` +admin@sonic:~$ show asic-sdk-health-events suppressed-category-list +Severity Suppressed category-list +---------- -------------------------- +notice asic_hw,cpu_hw +``` + +The following error message will be shown if a customer executes the command on a platform that does not support it. + +`ASIC/SDK health event is not supported on the platform` + +##### Clear the ASIC/SDK health events + +Command `sonic-clear asic-sdk-health-events` is introduced to clear the ASIC/SDK health events stored in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE`. + +After the command is executed, all items in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` will be cleared. + +#### YANG model Enhancements + +##### YANG model of the suppress ASIC/SDK health event configuration + +The following YANG model is introduced for the suppress ASIC/SDK health event + +```test + container sonic-suppress-asic-sdk-health-event { + container SUPPRESS_ASIC_SDK_HEALTH_EVENT { + list SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST { + key "severity"; + + leaf severity { + type enumeration { + enum fatal; + enum warning; + enum notice; + } + description "Severity of the ASIC/SDK health event"; + } + + leaf-list category-list { + mandatory true; + type enumeration { + enum software; + enum firmware; + enum cpu_hw; + enum asic_hw; + } + description "Category of the ASIC/SDK health event"; + } + } + } + } + +``` + +##### YANG model of the ASIC/SDK health event + +The following YANG model is introduced for ASIC/SDK health event + +```text + container sonic-events-swss { + container asic-sdk-health-event { + evtcmn:ALARM_SEVERITY_MAJOR; + description " + Declares an event for ASIC/SDK health event."; + leaf timestamp { + type string { + pattern '[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}'; + } + } + leaf asicid { + type int; + } + leaf severity { + type enumeration + enum fatal; + enum warning; + enum notice; + } + leaf category { + type enumeration + enum software; + enum firmware; + enum cpu_hw; + enum asic_hw; + } + leaf description { + type string; + } + } + } +``` + +#### Config DB Enhancements + +Table `SUPPRESS_ASIC_SDK_HEALTH_EVENT` contains the list of categories of ASIC/SDK health events that a user wants to suppress for a certain severity. + +```text +key = SUPPRESS_ASIC_SDK_HEALTH_EVENT: ; severity can be one of fatal, warning or notice +categories = {,} + ; a list whose element can be one of software, firmware, cpu_hw, asic_hw separated by a comma +``` + +#### Flows + +##### Register ASIC/SDK health event handler during system initialization + +We leverage the existing framework to register the ASIC/SDK health event handler. + +Various events can occur when a switch system is running, which requires orchagent, upper layer application or protocol to handle. Currently, this has been done by using event handlers. There is a dedicated event handler defined as an attribute of switch object for each event that needs to be handled. They are handled in different ways. + +Currently, there are following event handlers defined. + +| Attribute name | Event | +|:---:|:---:| +| SAI_SWITCH_ATTR_SWITCH_STATE_CHANGE_NOTIFY | Switch state change | +| SAI_SWITCH_ATTR_SHUTDOWN_REQUEST_NOTIFY | Shutdown a switch | +| SAI_SWITCH_ATTR_FDB_EVENT_NOTIFY | FDB event | +| SAI_SWITCH_ATTR_NAT_EVENT_NOTIFY | NAT entry event | +| SAI_SWITCH_ATTR_PORT_STATE_CHANGE_NOTIFY | Port state change | +| SAI_SWITCH_ATTR_QUEUE_PFC_DEADLOCK_NOTIFY | PFC watchdog | +| SAI_SWITCH_ATTR_BFD_SESSION_STATE_CHANGE_NOTIFY | BFD session state change | + +To handle ASIC/SDK health event, a new event handler should be implemented and registered as below. + +| Attribute name | Event | Callback prototype | +|:---:|:---:|:---:| +| SAI_SWITCH_ATTR_SWITCH_ASIC_SDK_HEALTH_EVENT_NOTIFY | ASIC/SDK health event handler | sai_switch_asic_sdk_health_event_notification_fn | + +The following SAI attributes of switch object should also be specified, indicating ASIC/SDK health event of all categories and severities will be notified. + +| Attribute name | Meaning | Value | +|:---:|:---:|:---:| +| SAI_SWITCH_ATTR_REG_FATAL_SWITCH_ASIC_SDK_HEALTH_CATEGORY | The categories of fatal severity | firmware, software, cpu_hw, asic_hw | +| SAI_SWITCH_ATTR_REG_WARNING_SWITCH_ASIC_SDK_HEALTH_CATEGORY | The categories of warning severity | firmware, software, cpu_hw, asic_hw | +| SAI_SWITCH_ATTR_REG_NOTICE_SWITCH_ASIC_SDK_HEALTH_CATEGORY | The categories of notice severity | firmware, software, cpu_hw, asic_hw | + +The initialize flow is: + +1. Fetch capability of `SAI_SWITCH_ATTR_SWITCH_ASIC_SDK_HEALTH_EVENT_NOTIFY` using `sai_query_attribute_capability` +2. If it is supported, set the attribute using `sai_switch_api->set_switch_attribute` with corresponding callback. +3. If it is not supported or failed to set, expose the following fields to `STATE_DB.SWITCH_CAPABILITY` table as `false` and flow finishes. + - ASIC_SDK_HEALTH_EVENT + - REG_FATAL_ASIC_SDK_HEALTH_CATEGORY + - REG_WARNING_ASIC_SDK_HEALTH_CATEGORY + - REG_NOTICE_ASIC_SDK_HEALTH_CATEGORY + +4. For each severity in {FATAL, WARNING, NOTICE}, fetch the capability of the SAI switch attribute `REG_{severity}_ASIC_SDK_HEALTH_CATEGORY` using `sai_query_attribute_capability` + 1. If it is supported, set the attribute using `sai_switch_api->set_switch_attribute` with all categories (firmware, software, cpu_hw, asic_hw). + 2. If it is supported and succeeded to set, expose corresponding field `REG_{severity}_ASIC_SDK_HEALTH_CATEGORY` as `true`. Otherwise, expose it as `false` + +![Flow](handle-ASIC-SDK-health-event-images/initflow.png "Figure: Initialize flow") + +##### Handle ASIC/SDK health event + +The flow to handle ASIC/SDK health event is as below. The steps 1~3 are introduced in this HLD and the rest steps already existed. + +1. A vendor SAI calls the stored callback function `sai_switch_asic_sdk_health_event_notification_fn` with arguments `asic_id`, `timestamp`, `severity`, `category`, and `description` when it detects a HW/SW health issue. +2. Sai redis handles the ASIC/SDK health event, exacts the information, serializes it and then notifies orchagent using `switch_asic_sdk_health_event`. +3. Orchagent handles the sai redis notification + 1. arguments `asic_id`, `timestamp`, `severity`, and `category` are translated to corresponding representations in SONiC. + 2. pushes the information to `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` with timestamp being the key of the table + 3. publishes the information to gNMI using event collect mechanism + 4. prints a syslog message: `[] ASIC/SDK health event occurred at , asic , category : ` + - the severity of the message is `NOTICE` + - ``, ``, ``, `` and `` are translated from the event +4. The flow finishes if the vendor SAI decides not to ask orchagent to shutdown. + + Usually, vendor SAI does not need to ask orchagent to shutdown switch on receiving an ASIC/SDK health event with `NOTICE` severity. +5. The vendor SAI calls stored callback function `sai_switch_shutdown_request_notification_fn` +6. Sai redis notifies orchagent using `switch_shutdown_request` +7. Orchagent calls `abort` on receiving `switch_shutdown_request` +8. The core dump of orchagent is generated on receiving SIGABRT. + + The tech support dump is collected automatically as a result of coredump if auto techsupport is enabled both globally and for swss. +9. The swss and syncd service stopped and then restarted as the result of orchagent aborted. + +![Flow](handle-ASIC-SDK-health-event-images/normalflow.png "Figure: handle ASIC/SDK health event") + +##### Handle suppress ASIC/SDK health event configuration + +A user can suppress the ASIC/SDK health events by severity match certain using configuration. + +Once user configures the category, and severity to suppress, orchagent will deregister them from SAI using corresponding SAI attribute. +The events that have been notified by SAI before the SAI attributes are updated will be handled by orchagent and pushed into `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` as usual. + +The flow to handle suppress ASIC/SDK health event configuration is as below: + +1. CLI parses, validate user input +2. If the corresponding attribute is not supported according to `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` table, print an error and flow finishes. +3. Push the new value into `CONFIG_DB.SUPPRESS_ASIC_SDK_HEALTH_EVENT` +4. Switch orchagent receives notification of table update, and then translates severity and category list into corresponding SAI attribute and enumurations + - severity mapping: + - fatal: SAI_SWITCH_ATTR_REG_FATAL_SWITCH_ASIC_SDK_HEALTH_CATEGORY + - warning: SAI_SWITCH_ATTR_REG_WARNING_SWITCH_ASIC_SDK_HEALTH_CATEGORY + - notice: SAI_SWITCH_ATTR_REG_NOTICE_SWITCH_ASIC_SDK_HEALTH_CATEGORY + - category mapping: + - software: SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_SW + - firmware: SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_FW + - cpu_hw: SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_CPU_HW + - asic_hw: SAI_SWITCH_ASIC_SDK_HEALTH_CATEGORY_ASIC_HW +5. The categories to register ASIC/SDK health event for the `severity` is the completionary set of categories to be suppressed with the universal map containing all defined categories. +6. Switch orchagent calls SAI API `sai_switch_api->set_attribute` with corresponding `severity` and `categories to register event` as arguments. +7. SAI redis receives the call, validates the arguments, and then call vendor SAI's API. + +![Flow](handle-ASIC-SDK-health-event-images/suppressflow.png "Figure: handle suppress ASIC/SDK health event configuration") + +##### Add ASIC/SDK health event to `show asic-sdk-health-event received-events` to show techsupport + +The command `show asic-sdk-health-event received-events` will be invoked during collecting techsupport dump. + +A file `asic-sdk-health-event` will contain all the ASIC/SDK health events and be saved in `dump` folder of the techsupport dump. + +An example of `asic-sdk-health-event` can be as below + +```text +Time ASIC ID Severity Category Description +------------------- ------- ----------- --------- ----------------- +2023-10-20 05:07:34 0 fatal firmware Command timeout +2023-10-20 03:06:25 0 fatal software SDK daemon keep alive failed +2023-10-20 05:07:34 0 fatal asic_hw Uncorrectable ECC error +2023-10-20 01:58:43 0 notice asic_hw Correctable ECC error +``` + +### Warmboot and Fastboot Design Impact + +It does not impact warm boot nor fast boot. + +### Memory Consumption +This sub-section covers the memory consumption analysis for the new feature: no memory consumption is expected when the feature is disabled via compilation and no growing memory consumption while feature is disabled by configuration. +### Restrictions/Limitations + +### Testing Requirements/Design +Explain what kind of unit testing, system testing, regression testing, warmboot/fastboot testing, etc., +Ensure that the existing warmboot/fastboot requirements are met. For example, if the current warmboot feature expects maximum of 1 second or zero second data disruption, the same should be met even after the new feature/enhancement is implemented. Explain the same here. +Example sub-sections for unit test cases and system test cases are given below. + +#### Unit Test cases + +TBD + +#### System Test cases + +TBD + +### Open/Action items - if any + +### Appendix + +#### Why ASIC/SDK health events are handled in notifications + +The `main thread` in orchagent handles table updates. +There is a `dedicated thread` handling NOTIFICATIONS in orchagent daemon. The entrypoint is `RedisChannel::notificationThreadFunction`. All the notification callbacks defined in https://github.com/sonic-net/sonic-swss/blob/master/orchagent/notifications.cpp are called from that thread. + +Nowadays almost all callbacks in that file are NOP except on_switch_shutdown_request which calls `exit` terminating the daemon. +The rest callbacks are handled using `NotificationConsumer` in the `main thread` in orchagent. + +If the callback `on_switch_asic_sdk_health_event` is called from the `main thread` using NotificationConsumer, it is handled from a different thread than `on_switch_shutdown_request`. +In this case, even vendor SAI always sends ASIC/SDK health event ahead of shutdown request, it’s possible that the `dedicated thread` is scheduled to run ahead of the `main thread`. As a result, the `on_switch_shutdown_request` can be called before `on_switch_asic_sdk_health_event` is called and OA will shutdown without ASIC/SDK health event handled and saved. + +If we handle shut down request in the main thread, it can result in the same situation. Eg. if something is wrong in ASIC/SDK which makes it unable to handle any SAI API calls: + +1. It notifies ASIC/SDK health event and then shutdown request +2. At the same time, there are a large number of table updates, let’s say routing entry update, to be programmed to SAI. +3. Both shutdown request and routing entry update are handled in the main thread. +4. If the routing entry update is handled first, SAI can return fail because of ASIC issue. OA will abort immediately without handling ASIC/SDK health event and shutdown request. +5. The ASIC/SDK health event is lost. From 0ad665f6dc5c3ed29c076109a4025ae684bd5204 Mon Sep 17 00:00:00 2001 From: Stephen Sun Date: Thu, 9 Nov 2023 11:39:38 +0800 Subject: [PATCH 2/8] Fix internal review comments Signed-off-by: Stephen Sun --- .../handle-ASIC-SDK-health-event.md | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md index b6861d212c..856ab45f87 100644 --- a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md +++ b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md @@ -7,9 +7,7 @@ | Rev | Date | Author | Change Description | |:---:|:-----------:|:------------------:|-----------------------------------| | 0.1 | Oct 23, 2023 | Stephen Sun | Initial version | -| 0.2 | Oct 31, 2023 | Stephen Sun | Adjust according to the internal review comments. Add CLI to suppress certain event. | -| 0.3 | Nov 1, 2023 | Stephen Sun | Add ASIC/SDK health event to show techsupport. | -| 0.4 | Nov 6, 2023 | Stephen Sun | Add capabilities support and move the logic to notificatioin thread. | +| 0.2 | Nov 17, 2023 | Stephen Sun | Fix internal review comments | ### Scope @@ -289,15 +287,17 @@ N/A. #### CLI Enhancements -##### Configure suporess ASIC/SDK health events by severity and category +##### Configure suppress ASIC/SDK health events by severity and category -Command `config asic-sdk-health-event suppress |` is introduced for a customer to configure the categories that he/she wants to suppress for a certain severity. +Command `config asic-sdk-health-event suppress ||` is introduced for a customer to configure the categories that he/she wants to suppress for a certain severity. The severity can be one of `fatal`, `warning`, and `notice`. The category-list is a list whose element is one of `software`, `firmware`, `cpu_hw`, `asic_hw` separated by a comma. The order does not matter. -If the category-list is `none`, all the categories will be notified for `severity`. +If the category-list is `none`, none category is suppressed and all the categories will be notified for `severity`. + +If the category-list is `all`, all the categories are suppressed and none category will be notified for `severity`. The ASIC/SDK health events whose `category` is in `category-list` with the `severity` will not be reported by the vendor SAI once the corresponding SAI attributes are set. But the events that were reported after the command is executed but before the SAI attributes are set will be handled by orchagent and pushed into `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` as usual. @@ -316,7 +316,7 @@ The following error message will be shown if a customer suppresses a severity wh ##### Display the ASIC/SDK health events -Command `show asic-sdk-health-events received-events` is introduced to display the ASIC/SDK health events as a table. +Command `show asic-sdk-health-events received` is introduced to display the ASIC/SDK health events as a table. An example of the output is as below: ``` @@ -447,7 +447,7 @@ categories = {, Date: Fri, 1 Dec 2023 20:25:08 +0800 Subject: [PATCH 3/8] Minor update in yang model details Signed-off-by: Stephen Sun --- .../handle-ASIC-SDK-health-event.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md index 856ab45f87..2f66484d34 100644 --- a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md +++ b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md @@ -362,7 +362,7 @@ After the command is executed, all items in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABL The following YANG model is introduced for the suppress ASIC/SDK health event -```test +```text container sonic-suppress-asic-sdk-health-event { container SUPPRESS_ASIC_SDK_HEALTH_EVENT { list SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST { @@ -377,7 +377,7 @@ The following YANG model is introduced for the suppress ASIC/SDK health event description "Severity of the ASIC/SDK health event"; } - leaf-list category-list { + leaf-list categories { mandatory true; type enumeration { enum software; @@ -401,8 +401,7 @@ The following YANG model is introduced for ASIC/SDK health event container sonic-events-swss { container asic-sdk-health-event { evtcmn:ALARM_SEVERITY_MAJOR; - description " - Declares an event for ASIC/SDK health event."; + description "Declares an event for ASIC/SDK health event."; leaf timestamp { type string { pattern '[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}'; @@ -412,17 +411,19 @@ The following YANG model is introduced for ASIC/SDK health event type int; } leaf severity { - type enumeration + type enumeration { enum fatal; enum warning; enum notice; + } } leaf category { - type enumeration + type enumeration { enum software; enum firmware; enum cpu_hw; enum asic_hw; + } } leaf description { type string; From 6589ef1fbc865bdb7c94a4e7ed71fb88ceb6f79b Mon Sep 17 00:00:00 2001 From: Stephen Sun Date: Mon, 11 Dec 2023 21:03:29 +0800 Subject: [PATCH 4/8] Adjust for multi ASIC platform Signed-off-by: Stephen Sun --- .../handle-ASIC-SDK-health-event.md | 78 ++++++++++++------- 1 file changed, 51 insertions(+), 27 deletions(-) diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md index 2f66484d34..906ff987e5 100644 --- a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md +++ b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md @@ -8,6 +8,7 @@ |:---:|:-----------:|:------------------:|-----------------------------------| | 0.1 | Oct 23, 2023 | Stephen Sun | Initial version | | 0.2 | Nov 17, 2023 | Stephen Sun | Fix internal review comments | +| 0.3 | Dec 11, 2023 | Stephen Sun | Adjust for multi ASIC platform according to the common pratice in the community | ### Scope @@ -18,7 +19,8 @@ This document describes the high level design of handle ASIC/SDK health event fr | Name | Meaning | |:----:|:-------:| | ASIC/SDK health event | Health event is a way for SAI to inform NOS about HW/SW health issues. Usually they are not directly caused by a SAI API call. | -|| An ASIC/SDK health event is described using `asic_id`, `severity`, `category`, `timestamp`, `description`. | +|| An ASIC/SDK health event is described using `severity`, `category`, `timestamp`, `description`. | +|| For multi ASIC system it also includes `asic name`. | | severity of an ASIC/SDK health event | one of `fatal`, `warning`, and `notice`, which represents how severe the event is | | category of an ASIC/SDK health event | one of `software`, `firmware`, `cpu_hw`, `asic_hw`, which usually represents the component from which the event is detected | @@ -116,7 +118,6 @@ Table `ASIC_SDK_HEALTH_EVENT_TABLE` contains the ASIC/SDK health events informat ```text key = ASIC_SDK_HEALTH_EVENT_TABLE:timestamp_string ; "%Y-%m-%d %H:%M:%S", full-date and partial-time separated by white space. ; Example: 2022-09-12 09:39:19 -asicid = 1*4DIGIT ; ASIC ID for multi ASIC system severity = "fatal" | "warning" | "notice" category = "software" | "firmware" | "cpu_hw" | "asic_hw" description = 1*255VCHAR ; ASIC/SDK health event's description text @@ -321,12 +322,28 @@ An example of the output is as below: ``` admin@sonic:~$ show asic-sdk-health-events -Time ASIC ID Severity Category Description -------------------- ------- ----------- --------- ----------------- -2023-10-20 05:07:34 0 fatal firmware Command timeout -2023-10-20 03:06:25 0 fatal software SDK daemon keep alive failed -2023-10-20 05:07:34 0 fatal asic_hw Uncorrectable ECC error -2023-10-20 01:58:43 0 notice asic_hw Correctable ECC error +Time Severity Category Description +------------------- ----------- --------- ----------------- +2023-10-20 05:07:34 fatal firmware Command timeout +2023-10-20 03:06:25 fatal software SDK daemon keep alive failed +2023-10-20 05:07:34 fatal asic_hw Uncorrectable ECC error +2023-10-20 01:58:43 notice asic_hw Correctable ECC error +``` + +An example of the output on a multi ASIC system: + +``` +admin@sonic:~$ show asic-sdk-health-events +asic0: +Time Severity Category Description +------------------- ----------- --------- ----------------- +2023-10-20 05:07:34 fatal firmware Command timeout +2023-10-20 03:06:25 fatal software SDK daemon keep alive failed +asic1: +Time Severity Category Description +------------------- ----------- --------- ----------------- +2023-10-20 05:07:34 fatal asic_hw Uncorrectable ECC error +2023-10-20 01:58:43 notice asic_hw Correctable ECC error ``` The following error message will be shown if a customer executes the command on a platform that does not support it. @@ -346,6 +363,19 @@ Severity Suppressed category-list notice asic_hw,cpu_hw ``` +An example of the output on a multi ASIC system: +``` +admin@sonic:~$ show asic-sdk-health-events suppressed-category-list +asic0: +Severity Suppressed category-list +---------- -------------------------- +notice asic_hw +asic1: +Severity Suppressed category-list +---------- -------------------------- +notice cpu_hw +``` + The following error message will be shown if a customer executes the command on a platform that does not support it. `ASIC/SDK health event is not supported on the platform` @@ -395,20 +425,24 @@ The following YANG model is introduced for the suppress ASIC/SDK health event ##### YANG model of the ASIC/SDK health event -The following YANG model is introduced for ASIC/SDK health event +The following YANG model is introduced for ASIC/SDK health event. + +A `sai_timestamp` is provided on top of `timestamp` which is provided by the event collect mechanism since they differ. ```text container sonic-events-swss { container asic-sdk-health-event { evtcmn:ALARM_SEVERITY_MAJOR; description "Declares an event for ASIC/SDK health event."; - leaf timestamp { + leaf sai_timestamp { type string { pattern '[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}'; } } - leaf asicid { - type int; + leaf asic_name { + type string { + pattern 'asic[0-9]{1,2}'; + } } leaf severity { type enumeration { @@ -499,15 +533,16 @@ The initialize flow is: The flow to handle ASIC/SDK health event is as below. The steps 1~3 are introduced in this HLD and the rest steps already existed. -1. A vendor SAI calls the stored callback function `sai_switch_asic_sdk_health_event_notification_fn` with arguments `asic_id`, `timestamp`, `severity`, `category`, and `description` when it detects a HW/SW health issue. +1. A vendor SAI calls the stored callback function `sai_switch_asic_sdk_health_event_notification_fn` with arguments `timestamp`, `severity`, `category`, and `description` when it detects a HW/SW health issue. 2. Sai redis handles the ASIC/SDK health event, exacts the information, serializes it and then notifies orchagent using `switch_asic_sdk_health_event`. 3. Orchagent handles the sai redis notification - 1. arguments `asic_id`, `timestamp`, `severity`, and `category` are translated to corresponding representations in SONiC. + 1. arguments `timestamp`, `severity`, and `category` are translated to corresponding representations in SONiC. 2. pushes the information to `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` with timestamp being the key of the table 3. publishes the information to gNMI using event collect mechanism - 4. prints a syslog message: `[] ASIC/SDK health event occurred at , asic , category : ` + 4. prints a syslog message: `[] ASIC/SDK health event occurred at , [asic , ]category : ` - the severity of the message is `NOTICE` - - ``, ``, ``, `` and `` are translated from the event + - ``, ``, `` and `` are translated from the event + - `asic ` is printed only for multi ASIC system. The `asic name` is `CONFIG_DB|DEVICE_METADATA|localhost.asic_name`. 4. The flow finishes if the vendor SAI decides not to ask orchagent to shutdown. Usually, vendor SAI does not need to ask orchagent to shutdown switch on receiving an ASIC/SDK health event with `NOTICE` severity. @@ -555,17 +590,6 @@ The command `show asic-sdk-health-event received` will be invoked during collect A file `asic-sdk-health-event` will contain all the ASIC/SDK health events and be saved in `dump` folder of the techsupport dump. -An example of `asic-sdk-health-event` can be as below - -```text -Time ASIC ID Severity Category Description -------------------- ------- ----------- --------- ----------------- -2023-10-20 05:07:34 0 fatal firmware Command timeout -2023-10-20 03:06:25 0 fatal software SDK daemon keep alive failed -2023-10-20 05:07:34 0 fatal asic_hw Uncorrectable ECC error -2023-10-20 01:58:43 0 notice asic_hw Correctable ECC error -``` - ### Warmboot and Fastboot Design Impact It does not impact warm boot nor fast boot. From 3df43a069540e49e6e6df30d42a4a7f7ce85e76b Mon Sep 17 00:00:00 2001 From: Stephen Sun Date: Tue, 12 Dec 2023 18:24:20 +0800 Subject: [PATCH 5/8] Adjust commands for multi ASIC system Signed-off-by: Stephen Sun --- .../handle-ASIC-SDK-health-event.md | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md index 906ff987e5..d6e42dd91d 100644 --- a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md +++ b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md @@ -290,7 +290,7 @@ N/A. ##### Configure suppress ASIC/SDK health events by severity and category -Command `config asic-sdk-health-event suppress ||` is introduced for a customer to configure the categories that he/she wants to suppress for a certain severity. +Command `config asic-sdk-health-event suppress || [<--namespace|-n> ]` is introduced for a customer to configure the categories that he/she wants to suppress for a certain severity. The severity can be one of `fatal`, `warning`, and `notice`. @@ -300,6 +300,8 @@ If the category-list is `none`, none category is suppressed and all the categori If the category-list is `all`, all the categories are suppressed and none category will be notified for `severity`. +The namespace is an option for multi ASIC platforms only. + The ASIC/SDK health events whose `category` is in `category-list` with the `severity` will not be reported by the vendor SAI once the corresponding SAI attributes are set. But the events that were reported after the command is executed but before the SAI attributes are set will be handled by orchagent and pushed into `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` as usual. @@ -317,11 +319,13 @@ The following error message will be shown if a customer suppresses a severity wh ##### Display the ASIC/SDK health events -Command `show asic-sdk-health-events received` is introduced to display the ASIC/SDK health events as a table. +Command `show asic-sdk-health-event received [<--namespace|-n> ]` is introduced to display the ASIC/SDK health events as a table. An example of the output is as below: +The namespace is an option for multi ASIC platforms only. + ``` -admin@sonic:~$ show asic-sdk-health-events +admin@sonic:~$ show asic-sdk-health-event received Time Severity Category Description ------------------- ----------- --------- ----------------- 2023-10-20 05:07:34 fatal firmware Command timeout @@ -333,7 +337,7 @@ Time Severity Category Description An example of the output on a multi ASIC system: ``` -admin@sonic:~$ show asic-sdk-health-events +admin@sonic:~$ show asic-sdk-health-event received asic0: Time Severity Category Description ------------------- ----------- --------- ----------------- @@ -352,12 +356,14 @@ The following error message will be shown if a customer executes the command on ##### Display the ASIC/SDK health suppress configuration -Command `show asic-sdk-health-events suppressed-category-list` is introduced to display the suppressed categories of each severity of ASIC/SDK health events. +Command `show asic-sdk-health-event suppressed-category-list [<--namespace|-n> ]` is introduced to display the suppressed categories of each severity of ASIC/SDK health events. An example of the output is as below: +The namespace is an option for multi ASIC platforms only. + ``` -admin@sonic:~$ show asic-sdk-health-events suppressed-category-list +admin@sonic:~$ show asic-sdk-health-event suppressed-category-list Severity Suppressed category-list ---------- -------------------------- notice asic_hw,cpu_hw @@ -365,7 +371,7 @@ notice asic_hw,cpu_hw An example of the output on a multi ASIC system: ``` -admin@sonic:~$ show asic-sdk-health-events suppressed-category-list +admin@sonic:~$ show asic-sdk-health-event suppressed-category-list asic0: Severity Suppressed category-list ---------- -------------------------- @@ -382,7 +388,9 @@ The following error message will be shown if a customer executes the command on ##### Clear the ASIC/SDK health events -Command `sonic-clear asic-sdk-health-events` is introduced to clear the ASIC/SDK health events stored in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE`. +Command `sonic-clear asic-sdk-health-events [<--namespace|-n> ]` is introduced to clear the ASIC/SDK health events stored in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE`. + +The namespace is an option for multi ASIC platforms only. After the command is executed, all items in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` will be cleared. From a3780397e757591422fb403c1e840ba85a4e50a5 Mon Sep 17 00:00:00 2001 From: Stephen Sun Date: Tue, 12 Dec 2023 22:00:47 +0800 Subject: [PATCH 6/8] Add unit test Signed-off-by: Stephen Sun --- .../handle-ASIC-SDK-health-event.md | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md index d6e42dd91d..6a9b57e31a 100644 --- a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md +++ b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md @@ -613,7 +613,26 @@ Example sub-sections for unit test cases and system test cases are given below. #### Unit Test cases -TBD +##### sonic-swss + +1. Configure suppress all categories for a severity, and then check whether empty list has been set on the SAI attribute. +2. Configure suppress none categories for a severity, and then check whether all categories have been set on the SAI attribute. +3. Configure suppress part of the categories (eg. software, cpu_hw), and then check whether corresponding categories have been set on the SAI attribute. +4. Check whether the capabilities have been exposed to `STATE_DB.SWITCH_CAPABILITY|switch` correctly. +5. Check whether mocked event has been correctly handled. + +##### sonic-sairedis + +1. Check whether ASIC/SDK health event handler is correctly registered. +2. Check whether an instance of ASIC/SDK health event notification handler class is correctly created based on the notification string. +3. Check whether an ASIC/SDK health event is correctly serialized and then deserialized. + +##### sonic-utilities + +1. Check whether `CONFIG_DB.SUPPRESS_ASIC_SDK_HEALTH_EVENT` table is correctly updated based on CLI input. +2. Check whether `show asic-sdk-health-event received` correctly displays the information based on the `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE`. +3. Check whether `show asic-sdk-health-event suppressed-category-list` correctly displays the configuration based on the `CONFIG_DB.SUPPRESS_ASIC_SDK_HEALTH_EVENT`. +4. Check whether the information in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` has been cleared by executing `sonic-clear asic-sdk-health-event`. #### System Test cases From 99f8e19801a84d72b3a38ff4fd854971bb0cc5f6 Mon Sep 17 00:00:00 2001 From: Stephen Sun Date: Fri, 5 Jan 2024 17:50:34 +0800 Subject: [PATCH 7/8] Address community review comments Signed-off-by: Stephen Sun --- .../handle-ASIC-SDK-health-event.md | 55 ++++++++++++++++++- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md index 6a9b57e31a..e2cc66d852 100644 --- a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md +++ b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md @@ -9,6 +9,7 @@ | 0.1 | Oct 23, 2023 | Stephen Sun | Initial version | | 0.2 | Nov 17, 2023 | Stephen Sun | Fix internal review comments | | 0.3 | Dec 11, 2023 | Stephen Sun | Adjust for multi ASIC platform according to the common pratice in the community | +| 0.4 | Jan 05, 2023 | Stephen Sun | Address community review comments | ### Scope @@ -37,7 +38,7 @@ Orchagent can abort itself if a SAI API call fails, usually due to a bad argumen The current implementation has the following limitations: - It is difficult for a customer to understand what occured on SAI and below or distinguish an SDK/FW internal error from a SAI API call. Even a customer can analyze the issue using the log message, it is not intuitive. -- It is unable notify an ASIC/FW/SDK event if the event is less serious to ask for shutdown. +- It is unable to notify an ASIC/FW/SDK event if the event is less serious to ask for shutdown. - It is unable for telementry agent to collect such information. In this design, we will introduce a new way to address the limitations. @@ -56,7 +57,9 @@ This section list out all the requirements for the HLD coverage and exemptions ( 1. Extract data from the event (severity, timestamp, description) and push data to the STATE_DB table using timestamp and date as a key 2. Report the event to gNMI server using the event collect mechanism 4. CLI commands shall be provided to display or clear all the ASIC/SDK health events in the STATE_DB -5. A CLI command shall be provided for a customer to suppress a certain type of ASIC/SDK health event on a certain severity. +5. A CLI command shall be provided for a customer + 1. to suppress a certain type of ASIC/SDK health event on a certain severity. + 2. to eliminate old ASIC/SDK health events in the database in order to avoid consuming too much resource. 6. ASIC/SDK health events should be collected in `show techsupport` as an independent file in `dump`. ### Architecture Design @@ -317,6 +320,30 @@ The following error message will be shown if a customer suppresses a severity wh `Suppressing ASIC/SDK health {severity} event is not supported on the platform` +##### Configure maximum number of ASIC/SDK health events by severity + +Command `config asic-sdk-health-event max-event ` is introduced for a customer to configure the maximum number of ASIC/SDK health events to be stored in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE`. + +The severity can be one of `fatal`, `warning`, and `notice`. + +The max-events is a number, which represents the maximum number of events the customer wants to store in the database. +If the max-events is `0`, all events of that severity will be stored in the database and the field `max-events` will be removed from `CONFIG_DB`. +The system will remove the oldest events of each severity every 1 hour. + +The namespace is an option for multi ASIC platforms only. + +Eg. the following command configures maximum of `notice` events to 10240. + +`config asic-sdk-health-event max-event notice 10240` + +The following error message will be shown if a customer configures it on a platform that does not support it. + +`ASIC/SDK health event is not supported on the platform` + +The following error message will be shown if a customer suppresses a severity which is not supported on the platform. + +`Suppressing ASIC/SDK health {severity} event is not supported on the platform` + ##### Display the ASIC/SDK health events Command `show asic-sdk-health-event received [<--namespace|-n> ]` is introduced to display the ASIC/SDK health events as a table. @@ -415,6 +442,10 @@ The following YANG model is introduced for the suppress ASIC/SDK health event description "Severity of the ASIC/SDK health event"; } + leaf max_events { + type int32; + } + leaf-list categories { mandatory true; type enumeration { @@ -476,12 +507,17 @@ A `sai_timestamp` is provided on top of `timestamp` which is provided by the eve #### Config DB Enhancements -Table `SUPPRESS_ASIC_SDK_HEALTH_EVENT` contains the list of categories of ASIC/SDK health events that a user wants to suppress for a certain severity. +Table `SUPPRESS_ASIC_SDK_HEALTH_EVENT` contains + +1. the list of categories of ASIC/SDK health events that a user wants to suppress for a certain severity. +2. the number of events of each severity a user wants to keep ```text key = SUPPRESS_ASIC_SDK_HEALTH_EVENT: ; severity can be one of fatal, warning or notice categories = {,} ; a list whose element can be one of software, firmware, cpu_hw, asic_hw separated by a comma +max_events = 1*10DIGIT ; the number of events for a severity a user wants to keep. + ; If there are more events than max_events in the database, the older ones will be removed. ``` #### Flows @@ -592,6 +628,19 @@ The flow to handle suppress ASIC/SDK health event configuration is as below: ![Flow](handle-ASIC-SDK-health-event-images/suppressflow.png "Figure: handle suppress ASIC/SDK health event configuration") +##### Eliminate oldest events from the database + +A user can configure the maximum number of events of each severity. The system will check `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` every 1 hour, and remove the oldest entries of a severity if it exceeds the threshold. + +As it requires frequent communitcate with redis server, a Lua plugin will be introduced to do this job. +The Lua plugin will be loaded during system intialization, and check the number of entries in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE`, and remove the old entries every 1 hour. + +The flow is as below: + +1. Check whether `max_events` is configured and exit the flow if it is not configured for any severity. +2. Check the events in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` and exit the flow if the number of events does not exceed the threshold. +3. Sort the events by time and remove the oldest events. + ##### Add ASIC/SDK health event to `show asic-sdk-health-event received` to show techsupport The command `show asic-sdk-health-event received` will be invoked during collecting techsupport dump. From d8faefe62847708eecc5819ae00845712e5c31e5 Mon Sep 17 00:00:00 2001 From: Stephen Sun Date: Fri, 12 Jan 2024 09:49:29 +0800 Subject: [PATCH 8/8] Minor adjustment the CLI Signed-off-by: Stephen Sun --- .../handle-ASIC-SDK-health-event.md | 77 ++++++++++--------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md index e2cc66d852..663b21317e 100644 --- a/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md +++ b/doc/handle-ASIC-SDK-health-event/handle-ASIC-SDK-health-event.md @@ -10,6 +10,7 @@ | 0.2 | Nov 17, 2023 | Stephen Sun | Fix internal review comments | | 0.3 | Dec 11, 2023 | Stephen Sun | Adjust for multi ASIC platform according to the common pratice in the community | | 0.4 | Jan 05, 2023 | Stephen Sun | Address community review comments | +| 0.5 | Jan 11, 2023 | Stephen Sun | Minor adjustments in CLI | ### Scope @@ -293,48 +294,42 @@ N/A. ##### Configure suppress ASIC/SDK health events by severity and category -Command `config asic-sdk-health-event suppress || [<--namespace|-n> ]` is introduced for a customer to configure the categories that he/she wants to suppress for a certain severity. +Command `config asic-sdk-health-event suppress [<--category-list> ||] [<--max-events> ] [<--namespace|-n> ]` is introduced for a customer to configure: -The severity can be one of `fatal`, `warning`, and `notice`. - -The category-list is a list whose element is one of `software`, `firmware`, `cpu_hw`, `asic_hw` separated by a comma. The order does not matter. - -If the category-list is `none`, none category is suppressed and all the categories will be notified for `severity`. +- the categories that he/she wants to suppress for a certain severity. +- the maximum number of ASIC/SDK health events to be stored in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE`. -If the category-list is `all`, all the categories are suppressed and none category will be notified for `severity`. - -The namespace is an option for multi ASIC platforms only. +The severity can be one of `fatal`, `warning`, and `notice`. -The ASIC/SDK health events whose `category` is in `category-list` with the `severity` will not be reported by the vendor SAI once the corresponding SAI attributes are set. -But the events that were reported after the command is executed but before the SAI attributes are set will be handled by orchagent and pushed into `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` as usual. +The category-list is a list whose elements are one of `software`, `firmware`, `cpu_hw`, `asic_hw` separated by a comma. The order does not matter. -Eg. the following command will suppress `notice` events with category `asic_hw` and `cpu_hw`: +- If the category-list is `none`, none category is suppressed and all the categories will be notified for `severity` and the field `categories` will be removed. +- If the category-list is `all`, all the categories are suppressed and none category will be notified for `severity` and the field `catetories` is a list of all categories. -`config asic-sdk-health-event suppress notice asic_hw,cpu_hw` +The max-events is a number, which represents the maximum number of events the customer wants to store in the database. -The following error message will be shown if a customer configures it on a platform that does not support it. +- If the max-events is `0`, all events of that severity will be stored in the database and the field `max_events` will be removed. -`ASIC/SDK health event is not supported on the platform` +If neither `category-list` nor `max-events` exists, the entry will be removed from `CONFIG_DB.SUPPRESS_ASIC_SDK_HEALTH_EVENT`. -The following error message will be shown if a customer suppresses a severity which is not supported on the platform. +The namespace is an option for multi ASIC platforms only. -`Suppressing ASIC/SDK health {severity} event is not supported on the platform` +If a non-zero `max-events` is configured, the system will remove the oldest events of each severity every 1 hour. -##### Configure maximum number of ASIC/SDK health events by severity +If a `category-list` is configured, the ASIC/SDK health events whose `category` is in `category-list` with the `severity` will not be reported by the vendor SAI once the corresponding SAI attributes are set. +But the events that were reported after the command is executed but before the SAI attributes are set will be handled by orchagent and pushed into `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE` as usual. -Command `config asic-sdk-health-event max-event ` is introduced for a customer to configure the maximum number of ASIC/SDK health events to be stored in `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE`. +Eg 1. the following command will suppress `notice` events with category `asic_hw` and `cpu_hw`: -The severity can be one of `fatal`, `warning`, and `notice`. +`config asic-sdk-health-event suppress notice --category-list asic_hw,cpu_hw` -The max-events is a number, which represents the maximum number of events the customer wants to store in the database. -If the max-events is `0`, all events of that severity will be stored in the database and the field `max-events` will be removed from `CONFIG_DB`. -The system will remove the oldest events of each severity every 1 hour. +After that, the ASIC/SDK health events whose `category` is one of `asic_hw` and `cpu_hw` and `severity` is `notice` will not be reported. -The namespace is an option for multi ASIC platforms only. +Eg 2. the following command will configure maxinum number of events of `notice` to '10240`: -Eg. the following command configures maximum of `notice` events to 10240. +`config asic-sdk-health-event suppress notice --max-events 10240` -`config asic-sdk-health-event max-event notice 10240` +After that, only the most-recently-received 10240 ASIC/SDK health events will be stored in the `STATE_DB.ASIC_SDK_HEALTH_EVENT_TABLE`. All the older entries will be removed. The following error message will be shown if a customer configures it on a platform that does not support it. @@ -383,7 +378,13 @@ The following error message will be shown if a customer executes the command on ##### Display the ASIC/SDK health suppress configuration -Command `show asic-sdk-health-event suppressed-category-list [<--namespace|-n> ]` is introduced to display the suppressed categories of each severity of ASIC/SDK health events. +Command `show asic-sdk-health-event suppress-configuration [<--namespace|-n> ]` is introduced to display the suppressed categories of each severity of ASIC/SDK health events or the maximum events to store in the database. + +Only severities that have been configured will be displayed. + +- if only category-list is configured, the maximum events will be displayed as `unlimited` +- if only maximum events is configured, the category-list will be displayed as `none` +- if neither of above is configured, the severity will not be displayed An example of the output is as below: @@ -391,22 +392,24 @@ The namespace is an option for multi ASIC platforms only. ``` admin@sonic:~$ show asic-sdk-health-event suppressed-category-list -Severity Suppressed category-list ----------- -------------------------- -notice asic_hw,cpu_hw +Severity Suppressed category-list Max events +---------- -------------------------- ------------ +fatal software unlimited +notice none 1024 +warning firmware,asic_hw 10240 ``` An example of the output on a multi ASIC system: ``` admin@sonic:~$ show asic-sdk-health-event suppressed-category-list asic0: -Severity Suppressed category-list ----------- -------------------------- -notice asic_hw +Severity Suppressed category-list Max events +---------- -------------------------- ------------ +warning firmware,asic_hw 10240 asic1: -Severity Suppressed category-list ----------- -------------------------- -notice cpu_hw +Severity Suppressed category-list Max events +---------- -------------------------- ------------ +notice none 1024 ``` The following error message will be shown if a customer executes the command on a platform that does not support it. @@ -443,7 +446,7 @@ The following YANG model is introduced for the suppress ASIC/SDK health event } leaf max_events { - type int32; + type uint32; } leaf-list categories {