blob: 4b9d3be44038f4dd4ee6f3d7a6a1ddfb4a899801 [file] [log] [blame]
VinodKumarS-Huawei2ee9e7e2016-06-01 14:30:22 +05301 module ietf-te-types {
2
3 namespace "urn:ietf:params:xml:ns:yang:ietf-te-types";
4
5 /* Replace with IANA when assigned */
6 prefix "te-types";
7
8 import ietf-inet-types {
9 prefix inet;
10 }
11
12 organization
13 "IETF Traffic Engineering Architecture and Signaling (TEAS)
14 Working Group";
15
16 contact
17 "WG Web: <http://tools.ietf.org/wg/teas/>
18 WG List: <mailto:teas@ietf.org>
19
20 WG Chair: Lou Berger
21 <mailto:lberger@labn.net>
22
23 WG Chair: Vishnu Pavan Beeram
24 <mailto:vbeeram@juniper.net>
25
26 Editor: Tarek Saad
27 <mailto:tsaad@cisco.com>
28
29 Editor: Rakesh Gandhi
30 <mailto:rgandhi@cisco.com>
31
32 Editor: Vishnu Pavan Beeram
33 <mailto:vbeeram@juniper.net>
34
35 Editor: Himanshu Shah
36 <mailto:hshah@ciena.com>
37
38 Editor: Xufeng Liu
39 <mailto:xufeng.liu@ericsson.com>
40
41 Editor: Xia Chen
42 <mailto:jescia.chenxia@huawei.com>
43
44 Editor: Raqib Jones
45 <mailto:raqib@Brocade.com>
46
47 Editor: Bin Wen
48 <mailto:Bin_Wen@cable.comcast.com>";
49
50 description
51 "This module contains a collection of generally
52 useful TE specific YANG data type defintions.";
53
54 revision 2016-03-20 {
55 description "Latest revision of TE generic types";
56 reference "RFC3209";
57 }
58
Shankara-Huaweidf7b9ca2016-07-14 11:35:34 +053059 identity tunnel-type {
VinodKumarS-Huawei2ee9e7e2016-06-01 14:30:22 +053060 description
61 "Base identity from which specific tunnel types are
62 derived.";
63 }
64
65 identity tunnel-p2p {
66 base tunnel-type;
67 description
68 "TE point-to-point tunnel type.";
69 }
70
71 identity tunnel-p2mp {
72 base tunnel-type;
73 description
74 "TE point-to-multipoint tunnel type.";
75 }
76
77 identity state-type {
78 description
79 "Base identity for TE states";
80 }
81
82 identity state-up {
83 base state-type;
84 description
85 "State up";
86 }
87
88 identity state-down {
89 base state-type;
90 description
91 "State down";
92 }
93
94 identity lsp-prot-type {
95 description
96 "Base identity from which LSP protection types are
97 derived.";
98 }
99
100 identity lsp-prot-unprotected {
101 description
102 "LSP protection 'Unprotected'";
103 reference "RFC4872";
104 }
105
106 identity lsp-prot-reroute-extra {
107 description
108 "LSP protection '(Full) Rerouting'";
109 reference "RFC4872";
110 }
111
112 identity lsp-prot-reroute {
113 description
114 "LSP protection 'Rerouting without Extra-Traffic'";
115 reference "RFC4872";
116 }
117
118 identity lsp-prot-1-for-n {
119 description
120 "LSP protection '1:N Protection with Extra-Traffic'";
121 reference "RFC4872";
122 }
123
124 identity lsp-prot-unidir-1-to-1 {
125 description
126 "LSP protection '1+1 Unidirectional Protection'";
127 reference "RFC4872";
128 }
129
130 identity lsp-prot-bidir-1-to-1 {
131 description
132 "LSP protection '1+1 Bidirectional Protection'";
133 reference "RFC4872";
134 }
135
136 identity switching-capabilities {
137 description
138 "Base identity for interface switching capabilities";
139 }
140
141 identity switching-psc1 {
142 base switching-capabilities;
143 description
144 "Packet-Switch Capable-1 (PSC-1)";
145 }
146
147 identity switching-evpl {
148 base switching-capabilities;
149 description
150 "Ethernet Virtual Private Line (EVPL)";
151 }
152
153 identity switching-l2sc {
154 base switching-capabilities;
155 description
156 "Layer-2 Switch Capable (L2SC)";
157 }
158
159 identity switching-tdm {
160 base switching-capabilities;
161 description
162 "Time-Division-Multiplex Capable (TDM)";
163 }
164
165 identity switching-otn {
166 base switching-capabilities;
167 description
168 "OTN-TDM capable";
169 }
170
171 identity switching-dcsc {
172 base switching-capabilities;
173 description
174 "Data Channel Switching Capable (DCSC)";
175 }
176 identity switching-lsc {
177 base switching-capabilities;
178 description
179 "Lambda-Switch Capable (LSC)";
180 }
181
182 identity switching-fsc {
183 base switching-capabilities;
184 description
185 "Fiber-Switch Capable (FSC)";
186 }
187
188 identity lsp-encoding-types {
189 description
190 "Base identity for encoding types";
191 }
192
193 identity lsp-encoding-packet {
194 base lsp-encoding-types;
195 description
196 "Packet LSP encoding";
197 }
198
199 identity lsp-encoding-ethernet {
200 base lsp-encoding-types;
201 description
202 "Ethernet LSP encoding";
203 }
204
205 identity lsp-encoding-pdh {
206 base lsp-encoding-types;
207 description
208 "ANSI/ETSI LSP encoding";
209 }
210
211 identity lsp-encoding-sdh {
212 base lsp-encoding-types;
213 description
214 "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding";
215 }
216
217 identity lsp-encoding-digital-wrapper {
218 base lsp-encoding-types;
219 description
220 "Digital Wrapper LSP encoding";
221 }
222
223 identity lsp-encoding-lambda {
224 base lsp-encoding-types;
225 description
226 "Lambda (photonic) LSP encoding";
227 }
228
229 identity lsp-encoding-fiber {
230 base lsp-encoding-types;
231 description
232 "Fiber LSP encoding";
233 }
234
235 identity lsp-encoding-fiber-channel {
236 base lsp-encoding-types;
237 description
238 "FiberChannel LSP encoding";
239 }
240
241 identity lsp-encoding-oduk {
242 base lsp-encoding-types;
243 description
244 "G.709 ODUk (Digital Path)LSP encoding";
245 }
246
247 identity lsp-encoding-optical-channel {
248 base lsp-encoding-types;
249 description
250 "Line (e.g., 8B/10B) LSP encoding";
251 }
252
253 identity lsp-encoding-line {
254 base lsp-encoding-types;
255 description
256 "Line (e.g., 8B/10B) LSP encoding";
Shankara-Huaweidf7b9ca2016-07-14 11:35:34 +0530257 }
VinodKumarS-Huawei2ee9e7e2016-06-01 14:30:22 +0530258
259 /* TE basic features */
Vidyashree Ramadeac28b2016-06-20 15:12:43 +0530260 feature p2mp-te {
VinodKumarS-Huawei2ee9e7e2016-06-01 14:30:22 +0530261 description
262 "Indicates support for P2MP-TE";
263 }
264
265 feature frr-te {
266 description
267 "Indicates support for TE FastReroute (FRR)";
268 }
269
270 feature extended-admin-groups {
271 description
272 "Indicates support for TE link extended admin
273 groups.";
274 }
275
276 feature named-path-affinities {
277 description
278 "Indicates support for named path affinities";
279 }
280
281 feature named-extended-admin-groups {
282 description
283 "Indicates support for named extended admin groups";
284 }
285
286 feature named-srlg-groups {
287 description
288 "Indicates support for named SRLG groups";
289 }
290
291 feature named-path-constraints {
292 description
293 "Indicates support for named path constraints";
Vidyashree Ramadeac28b2016-06-20 15:12:43 +0530294 }
VinodKumarS-Huawei2ee9e7e2016-06-01 14:30:22 +0530295
296 grouping explicit-route-subobject {
297 description
298 "The explicit route subobject grouping";
299 choice type {
300 description
301 "The explicit route subobject type";
302 case ipv4-address {
303 description
304 "IPv4 address explicit route subobject";
305 leaf v4-address {
306 type inet:ipv4-address;
307 description
308 "An IPv4 address. This address is
309 treated as a prefix based on the
310 prefix length value below. Bits beyond
311 the prefix are ignored on receipt and
312 SHOULD be set to zero on transmission.";
313 }
314 leaf v4-prefix-length {
315 type uint8;
316 description
317 "Length in bits of the IPv4 prefix";
318 }
319 leaf v4-loose {
320 type boolean;
321 description
322 "Describes whether the object is loose
323 if set, or otherwise strict";
324 }
325 }
326 case ipv6-address {
327 description
328 "IPv6 address Explicit Route Object";
329 leaf v6-address {
330 type inet:ipv6-address;
331 description
332 "An IPv6 address. This address is
333 treated as a prefix based on the
334 prefix length value below. Bits
335 beyond the prefix are ignored on
336 receipt and SHOULD be set to zero
337 on transmission.";
338 }
339 leaf v6-prefix-length {
340 type uint8;
341 description
342 "Length in bits of the IPv4 prefix";
343 }
344 leaf v6-loose {
345 type boolean;
346 description
347 "Describes whether the object is loose
348 if set, or otherwise strict";
349 }
350 }
351 case as-number {
352 leaf as-number {
353 type uint16;
354 description "AS number";
355 }
356 description
357 "Autonomous System explicit route subobject";
358 }
359 case unnumbered-link {
360 leaf router-id {
361 type inet:ip-address;
362 description
363 "A router-id address";
364 }
365 leaf interface-id {
366 type uint32;
367 description "The interface identifier";
368 }
369 description
370 "Unnumbered link explicit route subobject";
371 reference
372 "RFC3477: Signalling Unnumbered Links in
373 RSVP-TE";
374 }
375 case label {
376 leaf value {
377 type uint32;
378 description "the label value";
379 }
380 description
381 "The Label ERO subobject";
382 }
383 /* AS domain sequence..? */
384 }
385 }
386
387 grouping record-route-subobject {
388 description
389 "The record route subobject grouping";
390 choice type {
391 description
392 "The record route subobject type";
393 case ipv4-address {
394 leaf v4-address {
395 type inet:ipv4-address;
396 description
397 "An IPv4 address. This address is
398 treated as a prefix based on the prefix
399 length value below. Bits beyond the
400 prefix are ignored on receipt and
401 SHOULD be set to zero on transmission.";
402 }
403 leaf v4-prefix-length {
404 type uint8;
405 description
406 "Length in bits of the IPv4 prefix";
407 }
408 leaf v4-flags {
409 type uint8;
410 description
411 "IPv4 address sub-object flags";
412 reference "RFC3209";
413 }
414 }
415 case ipv6-address {
416 leaf v6-address {
417 type inet:ipv6-address;
418 description
419 "An IPv6 address. This address is
420 treated as a prefix based on the
421 prefix length value below. Bits
422 beyond the prefix are ignored on
423 receipt and SHOULD be set to zero
424 on transmission.";
425 }
426 leaf v6-prefix-length {
427 type uint8;
428 description
429 "Length in bits of the IPv4 prefix";
430 }
431 leaf v6-flags {
432 type uint8;
433 description
434 "IPv6 address sub-object flags";
435 reference "RFC3209";
436 }
437 }
438 case label {
439 leaf value {
440 type uint32;
441 description "the label value";
442 }
443 leaf flags {
444 type uint8;
445 description
446 "Label sub-object flags";
447 reference "RFC3209";
448 }
449 description
450 "The Label ERO subobject";
451 }
452 }
453 }
454
Shankara-Huaweidf7b9ca2016-07-14 11:35:34 +0530455 identity route-usage-type {
VinodKumarS-Huawei2ee9e7e2016-06-01 14:30:22 +0530456 description
457 "Base identity for route usage";
458 }
459
460 identity route-include-ero {
461 base route-usage-type;
462 description
463 "Include ERO from route";
464 }
465
466 identity route-exclude-ero {
467 base route-usage-type;
468 description
469 "Exclude ERO from route";
470 }
471
472 identity route-exclude-srlg {
473 base route-usage-type;
474 description
475 "Exclude SRLG from route";
476 }
477
478 identity path-metric-type {
479 description
480 "Base identity for path metric type";
481 }
482
483 identity path-metric-te {
484 base path-metric-type;
485 description
486 "TE path metric";
487 }
488
489 identity path-metric-igp {
490 base path-metric-type;
491 description
492 "IGP path metric";
493 }
494
495 identity path-tiebreaker-type {
496 description
497 "Base identity for path tie-breaker type";
498 }
499
500 identity path-tiebreaker-minfill {
501 base path-tiebreaker-type;
502 description
503 "Min-Fill LSP path placement";
504 }
505
506 identity path-tiebreaker-maxfill {
507 base path-tiebreaker-type;
508 description
509 "Max-Fill LSP path placement";
510 }
511
512 identity path-tiebreaker-randoom {
513 base path-tiebreaker-type;
514 description
515 "Random LSP path placement";
516 }
517
518 identity bidir-provisioning-mode {
519 description
520 "Base identity for bidirectional provisioning
521 mode.";
522 }
523
524 identity bidir-provisioning-single-sided {
525 base bidir-provisioning-mode;
526 description
527 "Single-sided bidirectional provioning mode";
528 }
529
530 identity bidir-provisioning-double-sided {
531 base bidir-provisioning-mode;
532 description
533 "Double-sided bidirectional provioning mode";
534 }
535
536 identity bidir-association-type {
537 description
538 "Base identity for bidirectional association type";
539 }
540
541 identity bidir-assoc-corouted {
542 base bidir-association-type;
543 description
544 "Co-routed bidirectional association type";
545 }
546
547 identity bidir-assoc-non-corouted {
548 base bidir-association-type;
549 description
550 "Non co-routed bidirectional association type";
551 }
552
553 identity resource-affinities-type {
554 description
555 "Base identity for resource affinities";
556 }
557
558 identity resource-aff-include-all {
559 base resource-affinities-type;
560 description
561 "The set of attribute filters associated with a
562 tunnel all of which must be present for a link
563 to be acceptable";
564 }
565
566 identity resource-aff-include-any {
567 base resource-affinities-type;
568 description
569 "The set of attribute filters associated with a
570 tunnel any of which must be present for a link
571 to be acceptable";
572 }
573
574 identity resource-aff-exclude-any {
575 base resource-affinities-type;
576 description
577 "The set of attribute filters associated with a
578 tunnel any of which renders a link unacceptable";
Shankara-Huaweidf7b9ca2016-07-14 11:35:34 +0530579 }
VinodKumarS-Huawei2ee9e7e2016-06-01 14:30:22 +0530580
581 typedef admin-group {
582 type binary {
Mahesh Poojary Huawei46fb4db2016-07-14 12:38:17 +0530583 length 32;
VinodKumarS-Huawei2ee9e7e2016-06-01 14:30:22 +0530584 }
585 description
586 "Administrative group/Resource class/Color.";
587 }
588
589 typedef extended-admin-group {
590 type binary;
591 description
592 "Extended administrative group/Resource class/Color.";
593 }
594
595 typedef admin-groups {
596 type union {
597 type admin-group;
598 type extended-admin-group;
599 }
600 description "TE administrative group derived type";
601 }
602
603 typedef srlg {
604 type uint32;
605 description "SRLG type";
606 }
607
Shankara-Huaweidf7b9ca2016-07-14 11:35:34 +0530608 identity path-computation-srlg-type {
VinodKumarS-Huawei2ee9e7e2016-06-01 14:30:22 +0530609 description
610 "Base identity for SRLG path computation";
611 }
612
613 identity srlg-ignore {
614 base path-computation-srlg-type;
615 description
616 "Ignores SRLGs in path computation";
617 }
618
619 identity srlg-strict {
620 base path-computation-srlg-type;
621 description
622 "Include strict SRLG check in path computation";
623 }
624
625 identity srlg-preferred {
626 base path-computation-srlg-type;
627 description
628 "Include preferred SRLG check in path computation";
629 }
630
631 identity srlg-weighted {
632 base path-computation-srlg-type;
633 description
634 "Include weighted SRLG check in path computation";
Shankara-Huaweidf7b9ca2016-07-14 11:35:34 +0530635 }
VinodKumarS-Huawei2ee9e7e2016-06-01 14:30:22 +0530636
637 typedef te-metric {
638 type uint32;
639 description
640 "TE link metric";
641 }
642
643 typedef topology-id {
644 type string {
645 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*';
646 }
647 description
648 "An identifier for a topology.";
649 }
650
651 /**
652 * TE tunnel generic groupings
653 **/
654
655 /* Tunnel path selection parameters */
656 grouping tunnel-path-selection {
657 description
658 "Tunnel path selection properties grouping";
659 container path-selection {
660 description
661 "Tunnel path selection properties container";
662 leaf topology {
663 type te-types:topology-id;
664 description
665 "The tunnel path is computed using the specific
666 topology identified by this identifier";
667 }
668 leaf cost-limit {
669 type uint32 {
670 range "1..4294967295";
671 }
672 description
673 "The tunnel path cost limit.";
674 }
675 leaf hop-limit {
676 type uint8 {
677 range "1..255";
678 }
679 description
680 "The tunnel path hop limit.";
681 }
682 leaf metric-type {
683 type string;
684 description
685 "The tunnel path metric type.";
686 }
687 leaf tiebreaker-type {
688 type string;
689 description
690 "The tunnel path computation tie breakers.";
691 }
692 leaf ignore-overload {
693 type boolean;
694 description
695 "The tunnel path can traverse overloaded node.";
696 }
697 uses tunnel-path-affinities;
698 uses tunnel-path-srlgs;
699 }
700 }
701
702 grouping tunnel-path-affinities {
703 description
704 "Path affinities grouping";
705 container tunnel-path-affinities {
706 if-feature named-path-affinities;
707 description
708 "Path affinities container";
709 choice style {
710 description
711 "Path affinities representation style";
712 case values {
713 leaf value {
714 type uint32 {
715 range "0..4294967295";
716 }
717 description
718 "Affinity value";
719 }
720 leaf mask {
721 type uint32 {
722 range "0..4294967295";
723 }
724 description
725 "Affinity mask";
726 }
727 }
728 case named {
729 list constraints {
730 key "usage";
731 leaf usage {
732 type string;
733 description "Affinities usage";
734 }
735 container constraint {
736 description
737 "Container for named affinities";
738 list affinity-names {
739 key "name";
740 leaf name {
741 type string;
742 description
743 "Affinity name";
744 }
745 description
746 "List of named affinities";
747 }
748 }
749 description
750 "List of named affinity constraints";
751 }
752 }
753 }
754 }
755 }
756
757 grouping tunnel-path-srlgs {
758 description
759 "Path SRLG properties grouping";
760 container tunnel-path-srlgs {
761 description
762 "Path SRLG properties container";
763 choice style {
764 description
765 "Type of SRLG representation";
766 case values {
767 leaf usage {
768 type string;
769 description "SRLG usage";
770 }
771 leaf-list values {
772 type te-types:srlg;
773 description "SRLG value";
774 }
775 }
776 case named {
777 list constraints {
778 key "usage";
779 leaf usage {
780 type string;
781 description "SRLG usage";
782 }
783 container constraint {
784 description
785 "Container for named SRLG list";
786 list srlg-names {
787 key "name";
788 leaf name {
789 type string;
790 description
791 "The SRLG name";
792 }
793 description
794 "List named SRLGs";
795 }
796 }
797 description
798 "List of named SRLG constraints";
799 }
800 }
801 }
802 }
803 }
804
805 grouping tunnel-bidir-assoc-properties {
806 description
807 "TE tunnel associated bidirectional properties
808 grouping";
809 container bidirectional {
810 description
811 "TE tunnel associated bidirectional attributes.";
812 container association {
813 description
814 "Tunnel bidirectional association properties";
815 leaf id {
816 type uint16;
817 description
818 "The TE tunnel association identifier.";
819 }
820 leaf source {
821 type inet:ip-address;
822 description
823 "The TE tunnel association source.";
824 }
825 leaf global-source {
826 type inet:ip-address;
827 description
828 "The TE tunnel association global
829 source.";
830 }
831 leaf type {
832 type string;
833 description
834 "The TE tunnel association type.";
835 }
836 leaf provisioing {
837 type string;
838 description
839 "Describes the provisioning model of the
840 associated bidirectional LSP";
841 reference
842 "draft-ietf-teas-mpls-tp-rsvpte-ext-
843 associated-lsp, section-3.2";
844 }
845 }
846 }
847 }
848 /*** End of TE tunnel groupings ***/
849
850 /**
851 * TE interface generic groupings
852 **/
853 }