Skip to content

Commit 89c35bb

Browse files
authored
[YangModel][asic_sensors] Add ASIC_SENSORS yang models (#21218) (#21308)
Add Yang Models support for the following ASIC_SENSORs configuration { "ASIC_SENSORS": { "ASIC_SENSORS_POLLER_INTERVAL": { "interval": "10" }, "ASIC_SENSORS_POLLER_STATUS": { "admin_status": "enable" } } } How to verify it Image Build should be passed. Signed-off-by: mlok <marty.lok@nokia.com> (cherry picked from commit cb2286e)
1 parent 601b159 commit 89c35bb

6 files changed

Lines changed: 257 additions & 95 deletions

File tree

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

Lines changed: 108 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,96 @@
1-
=======
21
# SONiC Configuration Database Manual
32

4-
Table of Contents
5-
=================
6-
7-
* [Introduction](#introduction)
8-
* [Configuration](#configuration)
9-
* [<strong>Config Load and Save</strong>](#config-load-and-save)
10-
11-
* [Incremental Configuration](#incremental-configuration)
12-
* [<strong>Redis and Json Schema</strong>](#redis-and-json-schema)
13-
14-
* [ACL and Mirroring](#acl-and-mirroring)
15-
* [BGP BBR](#bgp-bbr)
16-
* [ASIC SDK health event](#asic-sdk-health-event)
17-
* [BGP Device Global](#bgp-device-global)
18-
* [BGP Sessions](#bgp-sessions)
19-
* [BUFFER_PG](#buffer_pg)
20-
* [Buffer pool](#buffer-pool)
21-
* [Buffer profile](#buffer-profile)
22-
* [Buffer queue](#buffer-queue)
23-
* [Buffer port ingress profile list](#buffer-port-ingress-profile-list)
24-
* [Buffer port egress profile list](#buffer-port-egress-profile-list)
25-
* [Cable length](#cable-length)
26-
* [Chassis module](#chassis-module)
27-
* [COPP_TABLE](#copp_table)
28-
* [Console](#console)
29-
* [CRM](#crm)
30-
* [CRM DASH](#crm-dash)
31-
* [Data Plane L3 Interfaces](#data-plane-l3-interfaces)
32-
* [DEFAULT_LOSSLESS_BUFFER_PARAMETER](#DEFAULT_LOSSLESS_BUFFER_PARAMETER)
33-
* [Device Metadata](#device-metadata)
34-
* [Device neighbor metada](#device-neighbor-metada)
35-
* [DHCP_RELAY](#dhcp_relay)
36-
* [DHCP Server IPV4](#dhcp_server_ipv4)
37-
* [BMP](#bmp)
38-
* [DSCP_TO_TC_MAP](#dscp_to_tc_map)
39-
* [FG_NHG](#fg_nhg)
40-
* [FG_NHG_MEMBER](#fg_nhg_member)
41-
* [FG_NHG_PREFIX](#fg_nhg_prefix)
42-
* [FABRIC_MONITOR](#fabric-monitor)
43-
* [FABRIC_PORT](#fabric-port)
44-
* [FLEX_COUNTER_TABLE](#flex_counter_table)
45-
* [Hash](#hash)
46-
* [IPv6 Link-local] (#ipv6-link-local)
47-
* [KDUMP](#kdump)
48-
* [Kubernetes Master](#kubernetes-master)
49-
* [L2 Neighbors](#l2-neighbors)
50-
* [Loopback Interface](#loopback-interface)
51-
* [LOSSLESS_TRAFFIC_PATTERN](#LOSSLESS_TRAFFIC_PATTERN)
52-
* [Management Interface](#management-interface)
53-
* [Management port](#management-port)
54-
* [Management VRF](#management-vrf)
55-
* [MAP_PFC_PRIORITY_TO_QUEUE](#map_pfc_priority_to_queue)
56-
* [MUX_CABLE](#mux_cable)
57-
* [MUX_LINKMGR](#mux_linkmgr)
58-
* [NEIGH](#neigh)
59-
* [NTP Global Configuration](#ntp-global-configuration)
60-
* [NTP Servers](#ntp-servers)
61-
* [Peer Switch](#peer-switch)
62-
* [Policer](#policer)
63-
* [Port](#port)
64-
* [Port Channel](#port-channel)
65-
* [Portchannel member](#portchannel-member)
66-
* [Scheduler](#scheduler)
67-
* [Port QoS Map](#port-qos-map)
68-
* [Queue](#queue)
69-
* [Syslog Global Configuration](#syslog-global-configuration)
70-
* [Syslog Servers](#syslog-servers)
71-
* [Sflow](#sflow)
72-
* [Restapi](#restapi)
73-
* [System Port](#system-port)
74-
* [Tacplus Server](#tacplus-server)
75-
* [TC to Priority group map](#tc-to-priority-group-map)
76-
* [TC to Queue map](#tc-to-queue-map)
77-
* [Telemetry](#telemetry)
78-
* [Telemetry client](#telemetry-client)
79-
* [Tunnel](#tunnel)
80-
* [Versions](#versions)
81-
* [VLAN](#vlan)
82-
* [VLAN_MEMBER](#vlan_member)
83-
* [VNET](#vnet)
84-
* [VOQ Inband Interface](#voq-inband-interface)
85-
* [VXLAN](#vxlan)
86-
* [Virtual router](#virtual-router)
87-
* [LOGGER](#logger)
88-
* [WRED_PROFILE](#wred_profile)
89-
* [PASSWORD_HARDENING](#password_hardening)
90-
* [SSH_SERVER](#ssh_server)
91-
* [SYSTEM_DEFAULTS table](#systemdefaults-table)
92-
* [RADIUS](#radius)
93-
* [Static DNS](#static-dns)
94-
* [For Developers](#for-developers)
95-
* [Generating Application Config by Jinja2 Template](#generating-application-config-by-jinja2-template)
96-
* [Incremental Configuration by Subscribing to ConfigDB](#incremental-configuration-by-subscribing-to-configdb)
3+
**Table of Contents**
4+
5+
* [Introduction](#introduction)
6+
* [Configuration](#configuration)
7+
* [<strong>Config Load and Save</strong>](#config-load-and-save)
8+
* [Incremental Configuration](#incremental-configuration)
9+
* [<strong>Redis and Json Schema</strong>](#redis-and-json-schema)
10+
* [ACL and Mirroring](#acl-and-mirroring)
11+
* [BGP BBR](#bgp-bbr)
12+
* [ASIC SDK health event](#asic-sdk-health-event)
13+
* [BGP Device Global](#bgp-device-global)
14+
* [BGP Sessions](#bgp-sessions)
15+
* [BUFFER_PG](#buffer_pg)
16+
* [Buffer pool](#buffer-pool)
17+
* [Buffer profile](#buffer-profile)
18+
* [Buffer queue](#buffer-queue)
19+
* [Buffer port ingress profile list](#buffer-port-ingress-profile-list)
20+
* [Buffer port egress profile list](#buffer-port-egress-profile-list)
21+
* [Cable length](#cable-length)
22+
* [Chassis module](#chassis-module)
23+
* [COPP_TABLE](#copp_table)
24+
* [Console](#console)
25+
* [CRM](#crm)
26+
* [CRM DASH](#crm-dash)
27+
* [Data Plane L3 Interfaces](#data-plane-l3-interfaces)
28+
* [DEFAULT_LOSSLESS_BUFFER_PARAMETER](#DEFAULT_LOSSLESS_BUFFER_PARAMETER)
29+
* [Device Metadata](#device-metadata)
30+
* [Device neighbor metada](#device-neighbor-metada)
31+
* [DHCP_RELAY](#dhcp_relay)
32+
* [DHCP Server IPV4](#dhcp_server_ipv4)
33+
* [BMP](#bmp)
34+
* [DSCP_TO_TC_MAP](#dscp_to_tc_map)
35+
* [FG_NHG](#fg_nhg)
36+
* [FG_NHG_MEMBER](#fg_nhg_member)
37+
* [FG_NHG_PREFIX](#fg_nhg_prefix)
38+
* [FABRIC_MONITOR](#fabric-monitor)
39+
* [FABRIC_PORT](#fabric-port)
40+
* [FLEX_COUNTER_TABLE](#flex_counter_table)
41+
* [Hash](#hash)
42+
* [IPv6 Link-local] (#ipv6-link-local)
43+
* [KDUMP](#kdump)
44+
* [Kubernetes Master](#kubernetes-master)
45+
* [L2 Neighbors](#l2-neighbors)
46+
* [Loopback Interface](#loopback-interface)
47+
* [LOSSLESS_TRAFFIC_PATTERN](#LOSSLESS_TRAFFIC_PATTERN)
48+
* [Management Interface](#management-interface)
49+
* [Management port](#management-port)
50+
* [Management VRF](#management-vrf)
51+
* [MAP_PFC_PRIORITY_TO_QUEUE](#map_pfc_priority_to_queue)
52+
* [MUX_CABLE](#mux_cable)
53+
* [MUX_LINKMGR](#mux_linkmgr)
54+
* [NEIGH](#neigh)
55+
* [NTP Global Configuration](#ntp-global-configuration)
56+
* [NTP Servers](#ntp-servers)
57+
* [Peer Switch](#peer-switch)
58+
* [Policer](#policer)
59+
* [Port](#port)
60+
* [Port Channel](#port-channel)
61+
* [Portchannel member](#portchannel-member)
62+
* [Scheduler](#scheduler)
63+
* [Port QoS Map](#port-qos-map)
64+
* [Queue](#queue)
65+
* [Syslog Global Configuration](#syslog-global-configuration)
66+
* [Syslog Servers](#syslog-servers)
67+
* [Sflow](#sflow)
68+
* [Restapi](#restapi)
69+
* [System Port](#system-port)
70+
* [Tacplus Server](#tacplus-server)
71+
* [TC to Priority group map](#tc-to-priority-group-map)
72+
* [TC to Queue map](#tc-to-queue-map)
73+
* [Telemetry](#telemetry)
74+
* [Telemetry client](#telemetry-client)
75+
* [Tunnel](#tunnel)
76+
* [Versions](#versions)
77+
* [VLAN](#vlan)
78+
* [VLAN_MEMBER](#vlan_member)
79+
* [VNET](#vnet)
80+
* [VOQ Inband Interface](#voq-inband-interface)
81+
* [VXLAN](#vxlan)
82+
* [Virtual router](#virtual-router)
83+
* [LOGGER](#logger)
84+
* [WRED_PROFILE](#wred_profile)
85+
* [PASSWORD_HARDENING](#password_hardening)
86+
* [SSH_SERVER](#ssh_server)
87+
* [SYSTEM_DEFAULTS table](#systemdefaults-table)
88+
* [RADIUS](#radius)
89+
* [Static DNS](#static-dns)
90+
* [ASIC_SENSORS](#asic_sensors)
91+
* [For Developers](#for-developers)
92+
* [Generating Application Config by Jinja2 Template](#generating-application-config-by-jinja2-template)
93+
* [Incremental Configuration by Subscribing to ConfigDB](#incremental-configuration-by-subscribing-to-configdb)
9794

9895

9996

@@ -2850,7 +2847,23 @@ The DPUS table introduces the information on the DPUs (Data Processing Unit) ava
28502847
}
28512848
```
28522849

2853-
#### 5.2.3 Update value directly in db memory
2850+
### ASIC_SENSORS
2851+
2852+
The ASIC_SENSORS table introduces the asic sensors polling configuration when they are available on the platform.
2853+
2854+
```json
2855+
{
2856+
"ASIC_SENSORS": {
2857+
"ASIC_SENSORS_POLLER_INTERVAL": {
2858+
"interval": "10"
2859+
},
2860+
"ASIC_SENSORS_POLLER_STATUS": {
2861+
"admin_status": "enable"
2862+
}
2863+
}
2864+
}
2865+
```
2866+
28542867

28552868
For Developers
28562869
==============

src/sonic-yang-models/setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ def run(self):
202202
'./yang-models/sonic-system-port.yang',
203203
'./yang-models/sonic-macsec.yang',
204204
'./yang-models/sonic-bgp-sentinel.yang',
205+
'./yang-models/sonic-asic-sensors.yang',
205206
'./yang-models/sonic-bmp.yang',
206207
'./yang-models/sonic-smart-switch.yang',]),
207208
('cvlyang-models', ['./cvlyang-models/sonic-acl.yang',

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2698,6 +2698,14 @@
26982698
"motd": "Some message of the day",
26992699
"logout": "Some logout message"
27002700
}
2701+
},
2702+
"ASIC_SENSORS": {
2703+
"ASIC_SENSORS_POLLER_INTERVAL": {
2704+
"interval": "10"
2705+
},
2706+
"ASIC_SENSORS_POLLER_STATUS": {
2707+
"admin_status": "enable"
2708+
}
27012709
}
27022710
},
27032711
"SAMPLE_CONFIG_DB_UNKNOWN": {
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"ASIC_SENSORS_TABLE": {
3+
"desc": "Config DB interval parameters for ASIC Sensors polling"
4+
},
5+
"ASIC_SENSORS_INVALID_POLLER_INTERVAL": {
6+
"desc": "Configure an invalid ASIC Sensors polling interval",
7+
"eStrKey" : "Pattern"
8+
},
9+
"ASIC_SENSORS_INVALID_POLLER_ADMIN_STATUS": {
10+
"desc": "Configure an invalid ASIC Sensors polling admin status",
11+
"eStrKey" : "InvalidValue"
12+
},
13+
"ASIC_SENSORS_POLLER_INTERVAL_BAD_LEN_MAX": {
14+
"desc": "Configure an invalid ASIC Sensors polling interval: out of range value",
15+
"eStrKey" : "InvalidValue"
16+
},
17+
"ASIC_SENSORS_POLLER_INTERVAL_EMPTY_VALUE": {
18+
"desc": "Configure an empty ASIC Sensors polling interval",
19+
"eStrKey" : "InvalidValue"
20+
},
21+
"ASIC_SENSORS_POLLER_ADMIN_STATUS_EMPTY_VALUE": {
22+
"desc": "Configure an empty ASIC Sensors polling admin status",
23+
"eStrKey" : "InvalidValue"
24+
}
25+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
{
2+
"ASIC_SENSORS_TABLE": {
3+
"sonic-asic-sensors:sonic-asic-sensors": {
4+
"sonic-asic-sensors:ASIC_SENSORS": {
5+
"ASIC_SENSORS_POLLER_INTERVAL": {
6+
"interval": "10"
7+
},
8+
"ASIC_SENSORS_POLLER_STATUS": {
9+
"admin_status": "enable"
10+
}
11+
}
12+
}
13+
},
14+
"ASIC_SENSORS_INVALID_POLLER_INTERVAL": {
15+
"sonic-asic-sensors:sonic-asic-sensors": {
16+
"sonic-asic-sensors:ASIC_SENSORS": {
17+
"ASIC_SENSORS_POLLER_INTERVAL": {
18+
"interval": "0"
19+
},
20+
"ASIC_SENSORS_POLLER_STATUS": {
21+
"admin_status": "enable"
22+
}
23+
}
24+
}
25+
},
26+
"ASIC_SENSORS_INVALID_POLLER_ADMIN_STATUS": {
27+
"sonic-asic-sensors:sonic-asic-sensors": {
28+
"sonic-asic-sensors:ASIC_SENSORS": {
29+
"ASIC_SENSORS_POLLER_INTERVAL": {
30+
"interval": "10"
31+
},
32+
"ASIC_SENSORS_POLLER_STATUS": {
33+
"admin_status": "testing"
34+
}
35+
}
36+
}
37+
},
38+
"ASIC_SENSORS_POLLER_INTERVAL_BAD_LEN_MAX": {
39+
"sonic-asic-sensors:sonic-asic-sensors": {
40+
"sonic-asic-sensors:ASIC_SENSORS": {
41+
"ASIC_SENSORS_POLLER_INTERVAL": {
42+
"interval": "1010101010101010101010"
43+
},
44+
"ASIC_SENSORS_POLLER_STATUS": {
45+
"admin_status": "enable"
46+
}
47+
}
48+
}
49+
},
50+
"ASIC_SENSORS_POLLER_INTERVAL_EMPTY_VALUE": {
51+
"sonic-asic-sensors:sonic-asic-sensors": {
52+
"sonic-asic-sensors:ASIC_SENSORS": {
53+
"ASIC_SENSORS_POLLER_INTERVAL": {
54+
"interval": ""
55+
},
56+
"ASIC_SENSORS_POLLER_STATUS": {
57+
"admin_status": "enable"
58+
}
59+
}
60+
}
61+
},
62+
"ASIC_SENSORS_POLLER_ADMIN_STATUS_EMPTY_VALUE": {
63+
"sonic-asic-sensors:sonic-asic-sensors": {
64+
"sonic-asic-sensors:ASIC_SENSORS": {
65+
"ASIC_SENSORS_POLLER_INTERVAL": {
66+
"interval": "10"
67+
},
68+
"ASIC_SENSORS_POLLER_STATUS": {
69+
"admin_status": ""
70+
}
71+
}
72+
}
73+
}
74+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
module sonic-asic-sensors {
2+
yang-version 1.1;
3+
namespace "http://github.com/sonic-net/sonic-asic-sensors";
4+
prefix asic-sensors;
5+
6+
import sonic-types {
7+
prefix stypes;
8+
}
9+
10+
description "ASIC SENSORs config yang Module for SONiC OS";
11+
12+
revision 2024-11-19 {
13+
description "First Revision";
14+
}
15+
16+
container sonic-asic-sensors {
17+
container ASIC_SENSORS {
18+
description "ASIC_SENSORS part of config_db.json";
19+
20+
container ASIC_SENSORS_POLLER_INTERVAL {
21+
leaf interval {
22+
description "ASIC SENSORS polling interval";
23+
type uint32 {
24+
range "1..999";
25+
}
26+
units seconds;
27+
default "10 ";
28+
}
29+
} /* ASIC_SENSORS_POLLER_INTERVAL */
30+
31+
container ASIC_SENSORS_POLLER_STATUS {
32+
leaf admin_status {
33+
description "ASIC SENSORS polling administrative status";
34+
type stypes:mode-status;
35+
default "enable";
36+
} /* admin_status */
37+
} /* ASIC_SENSORS_POLLER_STATUS */
38+
39+
} /* end of ASIC_SENSORS */
40+
} /* end of container sonic-asic-sensors */
41+
} /* end of module sonic-asic-sensors */

0 commit comments

Comments
 (0)