Skip to content

Commit

Permalink
[yang]: SONiC Yang model for DHCP-Relay parameters (#8946)
Browse files Browse the repository at this point in the history
SONiC Yang model for DHCP-Relay parameters

What I did
Added DHCPv6 Servers.
Tables: VLAN, DHCP_RELAY.

How I did it
Defined Yang model for Relay based on Guideline doc:
https://github.com/Azure/SONiC/blob/master/doc/mgmt/SONiC_YANG_Model_Guidelines.md

How to verify it
Added test cases to verify it.

Signed-off-by: Akhilesh Samineni [email protected]
  • Loading branch information
AkhileshSamineni authored Nov 4, 2021
1 parent fed19e3 commit 2c801ef
Show file tree
Hide file tree
Showing 8 changed files with 314 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/sonic-yang-models/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
'./yang-models/sonic-crm.yang',
'./yang-models/sonic-device_metadata.yang',
'./yang-models/sonic-device_neighbor.yang',
'./yang-models/sonic-dhcpv6-relay.yang',
'./yang-models/sonic-extension.yang',
'./yang-models/sonic-flex_counter.yang',
'./yang-models/sonic-feature.yang',
Expand Down
21 changes: 20 additions & 1 deletion src/sonic-yang-models/tests/files/sample_config_db.json
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,9 @@
"dhcp_servers": [
"10.222.72.116"
],
"dhcpv6_servers": [
"2a04:5555:41::11"
],
"vlanid": "111",
"mtu": "9216",
"admin_status": "up"
Expand All @@ -229,6 +232,9 @@
"dhcp_servers": [
"10.222.72.116"
],
"dhcpv6_servers": [
"2a04:5555:41::11"
],
"vlanid": "777",
"mtu": "9216",
"admin_status": "up"
Expand Down Expand Up @@ -1139,7 +1145,20 @@
"state": "enabled"
}
},

"DHCP_RELAY": {
"Vlan111": {
"dhcpv6_servers": [
"2a04:5555:41::11"
],
"rfc6939_support": "true"
},
"Vlan777": {
"dhcpv6_servers": [
"2a04:5555:41::11"
],
"rfc6939_support": "true"
}
},
"SCHEDULER": {
"TEST@0": {
"cbs": "256",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"DHCPV6_SERVER_INCORRECT_FORMAT": {
"desc": "Add dhcpv6_server which is not in correct ipv6-address format.",
"eStrKey" : "Pattern"
},
"DHCPV6_SERVER_VALID_FORMAT": {
"desc": "Add dhcpv6_server in correct format."
}
}
10 changes: 10 additions & 0 deletions src/sonic-yang-models/tests/yang_model_tests/tests/vlan.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
"eStrKey" : "InvalidValue",
"eStr": ["dhcp_servers"]
},
"DHCPV6_SERVER_INCORRECT_FORMAT": {
"desc": "Add dhcpv6_server which is not in correct ipv6-address format.",
"eStrKey" : "Pattern"
},
"VLAN_WITH_NON_EXIST_PORT": {
"desc": "Configure a member port in VLAN_MEMBER table which does not exist.",
"eStrKey" : "InvalidValue"
Expand All @@ -43,5 +47,11 @@
},
"VLAN_INTERFACE_VALID_NAT_ZONE_RANGE": {
"desc": "Configure valid value for nat zone."
},
"DHCP_SERVER_VALID_FORMAT": {
"desc": "Add dhcp_server in correct format."
},
"DHCPV6_SERVER_VALID_FORMAT": {
"desc": "Add dhcpv6_server in correct format."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
{
"DHCPV6_SERVER_INCORRECT_FORMAT": {
"sonic-dhcpv6-relay:sonic-dhcpv6-relay": {
"sonic-dhcpv6-relay:DHCP_RELAY": {
"DHCP_RELAY_LIST": [
{
"dhcpv6_servers": [
"2001:1:2"
],
"name": "Vlan500"
}
]
}
}
},
"DHCPV6_SERVER_VALID_FORMAT": {
"sonic-port:sonic-port": {
"sonic-port:PORT": {
"PORT_LIST": [
{
"admin_status": "up",
"alias": "eth0",
"description": "Ethernet0",
"mtu": 9000,
"lanes": "1",
"name": "Ethernet0",
"speed": 25000
}
]
}
},
"sonic-vlan:sonic-vlan": {
"sonic-vlan:VLAN": {
"VLAN_LIST": [
{
"admin_status": "up",
"description": "v6server_vlan",
"dhcpv6_servers": [
"2001:1::2"
],
"mtu": "9216",
"name": "Vlan400"
}
]
},
"sonic-vlan:VLAN_MEMBER": {
"VLAN_MEMBER_LIST": [
{
"port": "Ethernet0",
"tagging_mode": "tagged",
"name": "Vlan400"
}
]
},
"sonic-vlan:VLAN_INTERFACE": {
"VLAN_INTERFACE_IPPREFIX_LIST": [
{
"family": "IPv6",
"ip-prefix": "2002::1/64",
"scope": "global",
"name": "Vlan400"
}
],
"VLAN_INTERFACE_LIST": [
{
"name": "Vlan400"
}
]
}
},
"sonic-dhcpv6-relay:sonic-dhcpv6-relay": {
"sonic-dhcpv6-relay:DHCP_RELAY": {
"DHCP_RELAY_LIST": [
{
"dhcpv6_servers": [
"2001:1::2"
],
"rfc6939_support": "true",

"name": "Vlan400"
}
]
}
}
}
}
129 changes: 129 additions & 0 deletions src/sonic-yang-models/tests/yang_model_tests/tests_config/vlan.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,23 @@
}
}
},
"DHCPV6_SERVER_INCORRECT_FORMAT": {
"sonic-vlan:sonic-vlan": {
"sonic-vlan:VLAN": {
"VLAN_LIST": [
{
"admin_status": "up",
"description": "v6server_vlan",
"dhcpv6_servers": [
"2001:1:2"
],
"mtu": "9216",
"name": "Vlan500"
}
]
}
}
},
"TAGGING_MODE_WRONG_VALUE": {
"sonic-port:sonic-port": {
"sonic-port:PORT": {
Expand Down Expand Up @@ -367,5 +384,117 @@
]
}
}
},
"DHCP_SERVER_VALID_FORMAT": {
"sonic-port:sonic-port": {
"sonic-port:PORT": {
"PORT_LIST": [
{
"admin_status": "up",
"alias": "eth0",
"description": "Ethernet0",
"mtu": 9000,
"lanes": "1",
"name": "Ethernet0",
"speed": 25000
}
]
}
},
"sonic-vlan:sonic-vlan": {
"sonic-vlan:VLAN": {
"VLAN_LIST": [
{
"admin_status": "up",
"description": "server_vlan",
"dhcp_servers": [
"10.186.72.10"
],
"mtu": "9216",
"name": "Vlan300"
}
]
},
"sonic-vlan:VLAN_MEMBER": {
"VLAN_MEMBER_LIST": [
{
"port": "Ethernet0",
"tagging_mode": "tagged",
"name": "Vlan300"
}
]
},
"sonic-vlan:VLAN_INTERFACE": {
"VLAN_INTERFACE_IPPREFIX_LIST": [
{
"family": "IPv4",
"ip-prefix": "20.0.0.1/24",
"scope": "global",
"name": "Vlan300"
}
],
"VLAN_INTERFACE_LIST": [
{
"name": "Vlan300"
}
]
}
}
},
"DHCPV6_SERVER_VALID_FORMAT": {
"sonic-port:sonic-port": {
"sonic-port:PORT": {
"PORT_LIST": [
{
"admin_status": "up",
"alias": "eth0",
"description": "Ethernet0",
"mtu": 9000,
"lanes": "1",
"name": "Ethernet0",
"speed": 25000
}
]
}
},
"sonic-vlan:sonic-vlan": {
"sonic-vlan:VLAN": {
"VLAN_LIST": [
{
"admin_status": "up",
"description": "v6server_vlan",
"dhcpv6_servers": [
"2001:1::2"
],
"mtu": "9216",
"name": "Vlan400"
}
]
},
"sonic-vlan:VLAN_MEMBER": {
"VLAN_MEMBER_LIST": [
{
"port": "Ethernet0",
"tagging_mode": "tagged",
"name": "Vlan400"
}
]
},
"sonic-vlan:VLAN_INTERFACE": {
"VLAN_INTERFACE_IPPREFIX_LIST": [
{
"family": "IPv6",
"ip-prefix": "2002::1/64",
"scope": "global",
"name": "Vlan400"
}
],
"VLAN_INTERFACE_LIST": [
{
"name": "Vlan400"
}
]
}
}
}
}
53 changes: 53 additions & 0 deletions src/sonic-yang-models/yang-models/sonic-dhcpv6-relay.yang
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
module sonic-dhcpv6-relay {

namespace "http://github.com/Azure/sonic-dhcpv6-relay";

prefix sdhcpv6relay;

yang-version 1.1;

import ietf-inet-types {
prefix inet;
}

organization "SONiC";

contact "SONiC";

description "DHCPv6 Relay yang Module for SONiC OS";

revision 2021-10-30 {
description "First Revision";
}

container sonic-dhcpv6-relay {

container DHCP_RELAY {

description "DHCP_RELAY part of config_db.json";

list DHCP_RELAY_LIST {

key "name";

leaf name {
type string;
}

leaf-list dhcpv6_servers {
description "Configure the dhcp v6 servers";

This comment has been minimized.

Copy link
@praveen-li

praveen-li Nov 19, 2021

Member

TAB and SPACE is broken here.

type inet:ipv6-address;
}

leaf rfc6939_support {
description "Set rfc6939 for the relay";
type boolean;
}
}
/* end of VLAN_LIST */

This comment has been minimized.

Copy link
@praveen-li

praveen-li Nov 20, 2021

Member

/* end of DHCP_RELAY_LIST */

}
/* end of container DHCP_RELAY */
}
/* end of container sonic-dhcpv6-relay */
}
/* end of module sonic-dhcpv6-relay */
6 changes: 6 additions & 0 deletions src/sonic-yang-models/yang-models/sonic-vlan.yang
Original file line number Diff line number Diff line change
Expand Up @@ -164,9 +164,15 @@ module sonic-vlan {
}

leaf-list dhcp_servers {
description "Configure the dhcp v4 servers";
type inet:ip-address;
}

leaf-list dhcpv6_servers {
description "Configure the dhcp v6 servers";
type inet:ipv6-address;
}

leaf mtu {
type uint16 {
range 1..9216;
Expand Down

0 comments on commit 2c801ef

Please sign in to comment.