[yang] added mclag sonic yang (#7622)
#### How I did it Added mclag sonic yang file for the MCLAG enhancements as per HLD: Azure/SONiC#596 #### How to verify it try rest APIs #### Description for the changelog Added mclag sonic yang
This commit is contained in:
parent
2532d65660
commit
018a6495da
@ -122,7 +122,11 @@ 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-mclag.yang',
|
||||||
|
|
||||||
'./yang-models/sonic-vlan-sub-interface.yang',
|
'./yang-models/sonic-vlan-sub-interface.yang',
|
||||||
|
|
||||||
'./yang-models/sonic-warm-restart.yang',
|
'./yang-models/sonic-warm-restart.yang',
|
||||||
'./yang-models/sonic-lldp.yang',
|
'./yang-models/sonic-lldp.yang',
|
||||||
'./yang-models/sonic-scheduler.yang',
|
'./yang-models/sonic-scheduler.yang',
|
||||||
|
@ -93,6 +93,16 @@
|
|||||||
"tpid": "0x9200",
|
"tpid": "0x9200",
|
||||||
"mtu": "9100",
|
"mtu": "9100",
|
||||||
"lacp_key": "auto"
|
"lacp_key": "auto"
|
||||||
|
},
|
||||||
|
"PortChannel2": {
|
||||||
|
"admin_status": "up",
|
||||||
|
"min_links": "1",
|
||||||
|
"members": [
|
||||||
|
"Ethernet12"
|
||||||
|
],
|
||||||
|
"tpid": "0x9200",
|
||||||
|
"mtu": "9100",
|
||||||
|
"lacp_key": "auto"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"PORTCHANNEL_INTERFACE": {
|
"PORTCHANNEL_INTERFACE": {
|
||||||
@ -103,7 +113,8 @@
|
|||||||
},
|
},
|
||||||
"PORTCHANNEL_MEMBER": {
|
"PORTCHANNEL_MEMBER": {
|
||||||
"PortChannel0003|Ethernet1": {},
|
"PortChannel0003|Ethernet1": {},
|
||||||
"PortChannel0004|Ethernet2": {}
|
"PortChannel0004|Ethernet2": {},
|
||||||
|
"PortChannel2|Ethernet12": {}
|
||||||
},
|
},
|
||||||
"VLAN_INTERFACE": {
|
"VLAN_INTERFACE": {
|
||||||
"Vlan111": {
|
"Vlan111": {
|
||||||
@ -309,7 +320,17 @@
|
|||||||
"vlanid": "777",
|
"vlanid": "777",
|
||||||
"mtu": "9216",
|
"mtu": "9216",
|
||||||
"admin_status": "up"
|
"admin_status": "up"
|
||||||
|
},
|
||||||
|
"Vlan12": {
|
||||||
|
"description": "mclag session ve",
|
||||||
|
"dhcp_servers": [
|
||||||
|
"12.1.1.1"
|
||||||
|
],
|
||||||
|
"vlanid": "12",
|
||||||
|
"mtu": "9216",
|
||||||
|
"admin_status": "up"
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
"DEVICE_NEIGHBOR": {
|
"DEVICE_NEIGHBOR": {
|
||||||
"Ethernet112": {
|
"Ethernet112": {
|
||||||
@ -909,6 +930,9 @@
|
|||||||
},
|
},
|
||||||
"Vlan111|PortChannel0003": {
|
"Vlan111|PortChannel0003": {
|
||||||
"tagging_mode": "untagged"
|
"tagging_mode": "untagged"
|
||||||
|
},
|
||||||
|
"Vlan12|PortChannel2": {
|
||||||
|
"tagging_mode": "tagged"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"LOOPBACK_INTERFACE": {
|
"LOOPBACK_INTERFACE": {
|
||||||
@ -1197,6 +1221,7 @@
|
|||||||
"trap_group": "queue1_group1"
|
"trap_group": "queue1_group1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"AUTO_TECHSUPPORT": {
|
"AUTO_TECHSUPPORT": {
|
||||||
"GLOBAL": {
|
"GLOBAL": {
|
||||||
"state" : "enabled",
|
"state" : "enabled",
|
||||||
@ -1331,7 +1356,6 @@
|
|||||||
"type": "DWRR",
|
"type": "DWRR",
|
||||||
"weight": "20"
|
"weight": "20"
|
||||||
},
|
},
|
||||||
|
|
||||||
"TEST@1": {
|
"TEST@1": {
|
||||||
"cbs": "1024",
|
"cbs": "1024",
|
||||||
"cir": "1280000",
|
"cir": "1280000",
|
||||||
@ -1480,6 +1504,28 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
"MCLAG_DOMAIN": {
|
||||||
|
"123": {
|
||||||
|
"source_ip": "12.1.1.1",
|
||||||
|
"peer_ip": "12.1.1.2",
|
||||||
|
"peer_link": "PortChannel2",
|
||||||
|
"keepalive_interval": "1",
|
||||||
|
"session_timeout": "30"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MCLAG_INTERFACE": {
|
||||||
|
"123|PortChannel0004": {
|
||||||
|
"if_type": "PortChannel"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MCLAG_UNIQUE_IP": {
|
||||||
|
"Vlan12": {
|
||||||
|
"unique_ip": "enable"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
"MIRROR_SESSION": {
|
"MIRROR_SESSION": {
|
||||||
"erspan": {
|
"erspan": {
|
||||||
"dscp": "10",
|
"dscp": "10",
|
||||||
@ -1498,6 +1544,7 @@
|
|||||||
"Ethernet3",
|
"Ethernet3",
|
||||||
"Ethernet4"
|
"Ethernet4"
|
||||||
]
|
]
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"MCLAG_VALID_DOMAIN_CFG_TEST": {
|
||||||
|
"desc": "valid mclag configuration test"
|
||||||
|
},
|
||||||
|
"MCLAG_VALID_DOMAIN_PEERLINK_ETH_TEST": {
|
||||||
|
"desc": "valid mclag configuration test with peer link ethernet"
|
||||||
|
},
|
||||||
|
"MCLAG_INVALID_DOMAIN_IDS_TEST": {
|
||||||
|
"desc": "configure mclag domain id in range",
|
||||||
|
"eStr": "MCLAG Domain ID out of range"
|
||||||
|
},
|
||||||
|
"MCLAG_INVALID_KEEPALIVE_TEST": {
|
||||||
|
"desc": "configure mclag keepalive values in range",
|
||||||
|
"eStr" : "MCLAG Domain keepalive interval out of range"
|
||||||
|
},
|
||||||
|
"MCLAG_INVALID_SESSION_TIMEOUT_TEST": {
|
||||||
|
"desc": "configure mclag session timeout in range",
|
||||||
|
"eStr" : "MCLAG Domain session timeout out of range"
|
||||||
|
},
|
||||||
|
"MCLAG_INVALID_KEEPALIVE_MUST_COND_TEST": {
|
||||||
|
"desc": "Invalid session and keepalive multiplier",
|
||||||
|
"eStr" : "(keepalive interval * 3) <= session_timeout value"
|
||||||
|
},
|
||||||
|
"MCLAG_INTERFACE_DOMAIN_ABSENT_TEST": {
|
||||||
|
"desc": "mclag interface configured without domain",
|
||||||
|
"eStrKey" : "LeafRef"
|
||||||
|
},
|
||||||
|
"MCLAG_UNIQUE_IP_DOMAIN_ABSENT_TEST": {
|
||||||
|
"desc": "mclag unique ip configured without domain",
|
||||||
|
"eStr" : "mclag not configured"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,356 @@
|
|||||||
|
{
|
||||||
|
"MCLAG_VALID_DOMAIN_CFG_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
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"admin_status": "up",
|
||||||
|
"alias": "eth0",
|
||||||
|
"description": "Ethernet10",
|
||||||
|
"lanes": "65",
|
||||||
|
"mtu": 9000,
|
||||||
|
"name": "Ethernet10",
|
||||||
|
"speed": 25000
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sonic-portchannel:sonic-portchannel": {
|
||||||
|
"sonic-portchannel:PORTCHANNEL": {
|
||||||
|
"PORTCHANNEL_LIST": [
|
||||||
|
{
|
||||||
|
"admin_status": "up",
|
||||||
|
"members": [
|
||||||
|
"Ethernet0"
|
||||||
|
],
|
||||||
|
"min_links": "1",
|
||||||
|
"mtu": "9100",
|
||||||
|
"lacp_key": "auto",
|
||||||
|
"name": "PortChannel2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"admin_status": "up",
|
||||||
|
"members": [
|
||||||
|
"Ethernet10"
|
||||||
|
],
|
||||||
|
"min_links": "1",
|
||||||
|
"mtu": "9100",
|
||||||
|
"lacp_key": "auto",
|
||||||
|
"name": "PortChannel10"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"sonic-vlan:sonic-vlan": {
|
||||||
|
"sonic-vlan:VLAN": {
|
||||||
|
"VLAN_LIST": [
|
||||||
|
{
|
||||||
|
"name": "Vlan12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Vlan100"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sonic-vlan:VLAN_MEMBER": {
|
||||||
|
"VLAN_MEMBER_LIST": [
|
||||||
|
{
|
||||||
|
"port": "PortChannel10",
|
||||||
|
"tagging_mode": "tagged",
|
||||||
|
"name": "Vlan100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"port": "PortChannel2",
|
||||||
|
"tagging_mode": "tagged",
|
||||||
|
"name": "Vlan12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"port": "PortChannel2",
|
||||||
|
"tagging_mode": "tagged",
|
||||||
|
"name": "Vlan100"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sonic-vlan:VLAN_INTERFACE": {
|
||||||
|
"VLAN_INTERFACE_LIST": [
|
||||||
|
{
|
||||||
|
"name": "Vlan12"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"VLAN_INTERFACE_IPPREFIX_LIST": [
|
||||||
|
{
|
||||||
|
"family": "IPv4",
|
||||||
|
"ip-prefix": "12.1.1.1/24",
|
||||||
|
"scope": "global",
|
||||||
|
"name": "Vlan12"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sonic-mclag:sonic-mclag": {
|
||||||
|
"sonic-mclag:MCLAG_DOMAIN": {
|
||||||
|
"MCLAG_DOMAIN_LIST": [
|
||||||
|
{
|
||||||
|
"domain_id": "123",
|
||||||
|
"source_ip": "12.1.1.1",
|
||||||
|
"peer_ip" : "12.1.1.2",
|
||||||
|
"peer_link": "PortChannel2",
|
||||||
|
"keepalive_interval" : "1",
|
||||||
|
"session_timeout": "30"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sonic-mclag:MCLAG_INTERFACE": {
|
||||||
|
"MCLAG_INTERFACE_LIST": [
|
||||||
|
{
|
||||||
|
"domain_id": "123",
|
||||||
|
"if_name" : "PortChannel10",
|
||||||
|
"if_type" : "Portchannel"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MCLAG_VALID_DOMAIN_PEERLINK_ETH_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
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"admin_status": "up",
|
||||||
|
"alias": "eth4",
|
||||||
|
"description": "Ethernet4",
|
||||||
|
"lanes": "65",
|
||||||
|
"mtu": 9000,
|
||||||
|
"name": "Ethernet4",
|
||||||
|
"speed": 25000
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sonic-portchannel:sonic-portchannel": {
|
||||||
|
"sonic-portchannel:PORTCHANNEL": {
|
||||||
|
"PORTCHANNEL_LIST": [
|
||||||
|
{
|
||||||
|
"admin_status": "up",
|
||||||
|
"members": [
|
||||||
|
"Ethernet0"
|
||||||
|
],
|
||||||
|
"min_links": "1",
|
||||||
|
"mtu": "9100",
|
||||||
|
"lacp_key": "auto",
|
||||||
|
"name": "PortChannel2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sonic-vlan:sonic-vlan": {
|
||||||
|
"sonic-vlan:VLAN": {
|
||||||
|
"VLAN_LIST": [
|
||||||
|
{
|
||||||
|
"name": "Vlan12"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sonic-vlan:VLAN_MEMBER": {
|
||||||
|
"VLAN_MEMBER_LIST": [
|
||||||
|
{
|
||||||
|
"port": "PortChannel2",
|
||||||
|
"tagging_mode": "tagged",
|
||||||
|
"name": "Vlan12"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sonic-vlan:VLAN_INTERFACE": {
|
||||||
|
"VLAN_INTERFACE_LIST": [
|
||||||
|
{
|
||||||
|
"name": "Vlan12"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"VLAN_INTERFACE_IPPREFIX_LIST": [
|
||||||
|
{
|
||||||
|
"family": "IPv4",
|
||||||
|
"ip-prefix": "12.1.1.1/24",
|
||||||
|
"scope": "global",
|
||||||
|
"name": "Vlan12"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sonic-mclag:sonic-mclag": {
|
||||||
|
"sonic-mclag:MCLAG_DOMAIN": {
|
||||||
|
"MCLAG_DOMAIN_LIST": [
|
||||||
|
{
|
||||||
|
"domain_id": "123",
|
||||||
|
"source_ip": "12.1.1.1",
|
||||||
|
"peer_ip" : "12.1.1.2",
|
||||||
|
"peer_link": "Ethernet4",
|
||||||
|
"keepalive_interval" : "1",
|
||||||
|
"session_timeout": "30"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MCLAG_INVALID_DOMAIN_IDS_TEST": {
|
||||||
|
"sonic-mclag:sonic-mclag": {
|
||||||
|
"sonic-mclag:MCLAG_DOMAIN": {
|
||||||
|
"MCLAG_DOMAIN_LIST": [
|
||||||
|
{
|
||||||
|
"domain_id": "0",
|
||||||
|
"source_ip": "1.1.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain_id": "4096",
|
||||||
|
"source_ip": "1.1.1.1"
|
||||||
|
}
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MCLAG_INVALID_KEEPALIVE_TEST": {
|
||||||
|
"sonic-mclag:sonic-mclag": {
|
||||||
|
"sonic-mclag:MCLAG_DOMAIN": {
|
||||||
|
"MCLAG_DOMAIN_LIST": [
|
||||||
|
{
|
||||||
|
"domain_id": "123",
|
||||||
|
"source_ip": "1.1.1.1",
|
||||||
|
"keepalive_interval" : "0",
|
||||||
|
"session_timeout": "30"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain_id": "123",
|
||||||
|
"source_ip": "1.1.1.1",
|
||||||
|
"keepalive_interval" : "61",
|
||||||
|
"session_timeout": "30"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MCLAG_INVALID_SESSION_TIMEOUT_TEST": {
|
||||||
|
"sonic-mclag:sonic-mclag": {
|
||||||
|
"sonic-mclag:MCLAG_DOMAIN": {
|
||||||
|
"MCLAG_DOMAIN_LIST": [
|
||||||
|
{
|
||||||
|
"domain_id": "123",
|
||||||
|
"source_ip": "1.1.1.1",
|
||||||
|
"keepalive_interval" : "1",
|
||||||
|
"session_timeout": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain_id": "123",
|
||||||
|
"source_ip": "1.1.1.1",
|
||||||
|
"keepalive_interval" : "1",
|
||||||
|
"session_timeout": "3601"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MCLAG_INVALID_KEEPALIVE_MUST_COND_TEST": {
|
||||||
|
"sonic-mclag:sonic-mclag": {
|
||||||
|
"sonic-mclag:MCLAG_DOMAIN": {
|
||||||
|
"MCLAG_DOMAIN_LIST": [
|
||||||
|
{
|
||||||
|
"domain_id": "123",
|
||||||
|
"source_ip": "1.1.1.1",
|
||||||
|
"keepalive_interval" : "40",
|
||||||
|
"session_timeout": "30"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MCLAG_INTERFACE_DOMAIN_ABSENT_TEST": {
|
||||||
|
"sonic-mclag:sonic-mclag": {
|
||||||
|
"sonic-mclag:MCLAG_INTERFACE": {
|
||||||
|
"MCLAG_INTERFACE_LIST": [
|
||||||
|
{
|
||||||
|
"domain_id": "1001",
|
||||||
|
"if_name" : "PortChannel10",
|
||||||
|
"if_type" : "Portchannel"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain_id": "2001",
|
||||||
|
"if_name" : "PortChannel20",
|
||||||
|
"if_type" : "Portchannel"
|
||||||
|
}
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MCLAG_UNIQUE_IP_DOMAIN_ABSENT_TEST": {
|
||||||
|
"sonic-port:sonic-port": {
|
||||||
|
"sonic-port:PORT": {
|
||||||
|
"PORT_LIST": [
|
||||||
|
{
|
||||||
|
"admin_status": "up",
|
||||||
|
"alias": "eth0",
|
||||||
|
"description": "Ethernet12",
|
||||||
|
"lanes": "65",
|
||||||
|
"mtu": 9000,
|
||||||
|
"name": "Ethernet12",
|
||||||
|
"speed": 25000
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sonic-vlan:sonic-vlan": {
|
||||||
|
"sonic-vlan:VLAN": {
|
||||||
|
"VLAN_LIST": [
|
||||||
|
{
|
||||||
|
"name": "Vlan12"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sonic-vlan:VLAN_MEMBER": {
|
||||||
|
"VLAN_MEMBER_LIST": [
|
||||||
|
{
|
||||||
|
"port": "Ethernet12",
|
||||||
|
"tagging_mode": "tagged",
|
||||||
|
"name": "Vlan12"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sonic-vlan:VLAN_INTERFACE": {
|
||||||
|
"VLAN_INTERFACE_LIST": [
|
||||||
|
{
|
||||||
|
"name": "Vlan12"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"sonic-mclag:sonic-mclag": {
|
||||||
|
"sonic-mclag:MCLAG_UNIQUE_IP": {
|
||||||
|
"MCLAG_UNIQUE_IP_LIST": [
|
||||||
|
{
|
||||||
|
"if_name" : "Vlan12",
|
||||||
|
"unique_ip": "enable"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
172
src/sonic-yang-models/yang-models/sonic-mclag.yang
Normal file
172
src/sonic-yang-models/yang-models/sonic-mclag.yang
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
module sonic-mclag {
|
||||||
|
namespace "http://github.com/Azure/sonic-mclag";
|
||||||
|
prefix smclag;
|
||||||
|
yang-version 1.1;
|
||||||
|
|
||||||
|
|
||||||
|
import ietf-yang-types {
|
||||||
|
prefix yang;
|
||||||
|
}
|
||||||
|
|
||||||
|
import ietf-inet-types {
|
||||||
|
prefix inet;
|
||||||
|
}
|
||||||
|
|
||||||
|
import sonic-types {
|
||||||
|
prefix stypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
import sonic-port {
|
||||||
|
prefix prt;
|
||||||
|
}
|
||||||
|
|
||||||
|
import sonic-portchannel {
|
||||||
|
prefix lag;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Comment sonic-vlan import here until libyang back-links issue is resolved for VLAN leaf reference.
|
||||||
|
//import sonic-vlan {
|
||||||
|
// prefix vlan;
|
||||||
|
//}
|
||||||
|
|
||||||
|
organization
|
||||||
|
"SONiC";
|
||||||
|
|
||||||
|
contact
|
||||||
|
"SONiC";
|
||||||
|
|
||||||
|
description
|
||||||
|
"SONIC MCLAG";
|
||||||
|
|
||||||
|
revision 2019-10-01 {
|
||||||
|
description
|
||||||
|
"Initial revision.";
|
||||||
|
}
|
||||||
|
|
||||||
|
container sonic-mclag {
|
||||||
|
|
||||||
|
container MCLAG_DOMAIN {
|
||||||
|
|
||||||
|
list MCLAG_DOMAIN_LIST {
|
||||||
|
key "domain_id";
|
||||||
|
max-elements 1;
|
||||||
|
|
||||||
|
leaf domain_id {
|
||||||
|
description "MCLAG Domain ID";
|
||||||
|
type uint16 {
|
||||||
|
range "1..4095" {
|
||||||
|
error-message "MCLAG Domain ID out of range";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf source_ip {
|
||||||
|
type inet:ipv4-address;
|
||||||
|
description "MCLAG Domain source ip address for session between MCLAG Peers";
|
||||||
|
}
|
||||||
|
leaf peer_ip {
|
||||||
|
type inet:ipv4-address;
|
||||||
|
description "MCLAG Domain peer ip address for session between MCLAG Peers";
|
||||||
|
}
|
||||||
|
leaf peer_link {
|
||||||
|
description "MCLAG Domain peer link, data backup path link between MCLAG peers";
|
||||||
|
type union {
|
||||||
|
type leafref {
|
||||||
|
path "/prt:sonic-port/prt:PORT/prt:PORT_LIST/prt:name";
|
||||||
|
}
|
||||||
|
type leafref {
|
||||||
|
path "/lag:sonic-portchannel/lag:PORTCHANNEL/lag:PORTCHANNEL_LIST/lag:name";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
leaf keepalive_interval {
|
||||||
|
description "keepalive interval in seconds for MCLAG session between peers";
|
||||||
|
type uint16 {
|
||||||
|
range "1..60" {
|
||||||
|
error-message "MCLAG Domain keepalive interval out of range";
|
||||||
|
error-app-tag keepalive_interval-invalid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default 1;
|
||||||
|
}
|
||||||
|
leaf session_timeout {
|
||||||
|
description "Session timeout in seconds for MCLAG session between peers";
|
||||||
|
type uint16 {
|
||||||
|
range "1..3600" {
|
||||||
|
error-message "MCLAG Domain session timeout out of range";
|
||||||
|
error-app-tag session_timeout-invalid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default 30;
|
||||||
|
}
|
||||||
|
must "(keepalive_interval * 3) <= session_timeout" {
|
||||||
|
error-message "(keepalive interval * 3) <= session_timeout value";
|
||||||
|
error-app-tag keepalive_session_multiplier-invalid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
container MCLAG_INTERFACE {
|
||||||
|
|
||||||
|
list MCLAG_INTERFACE_LIST {
|
||||||
|
description "List of MCLAG interfaces";
|
||||||
|
key "domain_id if_name";
|
||||||
|
|
||||||
|
leaf domain_id {
|
||||||
|
description "List of MCLAG interfaces";
|
||||||
|
type leafref {
|
||||||
|
path "../../../MCLAG_DOMAIN/MCLAG_DOMAIN_LIST/domain_id";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf if_name {
|
||||||
|
description "MCLAG interface name";
|
||||||
|
type leafref {
|
||||||
|
path "/lag:sonic-portchannel/lag:PORTCHANNEL/lag:PORTCHANNEL_LIST/lag:name";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
leaf if_type {
|
||||||
|
description "MCLAG interface type, placeholder field to create instance";
|
||||||
|
type string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
container MCLAG_UNIQUE_IP {
|
||||||
|
|
||||||
|
list MCLAG_UNIQUE_IP_LIST {
|
||||||
|
description "List of VLANs allowed to have unique ip addresses on MCLAG Peer nodes";
|
||||||
|
key "if_name";
|
||||||
|
|
||||||
|
must "count(../../MCLAG_DOMAIN/MCLAG_DOMAIN_LIST/domain_id) != 0" {
|
||||||
|
error-message "mclag not configured";
|
||||||
|
error-app-tag mclag-invalid;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Comment VLAN leaf reference here until libyang back-links issue is resolved and use VLAN string pattern
|
||||||
|
//must
|
||||||
|
// "count(/vlan:sonic-vlan/vlan:VLAN_INTERFACE/vlan:VLAN_INTERFACE_IPPREFIX_LIST[vlan:name=current()/if_name]) = 0" {
|
||||||
|
// error-message "remove configured ip/v6 address and reconfigure after separate ip configuration";
|
||||||
|
// error-app-tag vlan-intf-ip-invalid;
|
||||||
|
// }
|
||||||
|
|
||||||
|
leaf if_name {
|
||||||
|
description "Vlan interface name on which MCLAG unique ip config is done";
|
||||||
|
// Comment VLAN leaf reference here until libyang back-links issue is resolved and use VLAN string pattern
|
||||||
|
//type leafref {
|
||||||
|
// path "/vlan:sonic-vlan/vlan:VLAN/vlan:VLAN_LIST/vlan:name";
|
||||||
|
//}
|
||||||
|
type string {
|
||||||
|
pattern 'Vlan([0-9]{1,3}|[1-3][0-9]{3}|[4][0][0-8][0-9]|[4][0][9][0-4])';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
leaf unique_ip {
|
||||||
|
description "unique ip enable, by default disable";
|
||||||
|
type enumeration {
|
||||||
|
enum enable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user