upstream snmp sonic-yang files (#10828)

Fix #10549
Fix #10550

#### Why I did it
Create sonic yang model for SNMP
Tables:SNMP, SNMP_COMMUNITY
#### How I did it
Defined yang models based for SNMP based on snmp.yml
#### How to verify it
Added test cases to verify
This commit is contained in:
suresh-rupanagudi 2022-08-18 01:59:40 +05:30 committed by GitHub
parent 5846cdddfe
commit 2bb8306d8e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 206 additions and 1 deletions

View File

@ -128,6 +128,7 @@ setup(
'./yang-models/sonic-route-map.yang',
'./yang-models/sonic-routing-policy-sets.yang',
'./yang-models/sonic-sflow.yang',
'./yang-models/sonic-snmp.yang',
'./yang-models/sonic-syslog.yang',
'./yang-models/sonic-system-aaa.yang',
'./yang-models/sonic-system-tacacs.yang',
@ -190,6 +191,7 @@ setup(
'./cvlyang-models/sonic-route-map.yang',
'./cvlyang-models/sonic-routing-policy-sets.yang',
'./cvlyang-models/sonic-sflow.yang',
'./cvlyang-models/sonic-snmp.yang',
'./cvlyang-models/sonic-system-aaa.yang',
'./cvlyang-models/sonic-system-tacacs.yang',
'./cvlyang-models/sonic-telemetry.yang',

View File

@ -1924,10 +1924,28 @@
]
}
},
"SNMP": {
"CONTACT": {
"Contact": "testuser@contoso.com"
},
"LOCATION": {
"Location": "SNMP Server Location"
}
},
"SNMP_COMMUNITY": {
"public": {
"TYPE": "RO"
},
"private": {
"TYPE": "RW"
}
},
"SYSTEM_DEFAULTS": {
"tunnel_qos_remap": {
"status": "enabled"
}
}
},
"LOSSLESS_TRAFFIC_PATTERN": {
"AZURE": {

View File

@ -0,0 +1,28 @@
{
"SNMP_SYSTEM_TEST": {
"desc": "Load SNMP sysContact and sysLocation."
},
"SNMP_SYSTEM_CONTACT_NEG_TEST": {
"desc": "Load SNMP sysContact with empty string",
"eStrKey": "Range"
},
"SNMP_SYSTEM_LOCATION_NEG_TEST": {
"desc": "Load SNMP sysContact with empty string",
"eStrKey": "Range"
},
"SNMP_COMMUNITY_TEST": {
"desc": "Load SNMP community string."
},
"SNMP_COMMUNITY_MIN_NEG_TEST": {
"desc": "Load SNMP community string of length < 3.",
"eStrKey": "Range"
},
"SNMP_COMMUNITY_MAX_NEG_TEST": {
"desc": "Load SNMP community string of lenth > 32.",
"eStrKey": "Range"
},
"SNMP_COMMUNITY_WRONG_TYPE_TEST": {
"desc": "Load SNMP community string with un supported type.",
"eStrKey": "InvalidValue"
}
}

View File

@ -0,0 +1,83 @@
{
"SNMP_SYSTEM_TEST": {
"sonic-snmp:sonic-snmp": {
"sonic-snmp:SNMP": {
"CONTACT": {
"Contact": "support@xyz.com"
},
"LOCATION": {
"Location": "Test location"
}
}
}
},
"SNMP_SYSTEM_CONTACT_NEG_TEST": {
"sonic-snmp:sonic-snmp": {
"sonic-snmp:SNMP": {
"CONTACT": {
"Contact": ""
}
}
}
},
"SNMP_SYSTEM_LOCATION_NEG_TEST": {
"sonic-snmp:sonic-snmp": {
"sonic-snmp:SNMP": {
"LOCATION": {
"Location": ""
}
}
}
},
"SNMP_COMMUNITY_TEST": {
"sonic-snmp:sonic-snmp": {
"sonic-snmp:SNMP_COMMUNITY": {
"SNMP_COMMUNITY_LIST": [
{
"name": "sonicSnmp",
"TYPE": "RO"
},
{
"name": "sonicSnmpRW",
"TYPE": "RW"
}
]
}
}
},
"SNMP_COMMUNITY_MIN_NEG_TEST": {
"sonic-snmp:sonic-snmp": {
"sonic-snmp:SNMP_COMMUNITY": {
"SNMP_COMMUNITY_LIST": [
{
"name": "abc"
}
]
}
}
},
"SNMP_COMMUNITY_MAX_NEG_TEST": {
"sonic-snmp:sonic-snmp": {
"sonic-snmp:SNMP_COMMUNITY": {
"SNMP_COMMUNITY_LIST": [
{
"name": "01234567890123456789012345678901234"
}
]
}
}
},
"SNMP_COMMUNITY_WRONG_TYPE_TEST": {
"sonic-snmp:sonic-snmp": {
"sonic-snmp:SNMP_COMMUNITY": {
"SNMP_COMMUNITY_LIST": [
{
"name": "sonicSnmp",
"TYPE": "RR"
}
]
}
}
}
}

View File

@ -0,0 +1,74 @@
module sonic-snmp {
namespace "http://github.com/Azure/sonic-snmp";
prefix ssnmp;
yang-version 1.1;
organization
"SONiC";
contact
"SONiC";
description
"SONIC SNMP";
revision 2022-05-13 {
description
"Initial revision.";
}
container sonic-snmp {
container SNMP {
container CONTACT {
leaf Contact {
type string {
length "1..255";
}
description
"SNMP System Contact.";
}
}
container LOCATION {
leaf Location {
type string {
length "1..255";
}
description
"SNMP System Location.";
}
}
}
container SNMP_COMMUNITY {
list SNMP_COMMUNITY_LIST {
key name;
description
"List of communities.";
leaf name {
type string {
length "4..32";
pattern '[^ @,\\' +"']*" {
error-message 'Invalid snmp community string (Valid chars are ASCII printable except SPACE, single quote,"@", "," and "\")';
}
}
description
"Index into the community list which must be the community name.";
}
leaf TYPE {
type enumeration {
enum RO;
enum RW;
}
description
"Type of community, read-only or read-write.";
}
}
}
}
}