Support of WG4 OpenFronthaul Management-Plane VES
[scp/oam/modeling.git] / data-model / yang / published / o-ran / ru-fh / o-ran-compression-factors@2021-12-01.yang
1 module o-ran-compression-factors {
2   yang-version 1.1;
3   namespace "urn:o-ran:compression-factors:1.0";
4   prefix "o-ran-compression-factors";
5
6
7   organization "O-RAN Alliance";
8
9   contact
10     "www.o-ran.org";
11
12   description
13     "This module defines the module capabilities for
14     the O-RAN Radio Unit U-Plane configuration.
15
16     Copyright 2021 the O-RAN Alliance.
17
18     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
19     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28     POSSIBILITY OF SUCH DAMAGE.
29
30     Redistribution and use in source and binary forms, with or without
31     modification, are permitted provided that the following conditions are met:
32
33     * Redistributions of source code must retain the above copyright notice,
34     this list of conditions and the above disclaimer.
35     * Redistributions in binary form must reproduce the above copyright notice,
36     this list of conditions and the above disclaimer in the documentation
37     and/or other materials provided with the distribution.
38     * Neither the Members of the O-RAN Alliance nor the names of its
39     contributors may be used to endorse or promote products derived from
40     this software without specific prior written permission.";
41
42   revision "2021-12-01" {
43     description
44       "version 8.0.0
45
46       1) typographical corrections in descriptions.
47       2) Configuration for Beamforming weights were added together with changes
48          and updates to compressions.
49       3) add new beamspace compression enumeration for BEAMSPACE_TYPEII.";
50
51    reference "ORAN-WG4.M.0-v08.00";
52   }
53
54   revision "2021-03-22" {
55    description
56      "version 4.1.0
57
58      1) typographical corrections in descriptions.";
59
60    reference "ORAN-WG4.M.0-v04.00";
61   }
62
63   revision "2020-08-10" {
64    description
65      "version 4.0.0
66
67      1) supporting compression types per endpoint
68      2) adding feature for configurable fs-offset for compression";
69
70    reference "ORAN-WG4.M.0-v04.00";
71   }
72
73    revision "2020-04-17" {
74     description
75       "version 3.0.0
76
77       1) adding selective RE sending compression types";
78
79     reference "ORAN-WG4.M.0-v03.00";
80   }
81
82   revision "2019-07-03" {
83     description
84       "version 1.1.0
85
86       1) changes related to compression bit-width presentation";
87
88     reference "ORAN-WG4.M.0-v01.00";
89   }
90
91   revision "2019-02-04" {
92     description
93       "version 1.0.0
94
95       1) imported model from xRAN
96       2) changed namespace and reference from xran to o-ran";
97
98     reference "ORAN-WG4.M.0-v01.00";
99   }
100
101   feature CONFIGURABLE-FS-OFFSET {
102     description
103       "Presence of this feature means that O-RU supports configurable fs-offset for compression.";
104   }
105
106   typedef ci-compression-method-def {
107     type enumeration {
108       enum NO_COMPRESSION {
109         description
110           "No compression will be used";
111       }
112
113       enum BLOCK_FLOATING_POINT {
114         description
115           "Block floating point compression and decompression will be used";
116       }
117
118       enum BLOCK_SCALING {
119         description
120           "Block scaling compression and decompresion will be used";
121       }
122
123       enum U_LAW {
124         description
125           "u-Law compression and decompresion method will be used";
126       }
127     }
128     description
129       "Available compression methods for channel information (e.g., ST6).";
130   }
131
132   typedef compression-type-def {
133     type enumeration {
134       enum STATIC {
135         description
136           "Indicates that static compression method will be used (both compression and IQ bitwidth)";
137       }
138       enum DYNAMIC {
139         description
140           "Indicates that dynamic compression method will be used";
141       }
142     }
143     description
144       "Compression type that O-DU wants to be supported";
145   }
146
147   typedef bf-compression-method-def {
148     type enumeration {
149       enum NO_COMPRESSION {
150         description
151           "No compression will be used";
152       }
153       enum BLOCK_FLOATING_POINT {
154         description
155           "Block floating point compression and decompression will be used";
156       }
157
158       enum BLOCK_SCALING {
159         description
160           "Block scaling compression and decompresion will be used";
161       }
162
163       enum U_LAW {
164         description
165           "u-Law compression and decompresion method will be used";
166       }
167
168       enum BEAMSPACE {
169         description
170           "Beamspace compression and decompression will be used";
171       }
172
173       enum VOID_1 {
174         description
175           "Leftover of modulation, not to be used for beamforming weights";
176       }
177
178       enum VOID_2 {
179         description
180           "Leftover of block-floating-point-selective-re-sending, not to be used for beamforming weights";
181       }
182
183       enum VOID_3 {
184         description
185           "Leftover of modulation-compression-selective-re-sending, not to be used for beamforming weights";
186       }
187
188       enum BEAMSPACE_TYPEII {
189         description
190           "Beamspace compression typeII and decompression will be used ";
191       }
192     }
193     description
194       "Available compression methods for beamforming weights.";
195   }
196
197   typedef compression-method-def {
198     type enumeration {
199       enum NO_COMPRESSION {
200         description
201           "No compression will be used";
202       }
203       enum BLOCK_FLOATING_POINT {
204         description
205           "Block floating point compression and decompression will be used";
206       }
207
208       enum BLOCK_SCALING {
209         description
210           "Block scaling compression and decompresion will be used";
211       }
212
213       enum U_LAW {
214         description
215           "u-Law compression and decompresion method will be used";
216       }
217
218       enum VOID_1 {
219         description
220           "Leftover of beamspace, not to be used for IQ data.";
221       }
222
223       enum MODULATION {
224         description
225           "Modulation compression and decompression will be used";
226       }
227
228       enum BLOCK-FLOATING-POINT-SELECTIVE-RE-SENDING {
229         description
230           "block floating point with selective re sending
231           compression and decompression will be used";
232       }
233
234       enum MODULATION-COMPRESSION-SELECTIVE-RE-SENDING {
235         description
236           "modulation compression with selective re sending
237           compression and decompression will be used";
238       }
239     }
240     description
241       "Available compression methods for the data.";
242   }
243
244   grouping compression-method-grouping {
245     description
246       "Grouping for compression method.";
247
248     leaf iq-bitwidth {
249       type uint8;
250       description
251         "Bit-width to be used in compression";
252     }
253
254     leaf compression-method {
255       type compression-method-def;
256       description
257         "Compression method which can be supported by the O-RU";
258     }
259   }
260
261   grouping compression-details {
262     description "";
263
264     leaf iq-bitwidth {
265       type uint8;
266       description
267         "Bitwidth to be used in compression";
268     }
269
270     leaf compression-type {
271       type compression-type-def;
272       mandatory true;
273       description
274         "Compression type that O-DU wants to be supported";
275     }
276
277     leaf bitwidth {
278       when "../compression-type = 'STATIC'";
279       type uint8;
280       status deprecated;
281       description
282         "Bitwidth to be used in compression.
283         This has since been replaced in M-Plane version
284         2.0.0 with the iq-bitwidth schema node";
285     }
286
287     leaf compression-method {
288       type compression-method-def;
289       description
290         "Compression method which can be supported by the O-RU";
291     }
292
293     uses compresion-format-grp {
294       status deprecated;
295     }
296   }
297
298   grouping bf-compression-details {
299     description "Compression formats defined for beamforming";
300
301     leaf iq-bitwidth {
302       type uint8;
303       description
304         "Bitwidth to be used in compression";
305     }
306
307     leaf compression-type {
308       type compression-type-def;
309       mandatory true;
310       description
311         "Compression type that O-DU wants to be supported";
312     }
313
314     leaf bitwidth {
315       when "../compression-type = 'STATIC'";
316       type uint8;
317       status deprecated;
318       description
319         "Bitwidth to be used in compression.
320         This has since been replaced in M-Plane version
321         2.0.0 with the iq-bitwidth schema node";
322     }
323
324     leaf compression-method {
325       type bf-compression-method-def;
326       description
327         "Compression method which can be supported by the beamforming";
328     }
329
330     uses compresion-format-grp {
331       status deprecated;
332     }
333   }
334
335 // *********** Deprecated ***********
336
337   grouping compression-formats {
338     status deprecated;
339     description
340       "Grouping deicated to list compression formats as choice.";
341
342     uses compresion-format-grp {
343       status deprecated;
344     }
345   }
346
347   grouping compresion-format-grp {
348     status deprecated;
349     description
350       "Grouping to for compression format choice";
351
352     choice compression-format {
353       status deprecated;
354       description
355         "Choice of compression format for particular element.
356          Note: This metod is deprecated. All should be done as emumeration as details are configured
357          by udCompHdr in CU-Plane messaging.";
358
359       case no-compresison {
360         description "Compression for beam weights is not supported.";
361       }
362       case block-floating-point {
363         description "Block floating-point compression and decompression is supported.";
364
365         leaf exponent {
366           type uint8 {
367             range "4";
368           }
369           description "Exponent bit width size in number of bits used when encoding in udCompParam.";
370         }
371       }
372
373       case block-floating-point-selective-re-sending {
374         description
375           "Block floating-point with selective re sending compression and decompression is supported.";
376
377         leaf sres-exponent {
378           type uint8 {
379             range "4";
380           }
381           description "Exponent bit width size in number of bits used when encoding in udCompParam.";
382         }
383       }
384
385       case block-scaling {
386         description "Block scaling compression and decompression is supported.";
387         leaf block-scalar {
388           type uint8;
389             description
390               "Common scaler for compressed PRB";
391         }
392       }
393
394       case u-law {
395         description "u-Law compression and decompression method is supported.";
396         leaf comp-bit-width {
397           type uint8 {
398             range "0..15";
399           }
400           description "Bit with for u-law compression";
401         }
402         leaf comp-shift {
403           type uint8 {
404             range "0..15";
405           }
406           description
407             "the shift applied to the entire PRB";
408         }
409       }
410
411       case beam-space-compression {
412         description "Beamspace compression and decompression is supported. Applies to beamforming weights only.";
413         leaf-list active-beam-space-coeficient-mask {
414           type uint8;
415           description
416             "active beamspace coefficient indices associated with the compressed beamforming vector";
417         }
418         leaf block-scaler {
419           type uint8;
420           description
421             "Common scaler for compressed beamforming coefficients";
422         }
423       }
424
425       case modulation-compression {
426         description "Modulation compression and decompression is supported.";
427         leaf csf {
428           type uint8 {
429             range "0..1";
430           }
431           description "Constellation shift flag";
432         }
433
434         leaf mod-comp-scaler {
435           type uint16 {
436             range "0..32767";
437           }
438           description "Modulation compression scaler value.";
439         }
440       }
441
442       case modulation-compression-selective-re-sending {
443         description "Modulation compression with selective re sending and decompression is supported.";
444         leaf sres-csf {
445           type uint8 {
446             range "0..1";
447           }
448           description "Constellation shift flag";
449         }
450
451         leaf sres-mod-comp-scaler {
452           type uint16 {
453             range "0..32767";
454           }
455           description "Modulation compression scaler value.";
456         }
457       }
458
459     }
460   }
461
462   grouping compression-params {
463     status deprecated;
464     description
465       "Parameters to define compression";
466
467     leaf compression-type {
468       type compression-type-def;
469       mandatory true;
470       description
471         "Compression type that O-DU wants to be supported";
472     }
473
474     leaf bitwidth {
475       when "../compression-type = 'STATIC'";
476       type uint8;
477       status deprecated;
478       description
479         "Bit-width to be used in compression.
480         This has since been replaced in M-Plane version
481         2.0.0 with the iq-bitwidth schema node";
482     }
483
484     uses compression-formats {
485       status deprecated;
486     }
487   }
488
489   grouping compression-parameters {
490     status deprecated;
491     description
492       "Parameters used to define description type";
493
494     leaf iq-bitwidth {
495       type uint8;
496       description
497         "Bit-width to be used in compression";
498     }
499
500     uses compression-formats {
501       status deprecated;
502     }
503   }
504
505   grouping format-of-iq-sample {
506     status deprecated;
507     description
508       "Indicates module capabilities about IQ samples";
509
510     leaf dynamic-compression-supported {
511       type boolean;
512
513       description
514         "Informs if radio supports dynamic compression method";
515     }
516
517     leaf realtime-variable-bit-width-supported {
518       type boolean;
519
520       description
521         "Informs if O-RU supports real-time variable bit with";
522     }
523
524     list compression-method-supported {
525       status deprecated;
526       uses compression-parameters {
527         status deprecated;
528       }
529
530       description
531         "List of supported compression methods by O-RU
532          Note: if O-RU supports different compression methods per endpoint
533                then please refer do endpoints to have information what
534                exactly is supported on a particular endpoint";
535     }
536
537     leaf syminc-supported {
538       type boolean;
539
540       description
541         "Informs if symbol number increment command in a C-Plane is
542          supported or not";
543     }
544
545     leaf regularization-factor-se-supported {
546       type boolean;
547
548       description
549         "Informs if regularizationFactor in section type 5 is
550          supported(true) or not(false)";
551     }
552
553     leaf little-endian-supported {
554       type boolean;
555       default false;
556
557       description
558         "All O-RUs support bigendian byte order. This node informs if module supports the
559         the optional capability for little endian byte order for C/U plane data flows.
560
561         Note - little endian support does not invalidate bigendian support.";
562     }
563   }
564
565 // *********** Deprecated End ***********
566
567 }