Bug fix.
[sim/o1-interface.git] / ntsimulator / yang / o-ran / ru-fh / 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       // [ast] Fix for list without a key
211       key "iq-bitwidth compression-type";
212       // [ast] end fix
213       uses cf:compression-details;
214
215       description
216         "List of supported compression methods by O-RU";
217     }
218
219     leaf variable-bit-width-per-channel-supported {
220       when "/module-capability/ru-capabilities/format-of-iq-sample/realtime-variable-bit-width-supported = 'true'";
221       type boolean;
222
223       description
224         "Informs if variable bit width per channel is supported or not";
225     }
226
227     leaf syminc-supported {
228       type boolean;
229
230       description
231         "Informs if symbol number increment command in a C-Plane is
232          supported or not";
233     }
234   }
235
236   grouping scs-a-b {
237     description
238       "Grouping for scs-a and scs-b";
239     leaf scs-a{
240       type scs-config-type;
241       description
242         "Sub-carrier spacing configuration";
243     }
244     leaf scs-b{
245       type scs-config-type;
246       description
247         "Sub-carrier spacing configuration";
248     }
249   }
250
251   grouping ul-mixed-num-required-guard-rbs {
252     description
253       "Required number of guard resource blocks for the combination of
254       subcarrier spacing values for uplink";
255     uses scs-a-b;
256     leaf number-of-guard-rbs-ul{
257       type uint8;
258       description
259         "This value indicates the required number of guard resource blocks
260          between the mixed numerologies, the RB using scs-a and the RB
261          using scs-b. It's number is based on scs-a";
262     }
263   }
264
265   grouping dl-mixed-num-required-guard-rbs {
266     description
267       "Required number of guard resource blocks for the combination of
268       subcarrier spacing values for uplink";
269     uses scs-a-b;
270     leaf number-of-guard-rbs-dl{
271       type uint8;
272       description
273         "This value indicates the required number of guard resource blocks
274          between the mixed numerologies, the RB using scs-a and the RB
275          using scs-b. It's number is based on scs-a";
276     }
277   }
278
279   grouping ru-capabilities {
280     description
281       "Structure representing set of capabilities.";
282
283     leaf ru-supported-category {
284       type enumeration {
285         enum CAT_A {
286           description
287             "Informs that precoding is not supported in O-RU";
288         }
289         enum CAT_B {
290           description
291             "Informs that precoding is supported in O-RU";
292         }
293       }
294
295       description
296         "Informs about which category O-RU supports";
297     }
298
299     leaf number-of-ru-ports {
300       type uint8;
301       description
302         "Assuming all endpoints support time-managed traffic AND non-time-managed traffic (choice is as per configuration)
303          - 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.
304          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.
305          In case there are specific endpoints that support non-time-managed traffic only
306          - the number of O-RU ports calculated with above mentioned equation is extended by number of endpoints supporting only non-time-managed traffic.";
307     }
308
309     leaf number-of-spatial-streams {
310       type uint8;
311       description
312         "This value indicates the number of spatial streams supported at O-RU for DL and UL.
313          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.";
314     }
315
316     leaf max-power-per-pa-antenna {
317       type decimal64{
318         fraction-digits 4;
319       }
320       description
321         "This value indicates Maximum Power per PA per antenna. Value unit is dBm.";
322     }
323
324     leaf min-power-per-pa-antenna {
325       type decimal64{
326         fraction-digits 4;
327       }
328       description
329         "This value indicates Minimum Power per PA per antenna. Value unit is dBm.";
330     }
331
332     leaf fronthaul-split-option {
333       type uint8 {
334         range "7";
335       }
336       description
337         "This value indicates the Fronthaul Split Option, i.e., 2 or 7 in this release.";
338     }
339
340     container format-of-iq-sample {
341       description
342         "Indicates module capabilities about IQ samples";
343
344       uses format-of-iq-sample;
345     }
346
347     list ul-mixed-num-required-guard-rbs {
348       key "scs-a scs-b";
349       description
350         "List of required number of guard resource blocks
351         for the combination of subcarrier spacing values for downlink";
352
353       uses ul-mixed-num-required-guard-rbs;
354     }
355     list dl-mixed-num-required-guard-rbs {
356       key "scs-a scs-b";
357       description
358         "List of required number of guard resource blocks
359         for the combination of subcarrier spacing values for uplink";
360
361       uses dl-mixed-num-required-guard-rbs;
362     }
363
364     leaf energy-saving-by-transmission-blanks {
365       type boolean;
366       mandatory true;
367       description
368         "Parameter informs if unit supports energy saving by transmission blanking";
369     }
370
371     leaf dynamic-transport-delay-management-supported {
372       type boolean;
373       mandatory true;
374       description
375         "Parameter informs if unit supports dynamic transport delay management through eCPRI Msg 5";
376     }
377   }
378
379   grouping sub-band-info {
380     description "container for collection of leafs for LAA subband 46";
381     list sub-band-frequency-ranges {
382       key sub-band;
383       description "frequency information on a per sub-band basis";
384       leaf sub-band {
385         type sub-band-string;
386         description "Sub band when band 46";
387       }
388       uses sub-band-max-min-ul-dl-frequency;
389     }
390     leaf number-of-laa-scarriers {
391       type uint8;
392       description
393         "This value indicates the number of LAA secondary carriers supported at O-RU.";
394     }
395
396     leaf maximum-laa-buffer-size {
397       type uint16;
398       description
399         "Maximum O-RU buffer size in Kilobytes (KB) per CC. This parameter is
400          needed at the O-DU to know how much data can be sent in advance
401          and stored at the O-RU to address the LBT uncertainity.";
402     }
403
404     leaf maximum-processing-time {
405       type uint16;
406       units microseconds;
407       description
408         "Maximum O-RU Processing time in microseconds at the O-RU to handle the
409          received/transmitted packets from/to the O-DU. This parameter is
410          needed at the O-DU to determine the time where it needs to send
411          the data to the O-RU.";
412     }
413
414     leaf self-configure {
415       type boolean;
416       description "This value indicates that the O-RU can manage the contention window locally. ";
417     }
418   }
419
420   grouping support-for-dl {
421     description
422       "Grouping for DL specific parameters";
423
424     leaf max-supported-frequency-dl {
425       type uint64;
426       description
427         "This value indicates Maximum supported downlink frequency. Value unit is Hz.";
428     }
429
430     leaf min-supported-frequency-dl {
431       type uint64;
432       description
433         "This value indicates Minimum supported downlink frequency. Value unit is Hz.";
434     }
435
436     leaf max-supported-bandwidth-dl {
437       type uint64;
438       description
439         "This value indicates Maximum total downlink bandwidth in module. Value unit is Hz.";
440     }
441
442     leaf max-num-carriers-dl {
443       type uint32;
444       description
445         "This value indicates Maximum number of downlink carriers in module.";
446     }
447
448     leaf max-carrier-bandwidth-dl {
449       type uint64;
450       description
451         "This value indicates Maximum bandwidth per downlink carrier. Value unit is Hz.";
452     }
453
454     leaf min-carrier-bandwidth-dl {
455       type uint64;
456       description
457         "This value indicates Minimum bandwidth per downlink carrier. Value unit is Hz.";
458     }
459   }
460
461   grouping support-for-ul {
462     description
463       "Grouping for UL specific parameters";
464
465     leaf max-supported-frequency-ul {
466       type uint64;
467       description
468         "This value indicates Maximum supported uplink frequency. Value unit is Hz.";
469     }
470
471     leaf min-supported-frequency-ul {
472       type uint64;
473       description
474         "This value indicates Minimum supported uplink frequency. Value unit is Hz.";
475     }
476
477     leaf max-supported-bandwidth-ul {
478       type uint64;
479       description
480         "This value indicates Maximum total uplink bandwidth in module. Value unit is Hz.";
481     }
482
483     leaf max-num-carriers-ul {
484       type uint32;
485       description
486         "This value indicates Maximum number of uplink carriers in module.";
487     }
488
489     leaf max-carrier-bandwidth-ul {
490       type uint64;
491       description
492         "This value indicates Maximum bandwidth per uplink carrier. Value unit is Hz.";
493     }
494
495     leaf min-carrier-bandwidth-ul {
496       type uint64;
497       description
498         "This value indicates Minimum bandwidth per uplink carrier. Value unit is Hz.";
499     }
500   }
501
502   grouping band-capabilities {
503     description
504       "Capabilities that are needed to be defined per each band";
505
506     leaf band-number {
507       type uint16;
508       description
509         "Band number";
510     }
511
512     container sub-band-info {
513       when "../band-number = '46'";
514       if-feature "o-ran-module-cap:LAA";
515       description "container for collection of leafs for LAA subband 46";
516       uses sub-band-info;
517     }
518
519     uses support-for-dl;
520     uses support-for-ul;
521
522     leaf max-num-component-carriers {
523       type uint8;
524       description "maximum number of component carriers supported by the O-RU";
525     }
526
527     leaf max-num-bands {
528       type uint16;
529       description "maximum number of bands supported by the O-RU";
530     }
531
532     leaf max-num-sectors {
533       type uint8;
534       description "maximum number of sectors supported by the O-RU";
535     }
536
537     leaf max-power-per-antenna {
538       type decimal64{
539         fraction-digits 4;
540       }
541       description
542         "This value indicates Maximum Power per band per antenna. Value unit is dBm.";
543     }
544
545     leaf min-power-per-antenna {
546       type decimal64{
547         fraction-digits 4;
548       }
549       description
550         "This value indicates Minimum Power per band per antenna. Value unit is dBm.";
551     }
552
553     leaf codebook-configuration_ng {
554         type uint8;
555         description
556           "This parameter informs the precoder codebook_ng that are used for precoding";
557       }
558
559     leaf codebook-configuration_n1 {
560         type uint8;
561         description
562           "This parameter informs the precoder codebook_n1 that are used for precoding";
563       }
564
565     leaf codebook-configuration_n2 {
566         type uint8;
567         description
568           "This parameter informs the precoder codebook_n2 that are used for precoding";
569     }
570   }
571
572   container module-capability {
573
574     description
575       "module capability object responsible for providing module capability.";
576
577     container ru-capabilities {
578       config false;
579       description
580         "Structure representing set of capabilities.";
581
582       uses ru-capabilities;
583     }
584
585     list band-capabilities {
586       key band-number;
587       config false;
588       description
589         "Capabilities that are needed to be defined per each band";
590
591       uses band-capabilities;
592     }
593     container rw-sub-band-info {
594       if-feature "o-ran-module-cap:LAA";
595       description "config true leafrefs for use as constraints for config true leafs";
596       leaf rw-number-of-laa-scarriers {
597         type leafref {
598           path "/module-capability/band-capabilities/sub-band-info/number-of-laa-scarriers";
599           require-instance false;
600         }
601         description
602           "This value indicates the number of LAA secondary carriers supported at O-RU.";
603       }
604       leaf rw-self-configure {
605         type leafref {
606           path "/module-capability/band-capabilities/sub-band-info/self-configure";
607           require-instance false;
608         }
609         description
610           "This value indicates that the O-RU can manage the contention window locally.";
611       }
612     }
613   }
614 }