Page MenuHomeVyOS Platform

No OneTemporary

Size
35 KB
Referenced Files
None
Subscribers
None
diff --git a/data/templates/frr/ldpd.frr.tmpl b/data/templates/frr/ldpd.frr.tmpl
index 81343671c..0a5411552 100644
--- a/data/templates/frr/ldpd.frr.tmpl
+++ b/data/templates/frr/ldpd.frr.tmpl
@@ -1,184 +1,187 @@
!
{% if ldp is defined %}
mpls ldp
{% if ldp.router_id is defined %}
router-id {{ ldp.router_id }}
{% endif %}
{% if ldp.parameters is defined %}
{% if ldp.parameters.cisco_interop_tlv is defined %}
dual-stack cisco-interop
{% endif %}
{% if ldp.parameters.transport_prefer_ipv4 is defined%}
dual-stack transport-connection prefer ipv4
{% endif %}
+{% if ldp.parameters.ordered_control is defined%}
+ordered-control
+{% endif %}
{% endif %}
{% if ldp.neighbor is defined %}
{% for neighbors in ldp.neighbor %}
{% if ldp.neighbor[neighbors].password is defined %}
neighbor {{neighbors}} password {{ldp.neighbor[neighbors].password}}
{% endif %}
{% if ldp.neighbor[neighbors].ttl_security is defined %}
{% if 'disable' in ldp.neighbor[neighbors].ttl_security %}
neighbor {{neighbors}} ttl-security disable
{% else %}
neighbor {{neighbors}} ttl-security hops {{ldp.neighbor[neighbors].ttl_security}}
{% endif %}
{% endif %}
{% if ldp.neighbor[neighbors].session_holdtime is defined %}
neighbor {{neighbors}} session holdtime {{ldp.neighbor[neighbors].session_holdtime}}
{% endif %}
{% endfor %}
{% endif %}
!
{% 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 %}
{% endif %}
{% else %}
label local allocate host-routes
{% endif %}
{% if ldp.discovery.transport_ipv4_address is defined %}
discovery transport-address {{ ldp.discovery.transport_ipv4_address }}
{% endif %}
{% if ldp.discovery.hello_ipv4_holdtime is defined %}
discovery hello holdtime {{ ldp.discovery.hello_ipv4_holdtime }}
{% endif %}
{% if ldp.discovery.hello_ipv4_interval is defined %}
discovery hello interval {{ ldp.discovery.hello_ipv4_interval }}
{% endif %}
{% if ldp.discovery.session_ipv4_holdtime is defined %}
session holdtime {{ ldp.discovery.session_ipv4_holdtime }}
{% endif %}
{% if ldp.import is defined %}
{% if ldp.import.ipv4 is defined %}
{% if ldp.import.ipv4.import_filter is defined %}
{% if ldp.import.ipv4.import_filter.filter_access_list is defined %}
{% if ldp.import.ipv4.import_filter.neighbor_access_list is defined %}
label remote accept for {{ ldp.import.ipv4.import_filter.filter_access_list }} from {{ ldp.import.ipv4.import_filter.neighbor_access_list }}
{% else %}
label remote accept for {{ ldp.import.ipv4.import_filter.filter_access_list }}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% if ldp.export is defined %}
{% if ldp.export.ipv4 is defined %}
{% if ldp.export.ipv4.explicit_null is defined %}
label local advertise explicit-null
{% endif %}
{% if ldp.export.ipv4.export_filter is defined %}
{% if ldp.export.ipv4.export_filter.filter_access_list is defined %}
{% if ldp.export.ipv4.export_filter.neighbor_access_list is defined %}
label local advertise for {{ ldp.export.ipv4.export_filter.filter_access_list }} to {{ ldp.export.ipv4.export_filter.neighbor_access_list }}
{% else %}
label local advertise for {{ ldp.export.ipv4.export_filter.filter_access_list }}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% if ldp.targeted_neighbor is defined %}
{% if ldp.targeted_neighbor.ipv4.enable is defined %}
discovery targeted-hello accept
{% endif %}
{% if ldp.targeted_neighbor.ipv4.hello_holdtime is defined %}
discovery targeted-hello holdtime {{ ldp.targeted_neighbor.ipv4.hello_holdtime }}
{% endif %}
{% if ldp.targeted_neighbor.ipv4.hello_interval is defined %}
discovery targeted-hello interval {{ ldp.targeted_neighbor.ipv4.hello_interval }}
{% endif %}
{% for addresses in ldp.targeted_neighbor.ipv4.address %}
neighbor {{addresses}} targeted
{% endfor %}
{% endif %}
{% for interfaces in ldp.interface %}
interface {{interfaces}}
{% endfor %}
exit-address-family
{% else %}
no address-family ipv4
{% endif %}
{% endif %}
!
{% 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 %}
{% endif %}
{% else %}
label local allocate host-routes
{% endif %}
{% if ldp.discovery.transport_ipv6_address is defined %}
discovery transport-address {{ ldp.discovery.transport_ipv6_address }}
{% endif %}
{% if ldp.discovery.hello_ipv6_holdtime is defined %}
discovery hello holdtime {{ ldp.discovery.hello_ipv6_holdtime }}
{% endif %}
{% if ldp.discovery.hello_ipv6_interval is defined %}
discovery hello interval {{ ldp.discovery.hello_ipv6_interval }}
{% endif %}
{% if ldp.discovery.session_ipv6_holdtime is defined %}
session holdtime {{ ldp.discovery.session_ipv6_holdtime }}
{% endif %}
{% if ldp.import is defined %}
{% if ldp.import.ipv6 is defined %}
{% if ldp.import.ipv6.import_filter is defined %}
{% if ldp.import.ipv6.import_filter.filter_access_list6 is defined %}
{% if ldp.import.ipv6.import_filter.neighbor_access_list6 is defined %}
label remote accept for {{ ldp.import.ipv6.import_filter.filter_access_list6 }} from {{ ldp.import.ipv6.import_filter.neighbor_access_list6 }}
{% else %}
label remote accept for {{ ldp.import.ipv6.import_filter.filter_access_list6 }}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% if ldp.export is defined %}
{% if ldp.export.ipv6 is defined %}
{% if ldp.export.ipv6.explicit_null is defined %}
label local advertise explicit-null
{% endif %}
{% if ldp.export.ipv6.export_filter is defined %}
{% if ldp.export.ipv6.export_filter.filter_access_list6 is defined %}
{% if ldp.export.ipv6.export_filter.neighbor_access_list6 is defined %}
label local advertise for {{ ldp.export.ipv6.export_filter.filter_access_list6 }} to {{ ldp.export.ipv6.export_filter.neighbor_access_list6 }}
{% else %}
label local advertise for {{ ldp.export.ipv6.export_filter.filter_access_list6 }}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% if ldp.targeted_neighbor is defined %}
{% if ldp.targeted_neighbor.ipv6.enable is defined %}
discovery targeted-hello accept
{% endif %}
{% if ldp.targeted_neighbor.ipv6.hello_holdtime is defined %}
discovery targeted-hello holdtime {{ ldp.targeted_neighbor.ipv6.hello_holdtime }}
{% endif %}
{% if ldp.targeted_neighbor.ipv6.hello_interval is defined %}
discovery targeted-hello interval {{ ldp.targeted_neighbor.ipv6.hello_interval }}
{% endif %}
{% for addresses in ldp.targeted_neighbor.ipv6.address %}
neighbor {{addresses}} targeted
{% endfor %}
{% endif %}
{% for interfaces in ldp.interface %}
interface {{interfaces}}
{% endfor %}
exit-address-family
{% else %}
no address-family ipv6
{% endif %}
{% endif %}
{% endif %}
diff --git a/interface-definitions/protocols-mpls.xml.in b/interface-definitions/protocols-mpls.xml.in
index 645b264bb..284d4d7f3 100644
--- a/interface-definitions/protocols-mpls.xml.in
+++ b/interface-definitions/protocols-mpls.xml.in
@@ -1,581 +1,587 @@
<?xml version="1.0"?>
<!-- Multiprotocol Label Switching (MPLS) configuration -->
<interfaceDefinition>
<node name="protocols">
<children>
<node name="mpls" owner="${vyos_conf_scripts_dir}/protocols_mpls.py">
<properties>
<help>Multiprotocol Label Switching (MPLS)</help>
<priority>299</priority>
</properties>
<children>
<node name="ldp">
<properties>
<help>Label Distribution Protocol (LDP)</help>
</properties>
<children>
<leafNode name="router-id">
<properties>
<help>Label Distribution Protocol router ID</help>
<valueHelp>
<format>ipv4</format>
<description>LDP IPv4 ID</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
<node name="allocation">
<properties>
<help>Forwarding equivalence class 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>
<valueHelp>
<format>ipv4</format>
<description>Neighbor IPv4 address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
<children>
<leafNode name="password">
<properties>
<help>Neighbor password</help>
</properties>
</leafNode>
<leafNode name="ttl-security">
<properties>
<help>Neighbor TTL security</help>
<completionHelp>
<list>disable</list>
</completionHelp>
<valueHelp>
<format>&lt;1-254&gt;</format>
<description>TTL</description>
</valueHelp>
<valueHelp>
<format>disable</format>
<description>Disable neighbor TTL security</description>
</valueHelp>
</properties>
</leafNode>
<leafNode name="session-holdtime">
<properties>
<help>Session IPv4 hold time</help>
<valueHelp>
<format>15-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 15-65535"/>
</constraint>
</properties>
</leafNode>
</children>
</tagNode>
<node name="discovery">
<properties>
<help>Discovery parameters</help>
<valueHelp>
<format>ipv4</format>
<description>Discovery parameters</description>
</valueHelp>
</properties>
<children>
<leafNode name="hello-ipv4-holdtime">
<properties>
<help>Hello IPv4 hold time</help>
<valueHelp>
<format>1-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="hello-ipv4-interval">
<properties>
<help>Hello IPv4 interval</help>
<valueHelp>
<format>1-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="hello-ipv6-holdtime">
<properties>
<help>Hello IPv6 hold time</help>
<valueHelp>
<format>1-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="hello-ipv6-interval">
<properties>
<help>Hello IPv6 interval</help>
<valueHelp>
<format>1-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="session-ipv4-holdtime">
<properties>
<help>Session IPv4 hold time</help>
<valueHelp>
<format>15-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 15-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="session-ipv6-holdtime">
<properties>
<help>Session IPv6 hold time</help>
<valueHelp>
<format>15-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 15-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="transport-ipv4-address">
<properties>
<help>Transport IPv4 address</help>
<valueHelp>
<format>ipv4</format>
<description>IPv4 bind as transport</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="transport-ipv6-address">
<properties>
<help>Transport IPv6 address</help>
<valueHelp>
<format>ipv6</format>
<description>IPv6 bind as transport</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
<node name="targeted-neighbor">
<properties>
<help>Targeted LDP neighbor/session parameters</help>
</properties>
<children>
<node name="ipv4">
<properties>
<help>Targeted IPv4 neighbor/session parameters</help>
</properties>
<children>
<leafNode name="address">
<properties>
<help>Neighbor/session address</help>
<valueHelp>
<format>ipv4</format>
<description>Neighbor/session address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="enable">
<properties>
<help>Accept and respond to targeted hellos</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="hello-interval">
<properties>
<help>Hello interval</help>
<valueHelp>
<format>1-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="hello-holdtime">
<properties>
<help>Hello hold time</help>
<valueHelp>
<format>1-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
<node name="ipv6">
<properties>
<help>Targeted IPv6 neighbor/session parameters</help>
</properties>
<children>
<leafNode name="address">
<properties>
<help>Neighbor/session address</help>
<valueHelp>
<format>ipv6</format>
<description>Neighbor/session address</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="enable">
<properties>
<help>Accept and respond to targeted hellos</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="hello-interval">
<properties>
<help>Hello interval</help>
<valueHelp>
<format>1-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="hello-holdtime">
<properties>
<help>Hello hold time</help>
<valueHelp>
<format>1-65535</format>
<description>Time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
</children>
</node>
<node name="parameters">
<properties>
<help>Label Distribution Protocol miscellaneous parameters</help>
</properties>
<children>
<leafNode name="cisco-interop-tlv">
<properties>
<help>Enable Cisco non-compliant format capability TLV</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="transport-prefer-ipv4">
<properties>
<help>Prefer IPv4 for TCP peer transport connection</help>
<valueless/>
</properties>
</leafNode>
+ <leafNode name="ordered-control">
+ <properties>
+ <help>Enable LDP ordered label distribution control mode</help>
+ <valueless/>
+ </properties>
+ </leafNode>
</children>
</node>
<node name="export">
<properties>
<help>Export parameters</help>
</properties>
<children>
<node name="ipv4">
<properties>
<help>IPv4 parameters</help>
</properties>
<children>
<leafNode name="explicit-null">
<properties>
<help>Explicit-Null Label</help>
<valueless/>
</properties>
</leafNode>
<node name="export-filter">
<properties>
<help>Forwarding equivalence class export filter</help>
</properties>
<children>
<leafNode name="filter-access-list">
<properties>
<help>Access-list number to apply FEC filtering</help>
<valueHelp>
<format>1-2699</format>
<description>Access list number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-2699"/>
</constraint>
</properties>
</leafNode>
<leafNode name="neighbor-access-list">
<properties>
<help>Access-list number for IPv4 neighbor selection to apply filtering</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>
<node name="ipv6">
<properties>
<help>IPv6 parameters</help>
</properties>
<children>
<leafNode name="explicit-null">
<properties>
<help>Explicit-Null Label</help>
<valueless/>
</properties>
</leafNode>
<node name="export-filter">
<properties>
<help>Forwarding equivalence class export filter</help>
</properties>
<children>
<leafNode name="filter-access-list6">
<properties>
<help>Access-list6 number to apply FEC filtering</help>
<valueHelp>
<format>1-2699</format>
<description>Access list number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-2699"/>
</constraint>
</properties>
</leafNode>
<leafNode name="neighbor-access-list6">
<properties>
<help>Access-list6 number for IPv6 neighbor selection to apply filtering</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>
</children>
</node>
<node name="import">
<properties>
<help>Import parameters</help>
</properties>
<children>
<node name="ipv4">
<properties>
<help>IPv4 parameters</help>
</properties>
<children>
<node name="import-filter">
<properties>
<help>Forwarding equivalence class import filter</help>
</properties>
<children>
<leafNode name="filter-access-list">
<properties>
<help>Access-list number to apply FEC filtering</help>
<valueHelp>
<format>1-2699</format>
<description>Access list number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-2699"/>
</constraint>
</properties>
</leafNode>
<leafNode name="neighbor-access-list">
<properties>
<help>Access-list number for IPv4 neighbor selection to apply filtering</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>
<node name="ipv6">
<properties>
<help>IPv6 parameters</help>
</properties>
<children>
<node name="import-filter">
<properties>
<help>Forwarding equivalence class import filter</help>
</properties>
<children>
<leafNode name="filter-access-list6">
<properties>
<help>Access-list6 number to apply FEC filtering</help>
<valueHelp>
<format>1-2699</format>
<description>Access list number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-2699"/>
</constraint>
</properties>
</leafNode>
<leafNode name="neighbor-access-list6">
<properties>
<help>Access-list6 number for IPv6 neighbor selection to apply filtering</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>
</children>
</node>
<leafNode name="interface">
<properties>
<help>Enable LDP and neighbor discovery on interface</help>
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces.py</script>
</completionHelp>
<multi/>
</properties>
</leafNode>
</children>
</node>
<node name="parameters">
<properties>
<help>Multiprotocol Label Switching miscellaneous parameters</help>
</properties>
<children>
<leafNode name="no-propagate-ttl">
<properties>
<help>Disable copy of IP TTL to MPLS TTL</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="maximum-ttl">
<properties>
<help>Maximum TTL for MPLS packets</help>
<valueHelp>
<format>1-255</format>
<description>Maximum hops allowed</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-255"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
<leafNode name="interface">
<properties>
<help>Enable MPLS packet processing on interface</help>
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces.py</script>
</completionHelp>
<multi/>
</properties>
</leafNode>
</children>
</node>
</children>
</node>
</interfaceDefinition>

File Metadata

Mime Type
text/x-diff
Expires
Fri, Nov 6, 9:18 AM (17 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4653837
Default Alt Text
(35 KB)

Event Timeline