Skip to content

Commit bbf4b86

Browse files
authored
[yang] Support ASIC/SDK health event (#17879)
Support ASIC/SDK health event - Suppress ASIC/SDK health event configuration - New event Signed-off-by: Stephen Sun <[email protected]>
1 parent 4f5cb87 commit bbf4b86

File tree

9 files changed

+298
-1
lines changed

9 files changed

+298
-1
lines changed

src/sonic-yang-models/doc/Configuration.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Table of Contents
1313

1414
* [ACL and Mirroring](#acl-and-mirroring)
1515
* [BGP BBR](#bgp-bbr)
16+
* [ASIC SDK health event](#asic-sdk-health-event)
1617
* [BGP Device Global](#bgp-device-global)
1718
* [BGP Sessions](#bgp-sessions)
1819
* [BUFFER_PG](#buffer_pg)
@@ -383,6 +384,27 @@ The **BGP_BBR** table contains device-level BBR state.
383384
}
384385
}
385386
```
387+
### ASIC SDK health event
388+
389+
ASIC/SDK health event related configuration is defined in **SUPPRESS_ASIC_SDK_HEALTH_EVENT** table.
390+
391+
```
392+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT": {
393+
"notice": {
394+
"categories": [
395+
"asic_hw"
396+
],
397+
"max_events": "1000"
398+
},
399+
"warning": {
400+
"categories": [
401+
"software",
402+
"cpu_hw"
403+
]
404+
}
405+
}
406+
```
407+
386408
### BGP Device Global
387409

388410
The **BGP_DEVICE_GLOBAL** table contains device-level BGP global state.

src/sonic-yang-models/setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ def run(self):
160160
'./yang-models/sonic-routing-policy-sets.yang',
161161
'./yang-models/sonic-sflow.yang',
162162
'./yang-models/sonic-snmp.yang',
163+
'./yang-models/sonic-suppress-asic-sdk-health-event.yang',
163164
'./yang-models/sonic-syslog.yang',
164165
'./yang-models/sonic-system-aaa.yang',
165166
'./yang-models/sonic-system-tacacs.yang',

src/sonic-yang-models/tests/files/sample_config_db.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2539,6 +2539,12 @@
25392539
}
25402540

25412541
},
2542+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT": {
2543+
"notice": {
2544+
"categories": ["firmware", "asic_hw"],
2545+
"max_events": "1024"
2546+
}
2547+
},
25422548
"SYSTEM_DEFAULTS": {
25432549
"tunnel_qos_remap": {
25442550
"status": "enabled"

src/sonic-yang-models/tests/yang_model_tests/tests/sonic-events-swss.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,5 +92,19 @@
9292
},
9393
"SONIC_EVENTS_SWSS_SELECT_OPERATION_FAILURE_VALID": {
9494
"desc": "VALID SELECT_OPERATION_FAILURE EVENT."
95+
},
96+
"SONIC_EVENTS_SWSS_ASIC_SDK_HEALTH_VALID": {
97+
"desc": "VALID ASIC_SDK_HEALTH EVENT."
98+
},
99+
"SONIC_EVENTS_SWSS_ASIC_SDK_HEALTH_VALID_MASIC": {
100+
"desc": "VALID ASIC_SDK_HEALTH EVENT."
101+
},
102+
"SONIC_EVENTS_SWSS_ASIC_SDK_HEALTH_INVALID_SEVERITY": {
103+
"desc": "ASIC_SDK_HEALTH_INVALID_SEVERITY failure.",
104+
"eStrKey": "InvalidValue"
105+
},
106+
"SONIC_EVENTS_SWSS_ASIC_SDK_HEALTH_INVALID_CATEGORY": {
107+
"desc": "ASIC_SDK_HEALTH_INVALID_CATEGORY failure.",
108+
"eStrKey": "InvalidValue"
95109
}
96110
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_VALID_FATAL": {
3+
"desc": "Load suppress ASIC/SDK health event list for fatal."
4+
},
5+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_VALID_WARNING": {
6+
"desc": "Load suppress ASIC/SDK health event list for warning."
7+
},
8+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_VALID_NOTICE": {
9+
"desc": "Load suppress ASIC/SDK health event list for notice."
10+
},
11+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_INVALID_SEVERITY": {
12+
"desc": "Load suppress ASIC/SDK health event list for notice.",
13+
"eStrKey": "InvalidValue"
14+
},
15+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_NEGATIVE_MAX_EVENTS": {
16+
"desc": "Load suppress ASIC/SDK health event list missing name.",
17+
"eStrKey": "InvalidValue"
18+
},
19+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_INVALID_MAX_EVENTS": {
20+
"desc": "Load suppress ASIC/SDK health event list missing name.",
21+
"eStrKey": "InvalidValue"
22+
}
23+
}

src/sonic-yang-models/tests/yang_model_tests/tests_config/sonic-events-swss.json

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,13 +244,56 @@
244244
}
245245
}
246246
},
247-
"SONIC_EVENTS_SWSS_SELECT_OPERATION_FAILURE_VALID": {
247+
"SONIC_EVENTS_SWSS_SELECT_OPERATION_FAILURE_VALID": {
248248
"sonic-events-swss:sonic-events-swss": {
249249
"sonic-events-swss:select-operation-failure": {
250250
"operation_result": "operation_result",
251251
"command": "command",
252252
"timestamp": "1985-04-12T23:20:50.52Z"
253253
}
254254
}
255+
},
256+
"SONIC_EVENTS_SWSS_ASIC_SDK_HEALTH_VALID": {
257+
"sonic-events-swss:sonic-events-swss": {
258+
"sonic-events-swss:asic-sdk-health-event": {
259+
"severity": "fatal",
260+
"category": "asic_hw",
261+
"description": "\ndescription\n",
262+
"timestamp": "1985-04-12T23:20:50.52Z",
263+
"sai_timestamp": "1985-04-12 23:20:50"
264+
}
265+
}
266+
},
267+
"SONIC_EVENTS_SWSS_ASIC_SDK_HEALTH_VALID_MASIC": {
268+
"sonic-events-swss:sonic-events-swss": {
269+
"sonic-events-swss:asic-sdk-health-event": {
270+
"severity": "fatal",
271+
"category": "asic_hw",
272+
"asic_name": "asic0",
273+
"description": "\ndescription\n",
274+
"timestamp": "1985-04-12T23:20:50.52Z",
275+
"sai_timestamp": "1985-04-12 23:20:50"
276+
}
277+
}
278+
},
279+
"SONIC_EVENTS_SWSS_ASIC_SDK_HEALTH_INVALID_SEVERITY": {
280+
"sonic-events-swss:sonic-events-swss": {
281+
"sonic-events-swss:asic-sdk-health-event": {
282+
"severity": "unknown",
283+
"category": "asic_hw",
284+
"description": "\ndescription\n",
285+
"timestamp": "1985-04-12T23:20:50.52Z"
286+
}
287+
}
288+
},
289+
"SONIC_EVENTS_SWSS_ASIC_SDK_HEALTH_INVALID_CATEGORY": {
290+
"sonic-events-swss:sonic-events-swss": {
291+
"sonic-events-swss:asic-sdk-health-event": {
292+
"severity": "fatal",
293+
"category": "unknown",
294+
"description": "\ndescription\n",
295+
"timestamp": "1985-04-12T23:20:50.52Z"
296+
}
297+
}
255298
}
256299
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
{
2+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_VALID_FATAL": {
3+
"sonic-suppress-asic-sdk-health-event:sonic-suppress-asic-sdk-health-event": {
4+
"sonic-suppress-asic-sdk-health-event:SUPPRESS_ASIC_SDK_HEALTH_EVENT": {
5+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST": [
6+
{
7+
"severity": "fatal",
8+
"categories": ["software","firmware"]
9+
}
10+
]
11+
}
12+
}
13+
},
14+
15+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_VALID_WARNING": {
16+
"sonic-suppress-asic-sdk-health-event:sonic-suppress-asic-sdk-health-event": {
17+
"sonic-suppress-asic-sdk-health-event:SUPPRESS_ASIC_SDK_HEALTH_EVENT": {
18+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST": [
19+
{
20+
"severity": "warning",
21+
"categories": ["asic_hw","cpu_hw"]
22+
}
23+
]
24+
}
25+
}
26+
},
27+
28+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_VALID_NOTICE": {
29+
"sonic-suppress-asic-sdk-health-event:sonic-suppress-asic-sdk-health-event": {
30+
"sonic-suppress-asic-sdk-health-event:SUPPRESS_ASIC_SDK_HEALTH_EVENT": {
31+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST": [
32+
{
33+
"severity": "notice",
34+
"categories": ["software","firmware","cpu_hw","asic_hw"],
35+
"max_events": "100"
36+
}
37+
]
38+
}
39+
}
40+
},
41+
42+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_INVALID_SEVERITY": {
43+
"sonic-suppress-asic-sdk-health-event:sonic-suppress-asic-sdk-health-event": {
44+
"sonic-suppress-asic-sdk-health-event:SUPPRESS_ASIC_SDK_HEALTH_EVENT": {
45+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST": [
46+
{
47+
"severity": "unknown",
48+
"categories": ["software","firmware","cpu_hw","asic_hw"]
49+
}
50+
]
51+
}
52+
}
53+
},
54+
55+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_INVALID_CATEGORY": {
56+
"sonic-suppress-asic-sdk-health-event:sonic-suppress-asic-sdk-health-event": {
57+
"sonic-suppress-asic-sdk-health-event:SUPPRESS_ASIC_SDK_HEALTH_EVENT": {
58+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST": [
59+
{
60+
"severity": "notice",
61+
"categories": ["software","unknown","cpu_hw","asic_hw"]
62+
}
63+
]
64+
}
65+
}
66+
},
67+
68+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_NEGATIVE_MAX_EVENTS": {
69+
"sonic-suppress-asic-sdk-health-event:sonic-suppress-asic-sdk-health-event": {
70+
"sonic-suppress-asic-sdk-health-event:SUPPRESS_ASIC_SDK_HEALTH_EVENT": {
71+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST": [
72+
{
73+
"severity": "notice",
74+
"max_events": "-1"
75+
}
76+
]
77+
}
78+
}
79+
},
80+
81+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST_INVALID_MAX_EVENTS": {
82+
"sonic-suppress-asic-sdk-health-event:sonic-suppress-asic-sdk-health-event": {
83+
"sonic-suppress-asic-sdk-health-event:SUPPRESS_ASIC_SDK_HEALTH_EVENT": {
84+
"SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST": [
85+
{
86+
"severity": "notice",
87+
"max_events": "NaN"
88+
}
89+
]
90+
}
91+
}
92+
}
93+
}

src/sonic-yang-models/yang-models/sonic-events-swss.yang

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,41 @@ module sonic-events-swss {
148148

149149
uses evtcmn:sonic-events-cmn;
150150
}
151+
152+
container asic-sdk-health-event {
153+
evtcmn:ALARM_SEVERITY_MAJOR;
154+
description
155+
"Declares an event for ASIC/SDK health event.";
156+
leaf asic_name {
157+
type string {
158+
pattern 'asic[0-9]{1,2}';
159+
}
160+
}
161+
leaf severity {
162+
type enumeration {
163+
enum fatal;
164+
enum warning;
165+
enum notice;
166+
}
167+
}
168+
leaf category {
169+
type enumeration {
170+
enum software;
171+
enum firmware;
172+
enum cpu_hw;
173+
enum asic_hw;
174+
}
175+
}
176+
leaf description {
177+
type string;
178+
}
179+
leaf sai_timestamp {
180+
type string {
181+
pattern '[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}';
182+
}
183+
}
184+
185+
uses evtcmn:sonic-events-cmn;
186+
}
151187
}
152188
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
module sonic-suppress-asic-sdk-health-event {
2+
3+
yang-version 1.1;
4+
5+
namespace "http://github.com/sonic-net/sonic-suppress-asic-sdk-health-event";
6+
7+
prefix sch;
8+
9+
organization
10+
"SONiC";
11+
12+
contact
13+
"SONiC";
14+
15+
description
16+
"Suppress ASIC/SDK health event yang Module for SONiC OS";
17+
18+
revision 2023-11-29 {
19+
description
20+
"Initial revision";
21+
}
22+
23+
container sonic-suppress-asic-sdk-health-event {
24+
25+
container SUPPRESS_ASIC_SDK_HEALTH_EVENT {
26+
27+
description "SUPPRESS_ASIC_SDK_HEALTH_EVENT part of config_db.json";
28+
29+
list SUPPRESS_ASIC_SDK_HEALTH_EVENT_LIST {
30+
31+
key "severity";
32+
33+
leaf severity {
34+
type enumeration {
35+
enum fatal;
36+
enum warning;
37+
enum notice;
38+
}
39+
description "Severity of the ASIC/SDK health event to suppress";
40+
}
41+
42+
leaf max_events {
43+
type uint32;
44+
description "Maximum of events that can be stored in the database";
45+
}
46+
47+
leaf-list categories {
48+
type enumeration {
49+
enum software;
50+
enum firmware;
51+
enum cpu_hw;
52+
enum asic_hw;
53+
}
54+
description "Category of the ASIC/SDK health event to suppress";
55+
}
56+
}
57+
}
58+
}
59+
}

0 commit comments

Comments
 (0)