[yang]: SONiC Yang model support for LLDP (#8120)
This commit is contained in:
parent
48da159616
commit
92d4bfef10
@ -72,6 +72,7 @@ setup(
|
|||||||
'./yang-models/sonic-versions.yang',
|
'./yang-models/sonic-versions.yang',
|
||||||
'./yang-models/sonic-vlan.yang',
|
'./yang-models/sonic-vlan.yang',
|
||||||
'./yang-models/sonic-vrf.yang',
|
'./yang-models/sonic-vrf.yang',
|
||||||
|
'./yang-models/sonic-lldp.yang',
|
||||||
'./yang-models/sonic_yang_tree']),
|
'./yang-models/sonic_yang_tree']),
|
||||||
],
|
],
|
||||||
zip_safe=False,
|
zip_safe=False,
|
||||||
|
@ -1050,6 +1050,24 @@
|
|||||||
"trap_ids": "ip2me",
|
"trap_ids": "ip2me",
|
||||||
"trap_group": "queue1_group1"
|
"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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
28
src/sonic-yang-models/tests/yang_model_tests/tests/lldp.json
Normal file
28
src/sonic-yang-models/tests/yang_model_tests/tests/lldp.json
Normal 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"]
|
||||||
|
}
|
||||||
|
}
|
@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
155
src/sonic-yang-models/yang-models/sonic-lldp.yang
Normal file
155
src/sonic-yang-models/yang-models/sonic-lldp.yang
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user