Page Menu
Home
VyOS Platform
Search
Configure Global Search
Log In
Files
F119063960
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
35 KB
Referenced Files
None
Subscribers
None
View Options
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><1-254></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
Details
Attached
Mime Type
text/x-diff
Expires
Fri, Nov 6, 9:18 AM (16 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4653837
Default Alt Text
(35 KB)
Attached To
Mode
rVYOSONEX vyos-1x
Attached
Detach File
Event Timeline
Log In to Comment