/src/frr/yang/frr-bgp-route-map.yang.c
Line | Count | Source |
1 | | /* autogenerated by embedmodel.py. DO NOT EDIT */ |
2 | | |
3 | | #include <zebra.h> |
4 | | #include "yang.h" |
5 | | |
6 | | static const char model[] = |
7 | | "module frr-bgp-route-map {\n" |
8 | | " yang-version 1.1;\n" |
9 | | " namespace \"http://frrouting.org/yang/bgp-route-map\";\n" |
10 | | " prefix frr-bgp-route-map;\n" |
11 | | "\n" |
12 | | " import ietf-inet-types {\n" |
13 | | " prefix inet;\n" |
14 | | " }\n" |
15 | | "\n" |
16 | | " import frr-route-map {\n" |
17 | | " prefix frr-route-map;\n" |
18 | | " }\n" |
19 | | "\n" |
20 | | " import frr-filter {\n" |
21 | | " prefix filter;\n" |
22 | | " }\n" |
23 | | "\n" |
24 | | " import frr-bgp-filter {\n" |
25 | | " prefix bgp-filter;\n" |
26 | | " }\n" |
27 | | "\n" |
28 | | " import ietf-routing-types {\n" |
29 | | " prefix rt-types;\n" |
30 | | " }\n" |
31 | | "\n" |
32 | | " import frr-route-types {\n" |
33 | | " prefix frr-route-types;\n" |
34 | | " }\n" |
35 | | "\n" |
36 | | " organization\n" |
37 | | " \"Free Range Routing\";\n" |
38 | | " contact\n" |
39 | | " \"FRR Users List: <mailto:frog@lists.frrouting.org>\n" |
40 | | " FRR Development List: <mailto:dev@lists.frrouting.org>\";\n" |
41 | | " description\n" |
42 | | " \"This module defines bgp route map settings\";\n" |
43 | | "\n" |
44 | | " revision 2020-01-02 {\n" |
45 | | " description\n" |
46 | | " \"Initial revision\";\n" |
47 | | " }\n" |
48 | | "\n" |
49 | | " identity match-alias {\n" |
50 | | " base frr-route-map:rmap-match-type;\n" |
51 | | " description\n" |
52 | | " \"Match BGP community alias name\";\n" |
53 | | " }\n" |
54 | | "\n" |
55 | | " identity match-local-preference {\n" |
56 | | " base frr-route-map:rmap-match-type;\n" |
57 | | " description\n" |
58 | | " \"Match local-preference of routes\";\n" |
59 | | " }\n" |
60 | | "\n" |
61 | | " identity match-script {\n" |
62 | | " base frr-route-map:rmap-match-type;\n" |
63 | | " description\n" |
64 | | " \"Match script of routes\";\n" |
65 | | " }\n" |
66 | | "\n" |
67 | | " identity match-origin {\n" |
68 | | " base frr-route-map:rmap-match-type;\n" |
69 | | " description\n" |
70 | | " \"Match BGP route origin code\";\n" |
71 | | " }\n" |
72 | | "\n" |
73 | | " identity rpki {\n" |
74 | | " base frr-route-map:rmap-match-type;\n" |
75 | | " description\n" |
76 | | " \"Control rpki specific settings\";\n" |
77 | | " }\n" |
78 | | "\n" |
79 | | " identity rpki-extcommunity {\n" |
80 | | " base frr-route-map:rmap-match-type;\n" |
81 | | " description\n" |
82 | | " \"Control rpki specific settings derived from extended community\";\n" |
83 | | " }\n" |
84 | | "\n" |
85 | | " identity probability {\n" |
86 | | " base frr-route-map:rmap-match-type;\n" |
87 | | " description\n" |
88 | | " \"Match portion of routes defined by percentage value\";\n" |
89 | | " }\n" |
90 | | "\n" |
91 | | " identity source-vrf {\n" |
92 | | " base frr-route-map:rmap-match-type;\n" |
93 | | " description\n" |
94 | | " \"Match source vrf of routes\";\n" |
95 | | " }\n" |
96 | | "\n" |
97 | | " identity peer {\n" |
98 | | " base frr-route-map:rmap-match-type;\n" |
99 | | " description\n" |
100 | | " \"Match peer address\";\n" |
101 | | " }\n" |
102 | | "\n" |
103 | | " identity mac-address-list {\n" |
104 | | " base frr-route-map:rmap-match-type;\n" |
105 | | " description\n" |
106 | | " \"Match MAC address access-list\";\n" |
107 | | " }\n" |
108 | | "\n" |
109 | | " identity ip-route-source {\n" |
110 | | " base frr-route-map:rmap-match-type;\n" |
111 | | " description\n" |
112 | | " \"Match advertising source address of route\";\n" |
113 | | " }\n" |
114 | | "\n" |
115 | | " identity ip-route-source-prefix-list {\n" |
116 | | " base frr-route-map:rmap-match-type;\n" |
117 | | " description\n" |
118 | | " \"Match advertising source address of route\";\n" |
119 | | " }\n" |
120 | | "\n" |
121 | | " identity evpn-route-type {\n" |
122 | | " base frr-route-map:rmap-match-type;\n" |
123 | | " description\n" |
124 | | " \"Match EVPN route type\";\n" |
125 | | " }\n" |
126 | | "\n" |
127 | | " identity evpn-default-route {\n" |
128 | | " base frr-route-map:rmap-match-type;\n" |
129 | | " description\n" |
130 | | " \"Match EVPN default Type-5 route\";\n" |
131 | | " }\n" |
132 | | "\n" |
133 | | " identity evpn-vni {\n" |
134 | | " base frr-route-map:rmap-match-type;\n" |
135 | | " description\n" |
136 | | " \"Match EVPN VNI\";\n" |
137 | | " }\n" |
138 | | "\n" |
139 | | " identity evpn-rd {\n" |
140 | | " base frr-route-map:rmap-match-type;\n" |
141 | | " description\n" |
142 | | " \"Match EVPN route distinguisher\";\n" |
143 | | " }\n" |
144 | | "\n" |
145 | | " identity match-community {\n" |
146 | | " base frr-route-map:rmap-match-type;\n" |
147 | | " description\n" |
148 | | " \"Match BGP community list\";\n" |
149 | | " }\n" |
150 | | "\n" |
151 | | " identity match-large-community {\n" |
152 | | " base frr-route-map:rmap-match-type;\n" |
153 | | " description\n" |
154 | | " \"Match BGP large-community list\";\n" |
155 | | " }\n" |
156 | | "\n" |
157 | | " identity match-extcommunity {\n" |
158 | | " base frr-route-map:rmap-match-type;\n" |
159 | | " description\n" |
160 | | " \"Match BGP extcommunity list\";\n" |
161 | | " }\n" |
162 | | "\n" |
163 | | " identity as-path-list {\n" |
164 | | " base frr-route-map:rmap-match-type;\n" |
165 | | " description\n" |
166 | | " \"Match BGP AS path list\";\n" |
167 | | " }\n" |
168 | | "\n" |
169 | | " identity ipv4-nexthop {\n" |
170 | | " base frr-route-map:rmap-match-type;\n" |
171 | | " description\n" |
172 | | " \"Match IPv4 next hop address\";\n" |
173 | | " }\n" |
174 | | "\n" |
175 | | " identity ipv6-nexthop {\n" |
176 | | " base frr-route-map:rmap-match-type;\n" |
177 | | " description\n" |
178 | | " \"Match IPv6 next hop address\";\n" |
179 | | " }\n" |
180 | | "\n" |
181 | | " identity source-protocol {\n" |
182 | | " base frr-route-map:rmap-match-type;\n" |
183 | | " description\n" |
184 | | " \"Match protocol via which the route was learnt\";\n" |
185 | | " }\n" |
186 | | "\n" |
187 | | " identity distance {\n" |
188 | | " base frr-route-map:rmap-set-type;\n" |
189 | | " description\n" |
190 | | " \"Set BGP administrative distance to use\";\n" |
191 | | " }\n" |
192 | | "\n" |
193 | | " identity set-extcommunity-none {\n" |
194 | | " base frr-route-map:rmap-set-type;\n" |
195 | | " description\n" |
196 | | " \"Set BGP extended community attribute\";\n" |
197 | | " }\n" |
198 | | "\n" |
199 | | " identity set-extcommunity-rt {\n" |
200 | | " base frr-route-map:rmap-set-type;\n" |
201 | | " description\n" |
202 | | " \"Set BGP extended community attribute\";\n" |
203 | | " }\n" |
204 | | "\n" |
205 | | " identity set-extcommunity-nt {\n" |
206 | | " base frr-route-map:rmap-set-type;\n" |
207 | | " description\n" |
208 | | " \"Set BGP extended community attribute\";\n" |
209 | | " }\n" |
210 | | "\n" |
211 | | " identity set-extcommunity-soo {\n" |
212 | | " base frr-route-map:rmap-set-type;\n" |
213 | | " description\n" |
214 | | " \"Set BGP extended community attribute\";\n" |
215 | | " }\n" |
216 | | "\n" |
217 | | " identity set-extcommunity-lb {\n" |
218 | | " base frr-route-map:rmap-set-type;\n" |
219 | | " description\n" |
220 | | " \"Set BGP extended community attribute\";\n" |
221 | | " }\n" |
222 | | "\n" |
223 | | " identity set-ipv4-nexthop {\n" |
224 | | " base frr-route-map:rmap-set-type;\n" |
225 | | " description\n" |
226 | | " \"Set the IPv4 next-hop to peer-address/unchanged\";\n" |
227 | | " }\n" |
228 | | "\n" |
229 | | " identity ipv4-vpn-address {\n" |
230 | | " base frr-route-map:rmap-set-type;\n" |
231 | | " description\n" |
232 | | " \"Set IPv4 VPN next-hop address\";\n" |
233 | | " }\n" |
234 | | "\n" |
235 | | " identity ipv6-nexthop-global {\n" |
236 | | " base frr-route-map:rmap-set-type;\n" |
237 | | " description\n" |
238 | | " \"Set IPv6 next-hop global address\";\n" |
239 | | " }\n" |
240 | | "\n" |
241 | | " identity ipv6-prefer-global {\n" |
242 | | " base frr-route-map:rmap-set-type;\n" |
243 | | " description\n" |
244 | | " \"Set IPv6 next-hop to prefer global address\";\n" |
245 | | " }\n" |
246 | | "\n" |
247 | | " identity ipv6-peer-address {\n" |
248 | | " base frr-route-map:rmap-set-type;\n" |
249 | | " description\n" |
250 | | " \"Set IPv6 next-hop peer address\";\n" |
251 | | " }\n" |
252 | | "\n" |
253 | | " identity ipv6-vpn-address {\n" |
254 | | " base frr-route-map:rmap-set-type;\n" |
255 | | " description\n" |
256 | | " \"Set IPv6 VPN next-hop address\";\n" |
257 | | " }\n" |
258 | | "\n" |
259 | | " identity label-index {\n" |
260 | | " base frr-route-map:rmap-set-type;\n" |
261 | | " description\n" |
262 | | " \"Set the label index to associate with the prefixs\";\n" |
263 | | " }\n" |
264 | | "\n" |
265 | | " identity set-local-preference {\n" |
266 | | " base frr-route-map:rmap-set-type;\n" |
267 | | " description\n" |
268 | | " \"Set the BGP local preference path attribute\";\n" |
269 | | " }\n" |
270 | | "\n" |
271 | | " identity set-origin {\n" |
272 | | " base frr-route-map:rmap-set-type;\n" |
273 | | " description\n" |
274 | | " \"Set BGP route origin code\";\n" |
275 | | " }\n" |
276 | | "\n" |
277 | | " identity weight {\n" |
278 | | " base frr-route-map:rmap-set-type;\n" |
279 | | " description\n" |
280 | | " \"Set the BGP weight attribute\";\n" |
281 | | " }\n" |
282 | | "\n" |
283 | | " identity originator-id {\n" |
284 | | " base frr-route-map:rmap-set-type;\n" |
285 | | " description\n" |
286 | | " \"Set the BGP originator ID attribute\";\n" |
287 | | " }\n" |
288 | | "\n" |
289 | | " identity table {\n" |
290 | | " base frr-route-map:rmap-set-type;\n" |
291 | | " description\n" |
292 | | " \"Export route to non-main kernel table\";\n" |
293 | | " }\n" |
294 | | "\n" |
295 | | " identity atomic-aggregate {\n" |
296 | | " base frr-route-map:rmap-set-type;\n" |
297 | | " description\n" |
298 | | " \"Set BGP atomic-aggregate attribute\";\n" |
299 | | " }\n" |
300 | | "\n" |
301 | | " identity aigp-metric {\n" |
302 | | " base frr-route-map:rmap-set-type;\n" |
303 | | " description\n" |
304 | | " \"Set BGP AIGP attribute (AIGP TLV Metric)\";\n" |
305 | | " }\n" |
306 | | "\n" |
307 | | " identity as-path-prepend {\n" |
308 | | " base frr-route-map:rmap-set-type;\n" |
309 | | " description\n" |
310 | | " \"Set the BGP AS-path attribute\";\n" |
311 | | " }\n" |
312 | | "\n" |
313 | | " identity as-path-exclude {\n" |
314 | | " base frr-route-map:rmap-set-type;\n" |
315 | | " description\n" |
316 | | " \"Set the BGP AS-path attribute\";\n" |
317 | | " }\n" |
318 | | "\n" |
319 | | " identity as-path-replace {\n" |
320 | | " base frr-route-map:rmap-set-type;\n" |
321 | | " description\n" |
322 | | " \"Replace ASNs to local AS number\";\n" |
323 | | " }\n" |
324 | | "\n" |
325 | | " identity set-community {\n" |
326 | | " base frr-route-map:rmap-set-type;\n" |
327 | | " description\n" |
328 | | " \"Set the BGP community attribute\";\n" |
329 | | " }\n" |
330 | | "\n" |
331 | | " identity set-large-community {\n" |
332 | | " base frr-route-map:rmap-set-type;\n" |
333 | | " description\n" |
334 | | " \"Set the BGP large-community attribute\";\n" |
335 | | " }\n" |
336 | | "\n" |
337 | | " identity aggregator {\n" |
338 | | " base frr-route-map:rmap-set-type;\n" |
339 | | " description\n" |
340 | | " \"Set the BGP aggregator attribute\";\n" |
341 | | " }\n" |
342 | | "\n" |
343 | | " identity comm-list-delete {\n" |
344 | | " base frr-route-map:rmap-set-type;\n" |
345 | | " description\n" |
346 | | " \"Set BGP community list (for deletion)\";\n" |
347 | | " }\n" |
348 | | "\n" |
349 | | " identity large-comm-list-delete {\n" |
350 | | " base frr-route-map:rmap-set-type;\n" |
351 | | " description\n" |
352 | | " \"Set BGP large community list (for deletion)\";\n" |
353 | | " }\n" |
354 | | "\n" |
355 | | " identity set-evpn-gateway-ip-ipv4 {\n" |
356 | | " base frr-route-map:rmap-set-type;\n" |
357 | | " description\n" |
358 | | " \"Set EVPN gateway IP overlay index IPv4\";\n" |
359 | | " }\n" |
360 | | "\n" |
361 | | " identity set-evpn-gateway-ip-ipv6 {\n" |
362 | | " base frr-route-map:rmap-set-type;\n" |
363 | | " description\n" |
364 | | " \"Set EVPN gateway IP overlay index IPv6\";\n" |
365 | | " }\n" |
366 | | "\n" |
367 | | " identity set-l3vpn-nexthop-encapsulation {\n" |
368 | | " base frr-route-map:rmap-set-type;\n" |
369 | | " description\n" |
370 | | " \"Accept L3VPN traffic over other than LSP encapsulation\";\n" |
371 | | " }\n" |
372 | | "\n" |
373 | | " grouping extcommunity-non-transitive-types {\n" |
374 | | " leaf two-octet-as-specific {\n" |
375 | | " type boolean;\n" |
376 | | " description\n" |
377 | | " \"Non-Transitive Two-Octet AS-Specific Extended Community\";\n" |
378 | | " }\n" |
379 | | " }\n" |
380 | | "\n" |
381 | | " typedef route-distinguisher {\n" |
382 | | " type string {\n" |
383 | | " pattern\n" |
384 | | " \'(0:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|\'\n" |
385 | | " + \'6[0-4][0-9]{3}|\'\n" |
386 | | " + \'[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(429496729[0-5]|\'\n" |
387 | | " + \'42949672[0-8][0-9]|\'\n" |
388 | | " + \'4294967[01][0-9]{2}|429496[0-6][0-9]{3}|\'\n" |
389 | | " + \'42949[0-5][0-9]{4}|\'\n" |
390 | | " + \'4294[0-8][0-9]{5}|429[0-3][0-9]{6}|\'\n" |
391 | | " + \'42[0-8][0-9]{7}|4[01][0-9]{8}|\'\n" |
392 | | " + \'[1-3][0-9]{9}|[1-9][0-9]{0,8}|0))|\'\n" |
393 | | " + \'(1:((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|\'\n" |
394 | | " + \'25[0-5])\\.){3}([0-9]|[1-9][0-9]|\'\n" |
395 | | " + \'1[0-9]{2}|2[0-4][0-9]|25[0-5])):(6553[0-5]|\'\n" |
396 | | " + \'655[0-2][0-9]|\'\n" |
397 | | " + \'65[0-4][0-9]{2}|6[0-4][0-9]{3}|\'\n" |
398 | | " + \'[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|\'\n" |
399 | | " + \'(2:(429496729[0-5]|42949672[0-8][0-9]|\'\n" |
400 | | " + \'4294967[01][0-9]{2}|\'\n" |
401 | | " + \'429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|\'\n" |
402 | | " + \'4294[0-8][0-9]{5}|\'\n" |
403 | | " + \'429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|\'\n" |
404 | | " + \'[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):\'\n" |
405 | | " + \'(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|\'\n" |
406 | | " + \'6[0-4][0-9]{3}|\'\n" |
407 | | " + \'[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|\'\n" |
408 | | " + \'(6(:[a-fA-F0-9]{2}){6})|\'\n" |
409 | | " + \'(([3-57-9a-fA-F]|[1-9a-fA-F][0-9a-fA-F]{1,3}):\'\n" |
410 | | " + \'[0-9a-fA-F]{1,12})|\'\n" |
411 | | " + \'((6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|\'\n" |
412 | | " + \'6[0-4][0-9]{3}|\'\n" |
413 | | " + \'[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(429496729[0-5]|\'\n" |
414 | | " + \'42949672[0-8][0-9]|\'\n" |
415 | | " + \'4294967[01][0-9]{2}|429496[0-6][0-9]{3}|\'\n" |
416 | | " + \'42949[0-5][0-9]{4}|\'\n" |
417 | | " + \'4294[0-8][0-9]{5}|429[0-3][0-9]{6}|\'\n" |
418 | | " + \'42[0-8][0-9]{7}|4[01][0-9]{8}|\'\n" |
419 | | " + \'[1-3][0-9]{9}|[1-9][0-9]{0,8}|0)|\'\n" |
420 | | " + \'((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|\'\n" |
421 | | " + \'25[0-5])\\.){3}([0-9]|[1-9][0-9]|\'\n" |
422 | | " + \'1[0-9]{2}|2[0-4][0-9]|25[0-5])):(6553[0-5]|\'\n" |
423 | | " + \'655[0-2][0-9]|\'\n" |
424 | | " + \'65[0-4][0-9]{2}|6[0-4][0-9]{3}|\'\n" |
425 | | " + \'[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|\'\n" |
426 | | " + \'((429496729[0-5]|42949672[0-8][0-9]|\'\n" |
427 | | " + \'4294967[01][0-9]{2}|\'\n" |
428 | | " + \'429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|\'\n" |
429 | | " + \'4294[0-8][0-9]{5}|\'\n" |
430 | | " + \'429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|\'\n" |
431 | | " + \'[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):\'\n" |
432 | | " + \'(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|\'\n" |
433 | | " + \'6[0-4][0-9]{3}|\'\n" |
434 | | " + \'[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|\'\n" |
435 | | " + \'((6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|\'\n" |
436 | | " + \'6[0-4][0-9]{3}|\'\n" |
437 | | " + \'[1-5][0-9]{4}|[1-9][0-9]{0,3}|0).\'\n" |
438 | | " + \'(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|\'\n" |
439 | | " + \'6[0-4][0-9]{3}|\'\n" |
440 | | " + \'[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):\'\n" |
441 | | " + \'(429496729[0-5]|42949672[0-8][0-9]|\'\n" |
442 | | " + \'4294967[01][0-9]{2}|\'\n" |
443 | | " + \'429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|\'\n" |
444 | | " + \'4294[0-8][0-9]{5}|\'\n" |
445 | | " + \'429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|\'\n" |
446 | | " + \'[1-3][0-9]{9}|[1-9][0-9]{0,8}|0))\';\n" |
447 | | " }\n" |
448 | | "\n" |
449 | | " description\n" |
450 | | " \"A Route Distinguisher is an 8-octet value used to\n" |
451 | | " distinguish routes from different BGP VPNs (RFC 4364).\n" |
452 | | " A Route Distinguisher will have the same format as a\n" |
453 | | " Route Target as per RFC 4360 and will consist of\n" |
454 | | " two or three fields: a 2-octet Type field, an administrator\n" |
455 | | " field, and, optionally, an assigned number field.\n" |
456 | | " According to the data formats for types 0, 1, 2, and 6 as\n" |
457 | | " defined in RFC 4360, RFC 5668, and RFC 7432, the encoding\n" |
458 | | " pattern is defined as:\n" |
459 | | " 0:2-octet-asn:4-octet-number\n" |
460 | | " 1:4-octet-ipv4addr:2-octet-number\n" |
461 | | " 2:4-octet-asn:2-octet-number\n" |
462 | | " 6:6-octet-mac-address\n" |
463 | | " Additionally, a generic pattern is defined for future\n" |
464 | | " route discriminator types:\n" |
465 | | " 2-octet-other-hex-number:6-octet-hex-number\n" |
466 | | " Some valid examples are 0:100:100, 1:1.1.1.1:100,\n" |
467 | | " 2:1234567890:203, and 6:26:00:08:92:78:00.\n" |
468 | | " The following route distinguisher with two fields are also\n" |
469 | | " accepted : 10000:44 1.2.3.4:44.\";\n" |
470 | | " reference\n" |
471 | | " \"RFC 4360: BGP Extended Communities Attribute.\n" |
472 | | " RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs).\n" |
473 | | " RFC 5668: 4-Octet AS Specific BGP Extended Community.\n" |
474 | | " RFC 7432: BGP MPLS-Based Ethernet VPN.\";\n" |
475 | | " }\n" |
476 | | "\n" |
477 | | " typedef extcommunity-lb-type {\n" |
478 | | " type enumeration {\n" |
479 | | " enum \"explicit-bandwidth\" {\n" |
480 | | " value 0;\n" |
481 | | " description\n" |
482 | | " \"Bandwidth value in Mbps\";\n" |
483 | | " }\n" |
484 | | " enum \"cumulative-bandwidth\" {\n" |
485 | | " value 1;\n" |
486 | | " description\n" |
487 | | " \"Cumulative bandwidth of all multipaths (outbound-only)\";\n" |
488 | | " }\n" |
489 | | " enum \"computed-bandwidth\" {\n" |
490 | | " value 2;\n" |
491 | | " description\n" |
492 | | " \"Internally computed bandwidth based on number of multipaths (outbound-only)\";\n" |
493 | | " }\n" |
494 | | " }\n" |
495 | | " description\n" |
496 | | " \"ext-community link bandwidth types.\";\n" |
497 | | " }\n" |
498 | | "\n" |
499 | | " typedef asn-type {\n" |
500 | | " type union {\n" |
501 | | " type uint32 {\n" |
502 | | " range \"1..4294967295\";\n" |
503 | | " }\n" |
504 | | " type string {\n" |
505 | | " pattern \'(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|\'\n" |
506 | | " + \'6[0-4][0-9]{3}|65[0-4][0-9]{2}|\'\n" |
507 | | " + \'655[0-2][0-9]|6553[0-5])\\.\'\n" |
508 | | " + \'(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|\'\n" |
509 | | " + \'65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])\' {\n" |
510 | | " error-message \"AS dot should be in the form [0..65535].[0..65535].\";\n" |
511 | | " }\n" |
512 | | " pattern \'^0\\.0$\' {\n" |
513 | | " modifier \"invert-match\";\n" |
514 | | " error-message \"AS dot can\'t be equal to 0.0.\";\n" |
515 | | " }\n" |
516 | | " }\n" |
517 | | " }\n" |
518 | | " }\n" |
519 | | "\n" |
520 | | " augment \"/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:rmap-match-condition/frr-route-map:match-condition\" {\n" |
521 | | " case local-preference {\n" |
522 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:match-local-preference\')\";\n" |
523 | | " leaf local-preference {\n" |
524 | | " type uint32 {\n" |
525 | | " range \"0..4294967295\";\n" |
526 | | " }\n" |
527 | | " }\n" |
528 | | " }\n" |
529 | | "\n" |
530 | | " case alias {\n" |
531 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:match-alias\')\";\n" |
532 | | " leaf alias {\n" |
533 | | " type string;\n" |
534 | | " }\n" |
535 | | " }\n" |
536 | | "\n" |
537 | | " case script {\n" |
538 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:match-script\')\";\n" |
539 | | " leaf script {\n" |
540 | | " type string;\n" |
541 | | " }\n" |
542 | | " }\n" |
543 | | "\n" |
544 | | " case origin {\n" |
545 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:match-origin\')\";\n" |
546 | | " leaf origin {\n" |
547 | | " type enumeration {\n" |
548 | | " enum \"egp\" {\n" |
549 | | " value 0;\n" |
550 | | " description\n" |
551 | | " \"Remote EGP\";\n" |
552 | | " }\n" |
553 | | " enum \"igp\" {\n" |
554 | | " value 1;\n" |
555 | | " description\n" |
556 | | " \"Local IGP\";\n" |
557 | | " }\n" |
558 | | " enum \"incomplete\" {\n" |
559 | | " value 2;\n" |
560 | | " description\n" |
561 | | " \"Unknown heritage\";\n" |
562 | | " }\n" |
563 | | " }\n" |
564 | | " }\n" |
565 | | " }\n" |
566 | | "\n" |
567 | | " case rpki {\n" |
568 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:rpki\')\";\n" |
569 | | " leaf rpki {\n" |
570 | | " type enumeration {\n" |
571 | | " enum \"invalid\" {\n" |
572 | | " value 0;\n" |
573 | | " description\n" |
574 | | " \"Invalid prefix\";\n" |
575 | | " }\n" |
576 | | " enum \"notfound\" {\n" |
577 | | " value 1;\n" |
578 | | " description\n" |
579 | | " \"Prefix not found\";\n" |
580 | | " }\n" |
581 | | " enum \"valid\" {\n" |
582 | | " value 2;\n" |
583 | | " description\n" |
584 | | " \"Valid prefix\";\n" |
585 | | " }\n" |
586 | | " }\n" |
587 | | " }\n" |
588 | | " }\n" |
589 | | "\n" |
590 | | " case rpki-extcommunity {\n" |
591 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:rpki-extcommunity\')\";\n" |
592 | | " leaf rpki-extcommunity {\n" |
593 | | " type enumeration {\n" |
594 | | " enum \"valid\" {\n" |
595 | | " value 0;\n" |
596 | | " description\n" |
597 | | " \"Valid prefix\";\n" |
598 | | " }\n" |
599 | | " enum \"notfound\" {\n" |
600 | | " value 1;\n" |
601 | | " description\n" |
602 | | " \"Prefix not found\";\n" |
603 | | " }\n" |
604 | | " enum \"invalid\" {\n" |
605 | | " value 2;\n" |
606 | | " description\n" |
607 | | " \"Invalid prefix\";\n" |
608 | | " }\n" |
609 | | " }\n" |
610 | | " }\n" |
611 | | " }\n" |
612 | | "\n" |
613 | | " case probability {\n" |
614 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:probability\')\";\n" |
615 | | " leaf probability {\n" |
616 | | " type uint8 {\n" |
617 | | " range \"0..100\";\n" |
618 | | " }\n" |
619 | | " }\n" |
620 | | " }\n" |
621 | | "\n" |
622 | | " case source-vrf {\n" |
623 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:source-vrf\')\";\n" |
624 | | " leaf source-vrf {\n" |
625 | | " type string;\n" |
626 | | " }\n" |
627 | | " }\n" |
628 | | "\n" |
629 | | " case peer {\n" |
630 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:peer\')\";\n" |
631 | | " choice peer {\n" |
632 | | " description\n" |
633 | | " \"Value of the peer\";\n" |
634 | | " case peer-ipv4-address {\n" |
635 | | " description\n" |
636 | | " \"IP address of peer\";\n" |
637 | | " leaf peer-ipv4-address {\n" |
638 | | " type inet:ipv4-address;\n" |
639 | | " }\n" |
640 | | " }\n" |
641 | | "\n" |
642 | | " case peer-interface {\n" |
643 | | " description\n" |
644 | | " \"Interface name of peer\";\n" |
645 | | " leaf peer-interface {\n" |
646 | | " type string;\n" |
647 | | " }\n" |
648 | | " }\n" |
649 | | "\n" |
650 | | " case peer-ipv6-address {\n" |
651 | | " description\n" |
652 | | " \"IPv6 address of peer\";\n" |
653 | | " leaf peer-ipv6-address {\n" |
654 | | " type inet:ipv6-address;\n" |
655 | | " }\n" |
656 | | " }\n" |
657 | | "\n" |
658 | | " case peer-local {\n" |
659 | | " description\n" |
660 | | " \"Static or Redistributed routes\";\n" |
661 | | " leaf peer-local {\n" |
662 | | " type boolean;\n" |
663 | | " }\n" |
664 | | " }\n" |
665 | | " }\n" |
666 | | " }\n" |
667 | | "\n" |
668 | | " case access-list-name {\n" |
669 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:mac-address-list\') or \"\n" |
670 | | " + \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:as-path-list\') or \"\n" |
671 | | " + \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:ip-route-source\') or \"\n" |
672 | | " + \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:ip-route-source-prefix-list\')\";\n" |
673 | | " description\n" |
674 | | " \"Access-list name\";\n" |
675 | | " leaf list-name {\n" |
676 | | " type filter:access-list-name;\n" |
677 | | " }\n" |
678 | | " }\n" |
679 | | "\n" |
680 | | " case evpn-default-route {\n" |
681 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:evpn-default-route\')\";\n" |
682 | | " description\n" |
683 | | " \"Match default EVPN type-5 route\";\n" |
684 | | " leaf evpn-default-route {\n" |
685 | | " type empty;\n" |
686 | | " }\n" |
687 | | " }\n" |
688 | | "\n" |
689 | | " case evpn-vni {\n" |
690 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:evpn-vni\')\";\n" |
691 | | " description\n" |
692 | | " \"Match eVPN VNI\";\n" |
693 | | " leaf evpn-vni {\n" |
694 | | " type uint32 {\n" |
695 | | " range \"1..16777215\";\n" |
696 | | " }\n" |
697 | | " }\n" |
698 | | " }\n" |
699 | | "\n" |
700 | | " case evpn-route-type {\n" |
701 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:evpn-route-type\')\";\n" |
702 | | " description\n" |
703 | | " \"Match eVPN route-type\";\n" |
704 | | " leaf evpn-route-type {\n" |
705 | | " type enumeration {\n" |
706 | | " enum \"macip\" {\n" |
707 | | " value 0;\n" |
708 | | " description\n" |
709 | | " \"Mac-IP route\";\n" |
710 | | " }\n" |
711 | | " enum \"multicast\" {\n" |
712 | | " value 1;\n" |
713 | | " description\n" |
714 | | " \"IMET route\";\n" |
715 | | " }\n" |
716 | | " enum \"prefix\" {\n" |
717 | | " value 2;\n" |
718 | | " description\n" |
719 | | " \"Prefix route\";\n" |
720 | | " }\n" |
721 | | " enum \"ead\" {\n" |
722 | | " value 3;\n" |
723 | | " description\n" |
724 | | " \"Ethernet Auto-Discovery route\";\n" |
725 | | " }\n" |
726 | | " enum \"es\" {\n" |
727 | | " value 4;\n" |
728 | | " description\n" |
729 | | " \"Ethernet Segment route\";\n" |
730 | | " }\n" |
731 | | " }\n" |
732 | | " }\n" |
733 | | " }\n" |
734 | | "\n" |
735 | | " case evpn-rd {\n" |
736 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:evpn-rd\')\";\n" |
737 | | " description\n" |
738 | | " \"Match eVPN route-distinguisher\";\n" |
739 | | " leaf route-distinguisher {\n" |
740 | | " type route-distinguisher;\n" |
741 | | " }\n" |
742 | | " }\n" |
743 | | "\n" |
744 | | " case comm-list-name {\n" |
745 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:match-community\') or \"\n" |
746 | | " + \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:match-large-community\') or \"\n" |
747 | | " + \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:match-extcommunity\')\";\n" |
748 | | " container comm-list {\n" |
749 | | " leaf comm-list-name {\n" |
750 | | " type bgp-filter:bgp-list-name;\n" |
751 | | " }\n" |
752 | | "\n" |
753 | | " leaf comm-list-name-exact-match {\n" |
754 | | " type boolean;\n" |
755 | | " description\n" |
756 | | " \"Do exact matching of communities\";\n" |
757 | | " }\n" |
758 | | " }\n" |
759 | | " }\n" |
760 | | "\n" |
761 | | " case ipv4-address {\n" |
762 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:ipv4-nexthop\')\";\n" |
763 | | " leaf ipv4-address {\n" |
764 | | " type inet:ipv4-address;\n" |
765 | | " description\n" |
766 | | " \"IPv4 address\";\n" |
767 | | " }\n" |
768 | | " }\n" |
769 | | "\n" |
770 | | " case ipv6-address {\n" |
771 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, \'frr-bgp-route-map:ipv6-nexthop\')\";\n" |
772 | | " leaf ipv6-address {\n" |
773 | | " type inet:ipv6-address;\n" |
774 | | " description\n" |
775 | | " \"IPv6 address\";\n" |
776 | | " }\n" |
777 | | " }\n" |
778 | | "\n" |
779 | | " case source-protocol {\n" |
780 | | " when \"derived-from-or-self(../frr-route-map:condition, \'frr-bgp-route-map:source-protocol\')\";\n" |
781 | | " leaf source-protocol {\n" |
782 | | " type frr-route-types:frr-route-types;\n" |
783 | | " }\n" |
784 | | " }\n" |
785 | | " }\n" |
786 | | "\n" |
787 | | " augment \"/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:rmap-set-action/frr-route-map:set-action\" {\n" |
788 | | " case distance {\n" |
789 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:distance\')\";\n" |
790 | | " leaf distance {\n" |
791 | | " type uint8 {\n" |
792 | | " range \"1..255\";\n" |
793 | | " }\n" |
794 | | " }\n" |
795 | | " }\n" |
796 | | "\n" |
797 | | " case extcommunity-none {\n" |
798 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:set-extcommunity-none\')\";\n" |
799 | | " description\n" |
800 | | " \"Value of the BGP extended community attribute\";\n" |
801 | | " leaf extcommunity-none {\n" |
802 | | " type boolean;\n" |
803 | | " description \"No extended community attribute\";\n" |
804 | | " }\n" |
805 | | " }\n" |
806 | | "\n" |
807 | | " case extcommunity-rt {\n" |
808 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:set-extcommunity-rt\')\";\n" |
809 | | " description\n" |
810 | | " \"Value of the ext-community\";\n" |
811 | | " leaf extcommunity-rt {\n" |
812 | | " type string;\n" |
813 | | " description\n" |
814 | | " \"Set BGP ext-community route-target attribute\";\n" |
815 | | " }\n" |
816 | | " }\n" |
817 | | "\n" |
818 | | " case extcommunity-nt {\n" |
819 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:set-extcommunity-nt\')\";\n" |
820 | | " description\n" |
821 | | " \"Value of the ext-community\";\n" |
822 | | " leaf extcommunity-nt {\n" |
823 | | " type string;\n" |
824 | | " description\n" |
825 | | " \"Set BGP ext-community node-target attribute\";\n" |
826 | | " }\n" |
827 | | " }\n" |
828 | | "\n" |
829 | | " case extcommunity-soo {\n" |
830 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:set-extcommunity-soo\')\";\n" |
831 | | " description\n" |
832 | | " \"Value of the ext-community\";\n" |
833 | | " leaf extcommunity-soo {\n" |
834 | | " type string;\n" |
835 | | " description\n" |
836 | | " \"Set BGP ext-community site-of-origin attribute\";\n" |
837 | | " }\n" |
838 | | " }\n" |
839 | | "\n" |
840 | | " case extcommunity-lb {\n" |
841 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:set-extcommunity-lb\')\";\n" |
842 | | " container extcommunity-lb {\n" |
843 | | " description\n" |
844 | | " \"Value of the ext-community.\";\n" |
845 | | " leaf lb-type {\n" |
846 | | " type frr-bgp-route-map:extcommunity-lb-type;\n" |
847 | | " }\n" |
848 | | "\n" |
849 | | " leaf bandwidth {\n" |
850 | | " when \"../lb-type = \'explicit-bandwidth\'\";\n" |
851 | | " type uint16 {\n" |
852 | | " range \"1..25600\";\n" |
853 | | " }\n" |
854 | | " description\n" |
855 | | " \"Bandwidth value in Mbps\";\n" |
856 | | " }\n" |
857 | | " uses extcommunity-non-transitive-types;\n" |
858 | | " }\n" |
859 | | " }\n" |
860 | | "\n" |
861 | | " case ipv4-address {\n" |
862 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:ipv4-vpn-address\')\";\n" |
863 | | " description\n" |
864 | | " \"Set the IPv4 address\";\n" |
865 | | " leaf ipv4-address {\n" |
866 | | " type inet:ipv4-address;\n" |
867 | | " }\n" |
868 | | " }\n" |
869 | | "\n" |
870 | | " case ipv4-nexthop {\n" |
871 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:set-ipv4-nexthop\')\";\n" |
872 | | " leaf ipv4-nexthop {\n" |
873 | | " type string;\n" |
874 | | " }\n" |
875 | | " }\n" |
876 | | "\n" |
877 | | " case ipv6-address {\n" |
878 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:ipv6-nexthop-global\') or \"\n" |
879 | | " + \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:ipv6-vpn-address\')\";\n" |
880 | | " description\n" |
881 | | " \"Set the IPv6 address\";\n" |
882 | | " leaf ipv6-address {\n" |
883 | | " type inet:ipv6-address;\n" |
884 | | " }\n" |
885 | | " }\n" |
886 | | "\n" |
887 | | " case preference {\n" |
888 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:ipv6-prefer-global\') or \"\n" |
889 | | " + \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:ipv6-peer-address\')\";\n" |
890 | | " leaf preference {\n" |
891 | | " type boolean;\n" |
892 | | " }\n" |
893 | | " }\n" |
894 | | "\n" |
895 | | " case label-index {\n" |
896 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:label-index\')\";\n" |
897 | | " leaf label-index {\n" |
898 | | " type uint32 {\n" |
899 | | " range \"0..1048560\";\n" |
900 | | " }\n" |
901 | | " }\n" |
902 | | " }\n" |
903 | | "\n" |
904 | | " case local-pref {\n" |
905 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:set-local-preference\')\";\n" |
906 | | " leaf local-pref {\n" |
907 | | " type string;\n" |
908 | | " }\n" |
909 | | " }\n" |
910 | | "\n" |
911 | | " case weight {\n" |
912 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:weight\')\";\n" |
913 | | " leaf weight {\n" |
914 | | " type uint32 {\n" |
915 | | " range \"0..4294967295\";\n" |
916 | | " }\n" |
917 | | " }\n" |
918 | | " }\n" |
919 | | "\n" |
920 | | " case origin {\n" |
921 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:set-origin\')\";\n" |
922 | | " leaf origin {\n" |
923 | | " type enumeration {\n" |
924 | | " enum \"egp\" {\n" |
925 | | " value 0;\n" |
926 | | " description\n" |
927 | | " \"Remote EGP\";\n" |
928 | | " }\n" |
929 | | " enum \"igp\" {\n" |
930 | | " value 1;\n" |
931 | | " description\n" |
932 | | " \"Local IGP\";\n" |
933 | | " }\n" |
934 | | " enum \"incomplete\" {\n" |
935 | | " value 2;\n" |
936 | | " description\n" |
937 | | " \"Unknown heritage\";\n" |
938 | | " }\n" |
939 | | " }\n" |
940 | | " }\n" |
941 | | " }\n" |
942 | | "\n" |
943 | | " case originator-id {\n" |
944 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:originator-id\')\";\n" |
945 | | " leaf originator-id {\n" |
946 | | " type inet:ipv4-address;\n" |
947 | | " }\n" |
948 | | " }\n" |
949 | | "\n" |
950 | | " case table {\n" |
951 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:table\')\";\n" |
952 | | " leaf table {\n" |
953 | | " type uint32 {\n" |
954 | | " range \"1..4294967295\";\n" |
955 | | " }\n" |
956 | | " }\n" |
957 | | " }\n" |
958 | | "\n" |
959 | | " case atomic-aggregate {\n" |
960 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:atomic-aggregate\')\";\n" |
961 | | " leaf atomic-aggregate {\n" |
962 | | " type empty;\n" |
963 | | " }\n" |
964 | | " }\n" |
965 | | "\n" |
966 | | " case aigp-metric {\n" |
967 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:aigp-metric\')\";\n" |
968 | | " leaf aigp-metric {\n" |
969 | | " type string;\n" |
970 | | " description\n" |
971 | | " \"Set BGP AIGP attribute (AIGP Metric TLV)\";\n" |
972 | | " }\n" |
973 | | " }\n" |
974 | | "\n" |
975 | | " case as-path-prepend {\n" |
976 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:as-path-prepend\')\";\n" |
977 | | " choice as-path-prepend {\n" |
978 | | " description\n" |
979 | | " \"Value of the BGP AS-path attribute\";\n" |
980 | | " case prepend-as {\n" |
981 | | " description\n" |
982 | | " \"Prepend the mentioned AS-path\";\n" |
983 | | " leaf prepend-as-path {\n" |
984 | | " type string;\n" |
985 | | " }\n" |
986 | | " }\n" |
987 | | "\n" |
988 | | " case last-as {\n" |
989 | | " description\n" |
990 | | " \"Prepend the last ASN in the AS-path\";\n" |
991 | | " leaf last-as {\n" |
992 | | " type uint8 {\n" |
993 | | " range \"1..10\";\n" |
994 | | " }\n" |
995 | | " }\n" |
996 | | " }\n" |
997 | | " }\n" |
998 | | " }\n" |
999 | | "\n" |
1000 | | " case as-path-exclude {\n" |
1001 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:as-path-exclude\')\";\n" |
1002 | | " leaf exclude-as-path {\n" |
1003 | | " type string;\n" |
1004 | | " description\n" |
1005 | | " \"Exclude the mentioned AS-path\";\n" |
1006 | | " }\n" |
1007 | | " }\n" |
1008 | | "\n" |
1009 | | " case as-path-replace {\n" |
1010 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:as-path-replace\')\";\n" |
1011 | | " leaf replace-as-path {\n" |
1012 | | " type string;\n" |
1013 | | " description\n" |
1014 | | " \"Replace ASNs to local AS number\";\n" |
1015 | | " }\n" |
1016 | | " }\n" |
1017 | | "\n" |
1018 | | " case community {\n" |
1019 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:set-community\')\";\n" |
1020 | | " choice community {\n" |
1021 | | " description\n" |
1022 | | " \"Value of the BGP community attribute\";\n" |
1023 | | " case none {\n" |
1024 | | " description\n" |
1025 | | " \"No community attribute\";\n" |
1026 | | " leaf community-none {\n" |
1027 | | " type boolean;\n" |
1028 | | " }\n" |
1029 | | " }\n" |
1030 | | "\n" |
1031 | | " case community-string {\n" |
1032 | | " description\n" |
1033 | | " \"Community string\";\n" |
1034 | | " leaf community-string {\n" |
1035 | | " type string;\n" |
1036 | | " }\n" |
1037 | | " }\n" |
1038 | | " }\n" |
1039 | | " }\n" |
1040 | | "\n" |
1041 | | " case large-community {\n" |
1042 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:set-large-community\')\";\n" |
1043 | | " choice large-community {\n" |
1044 | | " description\n" |
1045 | | " \"Value of the BGP large-community attribute\";\n" |
1046 | | " case none {\n" |
1047 | | " description\n" |
1048 | | " \"No large-community attribute\";\n" |
1049 | | " leaf large-community-none {\n" |
1050 | | " type boolean;\n" |
1051 | | " }\n" |
1052 | | " }\n" |
1053 | | "\n" |
1054 | | " case large-community-string {\n" |
1055 | | " description\n" |
1056 | | " \"Large-Community string\";\n" |
1057 | | " leaf large-community-string {\n" |
1058 | | " type string;\n" |
1059 | | " }\n" |
1060 | | " }\n" |
1061 | | " }\n" |
1062 | | " }\n" |
1063 | | "\n" |
1064 | | " case aggregator {\n" |
1065 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:aggregator\')\";\n" |
1066 | | " container aggregator {\n" |
1067 | | " leaf aggregator-asn {\n" |
1068 | | " type asn-type;\n" |
1069 | | " description\n" |
1070 | | " \"ASN of the aggregator\";\n" |
1071 | | " }\n" |
1072 | | "\n" |
1073 | | " leaf aggregator-address {\n" |
1074 | | " type inet:ipv4-address;\n" |
1075 | | " description\n" |
1076 | | " \"IPv4 address of the aggregator\";\n" |
1077 | | " }\n" |
1078 | | " }\n" |
1079 | | " }\n" |
1080 | | "\n" |
1081 | | " case comm-list-name {\n" |
1082 | | " when \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:comm-list-delete\') or \"\n" |
1083 | | " + \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, \'frr-bgp-route-map:large-comm-list-delete\')\";\n" |
1084 | | " leaf comm-list-name {\n" |
1085 | | " type bgp-filter:bgp-list-name;\n" |
1086 | | " }\n" |
1087 | | " }\n" |
1088 | | " case evpn-gateway-ip-ipv4 {\n" |
1089 | | " when\n" |
1090 | | " \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action,\n" |
1091 | | " \'frr-bgp-route-map:set-evpn-gateway-ip-ipv4\')\";\n" |
1092 | | " description\n" |
1093 | | " \"Set EVPN gateway IP overlay index IPv4\";\n" |
1094 | | " leaf evpn-gateway-ip-ipv4 {\n" |
1095 | | " type inet:ipv4-address;\n" |
1096 | | " }\n" |
1097 | | " }\n" |
1098 | | " case evpn-gateway-ip-ipv6 {\n" |
1099 | | " when\n" |
1100 | | " \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action,\n" |
1101 | | " \'frr-bgp-route-map:set-evpn-gateway-ip-ipv6\')\";\n" |
1102 | | " description\n" |
1103 | | " \"Set EVPN gateway IP overlay index IPv6\";\n" |
1104 | | " leaf evpn-gateway-ip-ipv6 {\n" |
1105 | | " type inet:ipv6-address;\n" |
1106 | | " }\n" |
1107 | | " }\n" |
1108 | | " case l3vpn-nexthop-encapsulation {\n" |
1109 | | " when\n" |
1110 | | " \"derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action,\n" |
1111 | | " \'frr-bgp-route-map:set-l3vpn-nexthop-encapsulation\')\";\n" |
1112 | | " description\n" |
1113 | | " \"Accept L3VPN traffic over other than LSP encapsulation\";\n" |
1114 | | " leaf l3vpn-nexthop-encapsulation {\n" |
1115 | | " type enumeration {\n" |
1116 | | " enum \"gre\" {\n" |
1117 | | " value 0;\n" |
1118 | | " description\n" |
1119 | | " \"GRE protocol\";\n" |
1120 | | " }\n" |
1121 | | " }\n" |
1122 | | " }\n" |
1123 | | " }\n" |
1124 | | " }\n" |
1125 | | "}\n" |
1126 | | ""; |
1127 | | |
1128 | | static struct yang_module_embed embed = { |
1129 | | .mod_name = "frr-bgp-route-map", |
1130 | | .mod_rev = "2020-01-02", |
1131 | | .sub_mod_name = "", |
1132 | | .sub_mod_rev = "", |
1133 | | .data = model, |
1134 | | .format = LYS_IN_YANG, |
1135 | | }; |
1136 | | |
1137 | | static void embed_register(void) __attribute__((_CONSTRUCTOR(2000))); |
1138 | | static void embed_register(void) |
1139 | 2 | { |
1140 | 2 | yang_module_embed(&embed); |
1141 | 2 | } |