]>
Commit | Line | Data |
---|---|---|
41db488c | 1 | // SPDX-License-Identifier: BSD-2-Clause |
2228b116 | 2 | submodule frr-bgp-common-structure { |
3 | yang-version 1.1; | |
4 | ||
5 | belongs-to frr-bgp { | |
6 | prefix "bgp"; | |
7 | } | |
8 | ||
9 | import ietf-inet-types { | |
10 | prefix inet; | |
11 | } | |
12 | ||
45c70d4a IR |
13 | import frr-route-map { |
14 | prefix frr-route-map; | |
15 | } | |
16 | ||
2228b116 | 17 | import frr-interface { |
18 | prefix frr-interface; | |
19 | } | |
20 | ||
21 | import ietf-bgp-types { | |
22 | prefix bt; | |
23 | } | |
24 | ||
25 | import frr-bgp-types { | |
26 | prefix frr-bt; | |
27 | } | |
28 | ||
3f5af3d5 RB |
29 | include "frr-bgp-common"; |
30 | ||
2228b116 | 31 | organization |
32 | "FRRouting"; | |
33 | contact | |
34 | "FRR Users List: <mailto:frog@lists.frrouting.org> FRR Development | |
35 | List: <mailto:dev@lists.frrouting.org>"; | |
36 | description | |
37 | "This submodule contains general data definitions for use in BGP. | |
38 | ||
39 | Copyright 2020 FRRouting | |
40 | ||
41 | Redistribution and use in source and binary forms, with or without | |
42 | modification, are permitted provided that the following conditions | |
43 | are met: | |
44 | ||
45 | 1. Redistributions of source code must retain the above copyright notice, | |
46 | this list of conditions and the following disclaimer. | |
47 | ||
48 | 2. Redistributions in binary form must reproduce the above copyright | |
49 | notice, this list of conditions and the following disclaimer in the | |
50 | documentation and/or other materials provided with the distribution. | |
51 | ||
52 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
53 | \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
54 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
55 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
56 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
57 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
58 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
59 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
60 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
61 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
62 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; | |
63 | ||
64 | revision 2019-12-03 { | |
65 | description | |
66 | "Initial revision."; | |
67 | } | |
68 | ||
69 | grouping structure-neighbor-group-ebgp-multihop { | |
70 | description | |
71 | "Structural grouping used to include EBGP multi-hop | |
72 | configuration for both BGP neighbors and peer groups."; | |
73 | container ebgp-multihop { | |
74 | description | |
75 | "EBGP multi-hop parameters for the BGP group."; | |
76 | choice hop-count-choice { | |
77 | case default-hop-count { | |
78 | leaf enabled { | |
79 | type boolean; | |
80 | default "false"; | |
81 | description | |
82 | "When enabled the referenced group or neighbors are | |
83 | permitted to be indirectly connected - including cases | |
84 | where the TTL can be decremented between the BGP peers."; | |
85 | } | |
86 | } | |
87 | ||
88 | case max-hop-count { | |
89 | leaf multihop-ttl { | |
90 | type uint8 { | |
91 | range "1..255"; | |
92 | } | |
93 | description | |
94 | "Time-to-live value to use when packets are sent to the | |
95 | referenced group or neighbors and ebgp-multihop is | |
96 | enabled."; | |
97 | } | |
98 | } | |
99 | } | |
100 | ||
101 | leaf disable-connected-check { | |
102 | type boolean; | |
103 | default "false"; | |
104 | description | |
105 | "When set to 'true' it enforces EBGP neighbors perform multihop."; | |
106 | } | |
107 | } | |
108 | } | |
109 | ||
110 | grouping neighbor-local-as-options { | |
111 | container local-as { | |
112 | leaf local-as { | |
113 | type inet:as-number; | |
2228b116 | 114 | description |
115 | "The local autonomous system number that is to be used when | |
116 | establishing sessions with the remote peer or peer group, if | |
117 | this differs from the global BGP router autonomous system | |
118 | number."; | |
119 | } | |
120 | ||
121 | leaf no-prepend { | |
2228b116 | 122 | type boolean; |
123 | default "false"; | |
124 | description | |
125 | "Do not prepend local-as to updates from EBGP peers. When | |
126 | set to 'true' it will not prepend local-as to updates. When | |
127 | set to 'false' it will prepend local-as to updates."; | |
128 | } | |
129 | ||
ba51dd26 | 130 | leaf replace-as { |
2228b116 | 131 | type boolean; |
132 | default "false"; | |
133 | description | |
134 | "Do not prepend local-as to updates from IBGP peers."; | |
135 | } | |
136 | } | |
137 | } | |
138 | ||
139 | grouping neighbor-bfd-options { | |
140 | container bfd-options { | |
141 | leaf enable { | |
142 | type boolean; | |
143 | default "false"; | |
144 | description | |
145 | "BFD support."; | |
146 | } | |
147 | ||
148 | leaf detect-multiplier { | |
149 | when "../enable = 'true'"; | |
150 | type uint8 { | |
151 | range "2..255"; | |
152 | } | |
153 | default "3"; | |
154 | description | |
155 | "Detect multiplier."; | |
156 | } | |
157 | ||
158 | leaf required-min-rx { | |
159 | when "../enable = 'true'"; | |
160 | type uint16 { | |
161 | range "50..60000"; | |
162 | } | |
94202742 | 163 | units "milliseconds"; |
2228b116 | 164 | default "300"; |
165 | description | |
166 | "Required min receive interval."; | |
167 | } | |
168 | ||
169 | leaf desired-min-tx { | |
170 | when "../enable = 'true'"; | |
171 | type uint16 { | |
172 | range "50..60000"; | |
173 | } | |
94202742 | 174 | units "milliseconds"; |
2228b116 | 175 | default "300"; |
176 | description | |
177 | "Desired min transmit interval."; | |
178 | } | |
179 | ||
180 | leaf session-type { | |
181 | when "../enable = 'true'"; | |
182 | type frr-bt:bfd-session-type; | |
183 | default "not-configured"; | |
184 | description | |
185 | "BFD session type."; | |
186 | } | |
187 | ||
188 | leaf check-cp-failure { | |
189 | when "../enable = 'true'"; | |
190 | type boolean; | |
191 | default "false"; | |
192 | description | |
193 | "Link dataplane status with BGP control plane."; | |
194 | } | |
195 | } | |
196 | } | |
197 | ||
198 | grouping neighbor-remote-as { | |
199 | container neighbor-remote-as { | |
200 | leaf remote-as-type { | |
201 | type frr-bt:as-type; | |
2228b116 | 202 | description |
203 | "Remote AS type."; | |
204 | } | |
205 | ||
206 | leaf remote-as { | |
207 | when "../remote-as-type = 'as-specified'"; | |
208 | type inet:as-number; | |
209 | description | |
210 | "The remote autonomous system number received in | |
211 | the BGP OPEN message."; | |
212 | reference | |
213 | "RFC 4271"; | |
214 | } | |
215 | } | |
216 | } | |
217 | ||
218 | grouping neighbor-update-source { | |
219 | description | |
220 | "Source of routing updates."; | |
221 | container update-source { | |
222 | description | |
223 | "Source of routing updates config."; | |
224 | choice source { | |
225 | case ip-based { | |
226 | leaf ip { | |
227 | type inet:ip-address; | |
228 | description | |
229 | "IPv4 address/IPv6 address."; | |
230 | } | |
231 | } | |
232 | ||
233 | case interface-based { | |
234 | leaf interface { | |
235 | type frr-interface:interface-ref { | |
236 | require-instance false; | |
237 | } | |
238 | description | |
239 | "The local interface."; | |
240 | } | |
241 | } | |
242 | } | |
243 | } | |
244 | } | |
245 | ||
246 | grouping structure-neighbor-group-add-paths { | |
247 | description | |
248 | "Structural grouping used to include ADD-PATHs configuration | |
249 | and state for both BGP neighbors and peer groups."; | |
250 | container add-paths { | |
251 | description | |
252 | "Parameters relating to the advertisement and receipt of | |
253 | multiple paths for a single NLRI (add-paths)."; | |
254 | reference | |
255 | "RFC 7911: ADD-PATH."; | |
256 | leaf path-type { | |
257 | type frr-bt:add-path-type; | |
258 | default "none"; | |
259 | description | |
260 | "Enable ability to receive multiple path advertisements for | |
261 | an NLRI from the neighbor or group."; | |
262 | } | |
263 | } | |
264 | } | |
265 | ||
266 | grouping structure-neighbor-group-as-path-options { | |
267 | description | |
268 | "Structural grouping used to include AS_PATH manipulation | |
269 | configuration both BGP neighbors and peer groups."; | |
270 | container as-path-options { | |
271 | description | |
272 | "AS_PATH manipulation parameters for the BGP neighbor or | |
273 | group."; | |
274 | choice allowas-in { | |
275 | case occurence-based { | |
276 | leaf allow-own-as { | |
277 | type uint8 { | |
278 | range "1..10"; | |
279 | } | |
280 | description | |
281 | "Specify the number of occurrences of the local BGP | |
282 | speaker's AS that can occur within the AS_PATH before it | |
283 | is rejected."; | |
284 | } | |
285 | } | |
286 | ||
287 | case origin-based { | |
288 | leaf allow-own-origin-as { | |
289 | type boolean; | |
290 | default "false"; | |
291 | description | |
292 | "When set to 'true' only accept my AS in the as-path | |
293 | if the route was originated in my AS."; | |
294 | } | |
295 | } | |
296 | } | |
297 | ||
298 | leaf replace-peer-as { | |
299 | type boolean; | |
300 | default "false"; | |
301 | description | |
302 | "Replace occurrences of the peer's AS in the AS_PATH with | |
303 | the local autonomous system number. This is same as override | |
304 | ASN CLI."; | |
305 | } | |
306 | } | |
307 | } | |
308 | ||
309 | grouping structure-neighbor-group-capability-options { | |
310 | description | |
311 | "Structural grouping used to include capability | |
312 | configuration for both BGP neighbors and peer groups."; | |
313 | container capability-options { | |
314 | description | |
315 | "Capability manipulation parameters for the BGP neighbor or | |
316 | group."; | |
317 | leaf dynamic-capability { | |
318 | type boolean; | |
319 | default "false"; | |
320 | description | |
321 | "When set to 'true' dynamic capability is advertise to this peer."; | |
322 | } | |
323 | ||
324 | leaf strict-capability { | |
325 | type boolean; | |
326 | default "false"; | |
327 | description | |
328 | "Strict capability negotiation match. When set to 'true' | |
329 | remote and local capabilities are strictly compared | |
330 | if capabilities are different, send Unsupported Capability | |
331 | error then reset connection."; | |
332 | } | |
333 | ||
334 | leaf extended-nexthop-capability { | |
335 | type boolean; | |
336 | default "false"; | |
337 | description | |
338 | "When set to 'true' extended next-hop capability is advertise | |
339 | to this peer."; | |
340 | } | |
341 | ||
342 | leaf capability-negotiate { | |
343 | type boolean; | |
344 | default "true"; | |
345 | description | |
346 | "When set to 'true' sending Capability Negotiation in the open | |
7c98d487 | 347 | message is suppressed to this peer."; |
2228b116 | 348 | } |
349 | ||
350 | leaf override-capability { | |
351 | type boolean; | |
352 | default "false"; | |
353 | description | |
354 | "Overrides the result of Capability Negotiation, ignoring remote | |
355 | peer's capability value, when set to 'true'."; | |
356 | } | |
357 | } | |
358 | } | |
359 | ||
360 | grouping structure-neighbor-default-originate-options { | |
361 | description | |
362 | "Structural grouping used to include default-originate | |
363 | configuration for both BGP neighbors and peer groups."; | |
cc4440c3 | 364 | container default-originate { |
2228b116 | 365 | description |
366 | "default originate parameters for the BGP neighbor or | |
367 | group."; | |
cc4440c3 | 368 | leaf originate { |
2228b116 | 369 | type boolean; |
370 | default "false"; | |
371 | description | |
372 | "If set to 'true', send the default-route to the neighbour(s)."; | |
373 | } | |
374 | ||
cc4440c3 | 375 | leaf route-map { |
45c70d4a | 376 | type frr-route-map:route-map-ref; |
2228b116 | 377 | description |
378 | "Route-map to specify criteria to originate default."; | |
379 | } | |
380 | } | |
381 | } | |
382 | ||
383 | grouping structure-neighbor-prefix-limit { | |
384 | container prefix-limit { | |
385 | description | |
386 | "Parameters relating to the prefix limit for the AFI-SAFI."; | |
387 | list direction-list { | |
388 | key "direction"; | |
389 | leaf direction { | |
390 | type frr-bt:direction; | |
391 | description | |
392 | "Prefix limit applied on Tx route-updates or Rx route-updates."; | |
393 | } | |
394 | ||
395 | leaf max-prefixes { | |
396 | type uint32; | |
397 | mandatory true; | |
398 | description | |
399 | "Maximum number of prefixes that will be accepted from the | |
400 | neighbour."; | |
401 | } | |
402 | ||
afe03f60 CS |
403 | leaf force-check { |
404 | type boolean; | |
405 | default false; | |
406 | description | |
407 | "Force check all received routes."; | |
408 | } | |
409 | ||
410 | container options { | |
2228b116 | 411 | when "../direction = 'in'"; |
412 | choice options { | |
413 | case warning { | |
414 | leaf warning-only { | |
415 | type boolean; | |
416 | default "false"; | |
417 | description | |
418 | "When set to 'true' only give warning message when limit | |
419 | is exceeded."; | |
420 | } | |
421 | } | |
422 | ||
423 | case restart { | |
424 | leaf restart-timer { | |
425 | type uint16; | |
426 | units "minutes"; | |
427 | description | |
428 | "Time interval in seconds after which the BGP session is | |
429 | re-established after being torn down due to exceeding the | |
430 | max-prefix limit."; | |
431 | } | |
432 | } | |
433 | ||
434 | case threshold { | |
435 | leaf shutdown-threshold-pct { | |
436 | type bt:percentage; | |
437 | description | |
438 | "Threshold on number of prefixes that can be received from | |
439 | a neighbour before generation of warning messages or log | |
440 | entries. Expressed as a percentage of max-prefixes."; | |
441 | } | |
442 | } | |
443 | ||
444 | case threshold-restart { | |
445 | leaf tr-shutdown-threshold-pct { | |
446 | type bt:percentage; | |
447 | description | |
448 | "Threshold on number of prefixes that can be received from | |
449 | a neighbour before generation of warning messages or log | |
450 | entries. Expressed as a percentage of max-prefixes."; | |
451 | } | |
452 | ||
453 | leaf tr-restart-timer { | |
afe03f60 | 454 | type uint16; |
2228b116 | 455 | units "minutes"; |
456 | description | |
457 | "Time interval in seconds after which the BGP session is | |
458 | re-established after being torn down due to exceeding the | |
459 | max-prefix limit."; | |
460 | } | |
461 | } | |
462 | ||
463 | case threshold-warning { | |
464 | leaf tw-shutdown-threshold-pct { | |
465 | type bt:percentage; | |
466 | description | |
467 | "Threshold on number of prefixes that can be received from | |
468 | a neighbour before generation of warning messages or log | |
469 | entries. Expressed as a percentage of max-prefixes."; | |
470 | } | |
471 | ||
472 | leaf tw-warning-only { | |
473 | type boolean; | |
474 | default "false"; | |
475 | description | |
476 | "When set to 'true' only give warning message when limit | |
477 | is exceeded."; | |
478 | } | |
479 | } | |
480 | } | |
481 | } | |
482 | } | |
483 | } | |
484 | } | |
485 | ||
486 | grouping structure-neighbor-nexthop-self { | |
487 | container nexthop-self { | |
488 | description | |
489 | "Parameters relating to the nexthop-self for the AFI-SAFI."; | |
490 | leaf next-hop-self { | |
491 | type boolean; | |
492 | default "false"; | |
493 | description | |
494 | "When set to 'true', EBGP learned routes are announced with the | |
495 | local speaker's nexthop."; | |
496 | } | |
497 | ||
498 | leaf next-hop-self-force { | |
499 | type boolean; | |
500 | default "false"; | |
501 | description | |
502 | "When set to 'true', EBGP learned routes are announced with the | |
503 | local speaker's nexthop."; | |
504 | } | |
505 | } | |
506 | } | |
507 | ||
508 | grouping structure-neighbor-private-as { | |
509 | container private-as { | |
510 | description | |
511 | "Parameters relating to the private-as for the AFI-SAFI."; | |
512 | leaf remove-private-as-all { | |
513 | type boolean; | |
514 | default "false"; | |
515 | description | |
516 | "When set to 'true', private ASNs are removed from outbound updates; | |
517 | applies to all AS numbers."; | |
518 | } | |
519 | ||
520 | leaf remove-private-as-all-replace { | |
521 | type boolean; | |
522 | default "false"; | |
523 | description | |
524 | "When set to 'true', private ASNs are replaced by the local | |
525 | speaker's ASN in all outbound updates; applies to all AS numbers."; | |
526 | } | |
527 | ||
528 | leaf remove-private-as { | |
529 | type boolean; | |
530 | default "false"; | |
531 | description | |
532 | "When set to 'true', removes private ASNs in outbound updates; | |
533 | applies to all AS numbers."; | |
534 | } | |
535 | ||
536 | leaf remove-private-as-replace { | |
537 | type boolean; | |
538 | default "false"; | |
539 | description | |
540 | "When set to 'true', private ASNs are replaced with the local | |
541 | speaker's ASN in all outbound updates; applies to all AS numbers."; | |
542 | } | |
543 | } | |
544 | } | |
545 | ||
546 | grouping structure-neighbor-weight { | |
547 | container weight { | |
548 | description | |
549 | "Parameters relating to the weight for the AFI-SAFI."; | |
550 | leaf weight-attribute { | |
551 | type uint16 { | |
552 | range "0..65535"; | |
553 | } | |
554 | description | |
555 | "Set default weight for routes from this neighbor."; | |
556 | } | |
557 | } | |
558 | } | |
559 | ||
560 | grouping structure-neighbor-route-reflector { | |
561 | container route-reflector { | |
562 | description | |
563 | "Parameters relating to the route-reflector for the AFI-SAFI."; | |
564 | leaf route-reflector-client { | |
565 | type boolean; | |
566 | default "false"; | |
567 | description | |
568 | "Configure a neighbor as route reflector client."; | |
569 | } | |
570 | } | |
571 | } | |
572 | ||
573 | grouping structure-neighbor-route-server { | |
574 | container route-server { | |
575 | description | |
576 | "Parameters relating to the route-server for the AFI-SAFI."; | |
577 | leaf route-server-client { | |
578 | type boolean; | |
579 | default "false"; | |
580 | description | |
581 | "Configure a neighbor as route server client."; | |
582 | } | |
583 | } | |
584 | } | |
585 | ||
586 | grouping structure-neighbor-send-community { | |
587 | container send-community { | |
588 | description | |
589 | "Parameters relating to the send-community for the AFI-SAFI."; | |
590 | leaf send-community { | |
591 | type boolean; | |
592 | default "true"; | |
593 | description | |
594 | "Send standard community attribute to this neighbor."; | |
595 | } | |
596 | ||
597 | leaf send-ext-community { | |
598 | type boolean; | |
599 | default "true"; | |
600 | description | |
601 | "Send extended community attribute to this neighbor."; | |
602 | } | |
603 | ||
604 | leaf send-large-community { | |
605 | type boolean; | |
f4b8ec07 | 606 | default "true"; |
2228b116 | 607 | description |
608 | "Send large community attribute to this neighbor."; | |
609 | } | |
610 | } | |
611 | } | |
612 | ||
613 | grouping structure-neighbor-group-admin-shutdown { | |
614 | description | |
615 | "Structural grouping used to include admin-shutdown | |
616 | configuration for both BGP neighbors and peer groups."; | |
617 | container admin-shutdown { | |
618 | description | |
619 | "BGP Administrative Shutdown Communication."; | |
620 | leaf enable { | |
621 | type boolean; | |
2228b116 | 622 | description |
623 | "When set to 'true', BGP shutdown communication is enabled."; | |
624 | } | |
625 | ||
626 | leaf message { | |
627 | type string; | |
628 | description | |
629 | "Shutdown message."; | |
630 | reference | |
631 | "draft-ietf-idr-shutdown-06"; | |
632 | } | |
633 | } | |
634 | } | |
635 | ||
636 | grouping structure-neighbor-group-graceful-restart { | |
637 | description | |
638 | "Structural grouping used to include graceful-restart | |
639 | configuration for both BGP neighbors and peer groups."; | |
640 | container graceful-restart { | |
641 | description | |
642 | "BGP Graceful restart feature."; | |
643 | choice mode { | |
644 | case graceful-restart-mode { | |
645 | leaf enable { | |
646 | type boolean; | |
647 | default "false"; | |
648 | description | |
649 | "Enable or disable the graceful-restart capability. | |
650 | Setting this value to 'true' enables the graceful-restart | |
651 | and helper both at peer level. Setting this value to 'false' | |
652 | disables graceful restart and helper mode. The peer will inherit | |
653 | global configuration."; | |
654 | } | |
655 | } | |
656 | ||
657 | case graceful-restart-helper-mode { | |
658 | leaf graceful-restart-helper { | |
659 | type boolean; | |
660 | default "false"; | |
661 | description | |
662 | "Setting this value to 'true' enables helper mode for the peer | |
663 | Setting this value to 'false' disables the helper mode. The | |
664 | peer will inherit global configuration."; | |
665 | } | |
666 | } | |
667 | ||
668 | case graceful-restart-disable-mode { | |
669 | leaf graceful-restart-disable { | |
670 | type boolean; | |
671 | default "false"; | |
672 | description | |
673 | "Setting this value to 'true' disables the graceful-restart | |
674 | and helper Mode. Setting this value to 'false' causes the peer | |
675 | to inherit global configuration."; | |
676 | } | |
677 | } | |
678 | } | |
679 | } | |
680 | } | |
681 | ||
682 | grouping structure-neighbor-group-soft-reconfiguration { | |
683 | description | |
684 | "Structural grouping used to include soft-reconfiguration | |
685 | configuration for both BGP neighbors and peer groups."; | |
686 | leaf soft-reconfiguration { | |
687 | type boolean; | |
688 | default "false"; | |
689 | description | |
690 | "Allow inbound soft reconfiguration for this neighbor."; | |
691 | } | |
692 | } | |
693 | ||
694 | grouping structure-neighbor-group-attr-unchanged { | |
695 | description | |
696 | "Structural grouping used to include BGP route propagation | |
697 | rules configuration for both BGP neighbors and peer groups."; | |
698 | container attr-unchanged { | |
699 | description | |
700 | "BGP route propagation rules configuration."; | |
701 | leaf as-path-unchanged { | |
702 | type boolean; | |
703 | default "false"; | |
704 | description | |
705 | "When set to 'true' as-path attribute is propagated unchanged."; | |
706 | } | |
707 | ||
708 | leaf next-hop-unchanged { | |
709 | type boolean; | |
710 | default "false"; | |
711 | description | |
712 | "When set to 'true' next-hop attribute is propagated unchanged."; | |
713 | } | |
714 | ||
715 | leaf med-unchanged { | |
716 | type boolean; | |
717 | default "false"; | |
718 | description | |
719 | "When set to 'true' med attribute is propagated unchanged."; | |
720 | } | |
721 | } | |
722 | } | |
723 | ||
724 | grouping structure-neighbor-group-orf-capability { | |
725 | description | |
726 | "Structural grouping used to include orf | |
727 | configuration for both BGP neighbors and peer groups."; | |
728 | container orf-capability { | |
729 | choice orf-update { | |
730 | case send { | |
731 | leaf orf-send { | |
732 | type boolean; | |
733 | default "false"; | |
734 | description | |
735 | "Setting to 'true' advertises the ORF capability."; | |
736 | } | |
737 | } | |
738 | ||
739 | case receive { | |
740 | leaf orf-receive { | |
741 | type boolean; | |
742 | default "false"; | |
743 | description | |
744 | "When set to 'true' it receives the orf capability."; | |
745 | } | |
746 | } | |
747 | ||
748 | case both { | |
749 | leaf orf-both { | |
750 | type boolean; | |
751 | default "false"; | |
752 | description | |
753 | "When set to 'true' it advertises/receives the orf capability."; | |
754 | } | |
755 | } | |
756 | } | |
757 | } | |
758 | } | |
759 | ||
760 | grouping structure-neighbor-config-timers { | |
761 | description | |
762 | "Structural grouping used to include per neighbor timers | |
763 | configuration for both BGP neighbors and peer groups."; | |
764 | container timers { | |
765 | leaf advertise-interval { | |
766 | type uint16 { | |
767 | range "0..600"; | |
768 | } | |
769 | units "seconds"; | |
770 | description | |
771 | "Minimum interval between sending BGP routing updates."; | |
772 | } | |
773 | ||
774 | leaf connect-time { | |
775 | type uint16 { | |
776 | range "1..65535"; | |
777 | } | |
778 | units "seconds"; | |
779 | description | |
780 | "BGP connect timer."; | |
781 | } | |
782 | ||
783 | uses neighbor-timers; | |
784 | } | |
785 | } | |
786 | ||
787 | grouping structure-neighbor-group-filter-config { | |
788 | description | |
789 | "Structural grouping used to include filter | |
790 | configuration for both BGP neighbors and peer groups."; | |
791 | container filter-config { | |
792 | description | |
793 | "BGP Policy configuration for both BGP neighbors and groups."; | |
794 | uses rmap-policy-import; | |
795 | ||
796 | uses rmap-policy-export; | |
797 | ||
798 | uses plist-policy-import; | |
799 | ||
800 | uses plist-policy-export; | |
801 | ||
802 | uses access-list-policy-import; | |
803 | ||
804 | uses access-list-policy-export; | |
805 | ||
806 | uses as-path-filter-list-policy-import; | |
807 | ||
808 | uses as-path-filter-list-policy-export; | |
809 | ||
7c98d487 | 810 | uses unsuppress-map-policy-import; |
2228b116 | 811 | |
7c98d487 | 812 | uses unsuppress-map-policy-export; |
2228b116 | 813 | } |
814 | } | |
815 | } |