Support of WG4 OpenFronthaul Management-Plane VES
[scp/oam/modeling.git] / data-model / yang / published / o-ran / ru-fh / o-ran-uplane-conf@2020-12-10.yang
1 module o-ran-uplane-conf {
2   yang-version 1.1;
3   namespace "urn:o-ran:uplane-conf:1.0";
4   prefix "o-ran-uplane-conf";
5
6   import o-ran-processing-element {
7     prefix "o-ran-pe";
8   }
9
10   import ietf-interfaces {
11     prefix "if";
12   }
13
14   import o-ran-module-cap {
15     prefix "mcap";
16     revision-date 2020-12-10;
17   }
18
19   import o-ran-compression-factors {
20     prefix "cf";
21     revision-date 2020-08-10;
22   }
23
24   organization "O-RAN Alliance";
25
26   contact
27     "www.o-ran.org";
28
29   description
30     "This module defines the module capabilities for
31     the O-RAN Radio Unit U-Plane configuration.
32
33     Copyright 2020 the O-RAN Alliance.
34
35     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
36     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
38     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
39     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
40     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
41     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
42     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
43     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
44     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
45     POSSIBILITY OF SUCH DAMAGE.
46
47     Redistribution and use in source and binary forms, with or without
48     modification, are permitted provided that the following conditions are met:
49
50     * Redistributions of source code must retain the above copyright notice,
51     this list of conditions and the above disclaimer.
52     * Redistributions in binary form must reproduce the above copyright notice,
53     this list of conditions and the above disclaimer in the documentation
54     and/or other materials provided with the distribution.
55     * Neither the Members of the O-RAN Alliance nor the names of its
56     contributors may be used to endorse or promote products derived from
57     this software without specific prior written permission.";
58
59   revision "2020-12-10" {
60     description
61       "version 5.0.0
62
63       1) introduces new coupling method coupling-via-frequency-and-time-with-priorities-optimized
64       2) introduces new max-highest-priority-sections-per-slot parameter";
65
66     reference "ORAN-WG4.M.0-v05.00";
67   }
68
69   revision "2020-08-10" {
70     description
71       "version 4.0.0
72
73       1) parameters allowing for static PRACH configuration introduced
74       2) parameters allowing for static SRS configuration introduced
75       3) parameters allowing for configuration of TDD pattern introduced
76       4) Backward compatible change to introduce new parameter 'coupling-method' related
77          to Section Description Priority to serve for CUS-Plane CR";
78
79     reference "ORAN-WG4.M.0-v04.00";
80   }
81
82   revision "2020-04-17" {
83     description
84       "version 3.0.0
85
86       1) Adding optional little endian support
87       2) Adding a new capability parameter to indicate that the O-RU
88       supports regularizationFactor in section type 5
89       3) Added support for Dynamic Spectrum Sharing feature
90       4) Clarify the supported number of reMasks in RU side
91       5) Section extension for grouping multiple ports
92       6) adding PRACH formats to endpoint capabilities";
93
94     reference "ORAN-WG4.M.0-v03.00";
95   }
96
97   revision "2019-07-03" {
98     description
99       "version 1.1.0
100
101       1) added new leaf multiple-numerology-supported to enable O-RU to report
102          whether it supports multiple numerologies.
103
104       2) fixing broken constraints (configuration cannot be dependent on
105         operational state). This is a backwards incompatible revision.
106
107        As these constraints only apply when the LAA feature is used, and also
108        when considering the limited number of implementation that need to be
109        taken into consideration for backwards compatibility, it has been
110        agreed to NOT increment the namespace integer.
111
112       3) added frequency related capabilities for tx-arrays and rx-array
113
114       4) removed redundant LAA import";
115
116     reference "ORAN-WG4.M.0-v01.00";
117   }
118
119   revision "2019-02-04" {
120     description
121       "version 1.0.0
122
123       1) imported model from xRAN
124       2) changed namespace and reference from xran to o-ran";
125
126     reference "ORAN-WG4.M.0-v01.00";
127   }
128
129   feature EAXC-GAIN-CORRECTION {
130     description
131       "Presence of feature indicates that O-RU supports eAxC specific gain correction.";
132   }
133
134   feature TX-REFERENCE-LEVEL {
135     description
136       "Presence of feature indicates that O-RU supports TX gain reference level control";
137   }
138
139   typedef prach-preamble-format {
140     type enumeration {
141       enum LTE-0 {
142         description
143           "LTE PRACH Preamble format 0";
144       }
145       enum LTE-1 {
146         description
147           "LTE PRACH Preamble format 1";
148       }
149       enum LTE-2 {
150         description
151           "LTE PRACH Preamble format 2";
152       }
153       enum LTE-3 {
154         description
155           "LTE PRACH Preamble format 3";
156       }
157       enum LTE-4 {
158         description
159           "LTE PRACH Preamble format 4";
160       }
161       enum LTE-NB0 {
162         description
163           "LTE Narrowband PRACH format 0";
164       }
165       enum LTE-NB1 {
166         description
167           "LTE Narrowband PRACH format 1";
168       }
169       enum NR-0 {
170         description
171           "5GNR PRACH Preamble format 0";
172       }
173       enum NR-1 {
174         description
175           "5GNR PRACH Preamble format 1";
176       }
177       enum NR-2 {
178         description
179           "5GNR PRACH Preamble format 2";
180       }
181       enum NR-3 {
182         description
183           "5GNR PRACH Preamble format 3";
184       }
185       enum NR-A1 {
186         description
187           "5GNR PRACH Preamble format A1";
188       }
189       enum NR-A2 {
190         description
191           "5GNR PRACH Preamble format A2";
192       }
193       enum NR-A3 {
194         description
195           "5GNR PRACH Preamble format A3";
196       }
197       enum NR-B1 {
198         description
199           "5GNR PRACH Preamble format B1";
200       }
201       enum NR-B2 {
202         description
203           "5GNR PRACH Preamble format B2";
204       }
205       enum NR-B3 {
206         description
207           "5GNR PRACH Preamble format B3";
208       }
209       enum NR-B4 {
210         description
211           "5GNR PRACH Preamble format B4";
212       }
213       enum NR-C0 {
214         description
215           "5GNR PRACH Preamble format C0";
216       }
217       enum NR-C2 {
218         description
219           "5GNR PRACH Preamble format C2";
220       }
221     }
222
223     description
224       "PRACH preamble format definition";
225   }
226
227   typedef polarisation_type {
228     type enumeration {
229       enum MINUS_45 {
230         description "MINUS_45";
231       }
232       enum ZERO {
233         description "ZERO";
234       }
235       enum PLUS_45 {
236         description "PLUS_45";
237       }
238       enum PLUS_90 {
239         description "PLUS_90";
240       }
241     }
242     description "Type definition for polarisations";
243   }
244
245   grouping general-config {
246     description "a group for general configuration";
247
248     container general-config {
249       description "a container for general configuration";
250
251       leaf regularization-factor-se-configured {
252         type boolean;
253         default false;
254         description
255           "Informs if regularizationfactor in section extension is configured(true) or not(false), this
256           leaf indicates whether the O-DU will send the regularizationfactor in section extension.
257
258           If the O-RU does not support regularization-factor-se-supported in o-ran-module-cap.yang,
259           this leaf is ignored.";
260       }
261
262       leaf little-endian-byte-order {
263         type boolean;
264         default false;
265
266         description
267           "If  little endian byte order for C/U plane data flows is supported by
268           the O-RU, indicates if the O-RU should use little endian byte order
269           for all UL and DL C/U plane data flows.
270
271           If little endian byte order is NOT supported, this node is ignored
272           (and the default bigendian byte order used)";
273       }
274     }
275   }
276
277   grouping laa-carrier-config {
278     description "Carrier Configuration for support of LAA. ";
279     leaf ed-threshold-pdsch {
280       type int8;
281       units dBm;
282       description
283         "This value indicates Energy Detection(ED) threshold for LBT for PDSCH and for measurements in dBm.";
284     }
285
286     leaf ed-threshold-drs {
287       type int8;
288       units dBm;
289       description
290         "This value indicates Energy Detection(ED) threshold for LBT for DRS in dBm.";
291     }
292
293     leaf tx-antenna-ports {
294       type uint8;
295       description
296         "This value indicates Tx antenna ports for DRS (1, 2, 4)";
297     }
298
299     leaf transmission-power-for-drs {
300       type int8;
301       units decibels;
302       description
303         "This value indicates offset of Cell specific reference Signal(CRS) power to reference signal power (dB).
304         DRS signal consists of CRS, PSS, SSS, and optionally CSI-RS.";
305     }
306
307     leaf dmtc-period {
308       type enumeration {
309         enum FORTY {
310           description
311             "40 ms";
312         }
313         enum EIGHTY {
314           description
315             "80 ms";
316         }
317         enum ONE-HUNDRED-SIXTY {
318           description
319             "160 ms";
320         }
321       }
322       units milliseconds;
323       description
324         "This value indicates DRS measurement timing configuration (DMTC) period in ms";
325     }
326
327     leaf dmtc-offset {
328       type uint8;
329       units subframes;
330       description
331         "This value indicates dmtc offset in Subframes.";
332     }
333
334     leaf lbt-timer {
335       type uint16;
336       units milliseconds;
337       description
338         "This value indicates LBT Timer in milliseconds.";
339     }
340
341     list max-cw-usage-counter {
342       when "/mcap:module-capability/mcap:rw-sub-band-info/mcap:rw-self-configure = 'true'";
343       key "priority";
344       description "";
345       leaf priority {
346         type enumeration {
347           enum P1 {
348             description "priority 1";
349           }
350           enum P2 {
351             description "priority 2";
352           }
353           enum P3 {
354             description "priority 3";
355           }
356           enum P4 {
357             description "priority 4";
358           }
359         }
360         description "This value provides the priority class traffic for which the counter is calculated.";
361       }
362
363         leaf counter-value {
364           type uint8 {
365             range "1..8";
366           }
367           description "This value indicates the maximum value of counter
368           which shows how many max congestion window value is used for backoff
369           number of priority class traffic. This value is defined at 3GPP 36.213
370           section 15.1.3 as K.";
371         }
372       }
373   }
374
375   grouping coupling-methods {
376     description
377       "Grouping for configuration of desired C-Plane / U-Plane coupling methods (if supported)";
378     leaf coupling-to {
379       type leafref {
380         path "/mcap:module-capability/mcap:ru-capabilities/mcap:coupling-methods/mcap:coupling-via-frequency-and-time";
381         require-instance false;
382       }
383
384       description
385         "RW instance of RO parameter.";
386     }
387     leaf coupling-method {
388       when "../coupling-to = 'true'";
389       type enumeration{
390         enum NORMAL {
391           description "Coupling via sectionId value. This value can be used always.";
392         }
393         enum FREQUENCY_AND_TIME {
394           description "Coupling via frequency and time. Can be used when coupling-via-frequency-and-time = true
395                       or coupling-via-frequency-and-time-with-priorities = true in o-ran-module-cap.yang";
396         }
397         enum FREQUENCY_AND_TIME_WITH_PRIORITIES {
398           description "Coupling via frequency and time with priorities. Can be used when
399                       coupling-via-frequency-and-time-with-priorities = true in o-ran-module-cap.yang";
400         }
401         enum FREQUENCY_AND_TIME_WITH_PRIORITIES_OPTIMIZED {
402           description "Coupling via frequency and time with priorities optimized. Can be used when
403                       coupling-via-frequency-and-time-with-priorities-optimized = true in o-ran-module-cap.yang";
404         }
405       }
406       default NORMAL;
407       description
408         "Method of coupling between C-Plane and U-Plane messages; see methods of coupling
409         of C-Plane and U-Plane in CUS-Plane specification. If an O-RU doesn't support the
410         necessary capability as defined in o-ran-module-cap.yang, the O-RU shall respond
411         with rpc-error including an error-message describing the error condition";
412     }
413   }
414
415   grouping  eaxc {
416     description
417       "One eAxC identifier (eAxC ID) comprises a band and sector
418       identifier (BandSector_ID), a component-carrier identifier (CC_ID) and a
419       spatial stream identifier (RU_Port_ID).
420
421       In this version of the specification, one eAxC contains only one spatial
422       stream (i.e. one beam per subcarrier) at a time.
423
424       Bit allocation is subdivided as follows:
425       *    O_DU_Port_ID: Used to differentiate processing units at O-DU
426       *    BandSector_ID: Aggregated cell identifier
427       *    CC_ID: distinguishes Carrier Components
428       *    RU_Port_ID: Used to differentiate spatial streams or beams on the O-RU
429
430       The bitwidth of each of the above fields is variable this model is supposed to check
431         if we are occpying bits continuously but we do not have to occupy all 16 bits";
432
433
434     leaf o-du-port-bitmask {
435       type uint16;
436       mandatory true;
437       description
438         "mask for eaxc-id bits used to encode O-DU Port ID";
439     }
440
441     leaf band-sector-bitmask {
442       type uint16;
443       mandatory true;
444       description
445         "mask for eaxc-id bits used to encode the band sector ID";
446     }
447
448     leaf ccid-bitmask {
449       type uint16;
450       mandatory true;
451       description
452         "mask for eaxc-id bits used to encode the component carrier id";
453     }
454
455     leaf ru-port-bitmask {
456       type uint16;
457       mandatory true;
458       description
459         "mask for eaxc-id bits used to encode the O-RU Port ID";
460     }
461
462     leaf eaxc-id {
463       type uint16;
464       mandatory true;
465       description
466         "encoded value of eaxcid to be read by CU-Plane";
467     }
468   }
469
470   grouping parameters {
471     description
472       "Grouping of all parameters common between UL and DL";
473
474     leaf name {
475       type string;
476       mandatory true;
477       description "Unique name of array antenna";
478     }
479
480     leaf number-of-rows {
481       type uint16;
482       mandatory true;
483       description "Number of rows array elements are shaped into - M";
484     }
485
486     leaf number-of-columns {
487       type uint16;
488       mandatory true;
489       description "Number of columns array elements are shaped into - N";
490     }
491
492     leaf number-of-array-layers {
493       type uint8;
494       mandatory true;
495       description "Number of array layers array elements are shaped into - Q";
496     }
497
498     leaf horizontal-spacing {
499       type decimal64 {
500             fraction-digits 5;
501         }
502       units Meter;
503
504       description "Average distance between centers of nearby AE in horizontal direction (in array coordinates system)";
505     }
506
507     leaf vertical-spacing{
508       type decimal64 {
509             fraction-digits 5;
510         }
511       units Meter;
512
513       description "Average distance between centers of nearby AE in vertical direction (in array coordinates system)";
514     }
515
516     container normal-vector-direction {
517       description
518         "Counter-clockwise rotation around z and y axis.";
519
520       leaf azimuth-angle{
521         type decimal64 {
522           fraction-digits 4;
523           }
524         units Degrees;
525
526         description "Azimuth angle, counter-clockwise rotation around z-axis. Value 'zero' points to broad-side, value '90' points to y-axis";
527       }
528        leaf zenith-angle{
529          type decimal64 {
530           fraction-digits 4;
531           }
532         units Degrees;
533
534         description "Zenith angle, counter-clockwise rotation around y-axis. Value 'zero' points to zenith, value '90' points to horizon";
535        }
536     }
537
538     container leftmost-bottom-array-element-position {
539       description "Structure describing position of leftmost, bottom array element.";
540       leaf x {
541         type decimal64 {
542           fraction-digits 4;
543           }
544         units Meter;
545
546         description "X dimension of position of leftmost, bottom array element";
547       }
548
549       leaf y {
550         type decimal64 {
551           fraction-digits 4;
552           }
553         units Meter;
554
555         description "Y dimension of position of leftmost, bottom array element";
556       }
557
558       leaf z {
559         type decimal64 {
560           fraction-digits 4;
561           }
562         units Meter;
563
564         description "Z dimension of position of leftmost, bottom array element";
565       }
566     }
567     list polarisations {
568       key "p";
569       min-elements 1;
570       max-elements 2;
571
572       description
573         "List of supported polarisations.";
574
575       leaf p {
576       type uint8;
577       mandatory true;
578       description
579         "Polarisation index. See CUS-plane";
580       }
581
582       leaf polarisation {
583         type polarisation_type;
584         mandatory true;
585         description "Type of polarisation supported by array.";
586       }
587     }
588     leaf band-number {
589       type leafref {
590         path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
591       }
592       mandatory true;
593       description
594         "This parameter informing which frequency band particular antenna
595          array is serving for.
596          Intended use is to deal with multiband solutions.";
597     }
598   }
599
600   grouping array-choice {
601     choice antenna-type {
602       case tx {
603         leaf tx-array-name {
604           type leafref {
605             path "/o-ran-uplane-conf:user-plane-configuration/o-ran-uplane-conf:tx-arrays/o-ran-uplane-conf:name";
606           }
607
608           description
609             "Leafref to tx array if such is choosen";
610         }
611       }
612       case rx {
613         leaf rx-array-name {
614           type leafref {
615             path "/o-ran-uplane-conf:user-plane-configuration/o-ran-uplane-conf:rx-arrays/o-ran-uplane-conf:name";
616           }
617
618           description
619             "Leafref to rx array if such is choosen";
620         }
621       }
622       description
623         "Choice for antenna type";
624     }
625     description
626       "Elements which groups choice for antenna type";
627   }
628
629   grouping scs-config {
630     description
631       "It groups all parameters related to SCS configuration";
632
633     leaf frame-structure {
634       type uint8;
635
636       description
637         "This parameter defines the frame structure. The first 4 bits define the FFT/iFFT size
638         being used for all IQ data processing related to this message.
639         The second 4 bits define the sub carrier spacing as well as the number of slots per 1ms sub-frame
640         according to 3GPP TS 38.211, taking for completeness also 3GPP TS 36.211 into account";
641     }
642
643     leaf cp-type {
644       type enumeration {
645         enum NORMAL {
646           description
647             "Normal cyclic prefix";
648         }
649
650         enum EXTENDED {
651           description
652             "Extended cyclic prefix";
653         }
654       }
655
656       description
657         "Provides type of CP (cyclic prefix) if section type 3 is not used or type of CP cannot be determined from cpLength.";
658     }
659
660     leaf cp-length {
661       type uint16;
662       units Ts;
663       mandatory true;
664       description
665         "Used for symbol 0 for NR & LTE, and symbol 7*2u for NR.
666         See CUS-plane";
667     }
668
669     leaf cp-length-other {
670       type uint16;
671       units Ts;
672       mandatory true;
673       description
674         "Used for other symbols than by cp-length above";
675     }
676
677     leaf offset-to-absolute-frequency-center {
678       type int32;
679       mandatory true;
680       description
681         "This provides value of freqOffset to be used if section type 3 is not used. See freqOffset in CUS-plane.
682          offset-to-absolute-frequency-center defines the relative spacing between the center of RE#0 of RB#0 to the center-of-channel-bandwidth.
683          If offset-to-absolute-frequency-center for NR with SCS=15kHz is odd,
684          it implies that 7.5kHz shift as indicated by the parameter frequencyShift7p5khz for UL is applied.
685          When type (in tx/rx-array-carrier) is DSS, “offset-to-absolute-frequency-center” indicates the 1st RE of 1st RB of NR.";
686     }
687
688     list number-of-prb-per-scs {
689       key scs;
690       description
691         "List of configured for each SCS that will be used.";
692
693       leaf scs {
694         type mcap:scs-config-type;
695         description
696           "Value corresponds to SCS values defined for frameStructure in C-plane.
697           Note: set of allowed values is restricted by SCS derived from values in supported-frame-structures.";
698       }
699
700       leaf number-of-prb {
701         type uint16;
702         mandatory true;
703         description
704           "Determines max number of PRBs that will be used in all sections per one symbol.
705           This is affecting allocation of resources to endpoint. Value shall not exceed constrains
706           defined by max-prb-per-symbol of endpoint type. In addition sum (over all used epoints
707           within a group of endpoints sharing resources) of number-of-prb rounded up to
708           nearest value from prb-capacity-allocation-granularity shall not exceed max-prb-per-symbol of the group.";
709       }
710     }
711   }
712
713   grouping tx-common-array-carrier-elements {
714     description
715       "This grouping containes all common parameters for tx-array-carriers and rx-array-carriers";
716
717     leaf absolute-frequency-center {
718       type uint32;
719       status deprecated;
720       description
721         "deprecated in version 5.0.0 and replaced with offset-to-absolute-frequency-center
722         and common FREF translated from absolute-frequency-center (NREF) as defined in 38.104";
723     }
724
725     leaf center-of-channel-bandwidth {
726       type uint64;
727           units Hz;
728       mandatory true;
729       description
730         "Center frequency of channel bandwidth in Hz. Common for all numerologies.
731          center-of-channel-bandwidth is the FREF translated from absolute-frequency-center (NREF) as per 3GPP TS 38.104";
732     }
733
734     leaf channel-bandwidth {
735       type uint64;
736       units Hz;
737       mandatory true;
738
739       description
740         "Width of carrier given in Hertz";
741     }
742
743     leaf active {
744       type enumeration {
745         enum INACTIVE {
746               description
747                 "carrier does not provide signal - transmission is disabled";
748             }
749         enum SLEEP{
750               description
751                 "carrier is fully configured and was active but is energy saving mode";
752             }
753         enum ACTIVE{
754               description
755                 "carrier is fully configured and properly providing the signal";
756             }
757       }
758       default INACTIVE;
759
760       description
761         "Indicates if transmission is enabled for this array carriers. Note that Netconf server uses state parameter
762         to indicate actual state of array carriers operation. When array carriers is in sleep status,
763         Netconf server rejects all other operation request to tx-array-carriers object except either request to change from sleep
764         to active status or delete MO operation (see 4.8) to the object.";
765     }
766
767     leaf state {
768       type enumeration {
769         enum DISABLED {
770           description
771             "array carrier is not active - transmission of signal is disabled.";
772         }
773         enum BUSY {
774           description
775             "array carrier is processing an operation requested by change of active parameter.
776             When array carriers is BUSY the transmission of signal is not guaranteed.";
777         }
778         enum READY {
779           description
780             "array carrier had completed activation operation - is active and transmission of signal is ongoing.";
781         }
782       }
783       config false;
784       mandatory true;
785       description
786         "Indicates state of array carriers activation operation";
787     }
788
789     leaf type {
790       type enumeration {
791         enum NR {
792               description
793                 "5G technology";
794         }
795         enum LTE {
796               description
797                 "LTE technology";
798         }
799         enum DSS_LTE_NR {
800           if-feature mcap:DSS_LTE_NR;
801               description
802                 "NR and LTE technologies in Dynamic Spectrum Sharing mode";
803         }
804       }
805       description
806         "Type of carrier. Indicates array-carrier technology.";
807     }
808
809     leaf duplex-scheme {
810       type enumeration {
811         enum TDD {
812               description
813                 "TDD scheme";
814             }
815         enum FDD {
816               description
817                 "FDD scheme";
818         }
819       }
820       config false;
821
822       description
823         "Type of duplex scheme O-RU supports.";
824     }
825     leaf rw-duplex-scheme {
826       type leafref {
827         path "/user-plane-configuration/tx-array-carriers[name=current()/../name]" + "/duplex-scheme";
828         require-instance false;
829       }
830       description
831         "Config true type of duplex scheme.";
832     }
833     leaf rw-type {
834       type leafref {
835         path "/user-plane-configuration/tx-array-carriers[name=current()/../name]" + "/type";
836         require-instance false;
837       }
838       description
839         "Config true type of carrier.";
840     }
841   }
842
843   grouping rx-common-array-carrier-elements {
844     description
845       "This grouping containes all common parameters for tx-array-carriers and rx-array-carriers";
846
847     leaf absolute-frequency-center {
848       type uint32;
849       status deprecated;
850       description
851         "deprecated in version 5.0.0 and replaced with offset-to-absolute-frequency-center
852         and common FREF translated from absolute-frequency-center (NREF) as defined in 38.104";
853     }
854
855     leaf center-of-channel-bandwidth {
856       type uint64;
857           units Hz;
858       mandatory true;
859       description
860         "Center frequency of channel bandwidth in Hz. Common for all numerologies.
861          center-of-channel-bandwidth is the FREF translated from absolute-frequency-center (NREF) as per 3GPP TS 38.104";
862     }
863
864     leaf channel-bandwidth {
865       type uint64;
866       units Hz;
867       mandatory true;
868
869       description
870         "Width of carrier given in Hertz";
871     }
872
873     leaf active {
874       type enumeration {
875         enum INACTIVE {
876               description
877                 "carrier does not provide signal - transmission is disabled";
878             }
879         enum SLEEP{
880               description
881                 "carrier is fully configured and was active but is energy saving mode";
882             }
883         enum ACTIVE{
884               description
885                 "carrier is fully configured and properly providing the signal";
886             }
887       }
888       default INACTIVE;
889
890       description
891         "Indicates if transmission is enabled for this array carriers. Note that Netconf server uses state parameter
892         to indicate actual state of array carriers operation. When array carriers is in sleep status,
893         Netconf server rejects all other operation request to tx-array-carriers object except either request to change from sleep
894         to active status or delete MO operation (see 4.8) to the object.";
895     }
896
897     leaf state {
898       type enumeration {
899         enum DISABLED {
900           description
901             "array carrier is not active - transmission of signal is disabled.";
902         }
903         enum BUSY {
904           description
905             "array carrier is processing an operation requested by change of active parameter.
906             When array carriers is BUSY the transmission of signal is not guaranteed.";
907         }
908         enum READY {
909           description
910             "array carrier had completed activation operation - is active and transmission of signal is ongoing.";
911         }
912       }
913       config false;
914       mandatory true;
915       description
916         "Indicates state of array carriers activation operation";
917     }
918
919     leaf type {
920       type enumeration {
921         enum NR {
922               description
923                 "5G technology";
924         }
925         enum LTE {
926               description
927                 "LTE technology";
928         }
929         enum DSS_LTE_NR {
930           if-feature mcap:DSS_LTE_NR;
931               description
932                 "NR and LTE technologies in Dynamic Spectrum Sharing mode";
933         }
934       }
935       description
936         "Type of carrier. Indicates array-carrier technology.";
937     }
938
939     leaf duplex-scheme {
940       type enumeration {
941         enum TDD {
942               description
943                 "TDD scheme";
944             }
945         enum FDD {
946               description
947                 "FDD scheme";
948         }
949       }
950       config false;
951
952       description
953         "Type of duplex scheme O-RU supports.";
954     }
955   }
956
957   grouping endpoint-section-capacity {
958     leaf max-control-sections-per-data-section {
959       type uint8 {
960         range "1..12";
961       }
962       description
963         "Max number of C-plane sections (C-plane section is part of C-plane message that carries 'section fields')
964         referring to same U-plane section (U-plane section is part of U-plane message that carries
965         'section header fields' and 'PRB fields') that is supported by endpoint.
966         Note that additional limitations specific for each section type apply on top of this number.";
967     }
968     leaf max-sections-per-symbol {
969       type uint16;
970       description
971         "Max number of sections within one symbol that can be processed by endpoint
972         or processed collectively by group of endpoints sharing capacity";
973     }
974     leaf max-sections-per-slot {
975       type uint16;
976       description
977         "Max number of sections within one slot that can be processed by endpoint
978         or processed collectively by group of endpoints sharing capacity.";
979     }
980     leaf max-highest-priority-sections-per-slot {
981       must "current()<../max-sections-per-slot" {
982         error-message "the sectionID for the highest priority needs to be less than the max sectionIds per slot";
983       }
984       type uint16;
985       description
986         "Max number of highest priority sections within one slot that can be processed by endpoint or processed  collectively by
987         group of endpoints sharing capacity. This leaf applies only when coupling-via-frequency-and-time-with-priorities-optimized
988         is true, in other instances this leaf is ignored by the O-RU. The sectionId for highest priority section descriptions shall
989         start from 0 to specified max value and is a subset of max-sections-per-slot and must be less than max-sections-per-slot.";
990     }
991
992     leaf max-remasks-per-section-id {
993       type uint8 {
994         range "1..12";
995       }
996       default 12;
997       description
998         "maximum number of different reMask values that is applied to a PRB
999         within one section id. This value can be processed by endpoint
1000         or processed collectively by group of endpoints sharing capacity";
1001     }
1002
1003     description
1004       "Parameters describing section capacity where section is undestood as number of different sectionId values";
1005   }
1006
1007   grouping endpoint-beam-capacity {
1008     leaf max-beams-per-symbol {
1009       type uint16;
1010       description
1011         "Max number of beams within one symbol that can be processed by endpoint
1012         or processed collectively by group of endpoints sharing capacity";
1013     }
1014     leaf max-beams-per-slot {
1015       type uint16;
1016       description
1017         "Max number of beams within one slot that can be processed by endpoint
1018         or processed collectively by group of endpoints sharing capacity";
1019     }
1020
1021     description
1022       "Parameters describing beam capacity where number of beams is understood as number of different beamId values";
1023   }
1024
1025   grouping endpoint-prb-capacity {
1026     leaf max-prb-per-symbol {
1027       type uint16;
1028       description
1029         "Max number of prbs within one symbol that can be processed by endpoint
1030         or processed collectively by group of endpoints sharing capacity";
1031     }
1032
1033     description
1034       "Attributes presenting processing capacity related to PRB.";
1035   }
1036
1037   grouping endpoint-numerology-capacity {
1038     leaf max-numerologies-per-symbol {
1039       type uint16;
1040       description
1041         "Max number of numerologies within one symbol that can be processed by endpoint
1042         or processed collectively by group of endpoints sharing capacity";
1043     }
1044
1045     description
1046       "Attributes presenting processing capacity related to numerology.
1047
1048       This leaf contains valid data only when multiple-numerology-supported
1049       is set to true.";
1050   }
1051
1052   grouping endpoint-static-config-support {
1053     leaf static-config-supported {
1054       type enumeration {
1055         enum NONE {
1056           description
1057             "The endpoint does not support static PRACH / SRS configuration.
1058              Reception of PRACH / SRS is possible through real time C-Plane messages
1059              if other endpoint capabilities allow for that.";
1060         }
1061         enum PRACH {
1062           if-feature mcap:PRACH-STATIC-CONFIGURATION-SUPPORTED;
1063           description
1064             "The endpoint supports statically configured PRACH reception";
1065         }
1066         enum SRS {
1067           if-feature mcap:SRS-STATIC-CONFIGURATION-SUPPORTED;
1068           description
1069             "The endpoint supports statically configured SRS reception";
1070         }
1071       }
1072       default NONE;
1073
1074       description
1075         "The parameter informs if endpoint can be statically configured to process PRACH or SRS reception";
1076     }
1077
1078     leaf max-prach-patterns {
1079       when "(/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'PRACH')";
1080       type uint8;
1081         description
1082           "Maximum number of PRACH patterns the endpoint can handle in PRACH configuration";
1083     }
1084
1085     leaf max-srs-patterns {
1086       when "(/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'SRS')";
1087       type uint8;
1088         description
1089           "Maximum number of SRS patterns the endpoint can handle in SRS configuration";
1090     }
1091
1092     description
1093       "Endpoint's capabilities related to static PRACH / SRS configuration.";
1094   }
1095
1096   grouping endpoint-tdd-pattern-support {
1097     leaf configurable-tdd-pattern-supported {
1098       if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
1099       type boolean;
1100       default false;
1101
1102       description
1103         "The parameter informs if endpoint supports configuration for TDD pattern";
1104     }
1105
1106     leaf tdd-group {
1107       type uint8;
1108       description
1109         "Parameter is used to group static-low-level-[tr]x-endpoints.
1110         Note: [tr]x-array-carriers using static-low-level-[tr]x-endpoints
1111         having the same value of tdd-group, must have the same TDD switching
1112         points and the same directions to the air interface granted - regardless TDD switching
1113         is controlled by M-Plane or by C-Plane";
1114     }
1115
1116     description
1117       "This grouping exposes static-low-level-[tr]x-endpoint's capabilities related to its support for configurable
1118       TDD patterns and limitations regarding common TDD switching per groups of endpoints.";
1119   }
1120
1121   grouping uplane-conf-group {
1122     description
1123       "Grouping for uplane configuration related parameters";
1124
1125     list low-level-tx-links {
1126       key name;
1127       description
1128         "Object model for low-level-tx-link configuration";
1129
1130       leaf name {
1131         type string;
1132         description
1133           "Unique name of low-level-tx-link object.";
1134       }
1135
1136       leaf processing-element {
1137         type leafref {
1138           path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name";
1139         }
1140         mandatory true;
1141         description
1142           "Contains name of processing-element to be used as transport by low-level-tx-link";
1143       }
1144
1145       leaf tx-array-carrier {
1146         type leafref {
1147           path "/user-plane-configuration/tx-array-carriers/name";
1148         }
1149         mandatory true;
1150         description
1151           "Contains name of tx-array-carriers MO to be used as transport by low-level-tx-link";
1152       }
1153
1154       leaf low-level-tx-endpoint {
1155         type leafref {
1156           path "/user-plane-configuration/low-level-tx-endpoints/name";
1157         }
1158         mandatory true;
1159         description
1160           "Contains name of low-level-tx-endpoints MO to be used as transport by low-level-tx-link";
1161       }
1162     }
1163
1164     list low-level-rx-links {
1165       key name;
1166       description
1167         "Object model for low-level-rx-links configuration";
1168
1169       leaf name {
1170         type string;
1171
1172         description
1173           "Unique name of low-level-rx-links object.";
1174       }
1175
1176       leaf processing-element {
1177         type leafref {
1178           path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name";
1179         }
1180         mandatory true;
1181         description
1182           "Contains name of processing-element to be used as transport by LowLevelTxLink";
1183       }
1184
1185       leaf rx-array-carrier {
1186         type leafref {
1187           path "/user-plane-configuration/rx-array-carriers/name";
1188         }
1189         mandatory true;
1190
1191         description
1192           "Contains name of rx-array-carriers MO to be used as transport by low-level-rx-links";
1193       }
1194
1195       leaf low-level-rx-endpoint {
1196         type leafref {
1197           path "/user-plane-configuration/low-level-rx-endpoints/name";
1198         }
1199         mandatory true;
1200
1201         description
1202           "Contains name of low-level-rx-endpoints MO to be used as transport by low-level-rx-links";
1203       }
1204
1205       leaf user-plane-uplink-marking {
1206         type leafref {
1207           path "/o-ran-pe:processing-elements/o-ran-pe:enhanced-uplane-mapping/o-ran-pe:uplane-mapping/o-ran-pe:up-marking-name";
1208         }
1209         description
1210           "Parameter to set the non-default marking for user-plane";
1211       }
1212     }
1213
1214     list endpoint-types {
1215       key "id";
1216       config false;
1217       description
1218         "Properties of endpoint that are common to multiple endpoints if such are identified";
1219
1220       leaf id {
1221         type uint16;
1222         description
1223           "Identifies type of endpoints sharing same properties. Values shall start with 0 and shall be allocated without gaps.";
1224       }
1225
1226       list supported-section-types {
1227         key "section-type";
1228         description
1229           "Indicates section types and extensions endpoints of this type support";
1230
1231         leaf section-type {
1232           type uint8;
1233
1234           description
1235             "This parameter determines the characteristics of U-plane data to be transferred or received from a beam with one pattern id.";
1236         }
1237
1238         leaf-list supported-section-extensions {
1239           type uint8;
1240
1241           description
1242             "This parameter provides the extension types supported by the O-RU
1243             which provides additional parameters specific to the subject data extension";
1244         }
1245       }
1246
1247       leaf-list supported-frame-structures {
1248         type uint8;
1249
1250         description
1251           "List of supported values of frame structure";
1252       }
1253
1254       leaf managed-delay-support {
1255         type enumeration {
1256           enum MANAGED {
1257             description
1258               "Time managed delays are supported";
1259           }
1260
1261           enum NON_MANAGED {
1262             description
1263               "Non time managed delays are supported";
1264           }
1265
1266           enum BOTH {
1267             description
1268               "Both time managed and non time managed delays are supported";
1269           }
1270         }
1271
1272         description
1273           "Type of delay supported by the endpoint";
1274       }
1275
1276       leaf multiple-numerology-supported {
1277         type boolean;
1278         default true;
1279         description
1280           "Indicates whether the endpoint type supports multiple numerologies";
1281       }
1282
1283       leaf max-numerology-change-duration {
1284         type uint16 {
1285           range "0..10000";
1286         }
1287
1288         units Ts;
1289         description
1290           "Maximum gap of endpoint operation that will be caused by changing of
1291           numerology.
1292
1293           This time is required for reconfiguration and flushing of pipes.
1294
1295           This leaf contains valid data only when multiple-numerology-supported
1296           is set to true.";
1297       }
1298
1299       uses endpoint-section-capacity;
1300       uses endpoint-beam-capacity;
1301       uses endpoint-prb-capacity;
1302
1303       leaf-list prb-capacity-allocation-granularity {
1304         type uint16;
1305
1306         description
1307           "List of capacity allocation steps. O-RU allocates PRB capacity rounding it up to nearest value N
1308           from prb-capacity-allocation-granularity such that M >= number-of-prb-per-scs.
1309           See also number-of-prb-per-scs/number-of-prb.";
1310       }
1311
1312       uses endpoint-numerology-capacity;
1313     }
1314
1315     list endpoint-capacity-sharing-groups {
1316       key "id";
1317       config false;
1318       description
1319         "Represents groups of endpoints that share capacity. Depending on O-RU implementation,
1320         processing resources that handle CU-plane (e.g. memory to keep sections and beams)
1321         could be allocated per endpoint or shared between several endpoints.
1322         To address this O-RU shall reports own capability per endpoint (see endpoint-types)
1323         and per group of endpoints sharing capacity.
1324         If endpoint is in multiple groups then resulting constraint is minimum over all groups.
1325         Note: values of parameters representing capacity that is not shared between endpoints in a group
1326               shall be set to max value of specific parameter; this effectively removes related constraint.";
1327
1328       leaf id {
1329         type uint16;
1330         description
1331           "Identifies group of endpoints sharing resources.
1332           Values shall start with 0 and shall be allocated without gaps.";
1333       }
1334       uses endpoint-section-capacity;
1335       uses endpoint-beam-capacity;
1336       uses endpoint-prb-capacity;
1337       uses endpoint-numerology-capacity;
1338
1339       leaf max-endpoints {
1340         type uint16;
1341         description
1342           "Indicates how many endpoints in the group can be used4 simultaneously";
1343       }
1344       leaf max-managed-delay-endpoints {
1345         type uint16;
1346         description
1347           "Number of endpoints supporting managed delay that can be used (configured for use) at a time";
1348       }
1349       leaf max-non-managed-delay-endpoints {
1350         type uint16;
1351         description
1352           "Number of endpoints supporting non-managed delay that can be used (configured for use) at a time";
1353       }
1354     }
1355
1356     list endpoint-prach-group  {
1357       key "id";
1358       config false;
1359       description
1360         "Represents group of a series of PRACH preamble formats";
1361
1362       leaf id {
1363         type uint16;
1364         description
1365           "Identifies group of PRACH preamble formats.";
1366       }
1367
1368       leaf-list supported-prach-preamble-formats {
1369         type prach-preamble-format;
1370         min-elements 1;
1371         description
1372           "the list of PRACH preamble formats supported by the endpoint-type that is
1373           applicable to static-low-level-rx-endpoints in the O-RU";
1374       }
1375
1376     }
1377
1378     list supported-compression-method-sets {
1379       key "id";
1380       config false;
1381       description
1382         "List of available compression methods supported by device";
1383
1384       leaf id {
1385         type uint16;
1386         description
1387           "Identification number for compression method set";
1388       }
1389
1390       list compression-method-supported {
1391         uses cf:compression-parameters;
1392
1393         leaf-list fs-offset {
1394           if-feature cf:CONFIGURABLE-FS-OFFSET;
1395           type uint8;
1396           default 0;
1397           description
1398             "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1399              Please refer to CU-Plane specification for details";
1400
1401         }
1402         description
1403           "List of supported compression methods by O-RU
1404            Note: if O-RU supports different compression methods per endpoint
1405                  then please refer to endpoints to have information what
1406                  exactly is supported on paticular endpoint";
1407       }
1408     }
1409
1410     list static-low-level-tx-endpoints {
1411       key name;
1412       config false;
1413       description
1414         "Object model for static-low-level-tx-endpoints configuration";
1415
1416       leaf name {
1417         type string;
1418
1419         description
1420           "Unique name of static-low-level-tx-endpoints object.";
1421       }
1422
1423       leaf-list restricted-interfaces {
1424         type leafref {
1425           path "/if:interfaces/if:interface/if:name";
1426         }
1427         description
1428           "Optionally used to indicate that a low-level link is constrained to operate only via a subset of the available interfaces.";
1429       }
1430
1431       leaf array {
1432         type leafref {
1433           path "/user-plane-configuration/tx-arrays/name";
1434         }
1435         mandatory true;
1436         description
1437           "Contains distname of tx-arrays, particular low-level-tx-endpoints is in hardware dependency with.
1438           Note: single instance of tx-arrays can be referenced by many instances of low-level-tx-endpoints
1439           (e.g. to allow DU to handle multiple fronthauls and multiple component carriers).";
1440       }
1441
1442       leaf endpoint-type {
1443         type leafref {
1444           path "../../endpoint-types/id";
1445         }
1446
1447         description
1448           "Reference to endpoint type capabilities list element supported by this endpoint";
1449       }
1450
1451       leaf-list capacity-sharing-groups {
1452         type leafref {
1453           path "../../endpoint-capacity-sharing-groups/id";
1454         }
1455
1456         description
1457           "Reference to capacities of sharing-groups supported by this endpoint";
1458       }
1459
1460       list supported-reference-level {
1461         if-feature TX-REFERENCE-LEVEL;
1462         key "id";
1463         description
1464           "Informs about supported ranges for gain reference level.";
1465
1466         leaf id {
1467           type uint16;
1468           description
1469             "Identification number for particular range";
1470         }
1471
1472         leaf min {
1473           type decimal64 {
1474             fraction-digits 4;
1475           }
1476           units dB;
1477           mandatory true;
1478           description
1479             "Minimum of supported gain reference level";
1480         }
1481
1482         leaf max {
1483           type decimal64 {
1484             fraction-digits 4;
1485           }
1486           units dB;
1487           mandatory true;
1488           description
1489             "Maximum of supported gain reference level";
1490         }
1491       }
1492
1493       container compression {
1494         description
1495           "Container collecting compression related parameters.";
1496
1497         leaf dynamic-compression-supported {
1498           type boolean;
1499
1500           description
1501             "Informs if endpoint supports dynamic compression method";
1502         }
1503
1504         leaf realtime-variable-bit-width-supported {
1505           type boolean;
1506
1507           description
1508             "Informs if endpoint supports realtime variable bit with";
1509         }
1510
1511         leaf supported-compression-set-id {
1512           type leafref {
1513             path "../../../supported-compression-method-sets/id";
1514           }
1515
1516           description
1517             "Id of supported compression set for this endpoint";
1518         }
1519       }
1520
1521       uses endpoint-tdd-pattern-support;
1522
1523     }
1524
1525     list static-low-level-rx-endpoints {
1526       key name;
1527       config false;
1528       description
1529         "Object model for static-low-level-rx-endpoints configuration";
1530
1531       leaf name {
1532         type string;
1533
1534         description
1535           "Unique name of static-low-level-rx-endpoints object.";
1536       }
1537
1538       leaf-list restricted-interfaces {
1539         type leafref {
1540           path "/if:interfaces/if:interface/if:name";
1541         }
1542         description
1543           "Optionally used to indicate that a low-level link is constrained to operate only via a subset of the available interfaces.";
1544       }
1545
1546       leaf array {
1547         type leafref {
1548           path "/user-plane-configuration/rx-arrays/name";
1549         }
1550         mandatory true;
1551         description
1552           "Contains distname of rx-arrays, particular low-level-rx-endpoints is in hardware dependency with.
1553           Note: single instance of rx-arrays can be referenced by many instances of low-level-rx-endpoints
1554           (e.g. to allow DU to handle multiple fronthauls and multiple component carriers).";
1555       }
1556
1557       leaf endpoint-type {
1558         type leafref {
1559           path "../../endpoint-types/id";
1560         }
1561
1562         description
1563           "Reference to endpoint type capabilities list element supported by this endpoint";
1564       }
1565
1566       leaf-list capacity-sharing-groups {
1567         type leafref {
1568           path "../../endpoint-capacity-sharing-groups/id";
1569         }
1570
1571         description
1572           "Reference to capacities of sharing-groups supported by this endpoint";
1573       }
1574
1575       leaf prach-group {
1576         type leafref {
1577           path "../../endpoint-prach-group/id";
1578           require-instance false;
1579         }
1580         description
1581           "An optional leaf used for those rx endpoints that support PRACH, indicating
1582           the group id describing the set of of PRACH preambles supported";
1583       }
1584
1585       container compression {
1586         description
1587           "Container collecting compression related parameters.";
1588
1589         leaf dynamic-compression-supported {
1590           type boolean;
1591
1592           description
1593             "Informs if endpoint supports dynamic compression method";
1594         }
1595
1596         leaf realtime-variable-bit-width-supported {
1597           type boolean;
1598
1599           description
1600             "Informs if endpoint supports realtime variable bit with";
1601         }
1602
1603         leaf supported-compression-set-id {
1604           type leafref {
1605             path "../../../supported-compression-method-sets/id";
1606           }
1607
1608           description
1609             "Id of supported compression set for this endpoint";
1610         }
1611       }
1612
1613       uses endpoint-static-config-support;
1614
1615       uses endpoint-tdd-pattern-support;
1616
1617     }
1618
1619     list low-level-tx-endpoints {
1620       key "name";
1621
1622       description
1623         "Object model for low-level-tx-endpoints configuration - augmented static-low-level-tx-endpoints by local-address
1624         which cannot be added to static low-level-tx-endpoints as we cannot have modificable element in static object";
1625
1626       leaf name {
1627         type leafref {
1628           path "/user-plane-configuration/static-low-level-tx-endpoints/name";
1629           require-instance false;
1630         }
1631         mandatory true;
1632
1633         description
1634           "Unique name of low-level-tx-endpoint object. Reference to static object";
1635       }
1636
1637       container compression {
1638         presence
1639           "This container shall exists to avoid missaligned compression
1640           methods between devices";
1641
1642         description
1643           "Container which consists of global configurable parameters for compression";
1644
1645         uses cf:compression-details;
1646
1647         leaf fs-offset {
1648           if-feature cf:CONFIGURABLE-FS-OFFSET;
1649           type uint8;
1650           default 0;
1651           description
1652             "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1653              Please refer to CU-Plane specification for details";
1654         }
1655
1656         list dynamic-compression-configuration {
1657           when "../compression-type = 'DYNAMIC'";
1658           key "id";
1659           unique "compression-method iq-bitwidth fs-offset";
1660           description
1661             "List of possible configuration in case dynamic configuration is used
1662              Note: In case of empty list all available compressions can be choosen dynamically
1663                    and default fs-offset is taken (0).";
1664
1665           leaf id {
1666             type uint16;
1667             description
1668               "Identification number for particular compression";
1669           }
1670
1671           uses cf:compression-method-grouping;
1672
1673           leaf fs-offset {
1674             if-feature cf:CONFIGURABLE-FS-OFFSET;
1675             type uint8;
1676             default 0;
1677             description
1678               "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1679                Please refer to CU-Plane specification for details";
1680           }
1681         }
1682       }
1683
1684       uses scs-config;
1685
1686       container e-axcid {
1687         uses eaxc;
1688
1689         description
1690           "Contains local address of low level TX endpoint offered by Netconf server.";
1691       }
1692
1693       uses coupling-methods;
1694
1695       leaf configurable-tdd-pattern-supported {
1696         type leafref {
1697           path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/configurable-tdd-pattern-supported";
1698           require-instance false;
1699         }
1700         description "RO to RW parameter mapping - needed for conditional under tx-array-carrier";
1701       }
1702     }
1703
1704     list low-level-rx-endpoints {
1705       key name;
1706
1707       description
1708         "Object model for low-level-rx-endpoint configuration - augmented static-low-level-rx-endpoints by local-address
1709         which cannot be added to static low-level-rx-endpoints as we cannot have modificable element in static object";
1710
1711       leaf name {
1712         type leafref {
1713           path "/user-plane-configuration/static-low-level-rx-endpoints/name";
1714           require-instance false;
1715         }
1716         mandatory true;
1717
1718         description
1719           "Unique name of low-level-rx-endpoint object. Reference to static object";
1720       }
1721
1722       container compression {
1723         description
1724           "Container which consists of global configurable parameters for compression";
1725
1726         uses cf:compression-details;
1727
1728         leaf fs-offset {
1729           if-feature cf:CONFIGURABLE-FS-OFFSET;
1730           type uint8;
1731           default 0;
1732           description
1733             "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1734              Please refer to CU-Plane specification for details";
1735         }
1736
1737         list dynamic-compression-configuration {
1738           when "../compression-type = 'DYNAMIC'";
1739           key "id";
1740           unique "compression-method iq-bitwidth fs-offset";
1741           description
1742             "List of possible configuration in case dynamic configuration is used
1743              Note: In case of empty list all available compressions can be choosen dynamically
1744                    and default fs-offset is taken (0).";
1745
1746           leaf id {
1747             type uint16;
1748             description
1749               "Identification number for particular compression";
1750           }
1751
1752           uses cf:compression-method-grouping;
1753
1754           leaf fs-offset {
1755             if-feature cf:CONFIGURABLE-FS-OFFSET;
1756             type uint8;
1757             default 0;
1758             description
1759               "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1760                Please refer to CU-Plane specification for details";
1761           }
1762         }
1763       }
1764
1765       uses scs-config;
1766
1767       list ul-fft-sampling-offsets {
1768         key scs;
1769         description
1770           "List of FFT sampling offsets configured for each SCS that will be used.
1771           Client shall configure one element for each SCS that will be used.";
1772
1773         leaf scs {
1774           type mcap:scs-config-type;
1775           description
1776             "Value corresponds to SCS values defined for frameStructure in C-plane
1777             Note: set of allowed values is restricted by SCS derived from values in supported-frame-structures.";
1778         }
1779
1780         leaf ul-fft-sampling-offset {
1781           type uint16;
1782
1783           units Ts;
1784           description
1785             "Determines time advance of capture window for FFT.
1786             Value represents time advance of capture window start in relation to the end of CP. Unit is Ts.
1787             Note: value of this parameter is usually set to '0' (zero) for PRACH channels.
1788             Any phase offset resulting from the non-zero value of this parameter is handled in O-DU.";
1789         }
1790       }
1791
1792       container e-axcid {
1793         uses eaxc;
1794
1795         description
1796           "Contains local address of low level RX endpoint offered by Netconf server.";
1797       }
1798
1799       leaf eaxc-gain-correction {
1800         if-feature EAXC-GAIN-CORRECTION;
1801         type decimal64 {
1802           fraction-digits 4;
1803         }
1804         units dB;
1805         default 0;
1806         description
1807           "eAxC specifc part of overall gain_correction.
1808            gain_correction = common array-carrier gain-correction + eAxC-gain-correction.";
1809       }
1810
1811       leaf non-time-managed-delay-enabled {
1812         type boolean;
1813         default false;
1814         description
1815           "Tells if non time managed delay shall be enabled";
1816       }
1817
1818       uses coupling-methods;
1819
1820       leaf static-config-supported {
1821         type leafref {
1822           path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/static-config-supported";
1823           require-instance false;
1824         }
1825         description "RO to RW parameter mapping - for further conditionals";
1826       }
1827
1828       leaf static-prach-configuration {
1829         when "(/user-plane-configuration/low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'PRACH')";
1830         type leafref {
1831           path "/user-plane-configuration/static-prach-configurations/static-prach-config-id";
1832         }
1833         description
1834           "This parameter creates reference to static PRACH configuration applicable for particular endpoint";
1835       }
1836
1837       leaf static-srs-configuration {
1838         when "(/user-plane-configuration/low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'SRS')";
1839         type leafref {
1840           path "/user-plane-configuration/static-srs-configurations/static-srs-config-id";
1841         }
1842         description
1843           "This parameter creates reference to static SRS configuration applicable for particular endpoint";
1844             }
1845
1846       leaf configurable-tdd-pattern-supported {
1847         type leafref {
1848           path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/configurable-tdd-pattern-supported";
1849           require-instance false;
1850         }
1851         description "RO to RW parameter mapping - needed for conditional under rx-array-carrier";
1852       }
1853     }
1854
1855     list tx-array-carriers {
1856       key name;
1857       description
1858         "Object model for tx-array-carriers configuration";
1859
1860       leaf name {
1861         type string;
1862
1863         description
1864           "Unique name of tx-array-carriers object.";
1865       }
1866
1867       uses tx-common-array-carrier-elements;
1868
1869       leaf band-number {
1870         if-feature mcap:LAA;
1871         type leafref {
1872           path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
1873           require-instance false;
1874         }
1875         description
1876           "This parameter informing which frequency band particular antenna
1877            array is serving for.
1878            Intended use is to deal with multiband solutions.";
1879       }
1880
1881       container lte-tdd-frame {
1882         when "(/user-plane-configuration/tx-array-carriers/rw-type = 'LTE') and  (/user-plane-configuration/tx-array-carriers/rw-duplex-scheme = 'TDD')";
1883         status deprecated;
1884         description
1885           "Container which consists of global configurable parameters for tdd Frame.
1886           This contained is deprecated due to introduction of TDD pattern configuration
1887           applicable in a common way for LTE and NR.";
1888
1889         leaf subframe-assignment {
1890           type enumeration {
1891             enum SAO {
1892               description "subframe assignment configuration 0";
1893             }
1894             enum SA1 {
1895               description "subframe assignment configuration 1";
1896             }
1897             enum SA2 {
1898               description "subframe assignment configuration 2";
1899             }
1900             enum SA3 {
1901               description "subframe assignment configuration 3";
1902             }
1903             enum SA4 {
1904               description "subframe assignment configuration 4";
1905             }
1906             enum SA5 {
1907               description "subframe assignment configuration 5";
1908             }
1909               enum SA6 {
1910                 description "subframe assignment configuration 6";
1911             }
1912           }
1913           mandatory true;
1914           description
1915             "Indicates DL/UL subframe configuration as specified in
1916             3GPP TS 36.211 [v15.3.0, table 4.2-2]";
1917         }
1918         leaf special-subframe-pattern {
1919           type enumeration {
1920             enum SPP0 {
1921               description "special subframe pattern configuration 0";
1922             }
1923             enum SPP1 {
1924               description "special subframe pattern configuration 1";
1925             }
1926             enum SPP2 {
1927               description "special subframe pattern configuration 2";
1928             }
1929             enum SPP3 {
1930               description "special subframe pattern configuration 3";
1931             }
1932             enum SPP4 {
1933               description "special subframe pattern configuration 4";
1934             }
1935             enum SPP5 {
1936               description "special subframe pattern configuration 5";
1937             }
1938             enum SPP6 {
1939               description "special subframe pattern configuration 6";
1940             }
1941             enum SPP7 {
1942               description "special subframe pattern configuration 7";
1943             }
1944             enum SPP8 {
1945               description "special subframe pattern configuration 8";
1946             }
1947             enum SPP9 {
1948               description "special subframe pattern configuration 9";
1949             }
1950             enum SPP10 {
1951               description "special subframe pattern configuration 10";
1952             }
1953           }
1954           mandatory true;
1955           description
1956             "Indicates TDD special subframe configuration as in TS 36.211
1957              [v15.3.0, table 4.2-1] ";
1958         }
1959       }
1960
1961       container laa-carrier-configuration {
1962         when "../band-number = 46";
1963         if-feature mcap:LAA;
1964         description "Container to specify LAA feature related carrier configuration.";
1965         uses laa-carrier-config;
1966       }
1967
1968       leaf gain {
1969         type decimal64 {
1970           fraction-digits 4;
1971         }
1972         units dB;
1973         mandatory true;
1974
1975         description
1976           "Transmission gain in dB. Value applicable to each array element carrier belonging to array carrier.";
1977       }
1978
1979       leaf downlink-radio-frame-offset {
1980         type uint32 {
1981           range 0..12288000;
1982         }
1983         mandatory true;
1984
1985         description
1986           "This parameter is used for offsetting the starting position of 10ms radio frame.
1987           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.
1988           Note2: Unit is 1/1.2288e9 s. Then, its range is calculated 0..12288000.";
1989       }
1990
1991       leaf downlink-sfn-offset {
1992         type int16 {
1993           range -32768..32767;
1994         }
1995         mandatory true;
1996
1997         description
1998           "This parameter is used for offsetting SFN value.
1999           Unit is in 10ms.
2000           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.";
2001       }
2002
2003       leaf reference-level {
2004         if-feature TX-REFERENCE-LEVEL;
2005         type decimal64 {
2006           fraction-digits 4;
2007         }
2008         units dB;
2009         default 0;
2010         description
2011           "Allows to adjust reference level for sum of IQ signal power over eAxCs in this array-carrier.";
2012       }
2013
2014       leaf configurable-tdd-pattern {
2015         when "not(/user-plane-configuration/low-level-tx-endpoints[name = string(/user-plane-configuration/low-level-tx-links[tx-array-carrier = current()/../name]/tx-array-carrier)]/configurable-tdd-pattern-supported = 'false')";
2016         if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
2017         type leafref {
2018           path "/user-plane-configuration/configurable-tdd-patterns/tdd-pattern-id";
2019         }
2020         description
2021           "This parameter creates reference to configuration for TDD pattern applicable for particular tx-array-carrier.
2022           The leaf may exist under tx-array-carrier only in case O-RU supports feature 'CONFIGURABLE-TDD-PATTERN-SUPPORTED'
2023           AND all low-level-tx-endpoints linked to this tx-array-carrier have configurable-tdd-pattern-supported = 'true'";
2024       }
2025     }
2026
2027     list rx-array-carriers {
2028       key name;
2029       description
2030         "Object model for rx-array-carriers configuration";
2031
2032           leaf name {
2033             type string;
2034             description
2035             "Unique name of rx-array-carriers object.";
2036       }
2037
2038       uses rx-common-array-carrier-elements;
2039
2040       leaf downlink-radio-frame-offset {
2041         type uint32 {
2042           range 0..12288000;
2043         }
2044         mandatory true;
2045
2046         description
2047           "This parameter is used for offsetting the starting position of 10ms radio frame.
2048           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.
2049           Note2: Unit is 1/1.2288e9 s. Then, its range is calculated 0..12288000.";
2050       }
2051
2052       leaf downlink-sfn-offset {
2053         type int16 {
2054           range -32768..32767;
2055         }
2056         mandatory true;
2057
2058         description
2059           "This parameter is used for offsetting SFN value.
2060           Unit is in 10ms.
2061           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.";
2062       }
2063
2064       leaf gain-correction {
2065         type decimal64 {
2066           fraction-digits 4;
2067
2068         }
2069         units dB;
2070         mandatory true;
2071         description
2072           "Gain correction of RF path linked with array element or array layers.
2073            Common part of overall gain_correction.
2074            gain_correction = common array-carrier gain-correction + eAxC gain correction.";
2075       }
2076
2077       leaf n-ta-offset {
2078         type uint32;
2079         units Tc;
2080         mandatory true;
2081         description
2082           "Value of configurable N-TA offset
2083           units are Tc=~0.5ns=1/1.96608GHz";
2084       }
2085
2086       leaf configurable-tdd-pattern {
2087         when "not(/user-plane-configuration/low-level-rx-endpoints[name = string(/user-plane-configuration/low-level-rx-links[rx-array-carrier = current()/../name]/rx-array-carrier)]/configurable-tdd-pattern-supported = 'false')";
2088         if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
2089         type leafref {
2090           path "/user-plane-configuration/configurable-tdd-patterns/tdd-pattern-id";
2091         }
2092         description
2093           "This parameter creates reference to configuration for TDD pattern applicable for particular rx-array-carrier.
2094            The leaf may exist under rx-array-carrier only in case O-RU supports feature 'CONFIGURABLE-TDD-PATTERN-SUPPORTED'
2095           AND all low-level-rx-endpoints linked to this rx-array-carrier have configurable-tdd-pattern-supported = 'true'";
2096       }
2097     }
2098
2099     list tx-arrays {
2100       key "name";
2101       config false;
2102       description
2103         "Structure describing TX array parameters";
2104
2105       uses parameters;
2106
2107       leaf max-gain {
2108         type decimal64 {
2109           fraction-digits 4;
2110
2111         }
2112         units dB;
2113         mandatory true;
2114         description
2115           "Max gain of RF path linked with array element (minimum over elements of array) or array layers";
2116       }
2117
2118       leaf independent-power-budget {
2119         type boolean;
2120         mandatory true;
2121         description
2122           "If true then every element of array has own, power budget independent from power budget of other elements.
2123           Else all elements of array that are at same row and column and have same polarization share power budget";
2124       }
2125
2126       list capabilities {
2127         description
2128           "List of capabilities related to this tx-array";
2129         uses mcap:support-for-dl;
2130       }
2131     }
2132
2133     list rx-arrays {
2134       key "name";
2135       config false;
2136       description "Structure describing RX array parameters";
2137
2138       uses parameters;
2139       container gain-correction-range {
2140         leaf max {
2141           type decimal64 {
2142             fraction-digits 4;
2143           }
2144           units dB;
2145           mandatory true;
2146           description "Array gain correction factor - maximum allowed value";
2147           }
2148         leaf min {
2149           type decimal64 {
2150             fraction-digits 4;
2151           }
2152           units dB;
2153           mandatory true;
2154           description "Array gain correction factor - minimum allowed value";
2155         }
2156
2157         description
2158           "Array gain correction factor";
2159       }
2160
2161       list capabilities {
2162         description
2163           "List of capabilities related to this rx-array";
2164         uses mcap:support-for-ul;
2165       }
2166     }
2167
2168     list relations {
2169       key "entity";
2170       config false;
2171       description "Structure describing relations between array elements";
2172
2173       leaf entity {
2174         type uint16;
2175
2176         description
2177           "Relation entity. Used as a key for list of relations.";
2178       }
2179
2180       container array1 {
2181         uses array-choice;
2182
2183         description
2184           "Defnes name for first array";
2185       }
2186       container array2 {
2187         uses array-choice;
2188
2189         description
2190           "Defnes name for second array";
2191       }
2192       list types {
2193         key "relation-type";
2194         description
2195           "Defines relation type and pairs for array elements for given arrays";
2196
2197         leaf relation-type {
2198           type enumeration {
2199             enum SHARED {
2200               description "SHARED";
2201             }
2202             enum COALOCATED {
2203               description "COALOCATED";
2204             }
2205           }
2206           description "Type of relation between array elements";
2207         }
2208         list pairs {
2209           key "element-array1";
2210           description
2211             "defines related array elements";
2212
2213           leaf element-array1 {
2214             type uint16;
2215
2216             description
2217               "Tells about id of element from array1";
2218           }
2219           leaf element-array2 {
2220             type uint16;
2221
2222             description
2223               "Tells about id of element from array2";
2224           }
2225         }
2226       }
2227     }
2228
2229     container eaxc-id-group-configuration {
2230       if-feature mcap:EAXC-ID-GROUP-SUPPORTED;
2231       description
2232         "This is the container for eAxC ID group configuration.";
2233       leaf max-num-tx-eaxc-id-groups {
2234         type leafref {
2235           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-tx-eaxc-id-groups";
2236           require-instance false;
2237         }
2238         description "eaxc-id-group-configuration";
2239       }
2240       leaf max-num-tx-eaxc-ids-per-group {
2241         type leafref {
2242           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-tx-eaxc-ids-per-group";
2243           require-instance false;
2244         }
2245         description "max-num-tx-eaxc-ids-per-group";
2246       }
2247       leaf max-num-rx-eaxc-id-groups {
2248         type leafref {
2249           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-rx-eaxc-id-groups";
2250           require-instance false;
2251         }
2252         description "max-num-rx-eaxc-id-groups";
2253       }
2254       leaf max-num-rx-eaxc-ids-per-group {
2255         type leafref {
2256           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-rx-eaxc-ids-per-group";
2257           require-instance false;
2258         }
2259         description "max-num-rx-eaxc-ids-per-group";
2260       }
2261
2262       list tx-eaxc-id-group {
2263         must "count(../tx-eaxc-id-group) <= ../max-num-tx-eaxc-id-groups" {
2264           error-message "too many tx-eaxcid-id groups";
2265         }
2266         key "representative-tx-eaxc-id";
2267         description
2268           "This is a list of the groups of the eAxC IDs assigned to low-level-tx-endpoints.
2269           Each group is a union of the 'member-tx-eaxc-id's and a 'representative-tx-eaxc-id'.
2270           The low-level-tx-endpoint associated to 'representative-tx-eaxc-id' is able to
2271           process the DL C-plane information for all the low-level-tx-endpoints associated
2272           to 'member-tx-eaxc-id's.
2273
2274           Take Note: This list should only contain eAxC IDs assigned to a tx-endpoint.";
2275
2276
2277         leaf representative-tx-eaxc-id {
2278           type uint16;
2279           description
2280             "This parameter contains eAxC_ID that populates content of C-Plane section
2281             extension 11 to eAxC_IDs configured in the group as 'member-tx-eaxc-id'(s).";
2282         }
2283         leaf-list member-tx-eaxc-id {
2284           type uint16;
2285           must "count(../member-tx-eaxc-id) <= ../../max-num-tx-eaxc-ids-per-group" {
2286             error-message "too many tx-eaxcid-id members";
2287           }
2288           must "current()!=../representative-tx-eaxc-id" {
2289             error-message "the representative eaxcid does not need to be a list member";
2290           }
2291           description
2292             "This is a list of member eAxC IDs, which together with the representative-tx-eaxc-id,
2293             are assigned to low-level-tx-endpoints in the group.";
2294         }
2295       }
2296
2297       list rx-eaxc-id-group {
2298         must "count(../rx-eaxc-id-group) <= ../max-num-rx-eaxc-id-groups" {
2299           error-message "too many rx-eaxcid-id groups";
2300         }
2301         key "representative-rx-eaxc-id";
2302         description
2303           "This is a list of the groups of the eAxC IDs assigned to low-level-rx-endpoints.
2304           Each group is a union of 'member-rx-eaxc-id's and a 'representative-rx-eaxc-id'.
2305           The low-level-rx-endpoint associated to 'representative-rx-eaxc-id' is able to
2306           process the UL C-plane information for all the low-level-rx-endpoints associated
2307           to 'member-rx-eaxc-id's.
2308
2309           Take Note: This list should only contain eAxC IDs assigned to a rx-endpoint.";
2310
2311         leaf representative-rx-eaxc-id {
2312           type uint16;
2313           description
2314             "This parameter contains eAxC_ID that populates content of C-Plane section
2315             extension 11 to eAxC_IDs configured in the group as 'member-rx-eaxc-id'(s).";
2316         }
2317
2318         leaf-list member-rx-eaxc-id {
2319           type uint16;
2320           must "count(../member-rx-eaxc-id) <= ../../max-num-rx-eaxc-ids-per-group" {
2321             error-message "too many rx-eaxcid-id members";
2322           }
2323           must "current()!=../representative-rx-eaxc-id" {
2324             error-message "the representative eaxcid does not need to be a list member";
2325           }
2326           description
2327             "This is a list of member eAxC IDs assigned to low-level-rx-endpoints in the group.";
2328         }
2329       }
2330     }
2331
2332     list static-prach-configurations {
2333       if-feature mcap:PRACH-STATIC-CONFIGURATION-SUPPORTED;
2334       key static-prach-config-id;
2335       description
2336         "List of static PRACH configurations. An O-RU shall reject any configuration
2337         modification which exceed the maximum permitted configurations supported by
2338         the O-RU";
2339
2340       leaf static-prach-config-id {
2341         type uint8;
2342         description
2343           "Supplementary parameter acting as key in list of static PRACH configurations.";
2344       }
2345
2346       uses static-prach-configuration;
2347     }
2348
2349     grouping static-prach-configuration {
2350       description
2351         "Set of parameters related to static PRACH configuration";
2352
2353       leaf pattern-period {
2354         type uint16 {
2355           range 1..1024;
2356         }
2357         mandatory true;
2358         description
2359           "Period after which static PRACH patterns are repeated. Unit: number of frames.";
2360       }
2361
2362       leaf guard-tone-low-re {
2363         type uint32;
2364         mandatory true;
2365         description
2366           "Number of REs occupied by the low guard tones.";
2367       }
2368
2369       leaf num-prach-re {
2370         type uint32;
2371         mandatory true;
2372         description
2373           "Number of contiguous PRBs per data section description";
2374       }
2375
2376       leaf guard-tone-high-re {
2377         type uint32;
2378         mandatory true;
2379         description
2380           "Number of REs occupied by the high guard tones.";
2381       }
2382
2383       leaf sequence-duration {
2384         type uint32 {
2385           range 256..24576;
2386         }
2387         units Ts;
2388         mandatory true;
2389         description
2390           "Duration of single sequence of the PRACH. Sequence may be considered as 'single PRACH symbol'";
2391       }
2392
2393       list prach-patterns {
2394         key prach-pattern-id;
2395         min-elements 1;
2396         description
2397           "Provides a PRACH pattern. Each record in the list represents a single PRACH occasion. Number of list entries cannot exceed max-prach-patterns";
2398
2399         leaf prach-pattern-id {
2400           type uint16;
2401           mandatory true;
2402           description
2403             "Supplementary parameter acting as key for prach-pattern list.";
2404         }
2405
2406         leaf number-of-repetitions {
2407           type uint8{
2408             range 1..14;
2409           }
2410           mandatory true;
2411           description
2412             "This parameter defines number of PRACH repetitions in PRACH occasion,
2413              to which the section control is applicable.";
2414         }
2415
2416         leaf number-of-occasions {
2417           type uint8;
2418           mandatory true;
2419           description
2420             "This parameter informs how many consecutive PRACH occasions is described by the PRACH pattern.";
2421         }
2422
2423         leaf re-offset {
2424           type uint32;
2425           mandatory true;
2426           description
2427             "Offset between the start of lowest-frequency RE of lowest-frequency PRB
2428              and the start of lowest-frequency RE belonging to the PRACH occasion.
2429              The re-offset is configured as number of PRACH REs.";
2430         }
2431
2432         list occasion-parameters {
2433           key occasion-id;
2434           min-elements 1;
2435           description
2436             "This is list of cp-lengths, gp-lengths and beam-ids applicable
2437              per each PRACH occasion in PRACH pattern.
2438              Note: the number of records in this list MUST be equal
2439                    to value of parameter number-of-occasions.";
2440
2441           leaf occasion-id {
2442             type uint8;
2443             mandatory true;
2444             description
2445               "Supplementary parameter acting as key in 'occasion-parameters' list";
2446           }
2447
2448           leaf cp-length {
2449             type uint16;
2450             units Ts;
2451             mandatory true;
2452             description
2453           "Cyclic prefix length. See CUS-plane specification for detailed description.";
2454           }
2455
2456           leaf gp-length {
2457             type uint16;
2458             units Ts;
2459             description
2460               "Guard period length.";
2461           }
2462
2463           leaf beam-id {
2464             type uint16;
2465             mandatory true;
2466             description
2467               "This parameter defines the beam pattern to be applied to the U-Plane data.
2468                beamId = 0 means no beamforming operation will be performed.";
2469           }
2470         }
2471
2472         leaf frame-number {
2473           type uint16{
2474             range 0..1023;
2475           }
2476           mandatory true;
2477           description
2478             "This parameter is an index inside the pattern-length, such that
2479              PRACH occasion is happening for SFN which fulfills following equation:
2480              [SFN mod pattern-length = frame-id]";
2481         }
2482
2483         leaf sub-frame-id {
2484           type uint16;
2485           mandatory true;
2486           description
2487             "Identifier of sub-frame of the PRACH occasion. Value is interpreted in the same way
2488              as subframeId field in a section description of a C-Plane message.";
2489         }
2490
2491         leaf time-offset {
2492           type uint16;
2493           units Ts;
2494           mandatory true;
2495           description
2496             "This parameter defines the time-offset from the start of the sub-frame
2497              to the start of the first Cyclic Prefix of PRACH pattern";
2498         }
2499       }
2500     }
2501
2502     grouping static-srs-configuration {
2503       description
2504         "Set of parameters related to static PRACH configuration";
2505
2506       leaf pattern-period {
2507         type uint16 {
2508           range 1..1024;
2509         }
2510         mandatory true;
2511         description
2512           "Period after which static SRS patterns are repeated. Unit: number of frames.";
2513       }
2514
2515       list srs-patterns {
2516         key srs-pattern-id;
2517         min-elements 1;
2518         description
2519           "Provides a SRS pattern. Each record in the list represents a single PRACH occasion. Number of list entries cannot exceed max-srs-patterns.";
2520
2521         leaf srs-pattern-id {
2522           type uint16;
2523           mandatory true;
2524           description
2525             "Supplementary parameter acting as key for srs-pattern list.";
2526         }
2527
2528         leaf sub-frame-id {
2529           type uint16;
2530           mandatory true;
2531           description
2532             "Identifier of sub-frame of the Raw SRS occasion. Value is interpreted in the same way
2533              as subframeId field in a section description of a C-Plane message.";
2534         }
2535
2536         leaf slot-id {
2537           type uint16;
2538           mandatory true;
2539           description
2540             "Identifier of slot of the Raw SRS occasion. Value is interpreted in the same way
2541              as slotId field in a section description of a C-Plane message.";
2542         }
2543
2544         leaf start-symbol-id {
2545           type uint16;
2546           mandatory true;
2547           description
2548             "Identifier of first symbol of the Raw SRS occasion. Value is interpreted in the same way
2549              as startSymbolId field in a section description of a C-Plane message.";
2550         }
2551
2552         leaf beam-id {
2553           type uint16;
2554           mandatory true;
2555           description
2556             "This parameter defines the beam pattern to be applied to the U-Plane data.
2557              beamId = 0 means no beamforming operation will be performed.";
2558         }
2559
2560         leaf num-symbol {
2561           type uint16;
2562           mandatory true;
2563           description
2564             "This parameter defines number of consecutive symbols covered by specific srs-pattern.
2565              Single srs-pattern may address at least one symbol. However, possible optimizations
2566              could allow for several (up to 14) symbols.";
2567         }
2568
2569         leaf start-prbc {
2570           type uint16 {
2571             range 0..1023;
2572           }
2573           mandatory true;
2574           description
2575             "Identifier of first PRB of the Raw SRS occasion. Value is interpreted in the same way
2576              as startPrbc field in a section description of a C-Plane message.";
2577         }
2578
2579         leaf num-prbc {
2580           type uint16;
2581           mandatory true;
2582           description
2583             "Number of PRBs of the Raw SRS occasion. Value is interpreted in the same way
2584              as numPrbc field in a section description of a C-Plane message.";
2585         }
2586       }
2587     }
2588
2589     grouping configurable-tdd-pattern {
2590       description
2591         "Set of parameters related to configurable TDD pattern.
2592         Note: configurable-tdd-pattern shall not be used in case the usage would collide with
2593         deprecated 'lte-tdd-pattern'.";
2594
2595       list switching-points {
2596         key switching-point-id;
2597         description
2598           "List of switching points within frame, related to configurable TDD pattern.
2599           An O-RU shall reject any configuration modification which exceeds the maximum
2600           number of switching-points supported by the O-RU";
2601
2602         leaf switching-point-id {
2603           type uint16;
2604           description
2605             "Supplementary parameter acting as key for switching-points list.";
2606           }
2607
2608         leaf direction {
2609           type enumeration {
2610             enum UL {
2611             description "Uplink";
2612             }
2613             enum DL {
2614             description "Downlink";
2615             }
2616             enum GP {
2617             description "Guard period";
2618             }
2619           }
2620           mandatory true;
2621           description
2622             "Parameter provides information regarding desired signal direction at the moment switching point occurs.";
2623         }
2624
2625         leaf frame-offset {
2626           type uint32;
2627           mandatory true;
2628           description
2629             "Offset from DL air frame boundary transmitted at RF connector to the point in time that is characteristic to the operation on RF switches. Unit is 1/1.2288e9 s.";
2630         }
2631       }
2632     }
2633
2634     list static-srs-configurations {
2635       if-feature mcap:SRS-STATIC-CONFIGURATION-SUPPORTED;
2636       key static-srs-config-id;
2637       description
2638         "List of static SRS configurations";
2639
2640       leaf static-srs-config-id {
2641         type uint8;
2642         description
2643           "Supplementary parameter acting as key in the list of static SRS configurations.";
2644       }
2645
2646       uses static-srs-configuration;
2647     }
2648
2649     list configurable-tdd-patterns {
2650       if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
2651       key tdd-pattern-id;
2652       description
2653         "List of configured TDD patterns";
2654
2655       leaf tdd-pattern-id {
2656         type uint8;
2657         description
2658           "Supplementary parameter acting as key in the list of configured TDD patterns.";
2659       }
2660
2661       uses configurable-tdd-pattern;
2662     }
2663   }
2664
2665   grouping tx-array-notification-group {
2666     description
2667       "Grouping for tx-array for notification";
2668
2669     list tx-array-carriers{
2670       key name;
2671       description "notification of state change for tx-array-carriers";
2672
2673       leaf name{
2674         type leafref{
2675           path "/user-plane-configuration/tx-array-carriers/name";
2676         }
2677         description
2678           "name of tx-array-carriers is notified at state change";
2679       }
2680       leaf state{
2681         type leafref{
2682           path "/user-plane-configuration/tx-array-carriers/state";
2683         }
2684       description
2685         "state of tx-array-carriers is notified at state change";
2686       }
2687     }
2688   }
2689
2690   grouping rx-array-notification-group {
2691     description
2692       "Grouping for rx-array for notification";
2693
2694     list rx-array-carriers{
2695       key name;
2696       description
2697         "Notification used to inform about state change of rx-array-carriers";
2698       leaf name{
2699         type leafref{
2700           path "/user-plane-configuration/rx-array-carriers/name";
2701         }
2702         description
2703           "name of rx-array-carriers is notified at state change";
2704       }
2705       leaf state{
2706         type leafref{
2707           path "/user-plane-configuration/rx-array-carriers/state";
2708         }
2709         description
2710           "state of rx-array-carriers is notified at state change";
2711       }
2712     }
2713   }
2714
2715 // top level container
2716
2717   container user-plane-configuration {
2718     description "top level container for user plane configuration";
2719
2720     uses uplane-conf-group;
2721     uses general-config;
2722   }
2723
2724   //notification statement
2725   notification tx-array-carriers-state-change {
2726     description
2727       "Notification used to inform about state change of tx-array-carriers";
2728     uses tx-array-notification-group;
2729   }
2730   notification rx-array-carriers-state-change {
2731     description
2732     "Notification used to inform about state change of tx-array-carriers";
2733
2734     uses rx-array-notification-group;
2735   }
2736 }