! {% if ldp is vyos_defined %} mpls ldp {% if ldp.router_id is vyos_defined %} router-id {{ ldp.router_id }} {% endif %} {% if ldp.parameters.cisco_interop_tlv is vyos_defined %} dual-stack cisco-interop {% endif %} {% if ldp.parameters.transport_prefer_ipv4 is vyos_defined %} dual-stack transport-connection prefer ipv4 {% endif %} {% if ldp.parameters.ordered_control is vyos_defined %} ordered-control {% endif %} {% if ldp.neighbor is vyos_defined %} {% for neighbor, neighbor_config in ldp.neighbor %} {% if neighbor_config.password is vyos_defined %} neighbor {{ neighbors }} password {{ neighbor_config.password }} {% endif %} {% if neighbor_config.ttl_security is vyos_defined %} {% if neighbor_config.ttl_security.disable is vyos_defined %} neighbor {{ neighbors }} ttl-security disable {% else %} neighbor {{ neighbors }} ttl-security hops {{ neighbor_config.ttl_security }} {% endif %} {% endif %} {% if neighbor_config.session_holdtime is vyos_defined %} neighbor {{ neighbors }} session holdtime {{ neighbor_config.session_holdtime }} {% endif %} {% endfor %} {% endif %} ! {% if ldp.discovery.transport_ipv4_address is vyos_defined %} address-family ipv4 {% if ldp.allocation.ipv4.access_list is vyos_defined %} label local allocate for {{ ldp.allocation.ipv4.access_list }} {% else %} label local allocate host-routes {% endif %} {% if ldp.discovery.transport_ipv4_address is vyos_defined %} discovery transport-address {{ ldp.discovery.transport_ipv4_address }} {% endif %} {% if ldp.discovery.hello_ipv4_holdtime is vyos_defined %} discovery hello holdtime {{ ldp.discovery.hello_ipv4_holdtime }} {% endif %} {% if ldp.discovery.hello_ipv4_interval is vyos_defined %} discovery hello interval {{ ldp.discovery.hello_ipv4_interval }} {% endif %} {% if ldp.discovery.session_ipv4_holdtime is vyos_defined %} session holdtime {{ ldp.discovery.session_ipv4_holdtime }} {% endif %} {% if ldp.import.ipv4.import_filter.filter_access_list is vyos_defined %} {% if ldp.import.ipv4.import_filter.neighbor_access_list is vyos_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 %} {% if ldp.export.ipv4.explicit_null is vyos_defined %} label local advertise explicit-null {% endif %} {% if ldp.export.ipv4.export_filter.filter_access_list is vyos_defined %} {% if ldp.export.ipv4.export_filter.neighbor_access_list is vyos_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 %} {% if ldp.targeted_neighbor is vyos_defined %} {% if ldp.targeted_neighbor.ipv4.enable is vyos_defined %} discovery targeted-hello accept {% endif %} {% if ldp.targeted_neighbor.ipv4.hello_holdtime is vyos_defined %} discovery targeted-hello holdtime {{ ldp.targeted_neighbor.ipv4.hello_holdtime }} {% endif %} {% if ldp.targeted_neighbor.ipv4.hello_interval is vyos_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 %} {% if ldp.interface is vyos_defined %} {% for interface in ldp.interface %} interface {{ interface }} exit {% endfor %} {% endif %} exit-address-family {% else %} no address-family ipv4 {% endif %} ! {% if ldp.discovery.transport_ipv6_address is vyos_defined %} address-family ipv6 {% if ldp.allocation.ipv6.access_list6 is vyos_defined %} label local allocate for {{ ldp.allocation.ipv6.access_list6 }} {% else %} label local allocate host-routes {% endif %} {% if ldp.discovery.transport_ipv6_address is vyos_defined %} discovery transport-address {{ ldp.discovery.transport_ipv6_address }} {% endif %} {% if ldp.discovery.hello_ipv6_holdtime is vyos_defined %} discovery hello holdtime {{ ldp.discovery.hello_ipv6_holdtime }} {% endif %} {% if ldp.discovery.hello_ipv6_interval is vyos_defined %} discovery hello interval {{ ldp.discovery.hello_ipv6_interval }} {% endif %} {% if ldp.discovery.session_ipv6_holdtime is vyos_defined %} session holdtime {{ ldp.discovery.session_ipv6_holdtime }} {% endif %} {% if ldp.import.ipv6.import_filter.filter_access_list6 is vyos_defined %} label remote accept for {{ ldp.import.ipv6.import_filter.filter_access_list6 }} {{ 'from ' ~ ldp.import.ipv6.import_filter.neighbor_access_list6 if ldp.import.ipv6.import_filter.neighbor_access_list6 is vyos_defined }} {% endif %} {% if ldp.export.ipv6.explicit_null is vyos_defined %} label local advertise explicit-null {% endif %} {% if ldp.export.ipv6.export_filter.filter_access_list6 is vyos_defined %} label local advertise for {{ ldp.export.ipv6.export_filter.filter_access_list6 }} {{ 'to ' ~ ldp.export.ipv6.export_filter.neighbor_access_list6 if ldp.export.ipv6.export_filter.neighbor_access_list6 is vyos_defined }} {% endif %} {% if ldp.targeted_neighbor is vyos_defined %} {% if ldp.targeted_neighbor.ipv6.enable is vyos_defined %} discovery targeted-hello accept {% endif %} {% if ldp.targeted_neighbor.ipv6.hello_holdtime is vyos_defined %} discovery targeted-hello holdtime {{ ldp.targeted_neighbor.ipv6.hello_holdtime }} {% endif %} {% if ldp.targeted_neighbor.ipv6.hello_interval is vyos_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 %} {% if ldp.interface is vyos_defined %} {% for interface in ldp.interface %} interface {{ interface }} {% endfor %} {% endif %} exit-address-family {% else %} no address-family ipv6 {% endif %} ! exit {% endif %} !