summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCheeze_It <none@none.com>2020-12-06 00:06:10 -0700
committerCheeze_It <none@none.com>2020-12-06 00:06:10 -0700
commitcd0597f04e29e17fe76013ba19581d9eaeea611c (patch)
treef2c7f84419f322bcb9871a65b520399bf72f73cd
parente46def834483ebd76282965a86e875c4cfacebca (diff)
downloadvyos-1x-cd0597f04e29e17fe76013ba19581d9eaeea611c.tar.gz
vyos-1x-cd0597f04e29e17fe76013ba19581d9eaeea611c.zip
mpls-conf: T915: Add LDP local label allocation control.
In this commit we added the ability to control the local label allocation control for FECs. It allows for the router to not allocate a label for every interface, just the interfaces that are desired by the operator.
-rw-r--r--data/templates/frr/ldpd.frr.tmpl20
-rw-r--r--interface-definitions/protocols-mpls.xml.in45
2 files changed, 65 insertions, 0 deletions
diff --git a/data/templates/frr/ldpd.frr.tmpl b/data/templates/frr/ldpd.frr.tmpl
index 280df41eb..86342b3eb 100644
--- a/data/templates/frr/ldpd.frr.tmpl
+++ b/data/templates/frr/ldpd.frr.tmpl
@@ -33,7 +33,17 @@ neighbor {{neighbors}} session holdtime {{ldp.neighbor[neighbors].session_holdti
{% if ldp.discovery is defined %}
{% if ldp.discovery.transport_ipv4_address is defined %}
address-family ipv4
+{% if ldp.allocation is defined %}
+{% if ldp.allocation.ipv4 is defined %}
+{% if ldp.allocation.ipv4.access_list is defined %}
+label local allocate for {{ ldp.allocation.ipv4.access_list }}
+{% endif %}
+label local allocate host-routes
+{% endif %}
label local allocate host-routes
+{% else %}
+label local allocate host-routes
+{% endif %}
{% if ldp.discovery.transport_ipv4_address is defined %}
discovery transport-address {{ ldp.discovery.transport_ipv4_address }}
{% endif %}
@@ -77,7 +87,17 @@ no address-family ipv4
{% if ldp.discovery is defined %}
{% if ldp.discovery.transport_ipv6_address is defined %}
address-family ipv6
+{% if ldp.allocation is defined %}
+{% if ldp.allocation.ipv6 is defined %}
+{% if ldp.allocation.ipv6.access_list6 is defined %}
+label local allocate for {{ ldp.allocation.ipv6.access_list6 }}
+{% endif %}
+label local allocate host-routes
+{% endif %}
label local allocate host-routes
+{% else %}
+label local allocate host-routes
+{% endif %}
{% if ldp.discovery.transport_ipv6_address is defined %}
discovery transport-address {{ ldp.discovery.transport_ipv6_address }}
{% endif %}
diff --git a/interface-definitions/protocols-mpls.xml.in b/interface-definitions/protocols-mpls.xml.in
index 16286f2c4..e91db12de 100644
--- a/interface-definitions/protocols-mpls.xml.in
+++ b/interface-definitions/protocols-mpls.xml.in
@@ -26,6 +26,51 @@
</constraint>
</properties>
</leafNode>
+ <node name="allocation">
+ <properties>
+ <help>Forwarding equivalence class (FEC) allocation from local routes</help>
+ </properties>
+ <children>
+ <node name="ipv4">
+ <properties>
+ <help>IPv4 routes</help>
+ </properties>
+ <children>
+ <leafNode name="access-list">
+ <properties>
+ <help>Access-list number</help>
+ <valueHelp>
+ <format>1-2699</format>
+ <description>Access list number</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-2699"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <node name="ipv6">
+ <properties>
+ <help>IPv6 routes</help>
+ </properties>
+ <children>
+ <leafNode name="access-list6">
+ <properties>
+ <help>Access-list6 number</help>
+ <valueHelp>
+ <format>1-2699</format>
+ <description>Access list number</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-2699"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+ </node>
<tagNode name="neighbor">
<properties>
<help>LDP neighbor parameters</help>