Sync Common folder
[transportpce.git] / ordmodels / device / src / main / yang / org-openroadm-otn-otu-interfaces@2017-12-15.yang
1 module org-openroadm-otn-otu-interfaces {
2   namespace "http://org/openroadm/otn-otu-interfaces";
3   prefix org-openroadm-otn-otu-interfaces;
4
5   import org-openroadm-device {
6     prefix org-openroadm-device;
7     revision-date 2017-12-15;
8   }
9   import org-openroadm-interfaces {
10     prefix openROADM-if;
11     revision-date 2017-06-26;
12   }
13   import org-openroadm-maintenance-loopback {
14     prefix org-openroadm-maint-loopback;
15     revision-date 2017-12-15;
16   }
17   import org-openroadm-otn-common {
18     prefix org-openroadm-otn-common;
19     revision-date 2017-06-26;
20   }
21   import org-openroadm-otn-common-types {
22     prefix org-openroadm-otn-common-types;
23     revision-date 2017-12-15;
24   }
25
26   organization
27     "Open ROADM MSA";
28   contact
29     "OpenROADM.org";
30   description
31     "YANG definitions for device facility otnotu interfaces.
32      
33      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, 
34      AT&T Intellectual Property.  All other rights reserved.
35      
36      Redistribution and use in source and binary forms, with or without modification, 
37      are permitted provided that the following conditions are met:
38      
39      * Redistributions of source code must retain the above copyright notice, this 
40        list of conditions and the following disclaimer.
41      * Redistributions in binary form must reproduce the above copyright notice, 
42        this list of conditions and the following disclaimer in the documentation and/or 
43        other materials provided with the distribution.
44      * Neither the Members of the Open ROADM MSA Agreement nor the names of its 
45        contributors may be used to endorse or promote products derived from this software 
46        without specific prior written permission.
47      
48      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS'' 
49      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
50      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
51      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT, 
52      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
53      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA, 
54      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
55      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
56      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
57      POSSIBILITY OF SUCH DAMAGE.
58      
59      Also contains code components extracted from IETF Interfaces.  These code components
60      are copyrighted and licensed as follows:
61      
62      Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
63      All rights reserved.
64      
65      This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
66      to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
67      publication of this document. Please review these documents carefully, as they
68      describe your rights and restrictions with respect to this document. Code Components
69      extracted from this document must include Simplified BSD License text as described in
70      Section 4.e of the Trust Legal Provisions and are provided without warranty as
71      described in the Simplified BSD License.";
72
73   revision 2017-12-15 {
74     description
75       "Version 2.2";
76   }
77   revision 2017-09-29 {
78     description
79       "Version 2.1";
80   }
81   revision 2017-07-28 {
82     description
83       "Version 2.0.1 - added revision-date to imports";
84   }
85   revision 2017-06-26 {
86     description
87       "Version 2.0";
88   }
89   revision 2016-10-14 {
90     description
91       "Version 1.2";
92   }
93
94   grouping otu-attributes {
95     description
96       "OTU attributes";
97     leaf rate {
98       type identityref {
99         base org-openroadm-otn-common-types:otu-rate-identity;
100       }
101       description
102         "rate identity of the OTU. 'identityref' is used
103          to allow to extend for future higher rates";
104     }
105     leaf fec {
106       type enumeration {
107         enum "off" {
108           value 0;
109           description
110             "fec off";
111         }
112         enum "rsfec" {
113           value 1;
114           description
115             "rsfec";
116         }
117         enum "sdfeca1" {
118           value 2;
119           description
120             "Clariphy SDFEC";
121         }
122         enum "efec" {
123           value 3;
124           description
125             "G.975.1 I.4";
126         }
127         enum "ufec" {
128           value 4;
129           description
130             "G.975.1 I.7";
131         }
132         enum "sdfec" {
133           value 5;
134           description
135             "Soft decision FEC";
136         }
137         enum "sdfecb1" {
138           value 6;
139           description
140             "SDFEC with SCFEC";
141         }
142         enum "scfec" {
143           value 7;
144           description
145             "Stair case FEC";
146         }
147       }
148       description
149         "Forward Error Correction";
150     }
151     uses org-openroadm-otn-common:trail-trace;
152     uses org-openroadm-otn-common:deg-threshold;
153   }
154
155   grouping otu-container {
156     container otu {
157       description
158         "Optical Channel Transport Unit (OTU)";
159       uses otu-attributes;
160       uses org-openroadm-maint-loopback:maint-loopback;
161     }
162   }
163
164   augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
165     when "org-openroadm-device:type = 'openROADM-if:otnOtu'";
166     uses otu-container;
167   }
168 }