[yang]: SONiC Yang model support for LLDP (#8120)

This commit is contained in:
Praveen Madhusudhana 2021-08-26 23:00:59 +05:30 committed by GitHub
parent 48da159616
commit 92d4bfef10
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 368 additions and 0 deletions

View File

@ -72,6 +72,7 @@ setup(
'./yang-models/sonic-versions.yang',
'./yang-models/sonic-vlan.yang',
'./yang-models/sonic-vrf.yang',
'./yang-models/sonic-lldp.yang',
'./yang-models/sonic_yang_tree']),
],
zip_safe=False,

View File

@ -1050,6 +1050,24 @@
"trap_ids": "ip2me",
"trap_group": "queue1_group1"
}
},
"LLDP": {
"GLOBAL": {
"mode": "TRANSMIT",
"enabled": "true",
"hello_time": "12",
"multiplier": "5",
"supp_mgmt_address_tlv": "true",
"supp_system_capabilities_tlv": "false",
"system_name": "sonic",
"system_description": "sonic-system"
}
},
"LLDP_PORT": {
"Ethernet0": {
"mode": "TRANSMIT",
"enabled": "true"
}
}
},

View File

@ -0,0 +1,28 @@
{
"LLDP_GLOBAL_TEST": {
"desc": "LLDP test global LLDP table"
},
"LLDP_GLOBAL_TEST_INVALID_HELLO": {
"desc": "LLDP test global table with invalid hello value",
"eStrKey" : "InvalidValue",
"eStr": ["hello_time"]
},
"LLDP_GLOBAL_TEST_INVALID_MULTIPLIER": {
"desc": "LLDP test global table with invalid multiplier value",
"eStrKey" : "InvalidValue",
"eStr": ["multiplier"]
},
"LLDP_PORT_TEST": {
"desc": "LLDP test LLDP port table"
},
"LLDP_PORT_TEST_INVALID_IFNAME": {
"desc": "LLDP test port table with invalid ifname",
"eStrKey" : "LeafRef",
"eStr": ["Eth"]
},
"LLDP_PORT_TEST_INVALID_MODE": {
"desc": "LLDP test port table with invalid mode",
"eStrKey" : "InvalidValue",
"eStr": ["mode"]
}
}

View File

@ -0,0 +1,166 @@
{
"LLDP_GLOBAL_TEST": {
"sonic-lldp:sonic-lldp": {
"sonic-lldp:LLDP": {
"sonic-lldp:GLOBAL": {
"mode": "TRANSMIT",
"enabled": "true",
"hello_time": "20",
"multiplier": "5",
"supp_mgmt_address_tlv": "true",
"supp_system_capabilities_tlv": "false",
"system_name": "sonic",
"system_description": "sonic-system"
}
}
}
},
"LLDP_GLOBAL_TEST_INVALID_ID": {
"sonic-lldp:sonic-lldp": {
"sonic-lldp:LLDP": {
"sonic-lldp:GLOBAL": {
"mode": "TRANSMIT",
"enabled": "true",
"hello_time": "10",
"multiplier": "5",
"supp_mgmt_address_tlv": "true",
"supp_system_capabilities_tlv": "false",
"system_name": "sonic",
"system_description": "sonic-system"
}
}
}
},
"LLDP_GLOBAL_TEST_INVALID_HELLO": {
"sonic-lldp:sonic-lldp": {
"sonic-lldp:LLDP": {
"sonic-lldp:GLOBAL": {
"mode": "TRANSMIT",
"enabled": "true",
"hello_time": "test",
"multiplier": "5",
"supp_mgmt_address_tlv": "true",
"supp_system_capabilities_tlv": "false",
"system_name": "sonic",
"system_description": "sonic-system"
}
}
}
},
"LLDP_GLOBAL_TEST_INVALID_MULTIPLIER": {
"sonic-lldp:sonic-lldp": {
"sonic-lldp:LLDP": {
"sonic-lldp:GLOBAL": {
"mode": "TRANSMIT",
"enabled": "true",
"hello_time": "10",
"multiplier": "xyz",
"supp_mgmt_address_tlv": "true",
"supp_system_capabilities_tlv": "false",
"system_name": "sonic",
"system_description": "sonic-system"
}
}
}
},
"LLDP_GLOBAL_TEST_DEFAULT_SUPP_MGMT_ADDR_TLV": {
"sonic-lldp:sonic-lldp": {
"sonic-lldp:LLDP": {
"sonic-lldp:GLOBAL": {
"mode": "TRANSMIT",
"enabled": "true",
"hello_time": "10",
"multiplier": "5",
"supp_mgmt_address_tlv": "false",
"supp_system_capabilities_tlv": "false",
"system_name": "sonic",
"system_description": "sonic-system"
}
}
}
},
"LLDP_PORT_TEST": {
"sonic-port:sonic-port": {
"sonic-port:PORT": {
"PORT_LIST": [
{
"admin_status": "up",
"alias": "eth0",
"description": "Ethernet0",
"lanes": "65",
"mtu": 9000,
"name": "Ethernet0",
"speed": 25000
}
]
}
},
"sonic-lldp:sonic-lldp": {
"sonic-lldp:LLDP_PORT": {
"LLDP_PORT_LIST": [
{
"ifname": "Ethernet0",
"mode": "TRANSMIT",
"enabled": "true"
}
]
}
}
},
"LLDP_PORT_TEST_INVALID_IFNAME": {
"sonic-port:sonic-port": {
"sonic-port:PORT": {
"PORT_LIST": [
{
"admin_status": "up",
"alias": "eth0",
"description": "Ethernet0",
"lanes": "65",
"mtu": 9000,
"name": "Ethernet0",
"speed": 25000
}
]
}
},
"sonic-lldp:sonic-lldp": {
"sonic-lldp:LLDP_PORT": {
"LLDP_PORT_LIST": [
{
"ifname": "Eth",
"mode": "TRANSMIT",
"enabled": "true"
}
]
}
}
},
"LLDP_PORT_TEST_INVALID_MODE": {
"sonic-port:sonic-port": {
"sonic-port:PORT": {
"PORT_LIST": [
{
"admin_status": "up",
"alias": "eth0",
"description": "Ethernet0",
"lanes": "65",
"mtu": 9000,
"name": "Ethernet0",
"speed": 25000
}
]
}
},
"sonic-lldp:sonic-lldp": {
"sonic-lldp:LLDP_PORT": {
"LLDP_PORT_LIST": [
{
"ifname": "Ethernet0",
"mode": "TRANSMITTING",
"enabled": "true"
}
]
}
}
}
}

View File

@ -0,0 +1,155 @@
module sonic-lldp {
namespace "http://github.com/Azure/sonic-lldp";
prefix slldp;
yang-version 1.1;
import sonic-port {
prefix prt;
}
import sonic-extension {
prefix sonic-ext;
}
organization
"SONiC";
contact
"SONiC";
description
"SONiC LLDP yang model";
revision 2021-07-08 {
description
"Initial revision.";
}
grouping lldp_mode_config {
leaf enabled {
type boolean;
description
"Enable/Disable LLDP";
}
leaf mode {
type enumeration {
enum RECEIVE;
enum TRANSMIT;
}
description
"RX/TX mode for LLDP frames";
}
}
container sonic-lldp {
container LLDP {
container GLOBAL {
leaf hello_time {
type uint8 {
range "5..254" {
error-message "Invalid hello timer value.";
}
}
default 30;
units seconds;
description
"It is the time interval at which periodic hellos are
exchanged. Default is 30 seconds";
}
leaf multiplier {
type uint8 {
range "1..10" {
error-message "Invalid LLDP multiplier value.";
}
}
default 4;
description
"This multiplier value is used to determine the timeout
interval (i.e. hello-time x multiplier value) after
which LLDP neighbor entry is deleted.";
}
leaf system_name {
type string;
description
"System administratively assigned name";
}
leaf system_description {
type string;
description
"System description";
}
leaf supp_mgmt_address_tlv {
type boolean;
default false;
description
"Suppress sending of Management Address TLV in LLDP frames";
}
leaf supp_system_capabilities_tlv {
type boolean;
default false;
description
"Suppress sending of System Capabilities TLV in LLDP frames";
}
leaf enabled {
type boolean;
default true;
description
"Enable/Disable LLDP";
}
leaf mode {
type enumeration {
enum RECEIVE;
enum TRANSMIT;
}
description
"RX/TX mode for LLDP frames";
}
//uses lldp_mode_config;
}
}
container LLDP_PORT {
list LLDP_PORT_LIST {
key "ifname";
leaf ifname {
type leafref {
path "/prt:sonic-port/prt:PORT/prt:PORT_LIST/prt:name";
}
description
"Reference of port on which LLDP to be configured.";
}
leaf enabled {
type boolean;
default true;
description
"Enable/Disable LLDP";
}
leaf mode {
type enumeration {
enum RECEIVE;
enum TRANSMIT;
}
description
"RX/TX mode for LLDP frames";
}
//uses lldp_mode_config;
}
}
}
}