Configurable HTTP(S) support for VES messaging
[sim/o1-interface.git] / ntsimulator / deploy / o-ran / yang / o-ran-module-cap.yang
1 module o-ran-module-cap {
2   yang-version 1.1;
3   namespace "urn:o-ran:module-cap:1.0";
4   prefix "o-ran-module-cap";
5
6   import o-ran-compression-factors {
7     prefix "cf";
8   }
9
10   organization "O-RAN Alliance";
11
12   contact
13     "www.o-ran.org";
14
15   description
16     "This module defines the module capabilities for
17     the O-RAN Radio Unit.
18
19     Copyright 2019 the O-RAN Alliance.
20
21     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
22     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
25     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31     POSSIBILITY OF SUCH DAMAGE.
32
33     Redistribution and use in source and binary forms, with or without
34     modification, are permitted provided that the following conditions are met:
35
36     * Redistributions of source code must retain the above copyright notice,
37     this list of conditions and the above disclaimer.
38     * Redistributions in binary form must reproduce the above copyright notice,
39     this list of conditions and the above disclaimer in the documentation
40     and/or other materials provided with the distribution.
41     * Neither the Members of the O-RAN Alliance nor the names of its
42     contributors may be used to endorse or promote products derived from
43     this software without specific prior written permission.";
44
45   revision "2019-07-03" {
46     description
47       "version 1.1.0
48
49       1) backward compatible change to introduce new RW leafs for use in
50       constraints in uplane-config and laa models.
51       2) removing unnecessary relations to band 46 in uplink";
52
53     reference "ORAN-WG4.M.0-v01.00";
54   }
55
56   revision "2019-02-04" {
57     description
58       "version 1.0.0
59
60       1) imported model from xRAN
61       2) changed namespace and reference from xran to o-ran";
62
63     reference "ORAN-WG4.M.0-v01.00";
64   }
65
66   feature LAA {
67     description
68       "Indicates that the Radio Unit supports LAA.";
69   }
70
71   feature TRANSPORT-FRAGMENTATION {
72     description
73       "This leaf is used to indicate whether the O-RU supports O-RAN Radio Transport Fragmentation";
74   }
75
76   typedef sub-band-string {
77     type string {
78       pattern [ABCD];
79     }
80     description "Sub bands definition";
81   }
82
83   typedef scs-config-type {
84     type enumeration {
85       enum KHZ_15 {
86         value 0;
87         description
88           "15kHz sub carrier spacing";
89       }
90       enum KHZ_30 {
91         value 1;
92         description
93           "30kHz sub carrier spacing";
94       }
95       enum KHZ_60 {
96         value 2;
97         description
98           "60kHz sub carrier spacing";
99       }
100       enum KHZ_120 {
101         value 3;
102         description
103           "120kHz sub carrier spacing";
104       }
105       enum KHZ_240 {
106         value 4;
107         description
108           "240kHz sub carrier spacing";
109       }
110       enum KHZ_1_25 {
111         value 12;
112         description
113           "1,25kHz sub carrier spacing";
114       }
115       enum KHZ_3_75 {
116         value 13;
117         description
118           "3.75kHz sub carrier spacing";
119       }
120       enum KHZ_5 {
121         value 14;
122         description
123           "5kHz sub carrier spacing";
124       }
125       enum KHZ_7_5 {
126         value 15;
127         description
128           "7.5kHz sub carrier spacing";
129       }
130     }
131
132     description
133       "Scs configuration type definition";
134   }
135
136   grouping compression-method-grouping {
137     description
138       "Grouping for compression method.";
139
140     leaf compression-method {
141       type enumeration {
142         enum BLOCK_FLOATING_POINT {
143           description
144             "Block floating point compression and decompression will be used";
145         }
146
147         enum BLOCK_SCALING {
148           description
149             "Block scaling compression and decompresion will be used";
150         }
151
152         enum U_LAW {
153           description
154             "u-Law compression and decompresion method will be used";
155         }
156
157         enum BEAMSPACE {
158           description
159             "Beamspace compression and decompression will be used";
160         }
161
162         enum MODULATION {
163           description
164             "Modulation compression and decompression will be used";
165         }
166       }
167       description
168         "Compresion method which can be supported by the O-RU";
169     }
170   }
171
172   grouping sub-band-max-min-ul-dl-frequency {
173     description
174     "Grouping for defining max and min supported frequency - dl and ul.";
175
176     leaf max-supported-frequency-dl {
177       type uint64;
178       description
179         "This value indicates Maximum supported downlink frequency in the
180         LAA subband. Value unit is Hz.";
181     }
182
183     leaf min-supported-frequency-dl {
184       type uint64;
185       description
186         "This value indicates Minimum supported downlink frequency in the
187         LAA subband. Value unit is Hz.";
188     }
189   }
190
191   grouping format-of-iq-sample {
192     description
193       "Indicates module capabilities about IQ samples";
194
195     leaf dynamic-compression-supported {
196       type boolean;
197
198       description
199         "Informs if radio supports dynamic compression method";
200     }
201
202     leaf realtime-variable-bit-width-supported {
203       type boolean;
204
205       description
206         "Informs if O-RU supports realtime variable bit with";
207     }
208
209     list compression-method-supported {
210       uses cf:compression-details;
211
212       description
213         "List of supported compression methods by O-RU";
214     }
215
216     leaf variable-bit-width-per-channel-supported {
217       when "/module-capability/ru-capabilities/format-of-iq-sample/realtime-variable-bit-width-supported = 'true'";
218       type boolean;
219
220       description
221         "Informs if variable bit width per channel is supported or not";
222     }
223
224     leaf syminc-supported {
225       type boolean;
226
227       description
228         "Informs if symbol number increment command in a C-Plane is
229          supported or not";
230     }
231   }
232
233   grouping scs-a-b {
234     description
235       "Grouping for scs-a and scs-b";
236     leaf scs-a{
237       type scs-config-type;
238       description
239         "Sub-carrier spacing configuration";
240     }
241     leaf scs-b{
242       type scs-config-type;
243       description
244         "Sub-carrier spacing configuration";
245     }
246   }
247
248   grouping ul-mixed-num-required-guard-rbs {
249     description
250       "Required number of guard resource blocks for the combination of
251       subcarrier spacing values for uplink";
252     uses scs-a-b;
253     leaf number-of-guard-rbs-ul{
254       type uint8;
255       description
256         "This value indicates the required number of guard resource blocks
257          between the mixed numerologies, the RB using scs-a and the RB
258          using scs-b. It's number is based on scs-a";
259     }
260   }
261
262   grouping dl-mixed-num-required-guard-rbs {
263     description
264       "Required number of guard resource blocks for the combination of
265       subcarrier spacing values for uplink";
266     uses scs-a-b;
267     leaf number-of-guard-rbs-dl{
268       type uint8;
269       description
270         "This value indicates the required number of guard resource blocks
271          between the mixed numerologies, the RB using scs-a and the RB
272          using scs-b. It's number is based on scs-a";
273     }
274   }
275
276   grouping ru-capabilities {
277     description
278       "Structure representing set of capabilities.";
279
280     leaf ru-supported-category {
281       type enumeration {
282         enum CAT_A {
283           description
284             "Informs that precoding is not supported in O-RU";
285         }
286         enum CAT_B {
287           description
288             "Informs that precoding is supported in O-RU";
289         }
290       }
291
292       description
293         "Informs about which category O-RU supports";
294     }
295
296     leaf number-of-ru-ports {
297       type uint8;
298       description
299         "Assuming all endpoints support time-managed traffic AND non-time-managed traffic (choice is as per configuration)
300          - the number of O-RU ports is the product of number of spatial streams (leaf number-of-spatial-streams) and number of numerologies O-RU supports.
301          For example, if the number of spatial streams is 4 then the number of O-RU ports is 8 when PUSCH and PRACH are processed in the different endpoints.
302          In case there are specific endpoints that support non-time-managed traffic only
303          - the number of O-RU ports calculated with above mentioned equation is extended by number of endpoints supporting only non-time-managed traffic.";
304     }
305
306     leaf number-of-spatial-streams {
307       type uint8;
308       description
309         "This value indicates the number of spatial streams supported at O-RU for DL and UL.
310          For DL, it is same as the number of antenna ports specified in 3GPP TS38.214, Section 5.2 and 3GPP TS36.213, Section 5.2.";
311     }
312
313     leaf max-power-per-pa-antenna {
314       type decimal64{
315         fraction-digits 4;
316       }
317       description
318         "This value indicates Maximum Power per PA per antenna. Value unit is dBm.";
319     }
320
321     leaf min-power-per-pa-antenna {
322       type decimal64{
323         fraction-digits 4;
324       }
325       description
326         "This value indicates Minimum Power per PA per antenna. Value unit is dBm.";
327     }
328
329     leaf fronthaul-split-option {
330       type uint8 {
331         range "7";
332       }
333       description
334         "This value indicates the Fronthaul Split Option, i.e., 2 or 7 in this release.";
335     }
336
337     container format-of-iq-sample {
338       description
339         "Indicates module capabilities about IQ samples";
340
341       uses format-of-iq-sample;
342     }
343
344     list ul-mixed-num-required-guard-rbs {
345       key "scs-a scs-b";
346       description
347         "List of required number of guard resource blocks
348         for the combination of subcarrier spacing values for downlink";
349
350       uses ul-mixed-num-required-guard-rbs;
351     }
352     list dl-mixed-num-required-guard-rbs {
353       key "scs-a scs-b";
354       description
355         "List of required number of guard resource blocks
356         for the combination of subcarrier spacing values for uplink";
357
358       uses dl-mixed-num-required-guard-rbs;
359     }
360
361     leaf energy-saving-by-transmission-blanks {
362       type boolean;
363       mandatory true;
364       description
365         "Parameter informs if unit supports energy saving by transmission blanking";
366     }
367
368     leaf dynamic-transport-delay-management-supported {
369       type boolean;
370       mandatory true;
371       description
372         "Parameter informs if unit supports dynamic transport delay management through eCPRI Msg 5";
373     }
374   }
375
376   grouping sub-band-info {
377     description "container for collection of leafs for LAA subband 46";
378     list sub-band-frequency-ranges {
379       key sub-band;
380       description "frequency information on a per sub-band basis";
381       leaf sub-band {
382         type sub-band-string;
383         description "Sub band when band 46";
384       }
385       uses sub-band-max-min-ul-dl-frequency;
386     }
387     leaf number-of-laa-scarriers {
388       type uint8;
389       description
390         "This value indicates the number of LAA secondary carriers supported at O-RU.";
391     }
392
393     leaf maximum-laa-buffer-size {
394       type uint16;
395       description
396         "Maximum O-RU buffer size in Kilobytes (KB) per CC. This parameter is
397          needed at the O-DU to know how much data can be sent in advance
398          and stored at the O-RU to address the LBT uncertainity.";
399     }
400
401     leaf maximum-processing-time {
402       type uint16;
403       units microseconds;
404       description
405         "Maximum O-RU Processing time in microseconds at the O-RU to handle the
406          received/transmitted packets from/to the O-DU. This parameter is
407          needed at the O-DU to determine the time where it needs to send
408          the data to the O-RU.";
409     }
410
411     leaf self-configure {
412       type boolean;
413       description "This value indicates that the O-RU can manage the contention window locally. ";
414     }
415   }
416
417   grouping support-for-dl {
418     description
419       "Grouping for DL specific parameters";
420
421     leaf max-supported-frequency-dl {
422       type uint64;
423       description
424         "This value indicates Maximum supported downlink frequency. Value unit is Hz.";
425     }
426
427     leaf min-supported-frequency-dl {
428       type uint64;
429       description
430         "This value indicates Minimum supported downlink frequency. Value unit is Hz.";
431     }
432
433     leaf max-supported-bandwidth-dl {
434       type uint64;
435       description
436         "This value indicates Maximum total downlink bandwidth in module. Value unit is Hz.";
437     }
438
439     leaf max-num-carriers-dl {
440       type uint32;
441       description
442         "This value indicates Maximum number of downlink carriers in module.";
443     }
444
445     leaf max-carrier-bandwidth-dl {
446       type uint64;
447       description
448         "This value indicates Maximum bandwidth per downlink carrier. Value unit is Hz.";
449     }
450
451     leaf min-carrier-bandwidth-dl {
452       type uint64;
453       description
454         "This value indicates Minimum bandwidth per downlink carrier. Value unit is Hz.";
455     }
456   }
457
458   grouping support-for-ul {
459     description
460       "Grouping for UL specific parameters";
461
462     leaf max-supported-frequency-ul {
463       type uint64;
464       description
465         "This value indicates Maximum supported uplink frequency. Value unit is Hz.";
466     }
467
468     leaf min-supported-frequency-ul {
469       type uint64;
470       description
471         "This value indicates Minimum supported uplink frequency. Value unit is Hz.";
472     }
473
474     leaf max-supported-bandwidth-ul {
475       type uint64;
476       description
477         "This value indicates Maximum total uplink bandwidth in module. Value unit is Hz.";
478     }
479
480     leaf max-num-carriers-ul {
481       type uint32;
482       description
483         "This value indicates Maximum number of uplink carriers in module.";
484     }
485
486     leaf max-carrier-bandwidth-ul {
487       type uint64;
488       description
489         "This value indicates Maximum bandwidth per uplink carrier. Value unit is Hz.";
490     }
491
492     leaf min-carrier-bandwidth-ul {
493       type uint64;
494       description
495         "This value indicates Minimum bandwidth per uplink carrier. Value unit is Hz.";
496     }
497   }
498
499   grouping band-capabilities {
500     description
501       "Capabilities that are needed to be defined per each band";
502
503     leaf band-number {
504       type uint16;
505       description
506         "Band number";
507     }
508
509     container sub-band-info {
510       when "../band-number = '46'";
511       if-feature "o-ran-module-cap:LAA";
512       description "container for collection of leafs for LAA subband 46";
513       uses sub-band-info;
514     }
515
516     uses support-for-dl;
517     uses support-for-ul;
518
519     leaf max-num-component-carriers {
520       type uint8;
521       description "maximum number of component carriers supported by the O-RU";
522     }
523
524     leaf max-num-bands {
525       type uint16;
526       description "maximum number of bands supported by the O-RU";
527     }
528
529     leaf max-num-sectors {
530       type uint8;
531       description "maximum number of sectors supported by the O-RU";
532     }
533
534     leaf max-power-per-antenna {
535       type decimal64{
536         fraction-digits 4;
537       }
538       description
539         "This value indicates Maximum Power per band per antenna. Value unit is dBm.";
540     }
541
542     leaf min-power-per-antenna {
543       type decimal64{
544         fraction-digits 4;
545       }
546       description
547         "This value indicates Minimum Power per band per antenna. Value unit is dBm.";
548     }
549
550     leaf codebook-configuration_ng {
551         type uint8;
552         description
553           "This parameter informs the precoder codebook_ng that are used for precoding";
554       }
555
556     leaf codebook-configuration_n1 {
557         type uint8;
558         description
559           "This parameter informs the precoder codebook_n1 that are used for precoding";
560       }
561
562     leaf codebook-configuration_n2 {
563         type uint8;
564         description
565           "This parameter informs the precoder codebook_n2 that are used for precoding";
566     }
567   }
568
569   container module-capability {
570
571     description
572       "module capability object responsible for providing module capability.";
573
574     container ru-capabilities {
575       config false;
576       description
577         "Structure representing set of capabilities.";
578
579       uses ru-capabilities;
580     }
581
582     list band-capabilities {
583       key band-number;
584       config false;
585       description
586         "Capabilities that are needed to be defined per each band";
587
588       uses band-capabilities;
589     }
590     container rw-sub-band-info {
591       if-feature "o-ran-module-cap:LAA";
592       description "config true leafrefs for use as constraints for config true leafs";
593       leaf rw-number-of-laa-scarriers {
594         type leafref {
595           path "/module-capability/band-capabilities/sub-band-info/number-of-laa-scarriers";
596           require-instance false;
597         }
598         description
599           "This value indicates the number of LAA secondary carriers supported at O-RU.";
600       }
601       leaf rw-self-configure {
602         type leafref {
603           path "/module-capability/band-capabilities/sub-band-info/self-configure";
604           require-instance false;
605         }
606         description
607           "This value indicates that the O-RU can manage the contention window locally.";
608       }
609     }
610   }
611 }