summaryrefslogtreecommitdiff
path: root/data/templates/frr/ldpd.frr.tmpl
blob: bffe1b1c748227757d4a9b31b70536d0c46d158e (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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
!
{% 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 %}
exit
{% endif %}
!