diff options
| author | Christian Breunig <christian@breunig.cc> | 2023-08-17 12:13:26 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-17 12:13:26 +0200 | 
| commit | d4e9652083ce5fc0dda9a2714231cdffe58b33f3 (patch) | |
| tree | da2965221346c1c0b820f698764eb3052ab29190 | |
| parent | 65ea7cef9fe922581e286bc539c4dc1e223c9d32 (diff) | |
| parent | 77ef9f800421d65f90f953ca4d75d0f996ed2e3d (diff) | |
| download | vyos-1x-d4e9652083ce5fc0dda9a2714231cdffe58b33f3.tar.gz vyos-1x-d4e9652083ce5fc0dda9a2714231cdffe58b33f3.zip | |
Merge pull request #2152 from fett0/T5466
 T5466: L3VPN label allocation mode
| -rw-r--r-- | data/templates/frr/bgpd.frr.j2 | 3 | ||||
| -rw-r--r-- | interface-definitions/include/bgp/afi-label.xml.i | 13 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_protocols_bgp.py | 2 | 
3 files changed, 18 insertions, 0 deletions
| diff --git a/data/templates/frr/bgpd.frr.j2 b/data/templates/frr/bgpd.frr.j2 index 4535758da..a41f4e280 100644 --- a/data/templates/frr/bgpd.frr.j2 +++ b/data/templates/frr/bgpd.frr.j2 @@ -349,6 +349,9 @@ router bgp {{ system_as }} {{ 'vrf ' ~ vrf if vrf is vyos_defined }}  {%         if afi_config.label.vpn.export is vyos_defined %}    label vpn export {{ afi_config.label.vpn.export }}  {%         endif %} +{%         if afi_config.label.vpn.allocation_mode.per_nexhop is vyos_defined %} +  label vpn export allocation-mode per-nexthop  +{%         endif %}  {%         if afi_config.local_install is vyos_defined %}  {%             for interface in afi_config.local_install.interface %}    local-install {{ interface }} diff --git a/interface-definitions/include/bgp/afi-label.xml.i b/interface-definitions/include/bgp/afi-label.xml.i index 9535d19e8..8d5c33864 100644 --- a/interface-definitions/include/bgp/afi-label.xml.i +++ b/interface-definitions/include/bgp/afi-label.xml.i @@ -29,6 +29,19 @@              </constraint>            </properties>          </leafNode> +        <node name="allocation-mode"> +          <properties> +            <help>Label allocation mode</help> +          </properties> +          <children> +            <leafNode name="per-nexhop"> +              <properties> +                <help>Allocate a label per connected next-hop in the VRF</help> +                <valueless/> +              </properties> +            </leafNode> +          </children> +        </node>        </children>      </node>    </children> diff --git a/smoketest/scripts/cli/test_protocols_bgp.py b/smoketest/scripts/cli/test_protocols_bgp.py index 5b247a413..85e734b8a 100755 --- a/smoketest/scripts/cli/test_protocols_bgp.py +++ b/smoketest/scripts/cli/test_protocols_bgp.py @@ -868,6 +868,7 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):              self.cli_set(base_path + ['address-family', afi, 'export', 'vpn'])              self.cli_set(base_path + ['address-family', afi, 'import', 'vpn'])              self.cli_set(base_path + ['address-family', afi, 'label', 'vpn', 'export', label]) +            self.cli_set(base_path + ['address-family', afi, 'label', 'vpn', 'allocation-mode', 'per-nexhop'])              self.cli_set(base_path + ['address-family', afi, 'rd', 'vpn', 'export', rd])              self.cli_set(base_path + ['address-family', afi, 'route-map', 'vpn', 'export', route_map_out])              self.cli_set(base_path + ['address-family', afi, 'route-map', 'vpn', 'import', route_map_in]) @@ -887,6 +888,7 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):              self.assertIn(f'  export vpn', afi_config)              self.assertIn(f'  import vpn', afi_config)              self.assertIn(f'  label vpn export {label}', afi_config) +            self.assertIn(f'  label vpn export allocation-mode per-nexthop ', afi_config)                self.assertIn(f'  rd vpn export {rd}', afi_config)              self.assertIn(f'  route-map vpn export {route_map_out}', afi_config)              self.assertIn(f'  route-map vpn import {route_map_in}', afi_config) | 
