From 0ed5d951083254bf816552894a348a86ecd61e4d Mon Sep 17 00:00:00 2001 From: Brad House Date: Wed, 4 Dec 2024 16:30:01 -0500 Subject: [PATCH 1/4] [yang] bgp address family l2vpn advertise-all-vni Cannot configured unified bgp for vxlan evpn without specifying advertise-all-vpn. The setting appears to have been introduced as part of PR #5142 Signed-off-by: Brad House (@bradh352) --- src/sonic-yang-models/yang-models/sonic-bgp-global.yang | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/sonic-yang-models/yang-models/sonic-bgp-global.yang b/src/sonic-yang-models/yang-models/sonic-bgp-global.yang index db6c02356aa6..fe10d0ad65bf 100644 --- a/src/sonic-yang-models/yang-models/sonic-bgp-global.yang +++ b/src/sonic-yang-models/yang-models/sonic-bgp-global.yang @@ -445,6 +445,11 @@ module sonic-bgp-global { } description "Maximum duration to suppress a stable route"; } + + leaf advertise-all-vni { + type boolean; + description "L2VPN advertise all VNIs"; + } } } From 6c1e8e0b7147ae2f54644881a3d29b586891a930 Mon Sep 17 00:00:00 2001 From: Brad House Date: Fri, 13 Dec 2024 09:56:49 -0500 Subject: [PATCH 2/4] add test cases as requested --- .../tests/files/sample_config_db.json | 3 +++ .../tests/bgp_device_global.json | 11 ++++++++ .../tests_config/bgp_device_global.json | 27 +++++++++++++++++++ 3 files changed, 41 insertions(+) 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 4c76237ddb46..6f7e90c229ff 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -1771,6 +1771,9 @@ "default|ipv6_unicast": { "max_ebgp_paths": "2", "max_ibgp_paths": "2" + }, + "default|l2vpn_evpn": { + "advertise-all-vni": "true" } }, "BGP_GLOBALS_AF_AGGREGATE_ADDR": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_device_global.json b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_device_global.json index b9cc07ed54e5..eccb510fd856 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_device_global.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_device_global.json @@ -73,5 +73,16 @@ "desc": "Load bgp device global table with idf_isolation_state set to invalid value", "eStrKey": "InvalidValue", "eStr": ["idf_isolation_state"] + }, + "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_TRUE": { + "desc": "BGP Address Family l2vpn_evpn with advertise-all-vni set to true" + }, + "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_FALSE": { + "desc": "BGP Address Family l2vpn_evpn with advertise-all-vni set to false" + }, + "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_INVALID": { + "desc": "BGP Address Family l2vpn_evpn with advertise-all-vni set to an invalid value", + "eStrKey": "InvalidValue", + "eStr": ["advertise-all-vni"] } } diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_device_global.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_device_global.json index f1be80b6b421..00631c7d9fee 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_device_global.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_device_global.json @@ -112,5 +112,32 @@ } } } + }, + "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_TRUE": { + "sonic-bgp-device-global:sonic-bgp-device-global": { + "sonic-bgp-device-global:BGP_DEVICE_GLOBAL_AF": { + "default|l2vpn_evpn":{ + "advertise-all-vni": "true" + } + } + } + }, + "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_FALSE": { + "sonic-bgp-device-global:sonic-bgp-device-global": { + "sonic-bgp-device-global:BGP_DEVICE_GLOBAL_AF": { + "default|l2vpn_evpn":{ + "advertise-all-vni": "false" + } + } + } + }, + "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_INVALID": { + "sonic-bgp-device-global:sonic-bgp-device-global": { + "sonic-bgp-device-global:BGP_DEVICE_GLOBAL_AF": { + "default|l2vpn_evpn":{ + "advertise-all-vni": "invalid-value" + } + } + } } } From 2cb2cd6280a8b5e239f00d83374409645ed3be90 Mon Sep 17 00:00:00 2001 From: Brad House Date: Fri, 13 Dec 2024 11:04:16 -0500 Subject: [PATCH 3/4] fix section --- .../tests/yang_model_tests/tests/bgp.json | 11 ++++ .../tests/bgp_device_global.json | 11 ---- .../yang_model_tests/tests_config/bgp.json | 64 ++++++++++++++++++- .../tests_config/bgp_device_global.json | 27 -------- 4 files changed, 74 insertions(+), 39 deletions(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp.json b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp.json index d8ab57f61074..edb5c58dd884 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp.json @@ -2,6 +2,17 @@ "BGP_GLOBAL_VALID": { "desc": "Configure BGP global table." }, + "BGP_GLOBALS_AF_ADVERTISE_ALL_VNI_TRUE": { + "desc": "BGP Address Family l2vpn_evpn with advertise-all-vni set to true" + }, + "BGP_GLOBALS_AF_ADVERTISE_ALL_VNI_FALSE": { + "desc": "BGP Address Family l2vpn_evpn with advertise-all-vni set to false" + }, + "BGP_GLOBALS_AF_ADVERTISE_ALL_VNI_INVALID": { + "desc": "BGP Address Family l2vpn_evpn with advertise-all-vni set to an invalid value", + "eStrKey": "InvalidValue", + "eStr": ["advertise-all-vni"] + }, "BGP_NEIGHBOR_ALL_VALID": { "desc": "Configure BGP neighbor table." }, diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_device_global.json b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_device_global.json index eccb510fd856..b9cc07ed54e5 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_device_global.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_device_global.json @@ -73,16 +73,5 @@ "desc": "Load bgp device global table with idf_isolation_state set to invalid value", "eStrKey": "InvalidValue", "eStr": ["idf_isolation_state"] - }, - "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_TRUE": { - "desc": "BGP Address Family l2vpn_evpn with advertise-all-vni set to true" - }, - "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_FALSE": { - "desc": "BGP Address Family l2vpn_evpn with advertise-all-vni set to false" - }, - "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_INVALID": { - "desc": "BGP Address Family l2vpn_evpn with advertise-all-vni set to an invalid value", - "eStrKey": "InvalidValue", - "eStr": ["advertise-all-vni"] } } diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp.json index 4c06316deede..663c012f3b70 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp.json @@ -81,7 +81,69 @@ } } }, - + "BGP_GLOBALS_AF_ADVERTISE_ALL_VNI_TRUE": { + "sonic-bgp-global:sonic-bgp-global": { + "sonic-bgp-global:BGP_GLOBALS_AF": { + "BGP_GLOBALS_AF_LIST": [ + { + "vrf_name":"default", + "local_asn": 65001 + } + ] + }, + "sonic-bgp-global:BGP_GLOBALS_AF": { + "BGP_GLOBALS_AF_LIST": [ + { + "vrf_name": "default", + "afi_safi": "l2vpn_evpn", + "advertise-all-vni": "true" + } + ] + } + } + }, + "BGP_GLOBALS_AF_ADVERTISE_ALL_VNI_FALSE": { + "sonic-bgp-global:sonic-bgp-global": { + "sonic-bgp-global:BGP_GLOBALS_AF": { + "BGP_GLOBALS_AF_LIST": [ + { + "vrf_name":"default", + "local_asn": 65001 + } + ] + }, + "sonic-bgp-global:BGP_GLOBALS_AF": { + "BGP_GLOBALS_AF_LIST": [ + { + "vrf_name": "default", + "afi_safi": "l2vpn_evpn", + "advertise-all-vni": "false" + } + ] + } + } + }, + "BGP_GLOBALS_AF_ADVERTISE_ALL_VNI_INVALID": { + "sonic-bgp-global:sonic-bgp-global": { + "sonic-bgp-global:BGP_GLOBALS_AF": { + "BGP_GLOBALS_AF_LIST": [ + { + "vrf_name":"default", + "local_asn": 65001 + } + ] + }, + "sonic-bgp-global:BGP_GLOBALS_AF": { + "BGP_GLOBALS_AF_LIST": [ + { + "vrf_name": "default", + "afi_safi": "l2vpn_evpn", + "advertise-all-vni": "invalid value" + } + ] + } + } + }, "BGP_NEIGHBOR_ALL_VALID": { "sonic-port:sonic-port": { "sonic-port:PORT": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_device_global.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_device_global.json index 00631c7d9fee..f1be80b6b421 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_device_global.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_device_global.json @@ -112,32 +112,5 @@ } } } - }, - "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_TRUE": { - "sonic-bgp-device-global:sonic-bgp-device-global": { - "sonic-bgp-device-global:BGP_DEVICE_GLOBAL_AF": { - "default|l2vpn_evpn":{ - "advertise-all-vni": "true" - } - } - } - }, - "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_FALSE": { - "sonic-bgp-device-global:sonic-bgp-device-global": { - "sonic-bgp-device-global:BGP_DEVICE_GLOBAL_AF": { - "default|l2vpn_evpn":{ - "advertise-all-vni": "false" - } - } - } - }, - "BGP_DEVICE_GLOBAL_AF_ADVERTISE_ALL_VNI_INVALID": { - "sonic-bgp-device-global:sonic-bgp-device-global": { - "sonic-bgp-device-global:BGP_DEVICE_GLOBAL_AF": { - "default|l2vpn_evpn":{ - "advertise-all-vni": "invalid-value" - } - } - } } } From fdeb043d57839a4ab23a43c2161bbe41bdf0e728 Mon Sep 17 00:00:00 2001 From: Brad House Date: Fri, 13 Dec 2024 11:46:25 -0500 Subject: [PATCH 4/4] fix typos --- .../tests/yang_model_tests/tests/bgp.json | 3 +-- .../tests/yang_model_tests/tests_config/bgp.json | 12 ++++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp.json b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp.json index edb5c58dd884..b360ce6309a9 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp.json @@ -10,8 +10,7 @@ }, "BGP_GLOBALS_AF_ADVERTISE_ALL_VNI_INVALID": { "desc": "BGP Address Family l2vpn_evpn with advertise-all-vni set to an invalid value", - "eStrKey": "InvalidValue", - "eStr": ["advertise-all-vni"] + "eStr": "Invalid value \"invalid value\" in \"advertise-all-vni\" element." }, "BGP_NEIGHBOR_ALL_VALID": { "desc": "Configure BGP neighbor table." diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp.json index 663c012f3b70..fbc41ae127c5 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp.json @@ -83,8 +83,8 @@ }, "BGP_GLOBALS_AF_ADVERTISE_ALL_VNI_TRUE": { "sonic-bgp-global:sonic-bgp-global": { - "sonic-bgp-global:BGP_GLOBALS_AF": { - "BGP_GLOBALS_AF_LIST": [ + "sonic-bgp-global:BGP_GLOBALS": { + "BGP_GLOBALS_LIST": [ { "vrf_name":"default", "local_asn": 65001 @@ -104,8 +104,8 @@ }, "BGP_GLOBALS_AF_ADVERTISE_ALL_VNI_FALSE": { "sonic-bgp-global:sonic-bgp-global": { - "sonic-bgp-global:BGP_GLOBALS_AF": { - "BGP_GLOBALS_AF_LIST": [ + "sonic-bgp-global:BGP_GLOBALS": { + "BGP_GLOBALS_LIST": [ { "vrf_name":"default", "local_asn": 65001 @@ -125,8 +125,8 @@ }, "BGP_GLOBALS_AF_ADVERTISE_ALL_VNI_INVALID": { "sonic-bgp-global:sonic-bgp-global": { - "sonic-bgp-global:BGP_GLOBALS_AF": { - "BGP_GLOBALS_AF_LIST": [ + "sonic-bgp-global:BGP_GLOBALS": { + "BGP_GLOBALS_LIST": [ { "vrf_name":"default", "local_asn": 65001