blob: d9127aa6dc48375f532cec831aba0e0fabb4772a [file] [log] [blame]
sonugupta-huawei99b187d2017-12-19 14:20:00 +05301module actn-ietf-te {
2 yang-version 1.1;
3
4 namespace "urn:ietf:params:xml:ns:yang:actn-ietf-te";
5
6 /* Replace with IANA when assigned */
7 prefix "te";
8
9 /* Import TE generic types */
10 import actn-ietf-te-types {
11 prefix te-types;
12 }
13
14 import yrt-ietf-te-mpls-types {
15 prefix "te-mpls-types";
16 }
17
18 import yrt-ietf-inet-types {
19 prefix inet;
20 }
21
22 organization
23 "IETF Traffic Engineering Architecture and Signaling (TEAS)
24 Working Group";
25
26 contact
27 "WG Web: <http://tools.ietf.org/wg/teas/>
28 WG List: <mailto:teas@ietf.org>
29
30 WG Chair: Lou Berger
31 <mailto:lberger@labn.net>
32
33 WG Chair: Vishnu Pavan Beeram
34 <mailto:vbeeram@juniper.net>
35
36 Editor: Tarek Saad
37 <mailto:tsaad@cisco.com>
38
39 Editor: Rakesh Gandhi
40 <mailto:rgandhi@cisco.com>
41
42 Editor: Vishnu Pavan Beeram
43 <mailto:vbeeram@juniper.net>
44
45 Editor: Himanshu Shah
46 <mailto:hshah@ciena.com>
47
48 Editor: Xufeng Liu
49 <mailto:Xufeng_Liu@jabil.com>
50
51 Editor: Xia Chen
52 <mailto:jescia.chenxia@huawei.com>
53
54 Editor: Raqib Jones
55 <mailto:raqib@Brocade.com>
56
57 Editor: Bin Wen
58 <mailto:Bin_Wen@cable.comcast.com>";
59
60 description
61 "YANG data module for TE configuration,
62 state, RPC and notifications.";
63
64 revision "2017-03-10" {
65 description "Latest update to TE generic YANG module.";
66 reference "TBD";
67 }
68
69 typedef tunnel-ref {
70 type leafref {
71 path "/te:te/te:tunnels/te:tunnel/te:name";
72 }
73 description
74 "This type is used by data models that need to reference
75 configured TE tunnel.";
76 }
77
78 typedef tunnel-p2mp-ref {
79 type leafref {
80 path "/te:te/te:tunnels/te:tunnel-p2mp/te:name";
81 }
82 description
83 "This type is used by data models that need to reference
84 configured P2MP TE tunnel.";
85 }
86
87 /**
88 * TE tunnel generic groupings
89 */
90 grouping path-route-objects {
91 description
92 "List of EROs to be included or excluded when performing
93 the path computation.";
94 container explicit-route-objects {
95 description
96 "Container for the include or exclude route object list";
97 list explicit-route-object {
98 key index;
99 description
100 "List of explicit route objects to include or
101 exclude in path computation";
102 leaf index {
103 type leafref {
104 path "../config/index";
105 }
106 description
107 "Index of this explicit route object";
108 }
109 leaf explicit-route-usage {
110 type identityref {
111 base te-types:route-usage-type;
112 }
113 description "An explicit-route hop action.";
114 }
115 uses te-types:explicit-route-hop;
116 }
117 }
118 }
119
120 grouping path-affinities {
121 description
122 "Path affinities grouping";
123 container path-affinities {
124 description
125 "Path affinities container";
126 choice style {
127 description
128 "Path affinities representation style";
129 case values {
130 leaf value {
131 type uint32 {
132 range "0..4294967295";
133 }
134 description
135 "Affinity value";
136 }
137 leaf mask {
138 type uint32 {
139 range "0..4294967295";
140 }
141 description
142 "Affinity mask";
143 }
144 }
145 case named {
146 list constraints {
147 key "usage";
148 leaf usage {
149 type identityref {
150 base te-types:resource-affinities-type;
151 }
152 description "Affinities usage";
153 }
154 container constraint {
155 description
156 "Container for named affinities";
157 list affinity-names {
158 key "name";
159 leaf name {
160 type string;
161 description
162 "Affinity name";
163 }
164 description
165 "List of named affinities";
166 }
167 }
168 description
169 "List of named affinity constraints";
170 }
171 }
172 }
173 }
174 }
175
176 grouping path-srlgs {
177 description
178 "Path SRLG properties grouping";
179 container path-srlgs {
180 description
181 "Path SRLG properties container";
182 choice style {
183 description
184 "Type of SRLG representation";
185 case values {
186 leaf usage {
187 type identityref {
188 base te-types:route-exclude-srlg;
189 }
190 description "SRLG usage";
191 }
192 leaf-list values {
193 type te-types:srlg;
194 description "SRLG value";
195 }
196 }
197 case named {
198 list constraints {
199 key "usage";
200 leaf usage {
201 type identityref {
202 base te-types:route-exclude-srlg;
203 }
204 description "SRLG usage";
205 }
206 container constraint {
207 description
208 "Container for named SRLG list";
209 list srlg-names {
210 key "name";
211 leaf name {
212 type string;
213 description
214 "The SRLG name";
215 }
216 description
217 "List named SRLGs";
218 }
219 }
220 description
221 "List of named SRLG constraints";
222 }
223 }
224 }
225 }
226 }
227
228 grouping bidir-assoc-properties {
229 description
230 "TE tunnel associated bidirectional properties
231 grouping";
232 container bidirectional {
233 description
234 "TE tunnel associated bidirectional attributes.";
235 container association {
236 description
237 "Tunnel bidirectional association properties";
238 leaf id {
239 type uint16;
240 description
241 "The TE tunnel association identifier.";
242 }
243 leaf source {
244 type inet:ip-address;
245 description
246 "The TE tunnel association source.";
247 }
248 leaf global-source {
249 type inet:ip-address;
250 description
251 "The TE tunnel association global
252 source.";
253 }
254 leaf type {
255 type identityref {
256 base te-types:bidir-association-type;
257 }
258 default te-types:bidir-assoc-non-corouted;
259 description
260 "The TE tunnel association type.";
261 }
262 leaf provisioing {
263 type identityref {
264 base te-types:bidir-provisioning-mode;
265 }
266 description
267 "Describes the provisioning model of the
268 associated bidirectional LSP";
269 reference
270 "draft-ietf-teas-mpls-tp-rsvpte-ext-
271 associated-lsp, section-3.2";
272 }
273 }
274 }
275 }
276
277 grouping p2p-secondary-path-properties {
278 description
279 "tunnel path properties.";
280 container config {
281 description
282 "Configuration parameters relating to
283 tunnel properties";
284 uses p2p-path-properties_config;
285 }
286 container state {
287 config false;
288 description
289 "State information associated with tunnel
290 properties";
291 uses p2p-path-properties_config;
292 uses p2p-secondary-path-properties_state;
293 }
294 }
295
296 grouping p2p-primary-path-properties {
297 description
298 "TE tunnel primary path properties grouping";
299 container config {
300 description
301 "Configuration parameters relating to
302 tunnel properties";
303 uses p2p-path-properties_config;
304 }
305 container state {
306 config false;
307 description
308 "State information associated with tunnel
309 properties";
310 uses p2p-path-properties_config;
311 uses p2p-primary-path-properties_state;
312 }
313 }
314
315 grouping p2p-primary-path-properties_state {
316 description "TE path state parameters";
317 container lsps {
318 description "TE LSPs container";
319 list lsp {
320 key
321 "source destination tunnel-id lsp-id "+
322 "extended-tunnel-id type";
323 description "List of LSPs associated with the tunnel.";
324
325 leaf source {
326 type leafref {
327 path "../../../../../../../../lsps-state/lsp/source";
328 }
329 description
330 "Tunnel sender address extracted from
331 SENDER_TEMPLATE object";
332 reference "RFC3209";
333 }
334 leaf destination {
335 type leafref {
336 path "../../../../../../../../lsps-state/lsp/destination";
337 }
338 description
339 "Tunnel endpoint address extracted from
340 SESSION object";
341 reference "RFC3209";
342 }
343 leaf tunnel-id {
344 type leafref {
345 path "../../../../../../../../lsps-state/lsp/tunnel-id";
346 }
347 description
348 "Tunnel identifier used in the SESSION
349 that remains constant over the life
350 of the tunnel.";
351 reference "RFC3209";
352 }
353 leaf lsp-id {
354 type leafref {
355 path "../../../../../../../../lsps-state/lsp/lsp-id";
356 }
357 description
358 "Identifier used in the SENDER_TEMPLATE
359 and the FILTER_SPEC that can be changed
360 to allow a sender to share resources with
361 itself.";
362 reference "RFC3209";
363 }
364 leaf extended-tunnel-id {
365 type leafref {
366 path "../../../../../../../../lsps-state/lsp/" +
367 "extended-tunnel-id";
368 }
369 description
370 "Extended Tunnel ID of the LSP.";
371 reference "RFC3209";
372 }
373 leaf type {
374 type leafref {
375 path "../../../../../../../../lsps-state/lsp/type";
376 }
377 description "LSP type P2P or P2MP";
378 }
379 leaf signaling-type {
380 type identityref {
381 base te-types:path-signaling-type;
382 }
383 description "TE tunnel path signaling type";
384 }
385 }
386 }
387 }
388
389 grouping p2p-secondary-path-properties_state {
390 description "TE secondary path state parameters";
391 list lsp {
392 key "source";
393 description "List of LSPs associated with the tunnel.";
394
395 leaf source {
396 type leafref {
397 path "../../../../../../../../lsps-state/lsp/source";
398 }
399 description
400 "Tunnel sender address extracted from
401 SENDER_TEMPLATE object";
402 reference "RFC3209";
403 }
404 leaf destination {
405 type leafref {
406 path "../../../../../../../../lsps-state/lsp/destination";
407 }
408 description
409 "Tunnel endpoint address extracted from
410 SESSION object";
411 reference "RFC3209";
412 }
413 leaf tunnel-id {
414 type leafref {
415 path "../../../../../../../../lsps-state/lsp/tunnel-id";
416 }
417 description
418 "Tunnel identifier used in the SESSION
419 that remains constant over the life
420 of the tunnel.";
421 reference "RFC3209";
422 }
423 leaf lsp-id {
424 type leafref {
425 path "../../../../../../../../lsps-state/lsp/lsp-id";
426 }
427 description
428 "Identifier used in the SENDER_TEMPLATE
429 and the FILTER_SPEC that can be changed
430 to allow a sender to share resources with
431 itself.";
432 reference "RFC3209";
433 }
434 leaf extended-tunnel-id {
435 type leafref {
436 path "../../../../../../../../lsps-state/lsp" +
437 "/extended-tunnel-id";
438 }
439 description
440 "Extended Tunnel ID of the LSP.";
441 reference "RFC3209";
442 }
443 leaf type {
444 type leafref {
445 path "../../../../../../../../lsps-state/lsp/type";
446 }
447 description "LSP type P2P or P2MP";
448 }
449 leaf active {
450 type boolean;
451 description
452 "Indicates the current active path option that has
453 been selected of the candidate secondary paths";
454 }
455 }
456 }
457
458 grouping p2p-path-properties_config {
459 description
460 "TE tunnel path properties configuration grouping";
461 leaf name {
462 type string;
463 description "TE path name";
464 }
465 leaf preference {
466 type uint8 {
467 range "1..255";
468 }
469 description
470 "Specifies a preference for this path. The lower the
471 number higher the preference";
472 }
473 leaf path-setup-protocol {
474 type identityref {
475 base te-types:te-path-setup-protocol;
476 }
477 description
478 "Signaling protocol used to set up this tunnel";
479 }
480 leaf path-computation-method {
481 type identityref {
482 base te-types:path-computation-method;
483 }
484 default te-types:path-locally-computed;
485 description
486 "The method used for computing the path, either
487 locally computed, queried from a server or not
488 computed at all (explicitly configured).";
489 }
490 leaf path-computation-server {
491 when "../path-computation-method = 'path-externally-queried'" {
492 description
493 "The path-computation server when the path is
494 externally queried";
495 }
496 type inet:ip-address;
497 description
498 "Address of the external path computation
499 server";
500 }
501 leaf compute-only {
502 type empty;
503 description
504 "When set, the path is computed and updated whenever
505 the topology is updated. No resources are committed
506 or reserved in the network.";
507 }
508 leaf use-cspf {
509 when "../path-computation-method = 'path-locally-computed'";
510 type boolean;
511 description "A CSPF dynamically computed path";
512 }
513 leaf verbatim {
514 type empty;
515 description
516 "Indicates no topology or CSPF is attempted on the
517 specified path.";
518 }
519 leaf lockdown {
520 type empty;
521 description
522 "Indicates no reoptimization to be attempted for
523 this path.";
524 }
525 //TODO: added te-default-metric, te-delay-metric, te-srlgs, te-nsrlgs
526 leaf te-default-metric {
527 type uint32;
528 description
529 "Traffic engineering metric.";
530 }
531 leaf te-delay-metric {
532 type uint32;
533 description
534 "Traffic engineering delay metric.";
535 }
536 leaf te-hop-metric {
537 type uint32;
538 description
539 "Traffic engineering hop metric.";
540 }
541 container te-srlgs {
542 description
543 "Containing a list of SLRGs.";
544 leaf-list value {
545 type te-types:srlg;
546 description "SRLG value.";
547 reference
548 "RFC4202: Routing Extensions in Support of
549 Generalized Multi-Protocol Label Switching (GMPLS).";
550 }
551 }
552 container te-nsrlgs {
553 if-feature nsrlg;
554 description
555 "Containing a list of NSRLGs (Not Sharing Risk Link
556 Groups).
557 When an abstract TE link is configured, this list specifies
558 the request that underlay TE paths need to be mutually
559 disjoint with other TE links in the same groups.";
560 leaf-list id {
561 type uint32;
562 description
563 "NSRLG ID, uniquely configured within a topology.";
564 reference
565 "RFC4872: RSVP-TE Extensions in Support of End-to-End
566 Generalized Multi-Protocol Label Switching (GMPLS)
567 Recovery";
568 }
569 }
570 leaf named-explicit-path {
571 when "../path-computation-method = 'path-explicitly-defined'";
572 type leafref {
573 path "../../../../../../globals/named-explicit-paths/"
574 + "named-explicit-path/config/name";
575 }
576 description "The explicit-path name";
577 }
578 leaf named-path-constraint {
579 if-feature te-types:named-path-constraints;
580 type leafref {
581 path "../../../../../../globals/"
582 + "named-path-constraints/named-path-constraint/"
583 + "config/name";
584 }
585 description
586 "Reference to a globally defined named path
587 constraint set";
588 }
589 }
590
591 /* TE tunnel configuration data */
592 grouping tunnel-p2mp-params_config {
593 description
594 "Configuration parameters relating to TE tunnel";
595 leaf name {
596 type string;
597 description "TE tunnel name.";
598 }
599 leaf type {
600 type identityref {
601 base te-types:tunnel-type;
602 }
603 description "TE tunnel type.";
604 }
605 leaf identifier {
606 type uint16;
607 description
608 "TE tunnel Identifier.";
609 }
610 leaf description {
611 type string;
612 description
613 "Textual description for this TE tunnel";
614 }
615 leaf setup-priority {
616 type uint8 {
617 range "0..7";
618 }
619 description
620 "TE LSP setup priority";
621 }
622 leaf hold-priority {
623 type uint8 {
624 range "0..7";
625 }
626 description
627 "TE LSP hold priority";
628 }
629 leaf lsp-protection-type {
630 type identityref {
631 base te-types:lsp-prot-type;
632 }
633 description "LSP protection type.";
634 }
635 leaf admin-status {
636 type identityref {
637 base te-types:state-type;
638 }
639 default te-types:state-up;
640 description "TE tunnel administrative state.";
641 }
642 leaf reoptimize-timer {
643 type uint16;
644 units seconds;
645 description
646 "frequency of reoptimization of
647 a traffic engineered LSP";
648 }
649 }
650
651 grouping te-tunnel-bandwidth_config {
652 description
653 "Configuration parameters related to bandwidth for a tunnel";
654
655 leaf specification-type {
656 type te-mpls-types:te-bandwidth-type;
657 default SPECIFIED;
658 description
659 "The method used for settign the bandwidth, either explicitly
660 specified or configured";
661 }
662
663 leaf set-bandwidth {
664 when "../specification-type = 'te-mpls-types:SPECIFIED'" {
665 description
666 "The bandwidth value when bandwidth is explicitly
667 specified";
668 }
669 type te-mpls-types:bandwidth-kbps;
670 description
671 "set bandwidth explicitly, e.g., using
672 offline calculation";
673 }
674 leaf class-type {
675 type te-types:te-ds-class;
676 description
677 "The Class-Type of traffic transported by the LSP.";
678 reference "RFC4124: section-4.3.1";
679 }
680 }
681
682 grouping te-tunnel-bandwidth_state {
683 description
684 "Operational state parameters relating to bandwidth for a tunnel";
685
686 leaf signaled-bandwidth {
687 type te-mpls-types:bandwidth-kbps;
688 description
689 "The currently signaled bandwidth of the LSP. In the case where
690 the bandwidth is specified explicitly, then this will match the
691 value of the set-bandwidth leaf; in cases where the bandwidth is
692 dynamically computed by the system, the current value of the
693 bandwidth should be reflected.";
694 }
695 }
696
697 grouping te-lsp-auto-bandwidth_config {
698 description
699 "Configuration parameters related to autobandwidth";
700
701 leaf enabled {
702 type boolean;
703 default false;
704 description
705 "enables mpls auto-bandwidth on the
706 lsp";
707 }
708
709 leaf min-bw {
710 type te-mpls-types:bandwidth-kbps;
711 description
712 "set the minimum bandwidth in Kbps for an
713 auto-bandwidth LSP";
714 }
715
716 leaf max-bw {
717 type te-mpls-types:bandwidth-kbps;
718 description
719 "set the maximum bandwidth in Kbps for an
720 auto-bandwidth LSP";
721 }
722
723 leaf adjust-interval {
724 type uint32;
725 description
726 "time in seconds between adjustments to
727 LSP bandwidth";
728 }
729
730 leaf adjust-threshold {
731 type te-types:percentage;
732 description
733 "percentage difference between the LSP's
734 specified bandwidth and its current bandwidth
735 allocation -- if the difference is greater than the
736 specified percentage, auto-bandwidth adjustment is
737 triggered";
738 }
739 }
740
741 grouping te-lsp-overflow_config {
742 description
743 "configuration for mpls lsp bandwidth
744 overflow adjustment";
745
746 leaf enabled {
747 type boolean;
748 default false;
749 description
750 "enables mpls lsp bandwidth overflow
751 adjustment on the lsp";
752 }
753
754 leaf overflow-threshold {
755 type te-types:percentage;
756 description
757 "bandwidth percentage change to trigger
758 an overflow event";
759
760 }
761
762 leaf trigger-event-count {
763 type uint16;
764 description
765 "number of consecutive overflow sample
766 events needed to trigger an overflow adjustment";
767 }
768 }
769
770 grouping te-lsp-underflow_config {
771 description
772 "configuration for mpls lsp bandwidth
773 underflow adjustment";
774
775 leaf enabled {
776 type boolean;
777 default false;
778 description
779 "enables bandwidth underflow
780 adjustment on the lsp";
781 }
782
783 leaf underflow-threshold {
784 type te-types:percentage;
785 description
786 "bandwidth percentage change to trigger
787 and underflow event";
788 }
789
790 leaf trigger-event-count {
791 type uint16;
792 description
793 "number of consecutive underflow sample
794 events needed to trigger an underflow adjustment";
795 }
796 }
797
798 grouping te-path-bandwidth_top {
799 description
800 "Top level grouping for specifying bandwidth for a TE path";
801
802 container bandwidth {
803 description
804 "Bandwidth configuration for TE LSPs";
805
806 container config {
807 description
808 "Configuration parameters related to bandwidth on TE
809 tunnels:";
810 uses te-tunnel-bandwidth_config;
811 }
812
813 container state {
814 config false;
815 description
816 "State parameters related to bandwidth
817 configuration of TE tunnels";
818 uses te-tunnel-bandwidth_config;
819 uses te-tunnel-bandwidth_state;
820 }
821 }
822 }
823
824 grouping te-tunnel-bandwidth_top {
825 description
826 "Top level grouping for specifying bandwidth for a tunnel";
827
828 container bandwidth {
829 description
830 "Bandwidth configuration for TE LSPs";
831
832 container config {
833 description
834 "Configuration parameters related to bandwidth on TE
835 tunnels:";
836 uses te-tunnel-bandwidth_config;
837 }
838
839 container state {
840 config false;
841 description
842 "State parameters related to bandwidth
843 configuration of TE tunnels";
844 uses te-tunnel-bandwidth_config;
845 uses te-tunnel-bandwidth_state;
846 }
847
848 container auto-bandwidth {
849 when "../config/specification-type = 'AUTO'" {
850 description
851 "Include this container for auto bandwidth
852 specific configuration";
853 }
854 description
855 "Parameters related to auto-bandwidth";
856
857 container config {
858 description
859 "Configuration parameters relating to MPLS
860 auto-bandwidth on the tunnel.";
861 uses te-lsp-auto-bandwidth_config;
862 }
863 container state {
864 config false;
865 description
866 "State parameters relating to MPLS
867 auto-bandwidth on the tunnel.";
868 uses te-lsp-auto-bandwidth_config;
869 }
870
871 container overflow {
872 description
873 "configuration of MPLS overflow bandwidth
874 adjustement for the LSP";
875
876 container config {
877 description
878 "Config information for MPLS overflow bandwidth
879 adjustment";
880 uses te-lsp-overflow_config;
881 }
882
883 container state {
884 config false;
885 description
886 "Config information for MPLS overflow bandwidth
887 adjustment";
888 uses te-lsp-overflow_config;
889 }
890 }
891
892 container underflow {
893 description
894 "configuration of MPLS underflow bandwidth
895 adjustement for the LSP";
896
897 container config {
898 description
899 "Config information for MPLS underflow bandwidth
900 adjustment";
901 uses te-lsp-underflow_config;
902 }
903
904 container state {
905 config false;
906 description
907 "State information for MPLS underflo
908 adjustment";
909 uses te-lsp-underflow_config;
910 }
911 }
912 }
913 }
914 }
915
916 grouping tunnel-p2p-params_config {
917 description
918 "Configuration parameters relating to TE tunnel";
919 leaf name {
920 type string;
921 description "TE tunnel name.";
922 }
923 leaf type {
924 type identityref {
925 base te-types:tunnel-type;
926 }
927 description "TE tunnel type.";
928 }
929 leaf identifier {
930 type uint16;
931 description
932 "TE tunnel Identifier.";
933 }
934 leaf description {
935 type string;
936 description
937 "Textual description for this TE tunnel";
938 }
939 leaf switching-layer {
940 type identityref {
941 base te-types:switching-capabilities;
942 }
943 description
944 "Switching layer of this TE tunnel";
945 }
946 leaf encoding {
947 type identityref {
948 base te-types:lsp-encoding-types;
949 }
950 description "LSP encoding type";
951 }
952 leaf protection-type {
953 type identityref {
954 base te-types:lsp-prot-type;
955 }
956 description "LSP protection type.";
957 }
958 leaf admin-status {
959 type identityref {
960 base te-types:state-type;
961 }
962 default te-types:state-up;
963 description "TE tunnel administrative state.";
964 }
965 leaf preference {
966 type uint8 {
967 range "1..255";
968 }
969 description
970 "Specifies a preference for this tunnel.
971 A lower number signifies a better preference";
972 }
973 leaf reoptimize-timer {
974 type uint16;
975 units seconds;
976 description
977 "frequency of reoptimization of
978 a traffic engineered LSP";
979 }
980 /*****************************************************/
981 //TODO: HENRY added begin
982 leaf provider-id {
983 type te-types:te-global-id;
984 description
985 "An identifier to uniquely identify a provider.";
986 }
987 leaf client-id {
988 type te-types:te-global-id;
989 description
990 "An identifier to uniquely identify a client.";
991 }
992 leaf te-topology-id {
993 type te-types:te-topology-id;
994 description
995 "It is presumed that a datastore will contain many
996 topologies. To distinguish between topologies it is
997 vital to have UNIQUE topology identifiers.";
998 }
999
1000 //TODO: HENRY added end
1001 /*****************************************************/
1002
1003 leaf source {
1004 type inet:ip-address;
1005 description
1006 "TE tunnel source address.";
1007 }
1008 leaf destination {
1009 /* Add when check */
1010 type inet:ip-address;
1011 description
1012 "P2P tunnel destination address";
1013 }
1014 leaf src-tp-id {
1015 type binary;
1016 description
1017 "TE tunnel source termination point identifier.";
1018 }
1019 leaf dst-tp-id {
1020 /* Add when check */
1021 type binary;
1022 description
1023 "TE tunnel destination termination point identifier.";
1024 }
1025 leaf setup-priority {
1026 type uint8 {
1027 range "0..7";
1028 }
1029 description
1030 "TE LSP setup priority";
1031 }
1032 leaf hold-priority {
1033 type uint8 {
1034 range "0..7";
1035 }
1036 description
1037 "TE LSP hold priority";
1038 }
1039 leaf signaling-type {
1040 type identityref {
1041 //TODO: FIXME
1042 //base te-types:path-signaling-type;
1043 base te-types:tunnel-type;
1044
1045 }
1046 description "TE tunnel path signaling type";
1047 }
1048 container hierarchical-link-id {
1049 description
1050 "Identifies a hierarchical link (in server layer)
1051 that this tunnel is associated with.";
1052 leaf local-te-node-id {
1053 type te-types:te-node-id;
1054 description
1055 "Local TE node identifier";
1056 }
1057 leaf local-te-link-tp-id {
1058 type te-types:te-tp-id;
1059 description
1060 "Local TE link termination point identifier";
1061 }
1062 leaf remote-te-node-id {
1063 type te-types:te-node-id;
1064 description
1065 "Remote TE node identifier";
1066 }
1067 leaf te-topology-id {
1068 type te-types:te-topology-id;
1069 description
1070 "It is presumed that a datastore will contain many
1071 topologies. To distinguish between topologies it is
1072 vital to have UNIQUE topology identifiers.";
1073 }
1074 }
1075 uses bidir-assoc-properties;
1076 }
1077
1078 grouping tunnel-p2p-params_state {
1079 description
1080 "State parameters relating to TE tunnel";
1081 leaf oper-status {
1082 type identityref {
1083 base te-types:state-type;
1084 }
1085 description "TE tunnel operational state.";
1086 }
1087 leaf prov-state {
1088 type identityref {
1089 base te-types:prov-state-type;
1090 }
1091 description "TE tunnel provisioning state.";
1092 }
1093 }
1094
1095 /* TE tunnel configuration/state grouping */
1096 grouping tunnel-p2mp-properties {
1097 description
1098 "Top level grouping for P2MP tunnel properties.";
1099 container config {
1100 description
1101 "Configuration parameters relating to
1102 tunnel P2MP properties";
1103 uses tunnel-p2mp-params_config;
1104 }
1105
1106 container state {
1107 config false;
1108 description
1109 "State information associated with tunnel
1110 properties";
1111 uses tunnel-p2mp-params_config;
1112 }
1113 }
1114
1115 grouping p2p-path-candidate-secondary-path-config {
1116 description
1117 "Configuration parameters relating to a secondary path which
1118 is a candidate for a particular primary path";
1119
1120 leaf secondary-path {
1121 type leafref {
1122 path "../../../../../../p2p-secondary-paths/" +
1123 "p2p-secondary-path/config/name";
1124 }
1125 description
1126 "A reference to the secondary path that should be utilised
1127 when the containing primary path option is in use";
1128 }
1129
1130 leaf priority {
1131 type uint16;
1132 description
1133 "The priority of the specified secondary path option. Higher
1134 priority options are less preferable - such that a secondary
1135 path reference with a priority of 0 is the most preferred";
1136 }
1137 leaf path-setup-protocol {
1138 type identityref {
1139 base te-types:te-path-setup-protocol;
1140 }
1141 description
1142 "Signaling protocol used to set up this tunnel";
1143 }
1144 }
1145
1146 grouping p2p-path-candidate-secondary-path-state {
1147 description
1148 "Operational state parameters relating to a secondary path
1149 which is a candidate for a particular primary path";
1150
1151 leaf active {
1152 type boolean;
1153 description
1154 "Indicates the current active path option that has
1155 been selected of the candidate secondary paths";
1156 }
1157 }
1158
1159 grouping tunnel-p2p-properties {
1160 description
1161 "Top level grouping for tunnel properties.";
1162 container config {
1163 description
1164 "Configuration parameters relating to
1165 tunnel properties";
1166 uses tunnel-p2p-params_config;
1167 }
1168 container state {
1169 config false;
1170 description
1171 "State information associated with tunnel
1172 properties";
1173 uses tunnel-p2p-params_config;
1174 uses tunnel-p2p-params_state;
1175 }
1176 uses te-tunnel-bandwidth_top;
1177
1178 container p2p-primary-paths {
1179 description "Set of P2P primary aths container";
1180 list p2p-primary-path {
1181 key "name";
1182 description
1183 "List of primary paths for this tunnel.";
1184 leaf name {
1185 type leafref {
1186 path "../config/name";
1187 }
1188 description "TE path name";
1189 }
1190 uses p2p-primary-path-properties;
1191 container candidate-p2p-secondary-paths {
1192 description
1193 "The set of candidate secondary paths which may be used
1194 for this primary path. When secondary paths are specified
1195 in the list the path of the secondary LSP in use must be
1196 restricted to those path options referenced. The
1197 priority of the secondary paths is specified within the
1198 list. Higher priority values are less preferred - that is
1199 to say that a path with priority 0 is the most preferred
1200 path. In the case that the list is empty, any secondary
1201 path option may be utilised when the current primary path
1202 is in use.";
1203 list candidate-p2p-secondary-path {
1204 key "secondary-path";
1205 description
1206 "List of secondary paths for this tunnel.";
1207 leaf secondary-path {
1208 type leafref {
1209 path "../config/secondary-path";
1210 }
1211 description "TE path name";
1212 }
1213 container config {
1214 description
1215 "Configuration parameters relating to the candidate
1216 secondary path";
1217
1218 uses p2p-path-candidate-secondary-path-config;
1219 }
1220
1221 container state {
1222 config false;
1223 description
1224 "Operational state parameters relating to the candidate
1225 secondary path";
1226
1227 uses p2p-path-candidate-secondary-path-config;
1228 uses p2p-path-candidate-secondary-path-state;
1229 }
1230 }
1231 }
1232 }
1233 }
1234 container p2p-secondary-paths {
1235 description "Set of P2P secondary paths container";
1236 list p2p-secondary-path {
1237 key "name";
1238 description
1239 "List of secondary paths for this tunnel.";
1240 leaf name {
1241 type leafref {
1242 path "../config/name";
1243 }
1244 description "TE path name";
1245 }
1246 uses p2p-primary-path-properties;
1247 }
1248 }
1249 }
1250
1251 grouping tunnel-actions {
1252 description "Tunnel actions";
1253/***TODO: FIXME: actions are not supported by yangtools yet
1254 action tunnel-action {
1255 description "Tunnel action";
1256 input {
1257 leaf action-type {
1258 type identityref {
1259 base te-types:tunnel-action-type;
1260 }
1261 description "Tunnel action type";
1262 }
1263 }
1264 output {
1265 leaf action-result {
1266 type identityref {
1267 base te-types:te-action-result;
1268 }
1269 description "The result of the RPC operation";
1270 }
1271 }
1272 }
1273****TODO: FIXME****/
1274 }
1275 /*** End of TE tunnel groupings ***/
1276
1277 /**
1278 * LSP related generic groupings
1279 */
1280 grouping lsp-record-route-information_state {
1281 description "recorded route information grouping";
1282 container lsp-record-route-subobjects {
1283 description "RSVP recorded route object information";
1284 list record-route-subobject {
1285 when "../../origin-type = 'ingress'" {
1286 description "Applicable on non-ingress LSPs only";
1287 }
1288 key "index";
1289 description "Record route sub-object list";
1290 leaf index {
1291 type uint32;
1292 description "RRO subobject index";
1293 }
1294 uses te-types:record-route-subobject;
1295 }
1296 }
1297 }
1298
1299 grouping lsp-properties_state {
1300 description
1301 "State parameters relating to LSP";
1302 leaf oper-status {
1303 type identityref {
1304 base te-types:state-type;
1305 }
1306 description "LSP operational state.";
1307 }
1308 leaf path-setup-protocol {
1309 type identityref {
1310 base te-types:te-path-setup-protocol;
1311 }
1312 description
1313 "Signaling protocol used to set up this tunnel";
1314 }
1315 leaf origin-type {
1316 type enumeration {
1317 enum ingress {
1318 description
1319 "Origin ingress";
1320 }
1321 enum egress {
1322 description
1323 "Origin egress";
1324 }
1325 enum transit {
1326 description
1327 "transit";
1328 }
1329 }
1330 description
1331 "Origin type of LSP relative to the location
1332 of the local switch in the path.";
1333 }
1334
1335 leaf lsp-resource-status {
1336 type enumeration {
1337 enum primary {
1338 description
1339 "A primary LSP is a fully established LSP for
1340 which the resource allocation has been committed
1341 at the data plane";
1342 }
1343 enum secondary {
1344 description
1345 "A secondary LSP is an LSP that has been provisioned
1346 in the control plane only; e.g. resource allocation
1347 has not been committed at the data plane";
1348 }
1349 }
1350 description "LSP resource allocation type";
1351 reference "rfc4872, section 4.2.1";
1352 }
1353
1354 leaf lsp-protection-role {
1355 type enumeration {
1356 enum working {
1357 description
1358 "A working LSP must be a primary LSP whilst a protecting
1359 LSP can be either a primary or a secondary LSP. Also,
1360 known as protected LSPs when working LSPs are associated
1361 with protecting LSPs.";
1362 }
1363 enum protecting {
1364 description
1365 "A secondary LSP is an LSP that has been provisioned
1366 in the control plane only; e.g. resource allocation
1367 has not been committed at the data plane";
1368 }
1369 }
1370 description "LSP role type";
1371 reference "rfc4872, section 4.2.1";
1372 }
1373
1374 leaf lsp-carry-normal-traffic {
1375 type empty;
1376 description
1377 "This bit is set when a protecting LSP is carrying the normal
1378 traffic after protection switching";
1379 }
1380 }
1381 /*** End of TE LSP groupings ***/
1382
1383 /**
1384 * TE global generic groupings
1385 */
1386
1387 /* Global named admin-groups configuration data */
1388 grouping named-admin-groups_config {
1389 description
1390 "Global named administrative groups configuration
1391 grouping";
1392 leaf name {
1393 type string;
1394 description
1395 "A string name that uniquely identifies a TE
1396 interface named admin-group";
1397 }
1398 leaf bit-position {
1399 type uint32;
1400 description
1401 "Bit position representing the administrative group";
1402 }
1403 }
1404 grouping named-admin-groups {
1405 description
1406 "Global named administrative groups configuration
1407 grouping";
1408 container named-admin-groups {
1409 description "TE named admin groups container";
1410 list named-admin-group {
1411 if-feature te-types:extended-admin-groups;
1412 if-feature te-types:named-extended-admin-groups;
1413 key "name";
1414 description
1415 "List of named TE admin-groups";
1416 leaf name {
1417 type leafref {
1418 path "../config/name";
1419 }
1420 description "Admin-group name";
1421 }
1422 container config {
1423 description
1424 "Configuration parameters related to admin-groups";
1425 uses named-admin-groups_config;
1426 }
1427 container state {
1428 config false;
1429 description
1430 "State parameters related to admin-groups";
1431 uses named-admin-groups_config;
1432 }
1433 }
1434 }
1435 }
1436
1437 /* Global named admin-srlgs configuration data */
1438 grouping named-srlgs_config {
1439 description
1440 "Global named SRLGs configuration grouping";
1441 leaf name {
1442 type string;
1443 description
1444 "A string name that uniquely identifies a TE
1445 interface named srlg";
1446 }
1447 leaf group {
1448 type te-types:srlg;
1449 description "An SRLG value";
1450 }
1451 leaf cost {
1452 type uint32;
1453 description
1454 "SRLG associated cost. Used during path to append
1455 the path cost when traversing a link with this SRLG";
1456 }
1457 }
1458
1459 grouping named-srlgs {
1460 description
1461 "Global named SRLGs configuration grouping";
1462 container named-srlgs {
1463 description "TE named SRLGs container";
1464 list named-srlg {
1465 if-feature te-types:named-srlg-groups;
1466 key "name";
1467 description
1468 "A list of named SRLG groups";
1469 leaf name {
1470 type leafref {
1471 path "../config/name";
1472 }
1473 description "SRLG name";
1474 }
1475 container config {
1476 description
1477 "Configuration parameters related to named SRLGs";
1478 uses named-srlgs_config;
1479 }
1480 container state {
1481 config false;
1482 description
1483 "State parameters related to named SRLGs";
1484 uses named-srlgs_config;
1485 }
1486 }
1487 }
1488 }
1489
1490 /* Global named explicit-paths configuration data */
1491 grouping named-explicit-paths_config {
1492 description
1493 "Global explicit path configuration
1494 grouping";
1495 leaf name {
1496 type string;
1497 description
1498 "A string name that uniquely identifies an
1499 explicit path";
1500 }
1501 container explicit-route-objects {
1502 description "Explicit route objects container";
1503 list explicit-route-object {
1504 key "index";
1505 description
1506 "List of explicit route objects";
1507 leaf index {
1508 type leafref {
1509 path "../config/index";
1510 }
1511 description
1512 "Index of this explicit route object";
1513 }
1514 leaf explicit-route-usage {
1515 type identityref {
1516 base te-types:route-usage-type;
1517 }
1518 description "An explicit-route hop action.";
1519 }
1520 uses te-types:explicit-route-hop;
1521 }
1522 }
1523 }
1524
1525 grouping named-explicit-paths {
1526 description
1527 "Global explicit path configuration
1528 grouping";
1529 container named-explicit-paths {
1530 description "TE named explicit path container";
1531 list named-explicit-path {
1532 key "name";
1533 description
1534 "A list of explicit paths";
1535 leaf name {
1536 type leafref {
1537 path "../config/name";
1538 }
1539 description "Explicit-path name";
1540 }
1541
1542 container config {
1543 description
1544 "Configuration parameters related to named paths";
1545 uses named-explicit-paths_config;
1546 }
1547 container state {
1548 config false;
1549 description
1550 "State parameters related to named paths";
1551 uses named-explicit-paths_config;
1552 }
1553 }
1554 }
1555 }
1556
1557 /* Global named paths constraints configuration data */
1558 grouping named-path-constraints_config {
1559 description
1560 "Global named path constraints configuration
1561 grouping";
1562 leaf name {
1563 type string;
1564 description
1565 "A string name that uniquely identifies a
1566 path constraint set";
1567 }
1568 leaf topology-id {
1569 type te-types:te-topology-id;
1570 description
1571 "The tunnel path is computed using the specific
1572 topology identified by this identifier";
1573 }
1574 leaf cost-limit {
1575 type uint32 {
1576 range "1..4294967295";
1577 }
1578 description
1579 "The tunnel path cost limit.";
1580 }
1581 leaf hop-limit {
1582 type uint8 {
1583 range "1..255";
1584 }
1585 description
1586 "The tunnel path hop limit.";
1587 }
1588 leaf metric-type {
1589 type identityref {
1590 base te-types:path-metric-type;
1591 }
1592 default te-types:path-metric-te;
1593 description
1594 "The tunnel path metric type.";
1595 }
1596 leaf tiebreaker-type {
1597 type identityref {
1598 base te-types:path-tiebreaker-type;
1599 }
1600 default te-types:path-tiebreaker-maxfill;
1601 description
1602 "The tunnel path computation tie breakers.";
1603 }
1604 leaf ignore-overload {
1605 type boolean;
1606 description
1607 "The tunnel path can traverse overloaded node.";
1608 }
1609 leaf setup-priority {
1610 type uint8 {
1611 range "0..7";
1612 }
1613 description
1614 "TE LSP setup priority";
1615 }
1616 leaf hold-priority {
1617 type uint8 {
1618 range "0..7";
1619 }
1620 description
1621 "TE LSP hold priority";
1622 }
1623 uses path-affinities;
1624 uses path-srlgs;
1625 uses path-route-objects;
1626 uses te-path-bandwidth_top;
1627 }
1628
1629 grouping named-path-constraints {
1630 description
1631 "Global named path constraints configuration
1632 grouping";
1633 container named-path-constraints {
1634 description "TE named path constraints container";
1635 list named-path-constraint {
1636 if-feature te-types:named-path-constraints;
1637 key "name";
1638 description
1639 "A list of named path constraints";
1640 leaf name {
1641 type leafref {
1642 path "../config/name";
1643 }
1644 description "Path constraint name";
1645 }
1646 container config {
1647 description
1648 "Configuration parameters related to admin-groups";
1649 uses named-path-constraints_config;
1650 }
1651 container state {
1652 config false;
1653 description
1654 "State parameters related to admin-groups";
1655 uses named-path-constraints_config;
1656 }
1657 }
1658 }
1659 }
1660
1661 /* TE globals container data */
1662 grouping globals-grouping {
1663 description
1664 "Globals TE system-wide configuration data grouping";
1665 container globals {
1666 description
1667 "Globals TE system-wide configuration data container";
1668 uses named-admin-groups;
1669 uses named-srlgs;
1670 uses named-explicit-paths;
1671 uses named-path-constraints;
1672 }
1673 }
1674
1675 /* TE tunnels container data */
1676 grouping tunnels-grouping {
1677 description
1678 "Tunnels TE configuration data grouping";
1679 container tunnels {
1680 description
1681 "Tunnels TE configuration data container";
1682
1683 list tunnel {
1684 key "name";
1685 unique "identifier";
1686 description "P2P TE tunnels list.";
1687 leaf name {
1688 type leafref {
1689 path "../config/name";
1690 }
1691 description "TE tunnel name.";
1692 }
1693 leaf identifier {
1694 type leafref {
1695 path "../config/identifier";
1696 }
1697 description
1698 "TE tunnel Identifier.";
1699 }
1700
1701
1702 uses tunnel-p2p-properties;
1703 uses tunnel-actions;
1704 }
1705 list tunnel-p2mp {
1706 key "name";
1707 unique "identifier";
1708 description "P2MP TE tunnels list.";
1709 leaf name {
1710 type leafref {
1711 path "../config/name";
1712 }
1713 description "TE tunnel name.";
1714 }
1715 leaf identifier {
1716 type leafref {
1717 path "../config/identifier";
1718 }
1719 description
1720 "TE tunnel Identifier.";
1721 }
1722 uses tunnel-p2mp-properties;
1723 }
1724 }
1725 }
1726
1727 /* TE LSPs ephemeral state container data */
1728 grouping lsps-state-grouping {
1729 description
1730 "LSPs state operational data grouping";
1731 container lsps-state {
1732 config "false";
1733 description "LSPs operational state data.";
1734
1735 list lsp {
1736 key
1737 "source destination tunnel-id lsp-id "+
1738 "extended-tunnel-id type";
1739 description
1740 "List of LSPs associated with the tunnel.";
1741 leaf source {
1742 type inet:ip-address;
1743 description
1744 "Tunnel sender address extracted from
1745 SENDER_TEMPLATE object";
1746 reference "RFC3209";
1747 }
1748 leaf destination {
1749 type inet:ip-address;
1750 description
1751 "Tunnel endpoint address extracted from
1752 SESSION object";
1753 reference "RFC3209";
1754 }
1755 leaf tunnel-id {
1756 type uint16;
1757 description
1758 "Tunnel identifier used in the SESSION
1759 that remains constant over the life
1760 of the tunnel.";
1761 reference "RFC3209";
1762 }
1763 leaf lsp-id {
1764 type uint16;
1765 description
1766 "Identifier used in the SENDER_TEMPLATE
1767 and the FILTER_SPEC that can be changed
1768 to allow a sender to share resources with
1769 itself.";
1770 reference "RFC3209";
1771 }
1772 leaf extended-tunnel-id {
1773 type inet:ip-address;
1774 description
1775 "Extended Tunnel ID of the LSP.";
1776 reference "RFC3209";
1777 }
1778 leaf type {
1779 type identityref {
1780 base te-types:tunnel-type;
1781 }
1782 description "The LSP type P2P or P2MP";
1783 }
1784
1785 uses lsp-properties_state;
1786 uses lsp-record-route-information_state;
1787 }
1788 }
1789 }
1790 /*** End of TE global groupings ***/
1791
1792 /**
1793 * TE configurations container
1794 */
1795 container te {
1796 presence "Enable TE feature.";
1797 description
1798 "TE global container.";
1799
1800 /* TE Global Configuration Data */
1801 uses globals-grouping;
1802
1803 /* TE Tunnel Configuration Data */
1804 uses tunnels-grouping;
1805
1806 /* TE LSPs State Data */
1807 uses lsps-state-grouping;
1808 }
1809
1810 /* TE Global RPCs/execution Data */
1811 rpc globals-rpc {
1812 description
1813 "Execution data for TE global.";
1814 }
1815
1816 /* TE interfaces RPCs/execution Data */
1817 rpc interfaces-rpc {
1818 description
1819 "Execution data for TE interfaces.";
1820 }
1821
1822 /* TE Tunnel RPCs/execution Data */
1823 rpc tunnels-rpc {
1824 description "TE tunnels RPC nodes";
1825 input {
1826 container tunnel-info {
1827 description "Tunnel Identification";
1828 choice type {
1829 description "Tunnel information type";
1830 case tunnel-p2p {
1831 leaf p2p-id {
1832 type te:tunnel-ref;
1833 description "P2P TE tunnel";
1834 }
1835 }
1836 case tunnel-p2mp {
1837 leaf p2mp-id {
1838 type te:tunnel-p2mp-ref;
1839 description "P2MP TE tunnel";
1840 }
1841 }
1842 }
1843 }
1844 }
1845 output {
1846 container result {
1847 description
1848 "The container result of the RPC operation";
1849 leaf result {
1850 type enumeration {
1851 enum success {
1852 description "Origin ingress";
1853 }
1854 enum in-progress {
1855 description "Origin egress";
1856 }
1857 enum fail {
1858 description "transit";
1859 }
1860 }
1861 description "The result of the RPC operation";
1862 }
1863 }
1864 }
1865 }
1866
1867/**************************************************************/
1868//TODO: FIXME: HENRY added begins
1869
1870 grouping te-optimization-criterion {
1871 description
1872 "";
1873 container optimization-criterion {
1874 description "Optimization criterion.";
1875 list metric {
1876 key "name";
1877 description
1878 "Name of the numerical property";
1879
1880 leaf name {
1881 type identityref {
1882 base te-types:te-path-numerical-property;
1883 }
1884 description "";
1885 }
1886 leaf goal {
1887 type enumeration {
1888 enum minimize {
1889 description "Minimize";
1890 }
1891 enum maxmize {
1892 description "Maxmize";
1893 }
1894 }
1895 description "";
1896 }
1897 leaf weight {
1898 type uint8;
1899 description "";
1900 }
1901 }
1902 list tiebreaker {
1903 key "metric";
1904 description
1905 "A list of numerical properties used as tiebreakers.
1906 The order of a property in the list is the precedence
1907 of tiebreaking.";
1908
1909 leaf metric {
1910 type identityref {
1911 base te-types:te-path-numerical-property;
1912 }
1913 description "";
1914 }
1915 leaf tiebreaker-type {
1916 type identityref {
1917 base te-types:path-tiebreaker-type;
1918 }
1919 default te-types:path-tiebreaker-minfill;
1920 description
1921 "The tunnel path computation tie breakers.";
1922 }
1923 }
1924 }
1925 }
1926
1927 grouping te-path-constraints {
1928 description
1929 "TE path constraints configuration grouping";
1930
1931 container path-constraints {
1932 description "Path constraints.";
1933 list metric {
1934 key "name";
1935 description "";
1936
1937 leaf name {
1938 type identityref {
1939 base te-types:te-path-numerical-property;
1940 }
1941 description
1942 "Name of the numerical property";
1943 }
1944 leaf low-limit {
1945 type uint64;
1946 description
1947 "";
1948 }
1949 leaf high-limit {
1950 type uint64;
1951 description
1952 "";
1953 }
1954 }
1955 leaf bandwidth-generic {
1956 type te-types:te-bandwidth;
1957 description
1958 "A technology agnostic requested bandwidth to use
1959 for path computation";
1960 }
1961 leaf setup-priority {
1962 type uint8 {
1963 range "0..7";
1964 }
1965 description
1966 "TE LSP requested setup priority";
1967 }
1968 leaf hold-priority {
1969 type uint8 {
1970 range "0..7";
1971 }
1972 description
1973 "TE LSP requested hold priority";
1974 }
1975 leaf ignore-overload {
1976 type boolean;
1977 description
1978 "The tunnel path can traverse overloaded node.";
1979 }
1980 uses path-affinities;
1981 uses path-srlgs;
1982 }
1983 }
1984
1985 grouping te-path-properties {
1986 description
1987 "";
1988
1989 container path-properties {
1990 description "";
1991 list metric {
1992 key "name";
1993 description "";
1994
1995 leaf name {
1996 type identityref {
1997 base te-types:te-path-numerical-property;
1998 }
1999 description "";
2000 }
2001 leaf value {
2002 type uint64;
2003 description "";
2004 }
2005 }
2006 leaf bandwidth-generic {
2007 type te-types:te-bandwidth;
2008 description
2009 "A technology agnostic requested bandwidth to use
2010 for path computation";
2011 }
2012 leaf setup-priority {
2013 type uint8 {
2014 range "0..7";
2015 }
2016 description
2017 "TE LSP requested setup priority";
2018 }
2019 leaf hold-priority {
2020 type uint8 {
2021 range "0..7";
2022 }
2023 description
2024 "TE LSP requested hold priority";
2025 }
2026 leaf ignore-overload {
2027 type boolean;
2028 description
2029 "The tunnel path can traverse overloaded node.";
2030 }
2031 uses path-affinities;
2032 uses path-srlgs;
2033 }
2034 }
2035
2036 rpc te-tunnel-path-compute {
2037 description "TE tunnel path computation ";
2038 input {
2039 leaf inter-request-diversity {
2040 type te-types:te-path-disjointness;
2041 description
2042 "Diversity requirement between requests.
2043 If not specified, requests are computed independently.";
2044 }
2045 uses te-optimization-criterion;
2046
2047 list request {
2048 key "id";
2049 description "A list of request items.";
2050
2051 leaf id {
2052 type uint8;
2053 description
2054 "Request ID.";
2055 }
2056
2057 leaf source {
2058 type te-types:te-node-id;
2059 description
2060 "TE tunnel source address.";
2061 }
2062 leaf destination {
2063 type te-types:te-node-id;
2064 description
2065 "P2P tunnel destination address";
2066 }
2067 leaf src-tp-id {
2068 type binary;
2069 description
2070 "TE tunnel source termination point identifier.";
2071 }
2072 leaf dst-tp-id {
2073 type binary;
2074 description
2075 "TE tunnel destination termination point identifier.";
2076 }
2077 leaf switching-layer {
2078 type identityref {
2079 base te-types:switching-capabilities;
2080 }
2081 description
2082 "Switching layer where the requests are computed.";
2083 }
2084 leaf encoding {
2085 type identityref {
2086 base te-types:lsp-encoding-types;
2087 }
2088 description "LSP encoding type";
2089 }
2090
2091 uses te-path-constraints;
2092
2093 container explicit-route-objects {
2094 description "";
2095 }
2096 }
2097 }
2098 output {
2099 leaf return-code {
2100 type enumeration {
2101 enum success {
2102 description "success";
2103 }
2104 enum aborted {
2105 description "";
2106 }
2107 enum destination-not-found {
2108 description "";
2109 }
2110 enum invalid-argument {
2111 description "";
2112 }
2113 enum no-memory {
2114 description "";
2115 }
2116 enum no-path-found{
2117 description "";
2118 }
2119 enum other-error {
2120 description "";
2121 }
2122 enum some-path-not-found{
2123 description "";
2124 }
2125 enum source-not-found {
2126 description "";
2127 }
2128 enum topology-error {
2129 description "";
2130 }
2131 }
2132 description
2133 "Return code.";
2134 }
2135 list result {
2136 key "id";
2137 description
2138 "A list of results for all requests.";
2139
2140 leaf id {
2141 type uint8;
2142 description
2143 "Request ID.";
2144 }
2145
2146 uses te-path-properties;
2147
2148 container explicit-route-objects {
2149 description "";
2150 }
2151 }
2152 }
2153 }
2154
2155//TODO: FIXME: HENRY added finish
2156/**************************************************************/
2157
2158 /* TE Global Notification Data */
2159 notification globals-notif {
2160 description
2161 "Notification messages for Global TE.";
2162 }
2163
2164 /* TE Tunnel Notification Data */
2165 notification tunnels-notif {
2166 description
2167 "Notification messages for TE tunnels.";
2168 }
2169}