From f27aa33e69bc2917184cc3c411f5927fbfa2706e Mon Sep 17 00:00:00 2001 From: abdosi <58047199+abdosi@users.noreply.github.com> Date: Sun, 16 May 2021 19:44:06 -0700 Subject: [PATCH] [muti-asic] Updated BGP community for Internal routes (#7617) Following changes are done: Internal routes are tagged with no-export instead of local-AS Option to add User Define BGP community on top of no-export --- dockers/docker-fpm-frr/frr/bgpd/bgpd.main.conf.j2 | 7 ++++++- .../tests/data/sonic-cfggen/bgpd.conf.j2/all.conf | 6 +++++- .../tests/data/sonic-cfggen/bgpd.conf.j2/all.json | 5 +++++ .../tests/data/sonic-cfggen/bgpd.main.conf.j2/all.conf | 3 ++- .../data/sonic-cfggen/bgpd.main.conf.j2/defaults.conf | 3 ++- .../tests/data/sonic-cfggen/frr.conf.j2/all.conf | 2 +- .../tests/sample_output/py2/bgpd_frr_backend_asic.conf | 2 +- .../tests/sample_output/py2/bgpd_frr_frontend_asic.conf | 2 +- .../tests/sample_output/py3/bgpd_frr_backend_asic.conf | 2 +- .../tests/sample_output/py3/bgpd_frr_frontend_asic.conf | 2 +- 10 files changed, 25 insertions(+), 9 deletions(-) diff --git a/dockers/docker-fpm-frr/frr/bgpd/bgpd.main.conf.j2 b/dockers/docker-fpm-frr/frr/bgpd/bgpd.main.conf.j2 index cf0b0f0077c6..82138f6ff515 100644 --- a/dockers/docker-fpm-frr/frr/bgpd/bgpd.main.conf.j2 +++ b/dockers/docker-fpm-frr/frr/bgpd/bgpd.main.conf.j2 @@ -32,7 +32,12 @@ ipv6 prefix-list LOCAL_VLAN_IPV6_PREFIX seq {{ loop.index * 5 }} permit {{ prefi ! {% if DEVICE_METADATA['localhost']['sub_role'] == 'FrontEnd' or DEVICE_METADATA['localhost']['sub_role'] == 'BackEnd' %} route-map HIDE_INTERNAL permit 10 - set community local-AS + set community no-export +{% if constants.bgp.peers is defined and constants.bgp.peers.internal is defined and constants.bgp.peers.internal.community is defined %} + on-match next +route-map HIDE_INTERNAL permit 20 + set community {{ constants.bgp.peers.internal.community }} additive +{% endif %} {% set multi_asic = True %} ! {% endif %} diff --git a/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.conf.j2/all.conf b/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.conf.j2/all.conf index e2f9964766c1..018ddd36bfc4 100644 --- a/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.conf.j2/all.conf +++ b/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.conf.j2/all.conf @@ -34,7 +34,11 @@ ip prefix-list LOCAL_VLAN_IPV4_PREFIX seq 5 permit 10.10.10.0/24 ipv6 prefix-list LOCAL_VLAN_IPV6_PREFIX seq 10 permit fc01::/64 ! route-map HIDE_INTERNAL permit 10 - set community local-AS + set community no-export + on-match next +route-map HIDE_INTERNAL permit 20 + set community 1234:5678 additive +! ! router bgp 55555 ! diff --git a/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.conf.j2/all.json b/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.conf.j2/all.json index bc266ed70429..34fdbe72448b 100644 --- a/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.conf.j2/all.json +++ b/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.conf.j2/all.json @@ -29,6 +29,11 @@ "enabled": true, "ipv4": 32, "ipv6": 32 + }, + "peers": { + "internal": { + "community": "1234:5678" + } } } } diff --git a/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.main.conf.j2/all.conf b/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.main.conf.j2/all.conf index c7f2971fd7c0..459f3fda2b31 100644 --- a/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.main.conf.j2/all.conf +++ b/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.main.conf.j2/all.conf @@ -16,7 +16,8 @@ ip prefix-list LOCAL_VLAN_IPV4_PREFIX seq 5 permit 10.10.10.0/24 ipv6 prefix-list LOCAL_VLAN_IPV6_PREFIX seq 10 permit fc01::/64 ! route-map HIDE_INTERNAL permit 10 - set community local-AS + set community no-export +! ! router bgp 55555 ! diff --git a/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.main.conf.j2/defaults.conf b/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.main.conf.j2/defaults.conf index 431499ceaf92..19e06170a151 100644 --- a/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.main.conf.j2/defaults.conf +++ b/src/sonic-bgpcfgd/tests/data/sonic-cfggen/bgpd.main.conf.j2/defaults.conf @@ -16,7 +16,8 @@ ip prefix-list LOCAL_VLAN_IPV4_PREFIX seq 5 permit 10.10.10.0/24 ipv6 prefix-list LOCAL_VLAN_IPV6_PREFIX seq 10 permit fc01::/64 ! route-map HIDE_INTERNAL permit 10 - set community local-AS + set community no-export +! ! router bgp 55555 ! diff --git a/src/sonic-bgpcfgd/tests/data/sonic-cfggen/frr.conf.j2/all.conf b/src/sonic-bgpcfgd/tests/data/sonic-cfggen/frr.conf.j2/all.conf index e977d2b5cffc..760569239406 100644 --- a/src/sonic-bgpcfgd/tests/data/sonic-cfggen/frr.conf.j2/all.conf +++ b/src/sonic-bgpcfgd/tests/data/sonic-cfggen/frr.conf.j2/all.conf @@ -57,7 +57,7 @@ ip prefix-list LOCAL_VLAN_IPV4_PREFIX seq 5 permit 10.10.10.0/24 ipv6 prefix-list LOCAL_VLAN_IPV6_PREFIX seq 10 permit fc01::/64 ! route-map HIDE_INTERNAL permit 10 - set community local-AS + set community no-export ! router bgp 55555 ! diff --git a/src/sonic-config-engine/tests/sample_output/py2/bgpd_frr_backend_asic.conf b/src/sonic-config-engine/tests/sample_output/py2/bgpd_frr_backend_asic.conf index ce4f4d7ce23f..99aeef2457c0 100644 --- a/src/sonic-config-engine/tests/sample_output/py2/bgpd_frr_backend_asic.conf +++ b/src/sonic-config-engine/tests/sample_output/py2/bgpd_frr_backend_asic.conf @@ -35,7 +35,7 @@ ipv6 prefix-list PL_LoopbackV6 permit fc00:1::/64 ! ! route-map HIDE_INTERNAL permit 10 - set community local-AS + set community no-export ! ! router bgp 65100 diff --git a/src/sonic-config-engine/tests/sample_output/py2/bgpd_frr_frontend_asic.conf b/src/sonic-config-engine/tests/sample_output/py2/bgpd_frr_frontend_asic.conf index dcdcc78af033..abb6761e9ea5 100644 --- a/src/sonic-config-engine/tests/sample_output/py2/bgpd_frr_frontend_asic.conf +++ b/src/sonic-config-engine/tests/sample_output/py2/bgpd_frr_frontend_asic.conf @@ -35,7 +35,7 @@ ipv6 prefix-list PL_LoopbackV6 permit fc00:1::/64 ! ! route-map HIDE_INTERNAL permit 10 - set community local-AS + set community no-export ! ! router bgp 65100 diff --git a/src/sonic-config-engine/tests/sample_output/py3/bgpd_frr_backend_asic.conf b/src/sonic-config-engine/tests/sample_output/py3/bgpd_frr_backend_asic.conf index ce4f4d7ce23f..99aeef2457c0 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/bgpd_frr_backend_asic.conf +++ b/src/sonic-config-engine/tests/sample_output/py3/bgpd_frr_backend_asic.conf @@ -35,7 +35,7 @@ ipv6 prefix-list PL_LoopbackV6 permit fc00:1::/64 ! ! route-map HIDE_INTERNAL permit 10 - set community local-AS + set community no-export ! ! router bgp 65100 diff --git a/src/sonic-config-engine/tests/sample_output/py3/bgpd_frr_frontend_asic.conf b/src/sonic-config-engine/tests/sample_output/py3/bgpd_frr_frontend_asic.conf index dcdcc78af033..abb6761e9ea5 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/bgpd_frr_frontend_asic.conf +++ b/src/sonic-config-engine/tests/sample_output/py3/bgpd_frr_frontend_asic.conf @@ -35,7 +35,7 @@ ipv6 prefix-list PL_LoopbackV6 permit fc00:1::/64 ! ! route-map HIDE_INTERNAL permit 10 - set community local-AS + set community no-export ! ! router bgp 65100