blob: 7fd770000ce7cf06271d2b61ec4b10349ced5216 [file] [log] [blame]
Gaurav Agrawalf6e60372016-06-02 11:23:03 +05301 module ietf-sd-onos-service-types {
2 namespace "urn:ietf:params:xml:ns:yang:ietf-sd-onos-service-types";
3 prefix service-types ;
4
5 import ietf-inet-types {prefix inet; }
6 import ietf-sd-onos-common-types {prefix types;}
7
8 organization "";
9 contact "";
10
11 description
12 "Defines basic service types for L3VPN service.";
13
14 revision "2015-12-16" {
15 reference "";
16 }
17
18 typedef exp {
19 type enumeration {
20 enum BE {
21 value 0 ;
22 description "BE." ;
23 }
24 enum AF1 {
25 value 1 ;
26 description "AF1." ;
27 }
28 enum AF2 {
29 value 2 ;
30 description "AF2." ;
31 }
32 enum AF3 {
33 value 3 ;
34 description "AF3." ;
35 }
36 enum AF4 {
37 value 4 ;
38 description "AF4." ;
39 }
40 enum EF {
41 value 5 ;
42 description "EF." ;
43 }
44 enum CS6 {
45 value 6 ;
46 description "CS6." ;
47 }
48 enum CS7 {
49 value 7 ;
50 description "CS7." ;
51 }
52 }
53 default CS7;
54 description
55 "exp parameter.";
56 }
57
58 typedef pw-role{
59 type enumeration {
60 enum normal{
61 value 0 ;
62 description "normal." ;
63 }
64 enum master {
65 value 1 ;
66 description "master." ;
67 }
68 enum slave {
69 value 2 ;
70 description "slave." ;
71 }
72 enum DNI-PW {
73 value 3 ;
74 description "DNI PW." ;
75 }
76 }
77 default normal;
78 description
79 "The role of the PW.";
80 }
81
82 grouping qos-if-car {
83 description "qos parameter." ;
84 list qos-if-car {
85 key "direction";
86 description "cars qos policy." ;
87 leaf direction {
88 type enumeration {
89 enum inbound{
90 value 0 ;
91 description "inbound." ;
92 }
93 enum outbound {
94 value 1 ;
95 description "outbound." ;
96 }
97 }
98 description "qos for interface car" ;
99 }
100
101 leaf cir {
102 type int32;
103 description "forward CIR. unit:Kbps" ;
104 }
105 leaf pir {
106 type int32;
107 description "forward PIR. unit:Kbps" ;
108 }
109 leaf cbs {
110 type int32;
111 description "forward CBS. unit:Kbps" ;
112 }
113 leaf pbs {
114 type int32;
115 description "forward PBS. unit:Kbps" ;
116 }
117 }
118 }
119
120 grouping protect-policy {
121 description "The protect policy of the VPN" ;
122 leaf protect-type {
123 type enumeration {
124 enum unprotected {
125 value 0 ;
126 description "unprotected." ;
127 }
128 enum protected {
129 value 1 ;
130 description "protection." ;
131 }
132 }
133 default unprotected ;
134 description "protection type" ;
135 }
136
137 leaf revertive-type {
138 type enumeration {
139 enum no-revertive {
140 value 0 ;
141 description "unprotected." ;
142 }
143 enum revertive {
144 value 1 ;
145 description "protection." ;
146 }
147 }
148 description "revertive mode" ;
149 }
150 leaf wtr {
151 type uint32;
152 default 300;
153 description "WTR.unit:s" ;
154 }
155 }
156 grouping oam-policy {
157 description "The oam policy of the vpn service." ;
158 leaf detect-type {
159 type enumeration {
160 enum undetect {
161 value 0 ;
162 description "unprotected." ;
163 }
164 enum APS {
165 value 1 ;
166 description "protection." ;
167 }
168 enum BFD {
169 value 2 ;
170 description "unprotected." ;
171 }
172 }
173 description "detect type" ;
174 }
175 container bfd-detect-para {
176 description "bfd detect parameters." ;
177 leaf ingress-discriminator {
178 type int32;
179 description "ingress-discriminator" ;
180 }
181 leaf egress-discriminator {
182 type int32;
183 description "egress-discriminator" ;
184 }
185 leaf tx-interval {
186 type int32;
187 description "tx-interval" ;
188 }
189 leaf rx-interval {
190 type int32;
191 description "rx-interval" ;
192 }
193 leaf detect-interval {
194 type int32;
195 description "detect-interval" ;
196 }
197 }
198 }
199 grouping ac {
200 description "Access information." ;
201 leaf id{
202 type string;
203 mandatory true;
204 description "ac id." ;
205 }
206 leaf name{
207 type string;
208 config false;
209 description "ac name." ;
210 }
211
212 leaf ne-id {
213 type string ;
214 mandatory true;
215 description "ne id." ;
216 }
217
218 leaf ltp-id {
219 type string ;
220 mandatory true;
221 description "ltp id." ;
222 }
223 leaf admin-status {
224 type types:admin-status;
225 description "Administration status." ;
226 }
227 leaf operate-status {
228 type types:operate-status;
229 description "Operation status." ;
230 }
231 container l2-access {
232 description "link layer access information of ac." ;
233 uses l2-access;
234 }
235
236 leaf role {
237 type enumeration {
238 enum master {
239 value 0 ;
240 description "master." ;
241 }
242 enum slave {
243 value 1 ;
244 description "slave." ;
245 }
246 enum hub {
247 value 2 ;
248 description "slave." ;
249 }
250 enum spoke {
251 value 3 ;
252 description "slave." ;
253 }
254 }
255 default master;
256 description "role of snc lsp." ;
257 }
258 container qos-policy {
259 description "The qos policy of the vpn service." ;
260 container qos-if-cars {
261 description "qos policy if car." ;
262 list qos-if-car {
263 //key "direction";
264 uses qos-if-car;
265 description "List of qos parameters." ;
266 }
267 }
268 }
269 }
270 grouping l3-ac {
271 description "Access information of l3vpn." ;
272 list access-circuit {
273 key "id";
274 description "list of access circuit." ;
275 uses ac;
276 container connection {
277 description "connection information of ac." ;
278 uses connection;
279 }
280 }
281 }
282 grouping l2-access {
283 description "Access information of l2vpn." ;
284 leaf access-type{
285 type enumeration {
286 enum Port {
287 value 0 ;
288 description "master." ;
289 }
290 enum Dot1Q {
291 value 1 ;
292 description "slave." ;
293 }
294 enum QinQ {
295 value 2 ;
296 description "master." ;
297 }
298 }
299 mandatory true;
300 description "The access type of the vpn service." ;
301 }
302 leaf dot1q-vlan-bitmap {
303 type string;
304 mandatory true;
305 description "Dot1Q Vlan Bitmap." ;
306 }
307
308 leaf qinq-svlan-bitmap {
309 type string;
310 mandatory true;
311 description "QinQ svlan Bitmap." ;
312 }
313
314 leaf qinq-cvlan-bitmap {
315 type string;
316 mandatory true;
317 description "QinQ cvlan Bitmap." ;
318 }
319 leaf access-action {
320 type enumeration {
321 enum Keep {
322 value 0 ;
323 description "keep." ;
324 }
325 enum Push {
326 value 1 ;
327 description "push." ;
328 }
329 enum Pop {
330 value 2 ;
331 description "pop." ;
332 }
333 enum Swap {
334 value 3 ;
335 description "swap." ;
336 }
337 }
338 mandatory true;
339 description "access type." ;
340 }
341
342 leaf action-vlan-id {
343 type int32 {
344 range "1..4094";
345 }
346 description "action vlan id." ;
347 }
348 }
349 grouping connection {
350 description "Describe the connection of the vpn service." ;
351 leaf ip-address {
352 type inet:ip-address ;
353 description "ip address of access circuit's connection." ;
354 }
355 leaf mask-length {
356 type int32 {
357 range "1..32";
358 }
359 description "mask length of ip address." ;
360 }
361 leaf protocols {
362 type enumeration {
363 enum static {
364 value 0 ;
365 description "static." ;
366 }
367 enum ospf {
368 value 1 ;
369 description "ospf." ;
370 }
371 enum isis {
372 value 2 ;
373 description "bgp" ;
374 }
375 enum bgp {
376 value 3 ;
377 description "bgp" ;
378 }
379 }
380 description "protocols between PE and CE." ;
381 }
382 container static-routes {
383 description "Defines the static routes." ;
384 list static-route {
385 key "ip-prefix mask-length";
386 description "List of static route." ;
387 leaf ip-prefix {
388 type inet:ipv4-address;
389 description "ip prefix" ;
390 }
391 leaf mask-length {
392 type uint32 {
393 range "1..32";
394 }
395 description "mast length" ;
396 }
397 leaf next-hop {
398 type inet:ipv4-address ;
399 description "next hop" ;
400 }
401 leaf preference {
402 type uint32 {
403 range "1..65535";
404 }
405 description "preference of the route." ;
406 }
407 }
408 }
409 }
410
411 grouping pw{
412 description "PW definition ";
413 leaf id {
414 type string ;
415 description "ID of pw." ;
416 }
417 uses encaplate-type-grouping;
418
419 leaf ingress-ne-id {
420 type string ;
421 description "ingress ne id." ;
422 }
423
424 leaf egress-ne-id {
425 type string ;
426 description "egress ne id." ;
427 }
428
429 leaf ctrl-word-support {
430 type enumeration {
431 enum not-support {
432 value 0 ;
433 description "pw doesn't support control word" ;
434 }
435 enum support {
436 value 1 ;
437 description "pw supports control word" ;
438 }
439 }
440 default support;
441 description "ctrl word support. 0 : not support, 1 : support" ;
442 }
443
444 leaf sn-support {
445 type enumeration {
446 enum not-support {
447 value 0 ;
448 description "pw doesn't support control word" ;
449 }
450 enum support {
451 value 1 ;
452 description "pw supports control word" ;
453 }
454 }
455 default not-support;
456 description "serial number support. 0 : not support, 1 : support" ;
457 }
458
459 leaf vccv-type {
460 type enumeration {
461 enum not-support {
462 value 0 ;
463 description "pw doesn't support vccv" ;
464 }
465 enum CWD {
466 value 1 ;
467 description "pw supports vccv" ;
468 }
469 enum Label-alert {
470 value 2 ;
471 description "pw supports vccv" ;
472 }
473 enum TTL {
474 value 3 ;
475 description "pw supports vccv" ;
476 }
477 enum CWD&Label-alert {
478 value 4 ;
479 description "pw supports vccv" ;
480 }
481 enum CWD&TTL {
482 value 5 ;
483 description "pw supports vccv" ;
484 }
485 enum Label-alert&TTL {
486 value 6 ;
487 description "pw supports vccv" ;
488 }
489 enum CWD&Label-alert&TTL {
490 value 7 ;
491 description "pw supports vccv" ;
492 }
493 }
494 default not-support;
495 description "vccv type" ;
496 }
497
498 leaf conn-ack-type {
499 type enumeration {
500 enum not-support {
501 value 0 ;
502 description "pw doesn't support connection ack" ;
503 }
504 enum support {
505 value 1 ;
506 description "pw supports connection ack" ;
507 }
508 }
509 default not-support;
510 description "Connectivity test type" ;
511 }
512 container tunnels {
513 description "Define tunnels." ;
514 list tunnel{
515 key "tunnel-id";
516 description "The list of tunnel id." ;
517 uses tunnel;
518 }
519 }
520 }
521 grouping tunnel {
522 description "Reusable entity of tunnel." ;
523 leaf tunnel-id {
524 type string ;
525 description "ID of tunnel." ;
526 }
527 }
528 grouping encaplate-type-grouping {
529 description "encaplate type" ;
530 leaf encaplate-type {
531 type enumeration {
532 enum NONE {
533 value 0 ;
534 description "none." ;
535 }
536 enum fr-dlci-martini {
537 value 1 ;
538 description "fr-dlci-martini." ;
539 }
540 enum atm-aal5-sdu {
541 value 2 ;
542 description "atm-aal5-sdu." ;
543 }
544 enum atm-transparent {
545 value 3 ;
546 description "atm-transparent." ;
547 }
548 enum ethernet-vlan {
549 value 4 ;
550 description "ethernet-vlan." ;
551 }
552 enum ethernet {
553 value 5 ;
554 description "ethernet ." ;
555 }
556 enum hdlc {
557 value 6 ;
558 description " hdlc." ;
559 }
560 enum ppp {
561 value 7 ;
562 description "ppp." ;
563 }
564 enum cep-mpls {
565 value 8 ;
566 description " cep-mpls." ;
567 }
568 enum atm-ntol {
569 value 9 ;
570 description "atm-ntol." ;
571 }
572 enum atm-nto1-vpc {
573 value 10 ;
574 description "atm-nto1-vpc." ;
575 }
576 enum ip-layer2 {
577 value 11 ;
578 description " ip-layer2." ;
579 }
580 enum atm-1to1-vcc {
581 value 12 ;
582 description "atm-1to1-vcc." ;
583 }
584 enum atm-1to1-vpc {
585 value 13 ;
586 description "atm-1to1-vpc." ;
587 }
588 enum atm-aal5-pdu {
589 value 14 ;
590 description "atm-aal5-pdu." ;
591 }
592 enum fr-port {
593 value 15 ;
594 description "fr-port." ;
595 }
596 enum cep-packet {
597 value 16 ;
598 description "cep-packet." ;
599 }
600 enum e1 {
601 value 17 ;
602 description "e1." ;
603 }
604 enum t1 {
605 value 18 ;
606 description "t1." ;
607 }
608 enum e3 {
609 value 19 ;
610 description "e3." ;
611 }
612 enum t3 {
613 value 20 ;
614 description " t3." ;
615 }
616 enum cesopsn-basic {
617 value 21 ;
618 description "cesopsn-basic." ;
619 }
620 enum tdmoip-aal1 {
621 value 22 ;
622 description "tdmoip-aal1." ;
623 }
624 enum cesopsn-tdm {
625 value 23 ;
626 description "cesopsn-tdm." ;
627 }
628 enum tdmoip-aal2 {
629 value 24 ;
630 description "tdmoip-aal2." ;
631 }
632 enum fr-dlci {
633 value 25 ;
634 description "fr-dlci." ;
635 }
636 }
637 description "encaplate type." ;
638 }
639 }
640
641 grouping pw-trail{
642 description "pw trail information." ;
643 leaf id {
644 type string ;
645 description "ID of pw-trail." ;
646 }
647
648 leaf role {
649 type pw-role;
650 description "role of pw-trail." ;
651 }
652 container pw-lists {
653 description "List of pw information." ;
654 list pw-list {
655 key id;
656 description "List of pw information." ;
657 uses pw ;
658 }
659 }
660 }
661 grouping tunnel-service {
662 description "Reusable entity of tunnel service." ;
663 leaf signaling-type {
664 type enumeration {
665 enum RSVP-TE {
666 value 0 ;
667 description "RSVP-TE" ;
668 }
669 enum LDP {
670 value 1 ;
671 description "LDP" ;
672 }
673 enum GRE {
674 value 2 ;
675 description "GRE" ;
676 }
677 enum SR-BE {
678 value 3 ;
679 description "SR-BE" ;
680 }
681 enum SR-TE {
682 value 4 ;
683 description "SR-TE" ;
684 }
685 }
686 default RSVP-TE;
687 description "signaling type." ;
688 }
689 leaf tunnel-mode {
690 type enumeration {
691 enum Nto1 {
692 value 0 ;
693 description "multi service one tunnel" ;
694 }
695 enum 1to1 {
696 value 1 ;
697 description "oner service one tunnel" ;
698 }
699 }
700 default Nto1;
701 description "service to tunnel mode." ;
702 }
703 container protect-policy {
704 description "Protect policy." ;
705 uses protect-policy;
706 }
707 container oam-policy {
708 description "oam policy." ;
709 uses oam-policy;
710 }
711 leaf latency {
712 type int32;
713 description "tunnel latency requirement." ;
714 }
715 }
716 grouping service-path {
717 description "Service path of l3vpn." ;
718 list service-path{
719 key "service-id source-ne-id source-ac-id destination-ne-id destination-ac-id";
720 description
721 "The list of service path.";
722 leaf service-id {
723 type string ;
724 description "l2vpn or l3vpn service id." ;
725 }
726 leaf source-ne-id {
727 type string ;
728 description "source ne id." ;
729 }
730
731 leaf source-ac-id {
732 type string ;
733 description "source ltp id." ;
734 }
735 leaf destination-ne-id {
736 type string ;
737 description "destination ne id." ;
738 }
739
740 leaf destination-ac-id {
741 type string ;
742 description "destination ltp id." ;
743 }
744 container path-lists{
745 description "The path list of service path." ;
746 list path-list {
747 key "path-layer path-role";
748 description "The path list of service path." ;
749 leaf path-layer {
750 type enumeration {
751 enum PW {
752 value 0 ;
753 description "pw path." ;
754 }
755 enum BGP-LSP {
756 value 1 ;
757 description "BGP-LSP Path." ;
758 }
759 enum LSP {
760 value 2 ;
761 description "LSP Path." ;
762 }
763 }
764 description "path type. 0 : PW, 1 : BGP-LSP, 2 : PW" ;
765 }
766 leaf path-role {
767 type enumeration {
768 enum Primary {
769 value 0 ;
770 description "master path." ;
771 }
772 enum Backup {
773 value 1 ;
774 description "backup path." ;
775 }
776 enum Active {
777 value 2 ;
778 description "active path." ;
779 }
780 }
781 description "path role.. 0 : master, 1 : backup, 2 :
782 Bypass." ;
783 }
784 container paths {
785 description "path definition." ;
786 list path {
787 key "ne-id";
788 description "Network element id list." ;
789 leaf ne-id {
790 type string;
791 description "Network element id." ;
792 }
793 leaf ingress-ltp-id {
794 type string;
795 description "ingress ltd id." ;
796 }
797 leaf backward-peer-id {
798 type string;
799 description "backward peer id." ;
800 }
801 leaf egress-ltp-id {
802 type string;
803 description "egress ltd id." ;
804 }
805 leaf forward-peer-id {
806 type string;
807 description "forward peer id." ;
808 }
809 }
810 }
811 }
812 }
813
814 }
815 }
816 }