blob: 900b498c6018c41c8b593d67dbbd2dd6063552ca [file] [log] [blame]
Thomas Vachuska6655bee2017-08-24 16:12:59 -07001module openconfig-mpls-rsvp {
2
3 yang-version "1";
4
5 // namespace
6 namespace "http://openconfig.net/yang/rsvp";
7
8 prefix "oc-rsvp";
9
10 // import some basic types
11 import openconfig-inet-types { prefix inet; }
12 import openconfig-mpls-types { prefix oc-mplst; }
13 import openconfig-yang-types { prefix yang; }
14 import openconfig-types { prefix oc-types; }
15 import openconfig-extensions { prefix oc-ext; }
16 import openconfig-interfaces { prefix oc-if; }
17
18
19 // meta
20 organization "OpenConfig working group";
21
22 contact
23 "OpenConfig working group
24 netopenconfig@googlegroups.com";
25
26 description
27 "Configuration for RSVP-TE signaling, including global protocol
28 parameters and LSP-specific configuration for constrained-path
29 LSPs";
30
31 oc-ext:openconfig-version "2.4.0";
32
33 revision "2017-06-21" {
34 description
35 "Add TC bits typedef.";
36 reference "2.4.0";
37 }
38
39 revision "2017-03-22" {
40 description
41 "Add RSVP calculated-absolute-subscription-bw";
42 reference "2.3.0";
43 }
44
45 revision "2017-01-26" {
46 description
47 "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
48 reference "2.2.0";
49 }
50
51 revision "2016-12-15" {
52 description
53 "Add additional MPLS parameters";
54 reference "2.1.0";
55 }
56
57 revision "2016-09-01" {
58 description
59 "Revisions based on implementation feedback";
60 reference "2.0.0";
61 }
62
63 revision "2016-08-08" {
64 description
65 "Public release of MPLS models";
66 reference "1.0.1";
67 }
68
69 // grouping statements
70
71 grouping mpls-rsvp-soft-preemption_config {
72 description
73 "Configuration for MPLS soft preemption";
74 leaf enable {
75 type boolean;
76 default false;
77 description
78 "Enables soft preemption on a node.";
79 }
80
81 leaf soft-preemption-timeout {
82 type uint16 {
83 range 0..max;
84 }
85 default 30;
86 description
87 "Timeout value for soft preemption to revert
88 to hard preemption. The default timeout for
89 soft-preemption is 30 seconds - after which
90 the local system reverts to hard pre-emption.";
91 reference "RFC5712 MPLS-TE soft preemption";
92 }
93 }
94
95 grouping mpls-rsvp-soft-preemption {
96 description
97 "Top level group for MPLS soft preemption";
98 container soft-preemption {
99 description
100 "Protocol options relating to RSVP
101 soft preemption";
102 container config {
103 description
104 "Configuration parameters relating to RSVP
105 soft preemption support";
106 uses mpls-rsvp-soft-preemption_config;
107 }
108 container state {
109 config false;
110 description
111 "State parameters relating to RSVP
112 soft preemption support";
113 uses mpls-rsvp-soft-preemption_config;
114 }
115 }
116 }
117
118 grouping mpls-rsvp-hellos_config {
119 description
120 "RSVP protocol options configuration.";
121
122 leaf hello-interval {
123 type uint16 {
124 range 1000..60000;
125 }
126 units milliseconds;
127 default 9000;
128 description
129 "set the interval in ms between RSVP hello
130 messages";
131 reference
132 "RFC 3209: RSVP-TE: Extensions to RSVP for
133 LSP Tunnels.
134 RFC 5495: Description of the Resource
135 Reservation Protocol - Traffic-Engineered
136 (RSVP-TE) Graceful Restart Procedures";
137 }
138
139 leaf refresh-reduction {
140 type boolean;
141 default true;
142 description
143 "enables all RSVP refresh reduction message
144 bundling, RSVP message ID, reliable message delivery
145 and summary refresh";
146 reference
147 "RFC 2961 RSVP Refresh Overhead Reduction
148 Extensions";
149 }
150 }
151
152 grouping mpls-rsvp-hellos {
153 description
154 "Top level grouping for RSVP hellos parameters";
155 // TODO: confirm that the described semantics are supported
156 // on various implementations. Finer grain configuration
157 // will be vendor-specific
158
159 container hellos {
160 description
161 "Top level container for RSVP hello parameters";
162
163 container config {
164 description
165 "Configuration parameters relating to RSVP
166 hellos";
167 uses mpls-rsvp-hellos_config;
168 }
169 container state {
170 config false;
171 description
172 "State information associated with RSVP hellos";
173 uses mpls-rsvp-hellos_config;
174 }
175 }
176 }
177
178 grouping mpls-rsvp-subscription_config {
179 description
180 "RSVP subscription configuration";
181
182 leaf subscription {
183 type oc-types:percentage;
184 description
185 "percentage of the interface bandwidth that
186 RSVP can reserve";
187 }
188 }
189
190 grouping mpls-rsvp-subscription_state {
191 description
192 "Operational state parameters relating to the
193 bandwidth subscription on an interface";
194
195 leaf calculated-absolute-subscription-bw {
196 type uint64;
197 units "kbps";
198 description
199 "The calculated absolute value of the bandwidth
200 which is reservable to RSVP-TE on the interface
201 prior to any adjustments that may be made from
202 external sources.";
203 }
204 }
205
206 grouping mpls-rsvp-subscription {
207 description
208 "Top level group for RSVP subscription options";
209
210 container subscription {
211 description
212 "Bandwidth percentage reservable by RSVP
213 on an interface";
214
215 container config {
216 description
217 "Configuration parameters relating to RSVP
218 subscription options";
219 uses mpls-rsvp-subscription_config;
220 }
221
222 container state {
223 config false;
224 description
225 "State parameters relating to RSVP
226 subscription options";
227 uses mpls-rsvp-subscription_config;
228 uses mpls-rsvp-subscription_state;
229 }
230 }
231 }
232
233 grouping mpls-rsvp-graceful-restart_config {
234 description
235 "Configuration parameters relating to RSVP Graceful-Restart";
236
237 leaf enable {
238 type boolean;
239 default false;
240 description
241 "Enables graceful restart on the node.";
242 }
243
244 leaf restart-time {
245 type uint32;
246 description
247 "Graceful restart time (seconds).";
248 reference
249 "RFC 5495: Description of the Resource
250 Reservation Protocol - Traffic-Engineered
251 (RSVP-TE) Graceful Restart Procedures";
252 }
253 leaf recovery-time {
254 type uint32;
255 description
256 "RSVP state recovery time";
257 }
258 }
259
260 grouping mpls-rsvp-graceful-restart {
261 description
262 "Top level group for RSVP graceful-restart
263 parameters";
264
265 container graceful-restart {
266 description
267 "Operational state and configuration parameters relating to
268 graceful-restart for RSVP";
269
270 container config {
271 description
272 "Configuration parameters relating to
273 graceful-restart";
274 uses mpls-rsvp-graceful-restart_config;
275 }
276
277 container state {
278 config false;
279 description
280 "State information associated with
281 RSVP graceful-restart";
282 uses mpls-rsvp-graceful-restart_config;
283 }
284 }
285 }
286
287 grouping mpls-rsvp-authentication_config {
288 description
289 "RSVP authentication parameters container.";
290
291 leaf enable {
292 type boolean;
293 default false;
294 description
295 "Enables RSVP authentication on the node.";
296 }
297
298 leaf authentication-key {
299 type string {
300 // Juniper supports 1..16 while
301 // Cisco has a much bigger range, up to 60.
302 length "1..32";
303 }
304 description
305 "authenticate RSVP signaling
306 messages";
307 reference
308 "RFC 2747: RSVP Cryptographic Authentication";
309 }
310 }
311
312 grouping mpls-rsvp-authentication {
313 description
314 "Top level group for RSVP authentication,
315 as per RFC2747";
316
317 container authentication {
318 description
319 "Configuration and state parameters relating to RSVP
320 authentication as per RFC2747";
321
322 container config {
323 description
324 "Configuration parameters relating
325 to authentication";
326 uses mpls-rsvp-authentication_config;
327 }
328
329 container state {
330 config false;
331 description
332 "State information associated
333 with authentication";
334 uses mpls-rsvp-authentication_config;
335 }
336 }
337 }
338
339 grouping mpls-rsvp-protection_config {
340 description
341 "RSVP facility (link/node) protection configuration";
342
343 leaf link-protection-style-requested {
344 type identityref {
345 base oc-mplst:PROTECTION_TYPE;
346 }
347 default oc-mplst:LINK_NODE_PROTECTION_REQUESTED;
348 description
349 "Style of mpls frr protection desired:
350 link, link-node, or unprotected";
351 }
352
353 leaf bypass-optimize-interval {
354 type uint16;
355 units seconds;
356 description
357 "interval between periodic optimization
358 of the bypass LSPs";
359 // note: this is interface specific on juniper
360 // on iox, this is global. need to resolve.
361 }
362 // to be completed, things like enabling link protection,
363 // optimization times, etc.
364 }
365
366 grouping mpls-rsvp-link-protection {
367 description
368 "Top level group for RSVP protection";
369 container protection {
370 description
371 "link-protection (NHOP) related configuration";
372
373 container config {
374 description
375 "Configuration for link-protection";
376 uses mpls-rsvp-protection_config;
377 }
378
379 container state {
380 config false;
381 description
382 "State for link-protection";
383 uses mpls-rsvp-protection_config;
384 }
385 }
386 }
387
388 grouping mpls-rsvp-statistics {
389 description
390 "Top level grouping for RSVP protocol state";
391
392 uses mpls-rsvp-protocol-state;
393 }
394
395 grouping rsvp-global {
396 description
397 "Global RSVP protocol configuration";
398 container rsvp-te {
399 description
400 "RSVP-TE global signaling protocol configuration";
401
402 uses mpls-rsvp-session-state;
403
404 container neighbors {
405 description
406 "Configuration and state for RSVP neighbors connecting
407 to the device";
408
409 list neighbor {
410 key "address";
411
412 config false;
413
414 description
415 "List of RSVP neighbors of the local system";
416
417 leaf address {
418 type leafref {
419 path "../state/address";
420 }
421 description
422 "Reference to the address of the RSVP neighbor";
423 }
424
425 container state {
426 config false;
427 description
428 "Operational state parameters relating to the
429 RSVP neighbor";
430 uses mpls-rsvp-neighbor-state;
431 }
432 }
433 }
434
435 container global {
436 description
437 "Platform wide RSVP configuration and state";
438 uses mpls-rsvp-graceful-restart;
439 uses mpls-rsvp-soft-preemption;
440 uses mpls-rsvp-hellos;
441
442 container state {
443 config false;
444 description
445 "Platform wide RSVP state, including counters";
446 // TODO - reconcile global and per-interface
447 // protocol-related statistics
448
449 container counters {
450 config false;
451 description
452 "Platform wide RSVP statistics and counters";
453 uses mpls-rsvp-global-protocol-state;
454 uses mpls-rsvp-statistics;
455 }
456 }
457 }
458
459 container interface-attributes {
460 // interfaces, bw percentages, hello timers, etc goes here";
461 description
462 "Attributes relating to RSVP-TE enabled interfaces";
463
464 list interface {
465 key "interface-id";
466 description
467 "list of per-interface RSVP configurations";
468
469 leaf interface-id {
470 type leafref {
471 path "../config/interface-id";
472 }
473 description
474 "reference to the interface-id data";
475 }
476
477
478 container config {
479 description
480 "Configuration of per-interface RSVP parameters";
481 uses mpls-rsvp-interfaces-config;
482 }
483
484 container state {
485 config false;
486 description
487 "Per-interface RSVP protocol and state information";
488
489 uses mpls-rsvp-interfaces-state;
490 uses mpls-rsvp-interfaces-config;
491
492 container counters {
493 config false;
494 description
495 "Interface specific RSVP statistics and counters";
496 uses mpls-rsvp-protocol-state;
497 }
498 }
499
500 uses oc-if:interface-ref;
501 uses mpls-rsvp-interface-reservations;
502 uses mpls-rsvp-hellos;
503 uses mpls-rsvp-authentication;
504 uses mpls-rsvp-subscription;
505 uses mpls-rsvp-link-protection;
506 }
507 }
508 }
509 }
510
511 grouping rsvp-p2p-tunnel-attributes_config {
512 description
513 "properties of RSPP point-to-point paths";
514
515 leaf source {
516 when "/mpls/lsps/constrained-path/tunnel/config" +
517 "/signaling-protocol = 'PATH_SETUP_RSVP'" {
518 description
519 "When the signaling protocol is RSVP-TE ";
520 }
521 type inet:ip-address;
522 description
523 "RSVP-TE tunnel source address";
524 }
525
526 leaf soft-preemption {
527 when "/mpls/lsps/constrained-path/tunnel/config" +
528 "/signaling-protocol = 'PATH_SETUP_RSVP'" {
529 description
530 "When the signaling protocol is RSVP-TE ";
531 }
532 type boolean;
533 default false;
534 description
535 "Enables RSVP soft-preemption on this LSP";
536 }
537
538 uses rsvp-priorities_config;
539 }
540
541 grouping rsvp-priorities_config {
542 description
543 "Configuration paramters related to RSVP-TE priorities";
544
545 leaf setup-priority {
546 when "/mpls/lsps/constrained-path/tunnel/config" +
547 "/signaling-protocol = 'PATH_SETUP_RSVP'" {
548 description
549 "When the signaling protocol is RSVP-TE ";
550 }
551 type uint8 {
552 range 0..7;
553 }
554 default 7;
555 description
556 "RSVP-TE preemption priority during LSP setup, lower is
557 higher priority; default 7 indicates that LSP will not
558 preempt established LSPs during setup";
559 reference "RFC 3209 - RSVP-TE: Extensions to RSVP for
560 LSP Tunnels";
561 }
562
563 leaf hold-priority {
564 when "/mpls/lsps/constrained-path/tunnel/config" +
565 "/signaling-protocol = 'PATH_SETUP_RSVP'" {
566 description
567 "When the signaling protocol is RSVP-TE ";
568 }
569 type uint8 {
570 range 0..7;
571 }
572 default 0;
573 description
574 "preemption priority once the LSP is established,
575 lower is higher priority; default 0 indicates other LSPs
576 will not preempt the LSPs once established";
577 reference "RFC 3209 - RSVP-TE: Extensions to RSVP for
578 LSP Tunnels";
579 }
580 }
581
582 grouping rsvp-p2p-path-attributes_config {
583 description
584 "properties of RSPP point-to-point paths";
585
586 uses rsvp-priorities_config;
587
588 leaf retry-timer {
589 when "/mpls/lsps/constrained-path/tunnel/config" +
590 "/signaling-protocol = 'PATH_SETUP_RSVP'" {
591 description
592 "When the signaling protocol is RSVP-TE ";
593 }
594 type uint16 {
595 range 1..600;
596 }
597 units seconds;
598 description
599 "sets the time between attempts to establish the
600 LSP";
601 }
602 }
603
604 grouping mpls-rsvp-neighbor-state {
605 description
606 "State information for RSVP neighbors";
607
608 leaf address {
609 type inet:ip-address;
610 description
611 "Address of RSVP neighbor";
612 }
613
614 leaf detected-interface {
615 type string;
616 description
617 "Interface where RSVP neighbor was detected";
618 }
619
620 leaf neighbor-status {
621 type enumeration {
622 enum UP {
623 description
624 "RSVP hello messages are detected from the neighbor";
625 }
626 enum DOWN {
627 description
628 "RSVP neighbor not detected as up, due to a
629 communication failure or IGP notification
630 the neighbor is unavailable";
631 }
632 }
633 description
634 "Enumuration of possible RSVP neighbor states";
635 }
636
637 leaf refresh-reduction {
638 type boolean;
639 description
640 "Suppport of neighbor for RSVP refresh reduction";
641 reference
642 "RFC 2961 RSVP Refresh Overhead Reduction
643 Extensions";
644 }
645
646 }
647
648 grouping mpls-rsvp-session-state {
649 description
650 "State information for RSVP TE sessions";
651
652 container sessions {
653 description
654 "Enclosing container for sessions";
655
656 list session {
657 key "local-index";
658 config false;
659
660 description
661 "List of RSVP sessions";
662
663 leaf local-index {
664 type leafref {
665 path "../state/local-index";
666 }
667 description
668 "Reference to the local index for the RSVP
669 session";
670 }
671
672 uses mpls-rsvp-record-route-object-top;
673
674 container state {
675 description
676 "Operational state parameters relating to the
677 RSVP session";
678
679 leaf local-index {
680 type uint64;
681 description
682 "The index used to identify the RSVP session
683 on the local network element. This index is
684 generated by the device and is unique only
685 to the local network element.";
686 }
687
688 leaf source-address {
689 type inet:ip-address;
690 description
691 "Origin address of RSVP session";
692 }
693
694 leaf destination-address {
695 type inet:ip-address;
696 description
697 "Destination address of RSVP session";
698 }
699
700 leaf tunnel-id {
701 type uint16;
702 description
703 "The tunnel ID is an identifier used in the
704 RSVP session, which remains constant over
705 the life of the tunnel.";
706 reference "RFC 3209";
707 }
708
709 leaf lsp-id {
710 type uint16;
711 description
712 "The LSP ID distinguishes between two LSPs
713 originated from the same headend, and is
714 commonly used to distinguish RSVP sessions
715 during make before break operations.";
716 reference "RFC 3209";
717 }
718
719 leaf session-name {
720 type string;
721 description
722 "The signaled name of this RSVP session.";
723 }
724
725 leaf status {
726 type enumeration {
727 enum UP {
728 description
729 "RSVP session is up";
730 }
731 enum DOWN {
732 description
733 "RSVP session is down";
734 }
735 }
736 description
737 "Enumeration of RSVP session states";
738 }
739
740 leaf type {
741 type identityref {
742 base oc-mplst:LSP_ROLE;
743 }
744 description
745 "The type/role of the RSVP session, signifing
746 the session's role on the current device, such as
747 a transit session vs. an ingress session.";
748 }
749
750 leaf protection-requested {
751 type identityref {
752 base oc-mplst:PROTECTION_TYPE;
753 }
754 description
755 "The type of protection requested for the RSVP session";
756 }
757
758 leaf label-in {
759 type oc-mplst:mpls-label;
760 description
761 "Incoming MPLS label associated with this RSVP session";
762 }
763
764 leaf label-out {
765 type oc-mplst:mpls-label;
766 description
767 "Outgoing MPLS label associated with this RSVP session";
768 }
769
770 container sender-tspec {
771 description
772 "Operational state statistics relating to the SENDER_TSPEC
773 received for the RSVP session";
774
775 leaf rate {
776 type oc-types:ieeefloat32;
777 units "Bps";
778 description
779 "The rate at which the head-end device generates traffic,
780 expressed in bytes per second.";
781 reference
782 "RFC2210: RSVP with INTSERV";
783 }
784
785 leaf size {
786 type oc-types:ieeefloat32;
787 units "bytes per second";
788 description
789 "The size of the token bucket that is used to determine
790 the rate at which the head-end device generates traffic,
791 expressed in bytes per second.";
792 reference
793 "RFC2210: RSVP with INTSERV";
794 }
795
796 leaf peak-data-rate {
797 type union {
798 type oc-types:ieeefloat32;
799 type enumeration {
800 enum INFINITY {
801 description
802 "The head-end device has no maximum data rate.";
803 }
804 }
805 }
806 units "bytes per second";
807 description
808 "The maximum traffic generation rate that the head-end
809 device sends traffic at.";
810 reference
811 "RFC2210: RSVP with INTSERV";
812 }
813 }
814 }
815 }
816 }
817 } //rsvp-session-state
818
819 grouping mpls-rsvp-interfaces-config {
820 description
821 "RSVP configuration information relevant to an interface";
822
823 leaf interface-id {
824 type oc-if:interface-id;
825 description
826 "Identifier for the interface";
827 }
828 }
829
830 grouping mpls-rsvp-interfaces-state {
831 description
832 "RSVP state information relevant to an interface";
833
834 // Placeholder grouping
835 }
836
837 grouping mpls-rsvp-interface-reservations {
838 description
839 "Operational state related to interface bandwidth
840 reservations";
841
842 container bandwidth-reservations {
843 description
844 "Enclosing container for bandwidth reservation";
845 list bandwidth-reservation {
846 key "priority";
847 config false;
848 description
849 "Available and reserved bandwidth by priority on
850 the interface.";
851
852 leaf priority {
853 type leafref {
854 path "../state/priority";
855 }
856 description "Reference to the RSVP priority level";
857 }
858
859 container state {
860 description
861 "Operational state parameters relating to a
862 bandwidth reservation at a certain priority";
863
864 leaf priority {
865 type union {
866 type uint8 {
867 range 0..7;
868 }
869 type enumeration {
870 enum ALL {
871 description
872 "The ALL keyword represents the overall
873 state of the interface - i.e., the union
874 of all of the priority levels";
875 }
876 }
877 }
878 description
879 "RSVP priority level for LSPs traversing the interface";
880 }
881
882 leaf available-bandwidth {
883 type oc-mplst:bandwidth-mbps;
884 description
885 "Bandwidth currently available with the priority level,
886 or for the entire interface when the priority is set to
887 ALL";
888 }
889
890 leaf reserved-bandwidth {
891 type oc-mplst:bandwidth-mbps;
892 description
893 "Bandwidth currently reserved within the priority level,
894 or the sum of all priority levels when the keyword is set
895 to ALL";
896 }
897
898 leaf active-reservations-count {
899 type yang:gauge64;
900 description
901 "Number of active RSVP reservations in the associated
902 priority, or the sum of all reservations when the priority
903 level is set to ALL";
904 }
905
906 leaf highwater-mark {
907 type oc-mplst:bandwidth-mbps;
908 description
909 "Maximum bandwidth reserved on the interface within the
910 priority, or across all priorities in the case that the
911 priority level is set to ALL";
912 }
913 }
914 }
915 }
916 }
917
918 grouping mpls-rsvp-global-protocol-state {
919 description
920 "RSVP protocol statistics which may not apply
921 on an interface, but are significant globally.";
922
923 leaf path-timeouts {
924 type yang:counter64;
925 description
926 "TODO";
927 }
928
929 leaf reservation-timeouts {
930 type yang:counter64;
931 description
932 "TODO";
933 }
934
935 leaf rate-limited-messages {
936 type yang:counter64;
937 description
938 "RSVP messages dropped due to rate limiting";
939 }
940 }
941
942 grouping mpls-rsvp-protocol-state {
943 description
944 "RSVP protocol statistics and message counters";
945
946 leaf in-path-messages {
947 type yang:counter64;
948 description
949 "Number of received RSVP Path messages";
950 }
951
952 leaf in-path-error-messages {
953 type yang:counter64;
954 description
955 "Number of received RSVP Path Error messages";
956 }
957
958 leaf in-path-tear-messages {
959 type yang:counter64;
960 description
961 "Number of received RSVP Path Tear messages";
962 }
963
964 leaf in-reservation-messages {
965 type yang:counter64;
966 description
967 "Number of received RSVP Resv messages";
968 }
969
970 leaf in-reservation-error-messages {
971 type yang:counter64;
972 description
973 "Number of received RSVP Resv Error messages";
974 }
975
976 leaf in-reservation-tear-messages {
977 type yang:counter64;
978 description
979 "Number of received RSVP Resv Tear messages";
980 }
981
982 leaf in-hello-messages {
983 type yang:counter64;
984 description
985 "Number of received RSVP hello messages";
986 }
987
988 leaf in-srefresh-messages {
989 type yang:counter64;
990 description
991 "Number of received RSVP summary refresh messages";
992 }
993
994 leaf in-ack-messages {
995 type yang:counter64;
996 description
997 "Number of received RSVP refresh reduction ack
998 messages";
999 }
1000
1001 leaf out-path-messages {
1002 type yang:counter64;
1003 description
1004 "Number of sent RSVP PATH messages";
1005 }
1006
1007 leaf out-path-error-messages {
1008 type yang:counter64;
1009 description
1010 "Number of sent RSVP Path Error messages";
1011 }
1012
1013 leaf out-path-tear-messages {
1014 type yang:counter64;
1015 description
1016 "Number of sent RSVP Path Tear messages";
1017 }
1018
1019 leaf out-reservation-messages {
1020 type yang:counter64;
1021 description
1022 "Number of sent RSVP Resv messages";
1023 }
1024
1025 leaf out-reservation-error-messages {
1026 type yang:counter64;
1027 description
1028 "Number of sent RSVP Resv Error messages";
1029 }
1030
1031 leaf out-reservation-tear-messages {
1032 type yang:counter64;
1033 description
1034 "Number of sent RSVP Resv Tear messages";
1035 }
1036
1037 leaf out-hello-messages {
1038 type yang:counter64;
1039 description
1040 "Number of sent RSVP hello messages";
1041 }
1042
1043 leaf out-srefresh-messages {
1044 type yang:counter64;
1045 description
1046 "Number of sent RSVP summary refresh messages";
1047 }
1048
1049 leaf out-ack-messages {
1050 type yang:counter64;
1051 description
1052 "Number of sent RSVP refresh reduction ack messages";
1053 }
1054 }
1055
1056 grouping mpls-rsvp-record-route-object-top {
1057 description
1058 "Top-level structure grouping for list of record route
1059 objects.";
1060
1061 container record-route-objects {
1062 description
1063 "Enclosing container for MPLS RRO objects associated with the
1064 traffic engineered tunnel.";
1065
1066 list record-route-object {
1067
1068 key "index";
1069 config false;
1070 description
1071 "Read-only list of record route objects associated with the
1072 traffic engineered tunnel. Each entry in the list
1073 may contain a hop IP address, MPLS label allocated
1074 at the hop, and the flags associated with the entry.";
1075
1076 leaf index {
1077 type leafref {
1078 path "../state/index";
1079 }
1080 description
1081 "Reference to the index of the record route object.
1082 The index is used to indicate the ordering of hops in
1083 the path.";
1084 }
1085
1086 container state {
1087
1088 config false;
1089
1090 description
1091 "Information related to RRO objects. The hop, label, and
1092 optional flags are present for each entry in the list.";
1093
1094 uses mpls-rsvp-record-route-object-state;
1095 }
1096 }
1097 }
1098 }
1099
1100 grouping mpls-rsvp-record-route-object-state {
1101 description
1102 "Grouping to hold information relating to record route
1103 objects relevant to a traffic engineering LSP.";
1104
1105 leaf index {
1106 type uint8;
1107 description
1108 "Index of object in the list. Used for ordering.";
1109 }
1110
1111 leaf address {
1112 type inet:ip-address;
1113 description
1114 "IP router hop for RRO entry";
1115 }
1116
1117 leaf reported-label {
1118 type oc-mplst:mpls-label;
1119 description
1120 "Label reported for RRO hop";
1121 }
1122
1123 leaf reported-flags {
1124 type uint8;
1125 description
1126 "Subobject flags for MPLS label";
1127 }
1128 }
1129
1130
1131
1132 // data definition statements
1133
1134 // augment statements
1135
1136 // rpc statements
1137
1138 // notification statements
1139
1140}