Support of WG4 OpenFronthaul Management-Plane VES
[scp/oam/modeling.git] / data-model / yang / published / o-ran / ru-fh / o-ran-common-yang-types@2022-08-15.yang
1 module o-ran-common-yang-types {
2   yang-version 1.1;
3   namespace "urn:o-ran:common-yang-types:1.0";
4   prefix "o-ran-types";
5
6   import ietf-inet-types {
7     prefix inet;
8   }
9
10   organization "O-RAN Alliance";
11
12
13
14   contact
15     "www.o-ran.org";
16
17   description
18     "This module defines ORAN common YANG types.
19
20     Copyright 2020 the O-RAN Alliance.
21
22     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
23     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
26     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32     POSSIBILITY OF SUCH DAMAGE.
33
34     Redistribution and use in source and binary forms, with or without
35     modification, are permitted provided that the following conditions are met:
36
37     * Redistributions of source code must retain the above copyright notice,
38     this list of conditions and the above disclaimer.
39     * Redistributions in binary form must reproduce the above copyright notice,
40     this list of conditions and the above disclaimer in the documentation
41     and/or other materials provided with the distribution.
42     * Neither the Members of the O-RAN Alliance nor the names of its
43     contributors may be used to endorse or promote products derived from
44     this software without specific prior written permission.";
45
46   revision "2022-08-15" {
47     description
48       "version 1.1.0
49
50       1) style guide corrections";
51
52     reference "ORAN-WG1.IM.0-v01.00";
53   }
54
55   revision "2020-10-10" {
56     description
57       "version 1.0.0
58
59        1) Initial creation";
60
61     reference "ORAN-WG1.IM.0-v01.00";
62   }
63
64   typedef version {
65     type string {
66       pattern '[0-9]+(\.[0-9]+){1,2}';
67     }
68     description
69       "Definition used to represent a version of an interface.";
70   }
71
72   typedef timezone-name {
73     type string;
74     description
75       "A time zone name as used by the Time Zone Database,
76       sometimes referred to as the 'Olson Database'.
77
78       The complete set of valid values is defined in
79       https://www.iana.org/time-zones.
80
81       The exact set of supported values is an
82       implementation-specific matter.";
83
84     reference
85       "RFC 6557: Procedures for Maintaining the Time Zone Database
86       IANA Time Zone Database https://www.iana.org/time-zones ";
87   }
88
89   typedef protocol {
90     type enumeration {
91       enum ECPRI {
92         description
93           "Indicates that an O-RU supports the ecpri header format
94            for the C/U plane";
95       }
96       enum IEEE-1914-3 {
97         description
98           "Indicates that an O-RU supports the 1914.3 header format
99            for the C/U plane";
100       }
101       }
102     description "the type of C/U plane protocol";
103   }
104
105   typedef duplex-scheme {
106     type enumeration {
107       enum TDD {
108         description
109           "TDD scheme";
110       }
111       enum FDD {
112         description
113           "FDD scheme";
114       }
115     }
116     description
117      "Type of duplex scheme O-RU supports.";
118   }
119
120   typedef active {
121     type enumeration {
122       enum INACTIVE {
123         description
124            "Carrier does not provide signal - transmission is disabled";
125       }
126       enum SLEEP{
127         description
128            "Carrier is fully configured and was active but is energy saving mode";
129       }
130       enum ACTIVE{
131         description
132            "Carrier is fully configured and properly providing the signal";
133       }
134     }
135     description "the active status of a carrier";
136   }
137
138   typedef state {
139     type enumeration {
140       enum DISABLED {
141           description
142             "Array carrier is not active - transmission of signal is disabled.";
143       }
144       enum BUSY {
145           description
146             "Array carrier is processing an operation requested by change of active parameter.
147             When array carriers is BUSY the transmission of signal is not guaranteed.";
148       }
149       enum READY {
150           description
151             "Array carrier had completed activation operation - is active and transmission of signal is ongoing.";
152       }
153     }
154     description "the state on an array carrier";
155   }
156
157   typedef transport-session {
158     type enumeration {
159       enum ETHERNET {
160           description "VLAN based CUS Transport ";
161       }
162       enum UDP_IP {
163 //          if-feature o-ran-int:UDPIP-BASED-CU-PLANE; How to handle enum value constrained by feature defined in o-ran-interface.yang?
164           description "UDP/IP based CUS Transport ";
165       }
166       enum ALIAS_MAC{
167 //          if-feature o-ran-int:ALIASMAC-BASED-CU-PLANE; How to handle enum value constrained by feature defined in o-ran-interface.yang?
168           description "Alias MAC address based CUS Transport ";
169       }
170       enum SHARED_CELL {
171 //          if-feature o-ran-elements:SHARED_CELL; How to handle enum value constrained by feature defined in o-ran-processing-element.yang?
172           description "VLAN based CUS Transport used for Shared Cell scenario";
173       }
174     }
175     description "the transport session type";
176   }
177
178   typedef netconf-client-id {
179     type union {
180       type inet:ip-address;
181       type inet:uri;
182     }
183     description "A NETCONF client identifier";
184   }
185
186   typedef ca-ra-server-id {
187     type union {
188       type inet:ip-address;
189       type inet:uri;
190     }
191     description "A CA/RA Server identifier";
192   }
193
194   typedef segw-id {
195     type union {
196       type inet:ip-address;
197       type inet:uri;
198     }
199     description "A SeGW identifier";
200   }
201
202   typedef pcp {
203     type uint8 {
204       range "0..7";
205     }
206     description
207       "Priority Code Point. PCP is a 3-bit field that refers to the
208       class of service applied to a VLAN tagged frame.  The
209       field specifies a priority value between 0 and 7, these values
210       can be used by quality of service (QoS) to prioritize
211       different classes of traffic.";
212     reference
213      "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks";
214   }
215
216   typedef vlan-id {
217     type uint16 {
218       range "1..4094";
219     }
220     description
221       "The VLAN-ID that uniquely identifies a VLAN.  This is the 12-bit VLAN-ID
222        used in the VLAN Tag header.";
223     reference "[802.1q] 9.6";
224   }
225
226   typedef geographic-coordinate-degree {
227     type decimal64 {
228       fraction-digits 8;
229     }
230     description
231       "Decimal degree (DD) used to express latitude and longitude
232       geographic coordinates.";
233   }
234
235   typedef prach-preamble-format {
236     type enumeration {
237       enum LTE-0 {
238         description
239           "LTE PRACH Preamble format 0";
240       }
241       enum LTE-1 {
242         description
243           "LTE PRACH Preamble format 1";
244       }
245       enum LTE-2 {
246         description
247           "LTE PRACH Preamble format 2";
248       }
249       enum LTE-3 {
250         description
251           "LTE PRACH Preamble format 3";
252       }
253       enum LTE-4 {
254         description
255           "LTE PRACH Preamble format 4";
256       }
257       enum LTE-NB0 {
258         description
259           "LTE Narrowband PRACH format 0";
260       }
261       enum LTE-NB1 {
262         description
263           "LTE Narrowband PRACH format 1";
264       }
265       enum NR-0 {
266         description
267           "5GNR PRACH Preamble format 0";
268       }
269       enum NR-1 {
270         description
271           "5GNR PRACH Preamble format 1";
272       }
273       enum NR-2 {
274         description
275           "5GNR PRACH Preamble format 2";
276       }
277       enum NR-3 {
278         description
279           "5GNR PRACH Preamble format 3";
280       }
281       enum NR-A1 {
282         description
283           "5GNR PRACH Preamble format A1";
284       }
285       enum NR-A2 {
286         description
287           "5GNR PRACH Preamble format A2";
288       }
289       enum NR-A3 {
290         description
291           "5GNR PRACH Preamble format A3";
292       }
293       enum NR-B1 {
294         description
295           "5GNR PRACH Preamble format B1";
296       }
297       enum NR-B2 {
298         description
299           "5GNR PRACH Preamble format B2";
300       }
301       enum NR-B3 {
302         description
303           "5GNR PRACH Preamble format B3";
304       }
305       enum NR-B4 {
306         description
307           "5GNR PRACH Preamble format B4";
308       }
309       enum NR-C0 {
310         description
311           "5GNR PRACH Preamble format C0";
312       }
313       enum NR-C2 {
314         description
315           "5GNR PRACH Preamble format C2";
316       }
317       enum LTE-NB0-a {
318         description
319           "LTE Narrowband PRACH format 0-a";
320       }
321       enum LTE-NB1-a {
322         description
323           "LTE Narrowband PRACH format 1-a";
324       }
325       enum LTE-NB2 {
326         description
327           "LTE Narrowband PRACH format 2";
328       }
329     }
330
331     description
332       "PRACH preamble format definition";
333   }
334
335   typedef polarisation_type {
336     type enumeration {
337       enum MINUS_45 {
338         description "MINUS_45";
339       }
340       enum ZERO {
341         description "ZERO";
342       }
343       enum PLUS_45 {
344         description "PLUS_45";
345       }
346       enum PLUS_90 {
347         description "PLUS_90";
348       }
349     }
350     description "Type definition for polarisations";
351   }
352
353   typedef bandwidth {
354     type uint32 {
355       range "200 | 1400 | 3000 | 5000 | 10000 | 15000 | 20000 | 25000 |
356             30000 | 40000 | 50000 | 60000 | 70000 | 80000 | 90000 | 100000
357             | 200000 | 400000" ;
358     }
359     units kilohertz;
360     description
361       "transmission bandwidth configuration in units of kHz -
362       covering NBIoT through to New Radio - see 38.104";
363   }
364
365   typedef scs-config-type {
366     type enumeration {
367       enum KHZ_15 {
368         value 0;
369         description
370           "15kHz sub carrier spacing";
371       }
372       enum KHZ_30 {
373         value 1;
374         description
375           "30kHz sub carrier spacing";
376       }
377       enum KHZ_60 {
378         value 2;
379         description
380           "60kHz sub carrier spacing";
381       }
382       enum KHZ_120 {
383         value 3;
384         description
385           "120kHz sub carrier spacing";
386       }
387       enum KHZ_240 {
388         value 4;
389         description
390           "240kHz sub carrier spacing";
391       }
392       enum KHZ_1_25 {
393         value 12;
394         description
395           "1,25kHz sub carrier spacing";
396       }
397       enum KHZ_3_75 {
398         value 13;
399         description
400           "3.75kHz sub carrier spacing";
401       }
402       enum KHZ_5 {
403         value 14;
404         description
405           "5kHz sub carrier spacing";
406       }
407       enum KHZ_7_5 {
408         value 15;
409         description
410           "7.5kHz sub carrier spacing";
411       }
412     }
413
414     description
415       "Scs configuration type definition";
416   }
417
418
419 }