diff --git a/src/sonic-yang-models/doc/Configuration.md b/src/sonic-yang-models/doc/Configuration.md index 4199a36daef..73afc1c85a8 100644 --- a/src/sonic-yang-models/doc/Configuration.md +++ b/src/sonic-yang-models/doc/Configuration.md @@ -26,7 +26,8 @@ Table of Contents * [Data Plane L3 Interfaces](#data-plane-l3-interfaces) * [DEFAULT_LOSSLESS_BUFFER_PARAMETER](#DEFAULT_LOSSLESS_BUFFER_PARAMETER) * [Device Metadata](#device-metadata) - * [Device neighbor metada](#device-neighbor-metada) + * [Device neighbor metada](#device-neighbor-metada) + * [DHCP_RELAY](#dhcp_relay) * [DSCP_TO_TC_MAP](#dscp_to_tc_map) * [FG_NHG](#fg_nhg) * [FG_NHG_MEMBER](#fg_nhg_member) @@ -894,6 +895,22 @@ instance is supported in SONiC. ``` +### DHCP_RELAY + +``` +{ +"DHCP_RELAY": { + "dhcpv6_servers": [ + "fc02:2000::1", + "fc02:2000::2", + "fc02:2000::3", + "fc02:2000::4" + ], + "rfc6939_support": "true", + "interface_id": "true" +} + +``` ### DSCP_TO_TC_MAP ``` diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 4caf93abb66..e3f08faf13e 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -1805,13 +1805,15 @@ "dhcpv6_servers": [ "2a04:5555:41::11" ], - "rfc6939_support": "true" + "rfc6939_support": "true", + "interface_id": "true" }, "Vlan777": { "dhcpv6_servers": [ "2a04:5555:41::11" ], - "rfc6939_support": "true" + "rfc6939_support": "true", + "interface_id": "true" } }, "SCHEDULER": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/dhcpv6_relay.json b/src/sonic-yang-models/tests/yang_model_tests/tests/dhcpv6_relay.json index 318a5eb7682..fb05271f99b 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/dhcpv6_relay.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/dhcpv6_relay.json @@ -5,5 +5,9 @@ }, "DHCPV6_SERVER_VALID_FORMAT": { "desc": "Add dhcpv6_server in correct format." + }, + "DHCPv6_OPTION_WITH_INVALID_BOOLEAN_TYPE": { + "desc": "Add dhcpv6 option with invalid option boolean types.", + "eStrKey": "Pattern" } } diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/dhcpv6_relay.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/dhcpv6_relay.json index 68c077e51e9..3a8dc377c47 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/dhcpv6_relay.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/dhcpv6_relay.json @@ -76,11 +76,25 @@ "2001:1::2" ], "rfc6939_support": "true", - + "name": "Vlan400", + "interface_id": "true", "name": "Vlan400" } ] } } + }, + "DHCPv6_OPTION_WITH_INVALID_BOOLEAN_TYPE": { + "sonic-dhcpv6-relay:sonic-dhcpv6-relay": { + "sonic-dhcpv6-relay:DHCP_RELAY": { + "DHCP_RELAY_LIST": [ + { + "name": "Vlan500", + "rfc6939_support": "False", + "interface_id": "False" + } + ] + } + } } } diff --git a/src/sonic-yang-models/yang-models/sonic-dhcpv6-relay.yang b/src/sonic-yang-models/yang-models/sonic-dhcpv6-relay.yang index 80794114e64..4a0bf60708c 100644 --- a/src/sonic-yang-models/yang-models/sonic-dhcpv6-relay.yang +++ b/src/sonic-yang-models/yang-models/sonic-dhcpv6-relay.yang @@ -34,15 +34,24 @@ module sonic-dhcpv6-relay { type string; } - leaf-list dhcpv6_servers { - description "Configure the dhcp v6 servers"; - type inet:ipv6-address; - } - - leaf rfc6939_support { - description "Set rfc6939 for the relay"; - type boolean; - } + leaf-list dhcpv6_servers { + description "Configure the dhcp v6 servers"; + type inet:ipv6-address; + } + + leaf rfc6939_support { + description "Set rfc6939 for the relay"; + type string { + pattern "false|true"; + } + } + + leaf interface_id { + description "Enable interface ID insertion in relayed messages"; + type string { + pattern "false|true"; + } + } } /* end of VLAN_LIST */ }