From 42d718c65ff1d2b0ed78c1ce82c610266394a8a9 Mon Sep 17 00:00:00 2001 From: Zain Budhwani <99770260+zbud-msft@users.noreply.github.com> Date: Mon, 12 Sep 2022 15:57:24 -0700 Subject: [PATCH] Add Structured events yang models (#21) * Add YANG models for structured events * [Arista] Update platform submodule (#11853) * Advance submodule sonic-sairedis (#11704) 2022-07-28 854d54e: Add support of mdio IPC server class using sai switch api and unix socket (sonic-net/sonic-sairedis#1080) (Jiahua Wang) 2022-07-27 513cb2a: [FlexCounter] Refactor FlexCounter class (sonic-net/sonic-sairedis#1073) (Junchao-Mellanox) * Update swss common submodule for events api (#11858) #### Why I did it Structured events code like eventd, rsyslogplugin, requires changes made in swss-common Submodule adds these newest commits: 56b0f18 (HEAD, origin/master, origin/HEAD, master) Events: APIs to set/get global options (#672) 5467c89 Add changes to yml file to improve pytest (#674) #### How I did it Updated git submodule #### How to verify it Check new commit pointer * [Arista] Fix content of platform.json for DCS-720DT-48S (#11855) Why I did it Content of platform.json was outdated and some platform_tests/api of sonic-mgmt were failing. How I did it Added the necessary values to platform.json How to verify it Running platform_tests/api of sonic-mgmt should yield 100% passrate. * [actions] Update github actions label and automerge. (#11736) 1. Add auto approve step when adding label to version upgrading PR. 2. Use mssonicbld TOKEN to merge version upgrading PR instead of 'github actions' * [ci] Update reproducible build related pipeline. (#11810) * Address Review Comment to define SONIC_GLOBAL_DB_CLI in gbsyncd.sh (#11857) As part of PR #11754 Change was added to use variable SONIC_DB_NS_CLI for namespace but that will not work since ./files/scripts/syncd_common.sh uses SONIC_DB_CLI. So revert back to use SONIC_DB_CLI and define new variable for SONIC_GLOBAL_DB_CLI for global/host db cli access Also fixed DB_CLI not working for namespace. * [Build] Increase the size of the installer image (#11869) #### Why I did it Fix the build failure caused by the installer image size too small. The installer image is only used during the build, not impact the final images. See https://dev.azure.com/mssonic/build/_build/results?buildId=139926&view=logs&j=cef3d8a9-152e-5193-620b-567dc18af272&t=359769c4-8b5e-5976-a793-85da132e0a6f ``` + fallocate -l 2048M ./sonic-installer.img + mkfs.vfat ./sonic-installer.img mkfs.fat 4.2 (2021-01-31) ++ mktemp -d + tmpdir=/tmp/tmp.TqdDSc00Cn + mount -o loop ./sonic-installer.img /tmp/tmp.TqdDSc00Cn + cp target/sonic-vs.bin /tmp/tmp.TqdDSc00Cn/onie-installer.bin cp: error writing '/tmp/tmp.TqdDSc00Cn/onie-installer.bin': No space left on device [ FAIL LOG END ] [ target/sonic-vs.img.gz ] ``` #### How I did it Increase the size from 2048M to 4096M. Why not increase to 16G like qcow2 image? The qcow2 supports the sparse disk, although a big disk size allocated, but it will not consume the real disk size. The falocate does not support the sparse disk. We do not want to allocate a very big disk, but no use at all. It will require more space to build. * Update sensor names for msn4600c for the 5.10 kernel (#11491) * Update sensor names for msn4600c for the 5.10 kernel Looks like a sensor was removed in the 5.10 kernel for the tps53679 sensor, so the names/indexing has changed. Related to Azure/sonic-mgmt#4513. Signed-off-by: Saikrishna Arcot * Update sensors file Signed-off-by: Saikrishna Arcot Signed-off-by: Saikrishna Arcot * Fix error handling when failing to install a deb package (#11846) The current error handling code for when a deb package fails to be installed currently has a chain of commands linked together by && and ends with `exit 1`. The assumption is that the commands would succeed, and the last `exit 1` would end it with a non-zero return code, thus fully failing the target and causing the build to stop because of bash's -e flag. However, if one of the commands prior to `exit 1` returns a non-zero return code, then bash won't actually treat it as a terminating error. From bash's man page: ``` -e Exit immediately if a pipeline (which may consist of a single simple command), a list, or a compound command (see SHELL GRAMMAR above), exits with a non-zero status. The shell does not exit if the command that fails is part of the command list immediately following a while or until keyword, part of the test following the if or elif reserved words, part of any command executed in a && or || list except the command following the final && or ||, any command in a pipeline but the last, or if the command's return value is being inverted with !. If a compound command other than a subshell returns a non-zero status because a command failed while -e was being ignored, the shell does not exit. ``` The part `part of any command executed in a && or || list except the command following the final && or ||` says that if the failing command is not the `exit 1` that we have at the end, then bash doesn't treat it as an error and exit immediately. Additionally, since this is a compound command, but isn't in a subshell (subshell are marked by `(` and `)`, whereas `{` and `}` just tells bash to run the commands in the current environment), bash doesn't exist. The result of this is that in the deb-install target, if a package installation fails, it may be infinitely stuck in that while-loop. There are two fixes for this: change to using a subshell, or use `;` instead of `&&`. Using a subshell would, I think, require exporting any shell variables used in the subshell, so I chose to change the `&&` to `;`. In addition, at the start of the subshell, `set +e` is added in, which removes the exit-on-error handling of bash. This makes sure that all commands are run (the output of which may help for debugging) and that it still exits with 1, which will then fully fail the target. Signed-off-by: Saikrishna Arcot Signed-off-by: Saikrishna Arcot * Fix vs check install login timeout issue (#11727) Why I did it Fix a build not stable issue: #11620 The vs vm has started successfully, but failed to wait for the message "sonic login:". There were 55 builds failed caused by the issue in the last 30 days. AzurePipelineBuildLogs | where startTime > ago(30d) | where type =~ "task" | where result =~ "failed" | where name =~ "Build sonic image" | where content contains "Timeout exceeded" | where content contains "re.compile('sonic login:')" | project-away content | extend branchName=case(reason=~"pullRequest", tostring(todynamic(parameters)['system.pullRequest.targetBranch']), replace("refs/heads/", "", sourceBranch)) | summarize FailedCount=dcount(buildId) by branchName branchName FailedCount master 37 202012 9 202106 4 202111 2 202205 1 201911 1 It is caused by the login message mixed with the output message of the /etc/rc.local, one of the examples as below: (see the message rc.local[307]: sonic+ onie_disco_subnet=255.255.255.0 login: ) The check_install.py was waiting for the message "sonic login:", and Linux console was waiting for the username input (the login message has already printed in the console). https://dev.azure.com/mssonic/build/_build/results?buildId=123294&view=logs&j=cef3d8a9-152e-5193-620b-567dc18af272&t=359769c4-8b5e-5976-a793-85da132e0a6f 2022-07-17T15:00:58.9198877Z [ 25.493855] rc.local[307]: + onie_disco_opt53=05 2022-07-17T15:00:58.9199330Z [ 25.595054] rc.local[307]: + onie_disco_router=10.0.2.2 2022-07-17T15:00:58.9199781Z [ 25.699409] rc.local[307]: + onie_disco_serverid=10.0.2.2 2022-07-17T15:00:58.9200252Z [ 25.789891] rc.local[307]: + onie_disco_siaddr=10.0.2.2 2022-07-17T15:00:58.9200622Z [ 25.880920] 2022-07-17T15:00:58.9200745Z 2022-07-17T15:00:58.9201019Z Debian GNU/Linux 10 sonic ttyS0 2022-07-17T15:00:58.9201201Z 2022-07-17T15:00:58.9201542Z rc.local[307]: sonic+ onie_disco_subnet=255.255.255.0 login: 2022-07-17T15:00:58.9202309Z [ 26.079767] rc.local[307]: + onie_exec_url=file://dev/vdb/onie-installer.bin How I did it Input a newline when finished to run the script /etc/rc.local. If entering a newline, the message "sonic login:" will prompt again. * [ci] Fix bug involved by PR 11810 which affect official build pipeline (#11891) Why I did it Fix the official build not triggered correctly issue, caused by the azp template path not existing. How I did it Change the azp template path. * DellEMC: Z9332f - Graceful platform reboot (#10240) Why I did it To gracefully unmount filesystems and stop containers while performing a cold reboot. Unmount ONIE-BOOT if mounted during fast/soft/warm reboot How I did it Override systemd-reboot service to perform a cold reboot. Unmount ONIE-BOOT if mounted using fast/soft/warm-reboot plugins. How to verify it On reboot, verify that the container stop and filesystem unmount services have completed execution before the platform reboot. * [Nokia][Nokia-IXR7250E-36x100G & Nokia-IXR7250E-36x400G] Update BCM (#11577) config to support ERSPAN egress mirror and also set flag to preserve ECN * Align API get_device_runtime_metadata() for python version < 3.9 (#11900) Why I did it: API get_device_runtime_metadata() added by #11795 uses merge operator for dict but that is supported only for python version >=3.9. This API will be be used by scrips eg:hostcfgd which is still build for buster which does not have python 3.9 support. * [Arista7050cx3] TD3 SKU changes for pg headroom value after interop testing with cisco 8102 (#11901) Why I did it After PFC interop testing between 8102 and 7050cx3, data packet losses were observed on the Rx ports of the 7050cx3 (inflow from 8102) during testing. This was primarily due to the slower response times to react to PFC pause packets for the 8102, when receiving such frames from neighboring devices. To solve for the packet drops, the 7050cx3 pg headroom size has to be increased to 160kB. How I did it Modified the xoff threshold value to 160kB in the pg_profile file to allow for the buffer manager to read that value when building the image, and configuring the device How to verify it run "mmuconfig -l" once image is built Signed-off-by: dojha * Add peer review comments on bgp * Add peer review changes + spacing * Add changes to events-swss * Add peer review changes in pmon swss * Add review changes dhcp-relay * Add peer review changes to host * Add changes to severity, leafref * Remove unused grouping * Remove redis generic Signed-off-by: Saikrishna Arcot Signed-off-by: dojha Co-authored-by: Samuel Angebault Co-authored-by: Junhua Zhai Co-authored-by: Liu Shilong Co-authored-by: abdosi <58047199+abdosi@users.noreply.github.com> Co-authored-by: xumia <59720581+xumia@users.noreply.github.com> Co-authored-by: Saikrishna Arcot Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com> Co-authored-by: saksarav-nokia Co-authored-by: Dev Ojha <47282568+developfast@users.noreply.github.com> --- .../yang-events/sonic-events-bgp.yang | 95 +++++++++ .../yang-events/sonic-events-common.yang | 67 +++++++ .../yang-events/sonic-events-dhcp_relay.yang | 78 ++++++++ .../yang-events/sonic-events-host.yang | 189 ++++++++++++++++++ .../yang-events/sonic-events-pmon.yang | 40 ++++ .../yang-events/sonic-events-swss.yang | 105 ++++++++++ .../yang-events/sonic-events-syncd.yang | 60 ++++++ 7 files changed, 634 insertions(+) create mode 100644 src/sonic-yang-models/yang-events/sonic-events-bgp.yang create mode 100644 src/sonic-yang-models/yang-events/sonic-events-common.yang create mode 100644 src/sonic-yang-models/yang-events/sonic-events-dhcp_relay.yang create mode 100644 src/sonic-yang-models/yang-events/sonic-events-host.yang create mode 100644 src/sonic-yang-models/yang-events/sonic-events-pmon.yang create mode 100644 src/sonic-yang-models/yang-events/sonic-events-swss.yang create mode 100644 src/sonic-yang-models/yang-events/sonic-events-syncd.yang diff --git a/src/sonic-yang-models/yang-events/sonic-events-bgp.yang b/src/sonic-yang-models/yang-events/sonic-events-bgp.yang new file mode 100644 index 000000000000..44a4a79e72fa --- /dev/null +++ b/src/sonic-yang-models/yang-events/sonic-events-bgp.yang @@ -0,0 +1,95 @@ +module sonic-events-bgp { + namespace "http://github.com/Azure/sonic-events-bgp"; + prefix events-bgp; + yang-version 1.1; + + import sonic-events-common { + prefix evtcmn; + revision-date 2022-12-01; + } + import openconfig-alarm-types { + prefix oc-alarm-types; + } + import sonic-types { + prefix stypes; + } + + revision 2022-12-01 { + description "BGP alert events."; + } + + organization + "SONiC"; + contact + "SONiC"; + description + "SONIC BGP events"; + + container sonic-events-bgp { + container bgp-state { + oc-alarm-types:MINOR + + description " + Declares an event for BGP state for a neighbor IP going up/down."; + + leaf ip { + type inet:ip-address; + description "IP of neighbor"; + } + + leaf status { + type stypes:admin_status; + description "Provides the status as up (true) or down (false)"; + } + + uses evtcmn:sonic-events-cmn; + } + + container notification { + oc-alarm-types:MAJOR + + description " + Reports an notification. + The error codes as per IANA. + The other params are as in the message"; + + leaf major-code { + type uint8; + description "Major IANA error code; [RFC4271][RFC7313]"; + } + + leaf minor-code { + type uint8; + description "Minor IANA error code; [RFC4271][RFC7313]"; + } + + leaf ip { + type inet:ip-address; + description "IP of neighbor associated with this notification"; + } + + leaf ASN { + type uint32; + description "ASN number from the notification"; + } + + leaf is-sent { + type boolean; + description "true - if this notification was for sent messages; false if it was for received."; + } + + uses evtcmn:sonic-events-cmn; + } + + container zebra-no-buff { + oc-alarm-types:MAJOR + + description " + Declares an event for zebra running out of buffer. + This event does not have any other parameter. + Hence source + tag identifies an event"; + + uses evtcmn:sonic-events-cmn; + } + } +} diff --git a/src/sonic-yang-models/yang-events/sonic-events-common.yang b/src/sonic-yang-models/yang-events/sonic-events-common.yang new file mode 100644 index 000000000000..595bf39ca9b1 --- /dev/null +++ b/src/sonic-yang-models/yang-events/sonic-events-common.yang @@ -0,0 +1,67 @@ +module sonic-events-common { + namespace "http://github.com/Azure/sonic-events-common"; + prefix evtcmn; + yang-version 1.1; + + organization + "SONiC"; + contact + "SONiC"; + description + "SONIC Events common definition"; + revision 2022-12-01 { + description + "Common reusable definitions"; + } + + grouping sonic-events-cmn { + leaf timestamp { + type yang::date-and-time; + description "time of the event"; + } + } + + grouping sonic-events-usage { + leaf usage { + type uint8 { + range "0..100" { + error-message "Incorrect val for %"; + } + } + description "Percentage in use"; + } + + leaf limit { + type uint8 { + range "0..100" { + error-message "Incorrect val for %"; + } + } + description "Percentage limit set"; + } + } + + identity EVENT_SEVERITY { + description + "Base identity for event severities. Severities 2-4 + are supported"; + } + + identity EVENT_SEVERITY_2 { + base EVENT_SEVERITY; + description + "Indicates that the severity level of this type of event is 2"; + } + + identity EVENT_SEVERITY_3 { + base EVENT_SEVERITY; + description + "Indicates that the severity level of this type of event is 3"; + } + + identity EVENT_SEVERITY_4 { + base EVENT_SEVERITY; + description + "Indicates that the severity level of this type of event is 4"; + } +} diff --git a/src/sonic-yang-models/yang-events/sonic-events-dhcp_relay.yang b/src/sonic-yang-models/yang-events/sonic-events-dhcp_relay.yang new file mode 100644 index 000000000000..452bfab7c49a --- /dev/null +++ b/src/sonic-yang-models/yang-events/sonic-events-dhcp_relay.yang @@ -0,0 +1,78 @@ +module sonic-events-dhcp-relay { + namespace "http://github.com/sonic-net/sonic-events-dhcp-relay"; + yang-version 1.1; + prefix events-dhcp-relay; + + import openconfig-alarm-types { + prefix oc-alarm-types; + } + import sonic-events-common { + prefix evtcmn; + revision-date 2022-12-01; + } + revision 2022-12-01 { + description "dhcp-relay alert events."; + } + + organization + "SONiC"; + contact + "SONiC"; + description + "SONIC dhcp-relay events"; + + container sonic-events-dhcp-relay { + container dhcp-relay-discard { + oc-alarm-types:MAJOR + + description " + Declares an event for dhcp-relay discarding packet on an + interface due to missing IP address assigned. + Params: + name of the interface discarding. + class of the missing IP address as IPv4 or IPv6."; + + leaf ip_class { + type enumeration { + enum "IPv4"; + enum "IPv6"; + } + description "Class of IP address missing"; + } + + leaf ifname { + type leafref { + path "/prt:sonic-port/prt:PORT/prt:PORT_LIST/prt:name"; + } + description "Name of the i/f discarding"; + } + + uses evtcmn:sonic-events-cmn; + } + + container dhcp-relay-disparity { + oc-alarm-types:MAJOR + + description " + Declares an event for disparity detected in + DHCP Relay behavior by dhcpmon. + parameters: + vlan that shows this disparity + The duration of disparity"; + + leaf vlan { + type leafref { + path "/vlan:sonic-vlan/vlan:VLAN/vlan:VLAN_LIST/vlan:name"; + } + description "Name of the vlan affected"; + } + + leaf duration { + type uint32; + description "Duration of disparity"; + } + + uses evtcmn:sonic-events-cmn; + } + } +} diff --git a/src/sonic-yang-models/yang-events/sonic-events-host.yang b/src/sonic-yang-models/yang-events/sonic-events-host.yang new file mode 100644 index 000000000000..606ce661051e --- /dev/null +++ b/src/sonic-yang-models/yang-events/sonic-events-host.yang @@ -0,0 +1,189 @@ +module sonic-events-host { + namespace "http://github.com/sonic-net/sonic-events-host"; + yang-version 1.1; + prefix events-host; + + import openconfig-alarm-types { + prefix oc-alarm-types; + } + import sonic-events-common { + prefix evtcmn; + revision-date 2022-12-01; + } + revision 2022-12-01 { + description "BGP alert events."; + } + + container sonic-events-host { + container disk-usage { + oc-alarm-types:MINOR + + description " + Declares an event for disk usage crossing set limit + The parameters describe the usage & limit set."; + + leaf fs { + type string; + description "Name of the file system"; + default ""; + } + + uses evtcmn:sonic-events-usage; + + uses evtcmn:sonic-events-cmn; + } + + container memory-usage { + oc-alarm-types:MINOR + + description " + Declares an event for memory usage crossing set limit + The parameters describe the usage & limit set."; + + uses evtcmn:sonic-events-usage; + + uses evtcmn:sonic-events-cmn; + } + + container event-sshd { + oc-alarm-types:MINOR + + description " + Declares an event reported by sshd. + The fail type declares the type of failure. + INCORRECT_PASSWORD - denotes that sshd is sending + wrong password to AAA to intentionally fail this login."; + + leaf fail_type { + type enumeration { + enum "INCORRECT_PASSWD"; + } + description "Type of failure"; + } + + uses evtcmn:sonic-events-cmn; + } + + container event-disk { + oc-alarm-types:MINOR + + description " + Declares an event reported by disk check. + The fail type declares the type of failure. + read-only - denotes that disk is in RO state."; + + leaf fail_type { + type enumeration { + enum "read_only"; + } + description "Type of failure"; + } + + uses evtcmn:sonic-events-cmn; + } + + container event-kernel { + oc-alarm-types:MINOR + + description " + Declares an event reported by kernel. + The fail type declares the type of failure."; + + leaf fail_type { + type enumeration { + enum "write_failed"; + enum "write_protected"; + enum "remount_read_only"; + enum "aufs_read_lock"; + enum "invalid_freelist"; + enum "zlib_decompress"; + } + description "Type of failure"; + } + + leaf msg { + type string; + description "human readable hint text"; + default ""; + } + + uses evtcmn:sonic-events-cmn; + } + + container event-monit-proc { + eventcmn:EVENT_SEVERITY_2 + + description " + Declares an event reported by monit for a process + that is not running. + Params: + Name of the process that is not running. + The ASIC-index of that process."; + + leaf proc_name { + type string; + description "Name of the process not running"; + default ""; + } + + leaf asic_index { + type uint8; + description "ASIC index in case of multi asic platform"; + default 0; + } + + uses evtcmn:sonic-events-cmn; + } + + container event-monit-status { + eventcmn:EVENT_SEVERITY_2 + + description " + Declares an event reported by monit for status check + failure for a process + Params: + Name of the process that is not running. + The ASIC-index of that process."; + + leaf entity { + type string; + description "Name of the failing entity"; + default ""; + } + + leaf asic_index { + type uint8; + description "ASIC index in case of multi asic platform"; + default 0; + } + + leaf reason { + type string; + description "Human readble text explaining failure"; + default ""; + } + + uses evtcmn:sonic-events-cmn; + } + + container event-platform { + evtcmn:EVENT_SEVERITY_2 + + description " + Declares an event for platform related failure. + Params: + fail_type provides the type of failure."; + + leaf fail_type { + type enumeration { + enum "watchdog_timeout"; + enum "switch_parity_error"; + enum "SEU_error"; + } + description "Type of failure"; + } + + uses evtcmn:sonic-events-cmn; + } + } +} diff --git a/src/sonic-yang-models/yang-events/sonic-events-pmon.yang b/src/sonic-yang-models/yang-events/sonic-events-pmon.yang new file mode 100644 index 000000000000..a653e955915a --- /dev/null +++ b/src/sonic-yang-models/yang-events/sonic-events-pmon.yang @@ -0,0 +1,40 @@ +module sonic-events-pmon { + namespace "http://github.com/sonic-net/sonic-events-pmon"; + yang-version 1.1; + prefix events-pmon; + + import openconfig-alarm-types { + prefix oc-alarm-types; + } + import sonic-events-common { + prefix evtcmn; + revision-date 2022-12-01; + } + revision 2022-12-01 { + description "pmon alert events."; + } + + organization + "SONiC"; + contact + "SONiC"; + description + "SONIC pmon events"; + + container sonic-events-pmon { + container pmon-exited { + oc-alarm-types:MAJOR + + description " + Declares an event reportes by pmon for an unexpected exit. + The exited entity is the only param"; + + leaf entity { + type string; + description "entity that had unexpected exit"; + } + + uses evtcmn:sonic-events-cmn; + } + } +} diff --git a/src/sonic-yang-models/yang-events/sonic-events-swss.yang b/src/sonic-yang-models/yang-events/sonic-events-swss.yang new file mode 100644 index 000000000000..ded47fead534 --- /dev/null +++ b/src/sonic-yang-models/yang-events/sonic-events-swss.yang @@ -0,0 +1,105 @@ +module sonic-events-swss { + namespace "http://github.com/sonic-net/sonic-events-swss"; + yang-version 1.1; + prefix events-swss; + + import openconfig-alarm-types { + prefix oc-alarm-types; + } + import sonic-events-common { + prefix evtcmn; + revision-date 2022-12-01; + } + import sonic-types { + prefix stypes; + } + revision 2022-12-01 { + description "SWSS alert events."; + } + + organization + "SONiC"; + contact + "SONiC"; + description + "SONIC SWSS events"; + + container sonic-events-swss { + container if-state { + oc-alarm-types:MINOR + + description " + Declares an event for i/f flap. + The name of the flapping i/f and status are the only params."; + + leaf ifname { + type leafref { + path "/port:sonic-port/port:PORT/port:PORT_LIST/port:name"; + } + description "Interface name"; + } + + leaf status { + type stypes:admin_status; + description "Provides the status as up (true) or down (false)"; + } + + uses evtcmn:sonic-events-cmn; + } + + container pfc-storm { + oc-alarm-types:MAJOR + + description " + Declares an event for PFC storm. + The name of the i/f facing the storm is the only param."; + + leaf ifname { + type leafref { + path "/port:sonic-port/port:PORT/port:PORT_LIST/port:name"; + } + description "Interface name"; + } + + leaf queue_index { + type uint8; + } + + leaf queue_id { + type uint64_t; + } + + leaf port_id { + type uint64_t; + } + + uses evtcmn:sonic-events-cmn; + } + + container chk_crm_threshold { + oc-alarm-types:MAJOR + + description " + Declares an event for CRM threshold."; + + leaf percent { + type uint8 { + range "0..100" { + error-message "Invalid percentage value"; + } + } + description "percentage used"; + } + + leaf used_cnt { + type uint8; + } + + leaf free_cnt { + type uint64_t; + } + + uses evtcmn:sonic-events-cmn; + } + } +} diff --git a/src/sonic-yang-models/yang-events/sonic-events-syncd.yang b/src/sonic-yang-models/yang-events/sonic-events-syncd.yang new file mode 100644 index 000000000000..6965ff4fe5ac --- /dev/null +++ b/src/sonic-yang-models/yang-events/sonic-events-syncd.yang @@ -0,0 +1,60 @@ +module sonic-events-syncd { + namespace "http://github.com/sonic-net/sonic-events-syncd"; + yang-version 1.1; + prefix events-syncd; + + import openconfig-alarm-types { + prefix oc-alarm-types; + } + import sonic-events-common { + prefix evtcmn; + revision-date 2022-12-01; + } + revision 2022-12-01 { + description "syncd alert events."; + } + + organization + "SONiC"; + contact + "SONiC"; + description + "SONIC syncd events"; + + container sonic-events-syncd { + container syncd_failure { + oc-alarm-types:MAJOR + + description " + Declares an event for all types of syncd failure. + The type of failure and the asic-index of failing syncd are + provided along with a human readable message to give the + dev debugging additional info."; + + leaf asic_index { + type uint8; + description "ASIC index in case of multi asic platform"; + default 0; + } + + leaf fail_type { + type enumeration { + enum "route_add_failed"; + enum "switch_event_2"; + enum "brcm_sai_switch_assert"; + enum "assert"; + enum "mmu_err"; + } + } + + leaf msg { + type string; + description "human readable hint text" + default ""; + } + + uses evtcmn:sonic-events-cmn; + } + } +} +