blob: 206346b02e56e27096acc3f6856e2830c85a85f4 [file] [log] [blame]
sonu guptaeff184b2016-11-24 12:43:49 +05301 module yms-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 yms-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
59 identity tunnel-type {
60 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";
257 }
258
259 /* TE basic features */
260 feature p2mp-te {
261 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";
294 }
295
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
455 identity route-usage-type {
456 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";
579 }
580
581 typedef admin-group {
582 type binary {
583 length 32;
584 }
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
608 identity path-computation-srlg-type {
609 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";
635 }
636
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 identityref {
684 base path-metric-type;
685 }
686 default path-metric-te;
687 description
688 "The tunnel path metric type.";
689 }
690 leaf tiebreaker-type {
691 type identityref {
692 base path-tiebreaker-type;
693 }
694 default path-tiebreaker-maxfill;
695 description
696 "The tunnel path computation tie breakers.";
697 }
698 leaf ignore-overload {
699 type boolean;
700 description
701 "The tunnel path can traverse overloaded node.";
702 }
703 uses tunnel-path-affinities;
704 uses tunnel-path-srlgs;
705 }
706 }
707
708 grouping tunnel-path-affinities {
709 description
710 "Path affinities grouping";
711 container tunnel-path-affinities {
712 if-feature named-path-affinities;
713 description
714 "Path affinities container";
715 choice style {
716 description
717 "Path affinities representation style";
718 case values {
719 leaf value {
720 type uint32 {
721 range "0..4294967295";
722 }
723 description
724 "Affinity value";
725 }
726 leaf mask {
727 type uint32 {
728 range "0..4294967295";
729 }
730 description
731 "Affinity mask";
732 }
733 }
734 case named {
735 list constraints {
736 key "usage";
737 leaf usage {
738 type identityref {
739 base resource-affinities-type;
740 }
741 description "Affinities usage";
742 }
743 container constraint {
744 description
745 "Container for named affinities";
746 list affinity-names {
747 key "name";
748 leaf name {
749 type string;
750 description
751 "Affinity name";
752 }
753 description
754 "List of named affinities";
755 }
756 }
757 description
758 "List of named affinity constraints";
759 }
760 }
761 }
762 }
763 }
764
765 grouping tunnel-path-srlgs {
766 description
767 "Path SRLG properties grouping";
768 container tunnel-path-srlgs {
769 description
770 "Path SRLG properties container";
771 choice style {
772 description
773 "Type of SRLG representation";
774 case values {
775 leaf usage {
776 type identityref {
777 base route-exclude-srlg;
778 }
779 description "SRLG usage";
780 }
781 leaf-list values {
782 type te-types:srlg;
783 description "SRLG value";
784 }
785 }
786 case named {
787 list constraints {
788 key "usage";
789 leaf usage {
790 type identityref {
791 base route-exclude-srlg;
792 }
793 description "SRLG usage";
794 }
795 container constraint {
796 description
797 "Container for named SRLG list";
798 list srlg-names {
799 key "name";
800 leaf name {
801 type string;
802 description
803 "The SRLG name";
804 }
805 description
806 "List named SRLGs";
807 }
808 }
809 description
810 "List of named SRLG constraints";
811 }
812 }
813 }
814 }
815 }
816
817 grouping tunnel-bidir-assoc-properties {
818 description
819 "TE tunnel associated bidirectional properties
820 grouping";
821 container bidirectional {
822 description
823 "TE tunnel associated bidirectional attributes.";
824 container association {
825 description
826 "Tunnel bidirectional association properties";
827 leaf id {
828 type uint16;
829 description
830 "The TE tunnel association identifier.";
831 }
832 leaf source {
833 type inet:ip-address;
834 description
835 "The TE tunnel association source.";
836 }
837 leaf global-source {
838 type inet:ip-address;
839 description
840 "The TE tunnel association global
841 source.";
842 }
843 leaf type {
844 type identityref {
845 base bidir-association-type;
846 }
847 default bidir-assoc-non-corouted;
848 description
849 "The TE tunnel association type.";
850 }
851 leaf provisioing {
852 type identityref {
853 base bidir-provisioning-mode;
854 }
855 description
856 "Describes the provisioning model of the
857 associated bidirectional LSP";
858 reference
859 "draft-ietf-teas-mpls-tp-rsvpte-ext-
860 associated-lsp, section-3.2";
861 }
862 }
863 }
864 }
865 /*** End of TE tunnel groupings ***/
866
867 /**
868 * TE interface generic groupings
869 **/
870 }