summaryrefslogtreecommitdiff
path: root/data/templates/frr/ldpd.frr.tmpl
blob: 86342b3eb016c0bd3d1f2c2bd57541ff480028a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
!
{% 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 %}
{%     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 %}
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 %}
{%             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.export is defined %}
{%                 if ldp.export.ipv4.explicit_null is defined %}
label local advertise explicit-null
{%                 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 %}
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 %}
{%             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.export is defined %}
{%                 if ldp.export.ipv6.explicit_null is defined %}
label local advertise explicit-null
{%                 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 %}