blob: 2d5496ba27e0b790d90ecdadf702c8a996b25c0f [file] [log] [blame]
Toru Furusawa28988892017-10-30 17:28:40 -07001module tapi-odu {
2 namespace "urn:onf:params:xml:ns:yang:tapi-odu";
3 prefix tapi-odu;
4 import tapi-common {
5 prefix tapi-common;
6 }
7 import tapi-connectivity {
8 prefix tapi-connectivity;
9 }
10 import tapi-topology {
11 prefix tapi-topology;
12 }
13 import tapi-oam {
14 prefix tapi-oam;
15 }
16 organization "Open Networking Foundation (ONF) / Open Transport Working Group(OTWG) / Transport API (TAPI) Project";
17 contact "
18 WG Web: TAPI SDK Project <http://opensourcesdn.org/projects/project-snowmass/>
19 WG List: TAPI Discussion list <mailto: transport-api@login.opennetworking.org>,
20 WG Chair: Karthik Sethuraman <mailto:karthik.sethuraman@necam.com>,
21 Editor: Ricard Vilalta <mailto:ricard.vilalta@cttc.es>";
22 description "none";
23 revision 2017-05-31 {
24 description "TAPI SDK 2.0-alpha";
25 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020 and RFC 6087";
26 }
27 augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
28 uses odu-node-edge-point-spec;
29 description "Augments the base LayerProtocol information in NodeEdgePoint with ODU-specific information";
30 }
31 augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point" {
32 uses odu-connection-end-point-spec;
33 description "none";
34 }
35 augment "/tapi-common:context/tapi-oam:meg/tapi-oam:mep" {
36 uses odu-connection-end-point-spec;
37 description "none";
38 }
39 augment "/tapi-common:context/tapi-oam:meg/tapi-oam:mip" {
40 uses odu-mip-spec;
41 description "none";
42 }
43 /***********************
44 * package object-classes
45 **********************/
46 grouping odu-termination-and-client-adaptation-pac {
47 leaf opu-tributary-slot-size {
48 type odu-slot-size;
49 config false;
50 description "This attribute is applicable for ODU2 and ODU3 CTP only. It indicates the slot size of the ODU CTP.";
51 }
52 leaf auto-payload-type {
53 type boolean;
54 config false;
55 description "This attribute is applicable when the ODU CTP object instance represents a lower order ODU CTP Source at the client layer of the ODUP/ODUj-21 adaptation function. The value of true of this attribute configures that the adaptation source function shall fall back to the payload type PT=20 if the conditions specified in 14.3.10.1/G.798 are satisfied. ";
56 }
57 leaf configured-client-type {
58 type string;
59 config false;
60 description "This attribute configures the type of the client CTP of the server ODU TTP.";
61 }
62 leaf configured-mapping-type {
63 type mapping-type;
64 config false;
65 description "This attributes indicates the configured mapping type.";
66 }
67 container accepted-payload-type {
68 config false;
69 uses odu-payload-type;
70 description "This attribute is applicable when the ODU CTP object instance represents a lower order ODU CTP Sink at the client layer of the ODUP/ODU[i]j or ODUP/ODUj-21 adaptation function.
71 This attribute is a 2-digit Hex code that indicates the new accepted payload type.
72 Valid values are defined in Table 15-8 of ITU-T Recommendation G.709 with one additional value UN_INTERPRETABLE.";
73 }
74 description "This Pac contains the attributes associated with the client adaptation function of the server layer TTP
75 It is present only if the CEP contains a TTP";
76 }
77 grouping odu-connection-end-point-spec {
78 container odu-common {
79 uses odu-common-pac;
80 description "none";
81 }
82 container odu-term-and-adapter {
83 config false;
84 uses odu-termination-and-client-adaptation-pac;
85 description "none";
86 }
87 container odu-ctp {
88 config false;
89 uses odu-ctp-pac;
90 description "none";
91 }
92 container odu-protection {
93 config false;
94 uses odu-protection-pac;
95 description "none";
96 }
97 description "none";
98 }
99 grouping odu-pool-pac {
100 leaf client-capacity {
101 type uint64;
102 description "none";
103 }
104 leaf max-client-instances {
105 type uint64;
106 config false;
107 description "none";
108 }
109 leaf max-client-size {
110 type uint64;
111 config false;
112 description "none";
113 }
114 description "none";
115 }
116 grouping odu-node-edge-point-spec {
117 container odu-pool {
118 config false;
119 uses odu-pool-pac;
120 description "none";
121 }
122 description "none";
123 }
124 grouping odu-ctp-pac {
125 leaf-list tributary-slot-list {
126 type uint64;
127 config false;
128 description "This attribute contains a set of distinct (i.e. unique) integers (e.g. 2, 3, 5, 9, 15 representing the tributary slots TS2, TS3, TS5, TS9 and TS15) which represents the resources occupied by the Low Order ODU Link Connection (e.g. carrying an ODUflex with a bit rate of 6.25G).
129 This attribute applies when the LO ODU_ ConnectionTerminationPoint connects with an HO ODU_TrailTerminationPoint object.
130 It will not apply if this ODU_ ConnectionTerminationPoint object directly connects to an OTU_TrailTerminationPoint object (i.e. OTU has no trib slots).
131 The upper bound of the integer allowed in this set is a function of the HO-ODU server layer to which the ODU connection has been mapped (adapted).
132 Thus, for example, M=8/32/80 for ODU2/ODU3/ODU4 server layers (respectively). Note that the value of this attribute can be changed only in the case of ODUflex and has to be through specific operations (i.e. not be changing the attribute tributarySlotList directly).";
133 }
134 leaf tributary-port-number {
135 type uint64;
136 config false;
137 description "This attribute identifies the tributary port number that is associated with the ODU CTP.
138 range of type : The value range depends on the size of the Tributary Port Number (TPN) field used which depends on th server-layer ODU or OTU.
139 In case of ODUk mapping into OTUk, there is no TPN field, so the tributaryPortNumber shall be zero.
140 In case of LO ODUj mapping over ODU1, ODU2 or ODU3, the TPN is encoded in a 6-bit field so the value range is 0-63. See clause 14.4.1/G.709-2016.
141 In case of LO ODUj mapping over ODU4, the TPN is encoded in a 7-bit field so the value range is 0-127. See clause 14.4.1.4/G.709-2016.
142 In case of ODUk mapping over ODUCn, the TPN is encoded in a 14-bit field so the value range is 0-16383. See clause 20.4.1.1/G.709-2016.
143 ";
144 }
145 leaf accepted-m-si {
146 type string;
147 config false;
148 description "This attribute is applicable when the ODU CTP object instance represents a lower order ODU1 or ODU2 CTP Sink at the client layer of the ODU3P/ODU12 adaptation function or represents a lower order ODUj CTP Sink at the client layer of the ODUP/ODUj-21 adaptation function. This attribute is a 1-byte field that represents the accepted multiplex structure of the adaptation function. ";
149 }
150 description "This Pac contains the attributes associated with the CTP
151 It is present only if the CEP contains a CTP";
152 }
153 grouping odu-mep-spec {
154 container odu-mep {
155 uses odu-mep-pac;
156 description "none";
157 }
158 container odu-ncm {
159 config false;
160 uses odu-ncm-pac;
161 description "none";
162 }
163 container odu-tcm {
164 config false;
165 uses odu-tcm-mep-pac;
166 description "none";
167 }
168 container odu-defect {
169 uses odu-defect-pac;
170 description "none";
171 }
172 container odu-pm {
173 uses odu-pm-pac;
174 description "none";
175 }
176 description "none";
177 }
178 grouping odu-protection-pac {
179 leaf aps-enable {
180 type boolean;
181 default "true";
182 description "This attribute is for enabling/disabling the automatic protection switching (APS) capability at the transport adaptation function that is represented by the ODU_ConnectionTerminationPoint object class. It triggers the MI_APS_EN signal to the transport adaptation function.";
183 }
184 leaf aps-level {
185 type uint64;
186 description "This attribute is for configuring the automatic protection switching (APS) level that should operate at the transport adaptation function that is represented by the ODU_ConnectionTerminationPoint object class. It triggers the MI_APS_LVL signal to the transport adaptation function. The value 0 means path and the values 1 through 6 mean TCM level 1 through 6 respectively.";
187 }
188 description "none";
189 }
190 grouping odu-ncm-pac {
191 leaf-list tcm-fields-in-use {
192 type uint64;
193 config false;
194 description "This attribute indicates the used TCM fields of the ODU OH.";
195 }
196 description "none";
197 }
198 grouping odu-tcm-mep-pac {
199 leaf tcm-extension {
200 type tcm-extension;
201 description "none";
202 }
203 leaf tcm-mode {
204 type tcm-mode;
205 description "This attribute specifies the TCM mode at the entity. Valid values are: Operational, Monitor, and Transparent.";
206 }
207 leaf codirectional {
208 type boolean;
209 config false;
210 description "This attribute specifies the directionality of the ODUT MEP with respect to the associated ODU CEP. The value of TRUE means that the sink part of the ODUT MEP terminates the same signal direction as the sink part of the ODU CEP. The Source part behaves similarly. This attribute is meaningful only on objects instantiated under ODU CEP, and at least one among ODU CEP and the subordinate object is bidirectional.";
211 }
212 leaf ac-status-source {
213 type tcm-status;
214 config false;
215 description "This attribute indicates the status of the accepted TCM. ";
216 }
217 leaf ac-status-sink {
218 type tcm-status;
219 config false;
220 description "This attribute indicates the status of the accepted TCM. ";
221 }
222 leaf admin-state-source {
223 type tapi-common:administrative-state;
224 description "This attribute provides the capability to provision the LOCK signal at the source, which is one of the ODU maintenance signals. When a Tandem Connection endpoint is set to admin state locked, it will insert the ODU-LCK signal in the source direction.";
225 }
226 leaf admin-state-sink {
227 type tapi-common:administrative-state;
228 description "This attribute provides the capability to provision the LOCK signal at the sink, which is one of the ODU maintenance signals. When a Tandem Connection endpoint is set to admin state locked, it will insert the ODU-LCK signal in the downstream direction.";
229 }
230 uses odu-tcm-mip-pac;
231 description "none";
232 }
233 grouping odu-mip-spec {
234 container odu-mip {
235 config false;
236 uses odu-mip-pac;
237 description "none";
238 }
239 container odu-ncm {
240 config false;
241 uses odu-ncm-pac;
242 description "none";
243 }
244 container odu-tcm {
245 config false;
246 uses odu-tcm-mip-pac;
247 description "none";
248 }
249 container odu-pm {
250 uses odu-pm-pac;
251 description "none";
252 }
253 container odu-defect {
254 uses odu-defect-pac;
255 description "none";
256 }
257 description "none";
258 }
259 grouping odu-mip-pac {
260 leaf acti {
261 type string;
262 config false;
263 description "The Trail Trace Identifier (TTI) information recovered (Accepted) from the TTI overhead position at the sink of a trail.";
264 }
265 leaf ex-dapi {
266 type string;
267 description "The Expected Destination Access Point Identifier (ExDAPI), provisioned by the managing system, to be compared with the TTI accepted at the overhead position of the sink for the purpose of checking the integrity of connectivity.";
268 }
269 leaf ex-sapi {
270 type string;
271 description "The Expected Source Access Point Identifier (ExSAPI), provisioned by the managing system, to be compared with the TTI accepted at the overhead position of the sink for the purpose of checking the integrity of connectivity.
272 ";
273 }
274 leaf tim-act-disabled {
275 type boolean;
276 default "true";
277 description "This attribute provides the control capability for the managing system to enable or disable the Consequent Action function when detecting Trace Identifier Mismatch (TIM) at the trail termination sink.";
278 }
279 leaf tim-det-mode {
280 type tim-det-mo;
281 description "This attribute indicates the mode of the Trace Identifier Mismatch (TIM) Detection function allowed values: OFF, SAPIonly, DAPIonly, SAPIandDAPI";
282 }
283 leaf deg-m {
284 type uint64;
285 description "This attribute indicates the threshold level for declaring a Degraded Signal defect (dDEG). A dDEG shall be declared if DegM consecutive bad PM Seconds are detected.";
286 }
287 container deg-thr {
288 uses deg-thr;
289 description "This attribute indicates the threshold level for declaring a performance monitoring (PM) Second to be bad. The value of the threshold can be provisioned in terms of number of errored blocks or in terms of percentage of errored blocks. For percentage-based specification, in order to support provision of less than 1%, the specification consists of two fields. The first field indicates the granularity of percentage. For examples, in 1%, in 0.1%, or in 0.01%, etc. The second field indicates the multiple of the granularity. For number of errored block based, the value is a positive integer.";
290 }
291 description "none";
292 }
293 grouping odu-tcm-mip-pac {
294 leaf tcm-field {
295 type uint64;
296 config false;
297 description "This attribute indicates the tandem connection monitoring field of the ODU OH.";
298 }
299 description "none";
300 }
301 grouping odu-mep-pac {
302 leaf dm-source {
303 type boolean;
304 description "This attribute is for configuring the delay measurement process at the trail termination function represented by the subject TTP object class. It models the MI_DM_Source MI signal. If MI_DM_Source is false, then the value of the DMp bit is determined by the RI_DM. If MI_DM_Source is true, then the value of the DMp bit is set to MI_DMValue.";
305 }
306 leaf dm-value {
307 type boolean;
308 description "This attribute is for setting the DMp and DMti bits of the delay measurement process. The value of 'true' sets the DMp and DMti bits to 0 and the value of 'false' to 1.";
309 }
310 leaf txti {
311 type string;
312 description "The Trail Trace Identifier (TTI) information, provisioned by the managing system at the termination source, to be placed in the TTI overhead position of the source of a trail for transmission.
313 ";
314 }
315 uses odu-mip-pac;
316 description "none";
317 }
318 grouping odu-common-pac {
319 leaf odu-type {
320 type odu-type;
321 config false;
322 description "This attribute specifies the type of the ODU termination point.";
323 }
324 leaf odu-rate {
325 type uint64;
326 config false;
327 description "This attribute indicates the rate of the ODU terminatino point.
328 This attribute is Set at create; i.e., once created it cannot be changed directly.
329 In case of resizable ODU flex, its value can be changed via HAO (not directly on the attribute).
330 ";
331 }
332 leaf odu-rate-tolerance {
333 type uint64;
334 config false;
335 description "This attribute indicates the rate tolerance of the ODU termination point.
336 Valid values are real value in the unit of ppm.
337 Standardized values are defined in Table 7-2/G.709.";
338 }
339 description "none";
340 }
341 grouping odu-pm-pac {
342 leaf n-bbe {
343 type uint64;
344 description "Near-end Background Block Error";
345 }
346 leaf f-bbe {
347 type uint64;
348 config false;
349 description "Far-end Background Block Error";
350 }
351 leaf n-ses {
352 type uint64;
353 description "Near-end Severely Errored Second";
354 }
355 leaf f-ses {
356 type uint64;
357 description "Far-end Severely Errored Second";
358 }
359 container uas {
360 uses uas-choice;
361 description "UnAvailable Second";
362 }
363 description "Instance of this object class contains the ODUP layer-specific Current Data. This object class is a subclass of the OTN_CurrentData object class.
364 PM data attributes: fBbe, fSes, nBbe, nSes. uas";
365 }
366 grouping odu-defect-pac {
367 leaf bdi {
368 type boolean;
369 config false;
370 description "Backward Defect Indication";
371 }
372 leaf deg {
373 type boolean;
374 config false;
375 description "Signal Degraded";
376 }
377 leaf lck {
378 type boolean;
379 config false;
380 description "Locked";
381 }
382 leaf oci {
383 type boolean;
384 config false;
385 description "Open Connection Indicator";
386 }
387 leaf ssf {
388 type boolean;
389 config false;
390 description "Server Signal Failure";
391 }
392 leaf tim {
393 type boolean;
394 config false;
395 description "Trail Trace Identifier Mismatch";
396 }
397 description "The valid list of defects raised on the entity. If the value of any attribute is true, then the corresponding defect is raised.";
398 }
399 feature odu {
400 description "none";
401 }
402
403 /***********************
404 * package type-definitions
405 **********************/
406 identity deg-thr-type {
407 description "none";
408 }
409 identity percentage {
410 base deg-thr-type;
411 description "Choice of % or Number of errored blocks";
412 }
413 identity number-errored-blocks {
414 base deg-thr-type;
415 description "Number of % or blocks";
416 }
417 identity tcm-status {
418 description "none";
419 }
420 identity no-source-tc {
421 base tcm-status;
422 description "TCM byte 3 (bits 6 7 8) -- 0 0 0, No source Tandem Connection";
423 }
424 identity in-use-without-iae {
425 base tcm-status;
426 description "TCM byte 3 (bits 6 7 8) -- 0 0 1, In use without IAE (Incoming Alignment Error)";
427 }
428 identity in-use-with-iae {
429 base tcm-status;
430 description "TCM byte 3 (bits 6 7 8) -- 0 1 0, In use with IAE (Incoming Alignment Error)";
431 }
432 identity reserved-1 {
433 base tcm-status;
434 description "TCM byte 3 (bits 6 7 8) -- 0 1 1, Reserved for future international standardization";
435 }
436 identity reserved-2 {
437 base tcm-status;
438 description "TCM byte 3 (bits 6 7 8) -- 1 0 0, Reserved for future international standardization";
439 }
440 identity lck {
441 base tcm-status;
442 description "TCM byte 3 (bits 6 7 8) -- 1 0 1, Maintenance signal: ODU-LCK";
443 }
444 identity oci {
445 base tcm-status;
446 description "TCM byte 3 (bits 6 7 8) -- 1 1 0, Maintenance signal: ODU-OCI";
447 }
448 identity ais {
449 base tcm-status;
450 description "TCM byte 3 (bits 6 7 8) -- 1 1 1, Maintenance signal: ODU-AIS";
451 }
452 identity tcm-mode {
453 description "none";
454 }
455 identity operational {
456 base tcm-mode;
457 description "none";
458 }
459 identity transparent {
460 base tcm-mode;
461 description "none";
462 }
463 identity monitor {
464 base tcm-mode;
465 description "none";
466 }
467 identity tcm-monitoring {
468 description "none";
469 }
470 identity intrusive {
471 base tcm-monitoring;
472 description "none";
473 }
474 identity non-intrusive {
475 base tcm-monitoring;
476 description "none";
477 }
478 identity tcm-extension {
479 description "none";
480 }
481 identity normal {
482 base tcm-extension;
483 description "none";
484 }
485 identity pass-through {
486 base tcm-extension;
487 description "none";
488 }
489 identity erase {
490 base tcm-extension;
491 description "none";
492 }
493 identity percentage-granularity {
494 description "none";
495 }
496 identity ones {
497 base percentage-granularity;
498 description "none";
499 }
500 identity one-tenths {
501 base percentage-granularity;
502 description "value * (1/10)";
503 }
504 identity one-hundredths {
505 base percentage-granularity;
506 description "value * (1/100)";
507 }
508 identity one-thousandths {
509 base percentage-granularity;
510 description "value * (1/1000)";
511 }
512 typedef odu-type {
513 type enumeration {
514 enum odu-0 {
515 description "none";
516 }
517 enum odu-1 {
518 description "none";
519 }
520 enum odu-2 {
521 description "none";
522 }
523 enum odu-2-e {
524 description "none";
525 }
526 enum odu-3 {
527 description "none";
528 }
529 enum odu-4 {
530 description "none";
531 }
532 enum odu-flex {
533 description "none";
534 }
535 enum odu-cn {
536 description "none";
537 }
538 }
539 description "none";
540 }
541 typedef mapping-type {
542 type enumeration {
543 enum amp {
544 description "none";
545 }
546 enum bmp {
547 description "none";
548 }
549 enum gfp-f {
550 description "none";
551 }
552 enum gmp {
553 description "none";
554 }
555 enum ttp-gfp-bmp {
556 description "none";
557 }
558 enum null {
559 description "none";
560 }
561 }
562 description "none";
563 }
564 typedef tim-det-mo {
565 type enumeration {
566 enum dapi {
567 description "none";
568 }
569 enum sapi {
570 description "none";
571 }
572 enum both {
573 description "none";
574 }
575 enum off {
576 description "none";
577 }
578 }
579 description "List of modes for trace identifier mismatch detection.";
580 }
581 typedef odu-slot-size {
582 type enumeration {
583 enum 1-g-25 {
584 description "none";
585 }
586 enum 2-g-5 {
587 description "none";
588 }
589 }
590 description "none";
591 }
592 grouping odu-payload-type {
593 leaf named-payload-type {
594 type odu-named-payload-type;
595 description "none";
596 }
597 leaf hex-payload-type {
598 type uint64;
599 description "none";
600 }
601 description "none";
602 }
603 typedef odu-named-payload-type {
604 type enumeration {
605 enum unknown {
606 description "none";
607 }
608 enum uninterpretable {
609 description "none";
610 }
611 }
612 description "none";
613 }
614 grouping deg-thr {
615 leaf deg-thr-value {
616 type uint64;
617 description "Percentage of detected errored blocks";
618 }
619 leaf deg-thr-type {
620 type deg-thr-type;
621 description "Number of errored blocks";
622 }
623 leaf percentage-granularity {
624 type percentage-granularity;
625 description "none";
626 }
627 description "Degraded Threshold, specify either the percentage or the number of Errored Blocks in the defined interval.
628 degThrValue when type is PERCENTAGE:
629 percentageGranularity is used to indicate the number of decimal points
630 So if percentageGranularity is ones, a value of 1 in degThrValue would indicate 1%, a value of 10 = 10%, a value of 100 = 100%
631 So if percentageGranularity is thousandths a value of 1 in degThrValue would indicate 0.001%, a value of 1000 = 1%, a value of 1000000 = 100%
632 degThrValue when type is NUMBER_ERROR_BLOCKS:
633 Number of Errored Blocks is captured in an integer value.";
634 }
635 typedef deg-thr-type {
636 type identityref {
637 base deg-thr-type;
638 }
639 description "The value of the threshold can be provisioned in terms of number of errored blocks or in terms of percentage of errored blocks. For percentage-based specification, in order to support provision of less than 1%, the specification consists of two fields. The first field indicates the granularity of percentage. For examples, in 1%, in 0.1%, or in 0.01%, etc. The second field indicates the multiple of the granularity. For number of errored block based, the value is a positive integer.";
640 }
641 typedef tcm-status {
642 type identityref {
643 base tcm-status;
644 }
645 description "See Table 15-5/G.709/Y.1331 ";
646 }
647 typedef tcm-mode {
648 type identityref {
649 base tcm-mode;
650 }
651 description "List of value modes for the sink side of the tandem connection monitoring function.";
652 }
653 typedef tcm-monitoring {
654 type identityref {
655 base tcm-monitoring;
656 }
657 description "Monitoring types for the tandem connection monitoring function.";
658 }
659 typedef tcm-extension {
660 type identityref {
661 base tcm-extension;
662 }
663 description "none";
664 }
665 typedef percentage-granularity {
666 type identityref {
667 base percentage-granularity;
668 }
669 description "none";
670 }
671 grouping uas-choice {
672 leaf bidirectional {
673 type boolean;
674 default "true";
675 description "none";
676 }
677 leaf uas {
678 type uint64;
679 description "none";
680 }
681 leaf nuas {
682 type uint64;
683 description "none";
684 }
685 leaf fuas {
686 type uint64;
687 description "none";
688 }
689 description "If bidirectional is TRUE then use the uas attribute, if bidirectional is FALSE use the nuas, and fuas attributes";
690 }
691
692}