Add yang models for GNMI #13716

Why I did it
Add missing yang models.

How I did it
Add sonic-gnmi.yang and unit test.

How to verify it
Run unit test for sonic-yang-models.
This commit is contained in:
ganglv 2023-02-16 11:07:27 +08:00 committed by GitHub
parent 373f0919e9
commit e673c1dcaf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 175 additions and 0 deletions

View File

@ -148,6 +148,7 @@ setup(
'./yang-models/sonic-system-tacacs.yang',
'./yang-models/sonic-system-radius.yang',
'./yang-models/sonic-telemetry.yang',
'./yang-models/sonic-gnmi.yang',
'./yang-models/sonic-tunnel.yang',
'./yang-models/sonic-types.yang',
'./yang-models/sonic-versions.yang',
@ -226,6 +227,7 @@ setup(
'./cvlyang-models/sonic-system-aaa.yang',
'./cvlyang-models/sonic-system-tacacs.yang',
'./cvlyang-models/sonic-telemetry.yang',
'./cvlyang-models/sonic-gnmi.yang',
'./cvlyang-models/sonic-types.yang',
'./cvlyang-models/sonic-versions.yang',
'./cvlyang-models/sonic-vlan.yang',

View File

@ -1183,6 +1183,18 @@
"port": "50051"
}
},
"GNMI": {
"certs": {
"ca_crt": "/etc/sonic/credentials/dsmsroot.cer",
"server_crt": "/etc/sonic/credentials/server.cer",
"server_key": "/etc/sonic/credentials/server.key"
},
"gnmi": {
"client_auth": "true",
"log_level": "2",
"port": "50052"
}
},
"TUNNEL": {
"MuxTunnel0": {
"dscp_mode": "uniform",

View File

@ -0,0 +1,17 @@
{
"GNMI_TABLE_WITH_INCORRECT_CERT": {
"desc": "TABLE_WITH_INCORRECT_CERT failure.",
"eStrKey": "Pattern"
},
"GNMI_TABLE_WITH_INCORRECT_CLIENT_AUTH": {
"desc": "TABLE_WITH_INCORRECT_CLIENT_AUTH failure",
"eStrKey": "InvalidValue"
},
"GNMI_TABLE_WITH_INCORRECT_PORT": {
"desc": "TABLE_WITH_INCORRECT_PORT failure.",
"eStrKey": "InvalidValue"
},
"GNMI_TABLE_WITH_VALID_CONFIG": {
"desc": "TABLE WITH VALID CONFIG."
}
}

View File

@ -0,0 +1,66 @@
{
"GNMI_TABLE_WITH_INCORRECT_CERT": {
"sonic-gnmi:sonic-gnmi": {
"sonic-gnmi:GNMI": {
"certs": {
"ca_crt": "abcd.config",
"server_crt": "a/b/c",
"server_key": "123"
},
"gnmi": {
"client_auth": "true",
"log_level": "2",
"port": "50052"
}
}
}
},
"GNMI_TABLE_WITH_INCORRECT_CLIENT_AUTH": {
"sonic-gnmi:sonic-gnmi": {
"sonic-gnmi:GNMI": {
"certs": {
"ca_crt": "/etc/sonic/credentials/dsmsroot.cer",
"server_crt": "/etc/sonic/credentials/server.cer",
"server_key": "/etc/sonic/credentials/server.key"
},
"gnmi": {
"client_auth": "up",
"log_level": "2",
"port": "50052"
}
}
}
},
"GNMI_TABLE_WITH_INCORRECT_PORT": {
"sonic-gnmi:sonic-gnmi": {
"sonic-gnmi:GNMI": {
"certs": {
"ca_crt": "/etc/sonic/credentials/dsmsroot.cer",
"server_crt": "/etc/sonic/credentials/server.cer",
"server_key": "/etc/sonic/credentials/server.key"
},
"gnmi": {
"client_auth": "true",
"log_level": "2",
"port": "abc"
}
}
}
},
"GNMI_TABLE_WITH_VALID_CONFIG": {
"sonic-gnmi:sonic-gnmi": {
"sonic-gnmi:GNMI": {
"certs": {
"ca_crt": "/etc/sonic/credentials/dsmsroot.cer",
"server_crt": "/etc/sonic/credentials/server.cer",
"server_key": "/etc/sonic/credentials/server.key"
},
"gnmi": {
"client_auth": "true",
"log_level": "2",
"port": "50052"
}
}
}
}
}

View File

@ -0,0 +1,78 @@
module sonic-gnmi {
yang-version 1.1;
namespace "http://github.com/sonic-net/sonic-gnmi";
prefix gnmi;
import ietf-inet-types {
prefix inet;
}
organization
"SONiC";
contact
"SONiC";
description "GNMI YANG Module for SONiC OS";
revision 2023-02-10 {
description "First Revision";
}
container sonic-gnmi {
container GNMI {
description "GNMI TABLE part of config_db.json";
container certs {
leaf ca_crt {
type string {
pattern '(/[a-zA-Z0-9_-]+)*/([a-zA-Z0-9_-]+).cer';
}
description "Local path for ca_crt.";
}
leaf server_crt {
type string {
pattern '(/[a-zA-Z0-9_-]+)*/([a-zA-Z0-9_-]+).cer';
}
description "Local path for server_crt.";
}
leaf server_key {
type string {
pattern '(/[a-zA-Z0-9_-]+)*/([a-zA-Z0-9_-]+).key';
}
description "Local path for server_key.";
}
}
container gnmi {
leaf client_auth {
type boolean;
description "Flag for requiring client auth.";
}
leaf log_level {
type uint8 {
range 0..100;
}
description "Log level for gnmi.";
}
leaf port {
type inet:port-number;
description "Port gnmi runs on.";
}
}
}
}
}