diff options
| -rw-r--r-- | data/templates/frr/bgpd.frr.j2 | 5 | ||||
| -rw-r--r-- | interface-definitions/include/bgp/protocol-common-config.xml.i | 24 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_protocols_bgp.py | 4 | 
3 files changed, 31 insertions, 2 deletions
diff --git a/data/templates/frr/bgpd.frr.j2 b/data/templates/frr/bgpd.frr.j2 index ed55db3f2..e9422b257 100644 --- a/data/templates/frr/bgpd.frr.j2 +++ b/data/templates/frr/bgpd.frr.j2 @@ -390,7 +390,7 @@ router bgp {{ system_as }} {{ 'vrf ' ~ vrf if vrf is vyos_defined }}  {%         endif %}  {%         if afi_config.ead_es_route_target.export is vyos_defined %}  {%             for route_target in afi_config.ead_es_route_target.export %} - ead-es-route-target export {{ route_target }} +  ead-es-route-target export {{ route_target }}  {%             endfor %}  {%         endif %}  {%         if afi_config.rt_auto_derive is vyos_defined %} @@ -402,6 +402,9 @@ router bgp {{ system_as }} {{ 'vrf ' ~ vrf if vrf is vyos_defined }}  {%         if afi_config.flooding.head_end_replication is vyos_defined %}    flooding head-end-replication  {%         endif %} +{%         if afi_config.mac_vrf.soo is vyos_defined %} +  mac-vrf soo {{ afi_config.mac_vrf.soo }} +{%         endif %}  {%         if afi_config.nexthop.vpn.export is vyos_defined %}    nexthop vpn export {{ afi_config.nexthop.vpn.export }}  {%         endif %} diff --git a/interface-definitions/include/bgp/protocol-common-config.xml.i b/interface-definitions/include/bgp/protocol-common-config.xml.i index ea6e75bbd..ca67eaf3c 100644 --- a/interface-definitions/include/bgp/protocol-common-config.xml.i +++ b/interface-definitions/include/bgp/protocol-common-config.xml.i @@ -894,6 +894,30 @@              </leafNode>            </children>          </node> +        <node name="mac-vrf"> +          <properties> +            <help>EVPN MAC-VRF</help> +          </properties> +          <children> +            <leafNode name="soo"> +              <properties> +                <help>Site-of-Origin extended community</help> +                <valueHelp> +                  <format>ASN:NN</format> +                  <description>based on autonomous system number in format <0-65535:0-4294967295></description> +                </valueHelp> +                <valueHelp> +                  <format>IP:NN</format> +                  <description>Based on a router-id IP address in format <IP:0-65535></description> +                </valueHelp> +                <constraint> +                  <validator name="bgp-extended-community"/> +                </constraint> +                <constraintErrorMessage>Should be in form: ASN:NN or IPADDR:NN where ASN is autonomous system number</constraintErrorMessage> +              </properties> +            </leafNode> +          </children> +        </node>          <tagNode name="vni">            <properties>              <help>VXLAN Network Identifier</help> diff --git a/smoketest/scripts/cli/test_protocols_bgp.py b/smoketest/scripts/cli/test_protocols_bgp.py index eadd8a004..1d68ae08b 100755 --- a/smoketest/scripts/cli/test_protocols_bgp.py +++ b/smoketest/scripts/cli/test_protocols_bgp.py @@ -751,7 +751,7 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):      def test_bgp_07_l2vpn_evpn(self):          vnis = ['10010', '10020', '10030'] -        neighbors = ['192.0.2.10', '192.0.2.20', '192.0.2.30'] +        soo = '1.2.3.4:10000'          evi_limit = '1000'          route_targets = ['1.1.1.1:100', '1.1.1.1:200', '1.1.1.1:300'] @@ -763,6 +763,7 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):          self.cli_set(base_path + ['address-family', 'l2vpn-evpn', 'default-originate', 'ipv6'])          self.cli_set(base_path + ['address-family', 'l2vpn-evpn', 'disable-ead-evi-rx'])          self.cli_set(base_path + ['address-family', 'l2vpn-evpn', 'disable-ead-evi-tx']) +        self.cli_set(base_path + ['address-family', 'l2vpn-evpn', 'mac-vrf', 'soo', soo])          for vni in vnis:              self.cli_set(base_path + ['address-family', 'l2vpn-evpn', 'vni', vni, 'advertise-default-gw'])              self.cli_set(base_path + ['address-family', 'l2vpn-evpn', 'vni', vni, 'advertise-svi-ip']) @@ -786,6 +787,7 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):          self.assertIn(f'  disable-ead-evi-rx', frrconfig)          self.assertIn(f'  disable-ead-evi-tx', frrconfig)          self.assertIn(f'  flooding disable', frrconfig) +        self.assertIn(f'  mac-vrf soo {soo}', frrconfig)          for vni in vnis:              vniconfig = self.getFRRconfig(f'  vni {vni}')              self.assertIn(f'vni {vni}', vniconfig)  | 
