Add supoprt for D release use-case.
[sim/o1-interface.git] / ntsimulator / deploy / o-ran-ru-fh / yang / 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         if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
1697         type leafref {
1698           //checkAS added if-feature          
1699           path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/configurable-tdd-pattern-supported";
1700           require-instance false;
1701         }
1702         description "RO to RW parameter mapping - needed for conditional under tx-array-carrier";
1703       }
1704     }
1705
1706     list low-level-rx-endpoints {
1707       key name;
1708
1709       description
1710         "Object model for low-level-rx-endpoint configuration - augmented static-low-level-rx-endpoints by local-address
1711         which cannot be added to static low-level-rx-endpoints as we cannot have modificable element in static object";
1712
1713       leaf name {
1714         type leafref {
1715           path "/user-plane-configuration/static-low-level-rx-endpoints/name";
1716           require-instance false;
1717         }
1718         mandatory true;
1719
1720         description
1721           "Unique name of low-level-rx-endpoint object. Reference to static object";
1722       }
1723
1724       container compression {
1725         description
1726           "Container which consists of global configurable parameters for compression";
1727
1728         uses cf:compression-details;
1729
1730         leaf fs-offset {
1731           if-feature cf:CONFIGURABLE-FS-OFFSET;
1732           type uint8;
1733           default 0;
1734           description
1735             "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1736              Please refer to CU-Plane specification for details";
1737         }
1738
1739         list dynamic-compression-configuration {
1740           when "../compression-type = 'DYNAMIC'";
1741           key "id";
1742           unique "compression-method iq-bitwidth fs-offset";
1743           description
1744             "List of possible configuration in case dynamic configuration is used
1745              Note: In case of empty list all available compressions can be choosen dynamically
1746                    and default fs-offset is taken (0).";
1747
1748           leaf id {
1749             type uint16;
1750             description
1751               "Identification number for particular compression";
1752           }
1753
1754           uses cf:compression-method-grouping;
1755
1756           leaf fs-offset {
1757             if-feature cf:CONFIGURABLE-FS-OFFSET;
1758             type uint8;
1759             default 0;
1760             description
1761               "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1762                Please refer to CU-Plane specification for details";
1763           }
1764         }
1765       }
1766
1767       uses scs-config;
1768
1769       list ul-fft-sampling-offsets {
1770         key scs;
1771         description
1772           "List of FFT sampling offsets configured for each SCS that will be used.
1773           Client shall configure one element for each SCS that will be used.";
1774
1775         leaf scs {
1776           type mcap:scs-config-type;
1777           description
1778             "Value corresponds to SCS values defined for frameStructure in C-plane
1779             Note: set of allowed values is restricted by SCS derived from values in supported-frame-structures.";
1780         }
1781
1782         leaf ul-fft-sampling-offset {
1783           type uint16;
1784
1785           units Ts;
1786           description
1787             "Determines time advance of capture window for FFT.
1788             Value represents time advance of capture window start in relation to the end of CP. Unit is Ts.
1789             Note: value of this parameter is usually set to '0' (zero) for PRACH channels.
1790             Any phase offset resulting from the non-zero value of this parameter is handled in O-DU.";
1791         }
1792       }
1793
1794       container e-axcid {
1795         uses eaxc;
1796
1797         description
1798           "Contains local address of low level RX endpoint offered by Netconf server.";
1799       }
1800
1801       leaf eaxc-gain-correction {
1802         if-feature EAXC-GAIN-CORRECTION;
1803         type decimal64 {
1804           fraction-digits 4;
1805         }
1806         units dB;
1807         default 0;
1808         description
1809           "eAxC specifc part of overall gain_correction.
1810            gain_correction = common array-carrier gain-correction + eAxC-gain-correction.";
1811       }
1812
1813       leaf non-time-managed-delay-enabled {
1814         type boolean;
1815         default false;
1816         description
1817           "Tells if non time managed delay shall be enabled";
1818       }
1819
1820       uses coupling-methods;
1821
1822       leaf static-config-supported {
1823         type leafref {
1824           path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/static-config-supported";
1825           require-instance false;
1826         }
1827         description "RO to RW parameter mapping - for further conditionals";
1828       }
1829
1830       leaf static-prach-configuration {
1831         if-feature mcap:PRACH-STATIC-CONFIGURATION-SUPPORTED;
1832         when "(/user-plane-configuration/low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'PRACH')";
1833         type leafref {
1834           //checkAS added if-feature          
1835           path "/user-plane-configuration/static-prach-configurations/static-prach-config-id";
1836         }
1837         description
1838           "This parameter creates reference to static PRACH configuration applicable for particular endpoint";
1839       }
1840
1841       leaf static-srs-configuration {
1842         when "(/user-plane-configuration/low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'SRS')";
1843         if-feature mcap:SRS-STATIC-CONFIGURATION-SUPPORTED;
1844         type leafref {
1845           //checkAS added if-feature          
1846           path "/user-plane-configuration/static-srs-configurations/static-srs-config-id";
1847         }
1848         description
1849           "This parameter creates reference to static SRS configuration applicable for particular endpoint";
1850             }
1851
1852       leaf configurable-tdd-pattern-supported {
1853         if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
1854         type leafref {
1855           //checkAS added if-feature          
1856           path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/configurable-tdd-pattern-supported";
1857           require-instance false;
1858         }
1859         description "RO to RW parameter mapping - needed for conditional under rx-array-carrier";
1860       }
1861     }
1862
1863     list tx-array-carriers {
1864       key name;
1865       description
1866         "Object model for tx-array-carriers configuration";
1867
1868       leaf name {
1869         type string;
1870
1871         description
1872           "Unique name of tx-array-carriers object.";
1873       }
1874
1875       uses tx-common-array-carrier-elements;
1876
1877       leaf band-number {
1878         if-feature mcap:LAA;
1879         type leafref {
1880           path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
1881           require-instance false;
1882         }
1883         description
1884           "This parameter informing which frequency band particular antenna
1885            array is serving for.
1886            Intended use is to deal with multiband solutions.";
1887       }
1888
1889       container lte-tdd-frame {
1890         when "(/user-plane-configuration/tx-array-carriers/rw-type = 'LTE') and  (/user-plane-configuration/tx-array-carriers/rw-duplex-scheme = 'TDD')";
1891         status deprecated;
1892         description
1893           "Container which consists of global configurable parameters for tdd Frame.
1894           This contained is deprecated due to introduction of TDD pattern configuration
1895           applicable in a common way for LTE and NR.";
1896
1897         leaf subframe-assignment {
1898           type enumeration {
1899             enum SAO {
1900               description "subframe assignment configuration 0";
1901             }
1902             enum SA1 {
1903               description "subframe assignment configuration 1";
1904             }
1905             enum SA2 {
1906               description "subframe assignment configuration 2";
1907             }
1908             enum SA3 {
1909               description "subframe assignment configuration 3";
1910             }
1911             enum SA4 {
1912               description "subframe assignment configuration 4";
1913             }
1914             enum SA5 {
1915               description "subframe assignment configuration 5";
1916             }
1917               enum SA6 {
1918                 description "subframe assignment configuration 6";
1919             }
1920           }
1921           mandatory true;
1922           description
1923             "Indicates DL/UL subframe configuration as specified in
1924             3GPP TS 36.211 [v15.3.0, table 4.2-2]";
1925         }
1926         leaf special-subframe-pattern {
1927           type enumeration {
1928             enum SPP0 {
1929               description "special subframe pattern configuration 0";
1930             }
1931             enum SPP1 {
1932               description "special subframe pattern configuration 1";
1933             }
1934             enum SPP2 {
1935               description "special subframe pattern configuration 2";
1936             }
1937             enum SPP3 {
1938               description "special subframe pattern configuration 3";
1939             }
1940             enum SPP4 {
1941               description "special subframe pattern configuration 4";
1942             }
1943             enum SPP5 {
1944               description "special subframe pattern configuration 5";
1945             }
1946             enum SPP6 {
1947               description "special subframe pattern configuration 6";
1948             }
1949             enum SPP7 {
1950               description "special subframe pattern configuration 7";
1951             }
1952             enum SPP8 {
1953               description "special subframe pattern configuration 8";
1954             }
1955             enum SPP9 {
1956               description "special subframe pattern configuration 9";
1957             }
1958             enum SPP10 {
1959               description "special subframe pattern configuration 10";
1960             }
1961           }
1962           mandatory true;
1963           description
1964             "Indicates TDD special subframe configuration as in TS 36.211
1965              [v15.3.0, table 4.2-1] ";
1966         }
1967       }
1968
1969       container laa-carrier-configuration {
1970         when "../band-number = 46";
1971         if-feature mcap:LAA;
1972         description "Container to specify LAA feature related carrier configuration.";
1973         uses laa-carrier-config;
1974       }
1975
1976       leaf gain {
1977         type decimal64 {
1978           fraction-digits 4;
1979         }
1980         units dB;
1981         mandatory true;
1982
1983         description
1984           "Transmission gain in dB. Value applicable to each array element carrier belonging to array carrier.";
1985       }
1986
1987       leaf downlink-radio-frame-offset {
1988         type uint32 {
1989           range 0..12288000;
1990         }
1991         mandatory true;
1992
1993         description
1994           "This parameter is used for offsetting the starting position of 10ms radio frame.
1995           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.
1996           Note2: Unit is 1/1.2288e9 s. Then, its range is calculated 0..12288000.";
1997       }
1998
1999       leaf downlink-sfn-offset {
2000         type int16 {
2001           range -32768..32767;
2002         }
2003         mandatory true;
2004
2005         description
2006           "This parameter is used for offsetting SFN value.
2007           Unit is in 10ms.
2008           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.";
2009       }
2010
2011       leaf reference-level {
2012         if-feature TX-REFERENCE-LEVEL;
2013         type decimal64 {
2014           fraction-digits 4;
2015         }
2016         units dB;
2017         default 0;
2018         description
2019           "Allows to adjust reference level for sum of IQ signal power over eAxCs in this array-carrier.";
2020       }
2021
2022       leaf configurable-tdd-pattern {
2023         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')";
2024         if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
2025         type leafref {
2026           path "/user-plane-configuration/configurable-tdd-patterns/tdd-pattern-id";
2027         }
2028         description
2029           "This parameter creates reference to configuration for TDD pattern applicable for particular tx-array-carrier.
2030           The leaf may exist under tx-array-carrier only in case O-RU supports feature 'CONFIGURABLE-TDD-PATTERN-SUPPORTED'
2031           AND all low-level-tx-endpoints linked to this tx-array-carrier have configurable-tdd-pattern-supported = 'true'";
2032       }
2033     }
2034
2035     list rx-array-carriers {
2036       key name;
2037       description
2038         "Object model for rx-array-carriers configuration";
2039
2040           leaf name {
2041             type string;
2042             description
2043             "Unique name of rx-array-carriers object.";
2044       }
2045
2046       uses rx-common-array-carrier-elements;
2047
2048       leaf downlink-radio-frame-offset {
2049         type uint32 {
2050           range 0..12288000;
2051         }
2052         mandatory true;
2053
2054         description
2055           "This parameter is used for offsetting the starting position of 10ms radio frame.
2056           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.
2057           Note2: Unit is 1/1.2288e9 s. Then, its range is calculated 0..12288000.";
2058       }
2059
2060       leaf downlink-sfn-offset {
2061         type int16 {
2062           range -32768..32767;
2063         }
2064         mandatory true;
2065
2066         description
2067           "This parameter is used for offsetting SFN value.
2068           Unit is in 10ms.
2069           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.";
2070       }
2071
2072       leaf gain-correction {
2073         type decimal64 {
2074           fraction-digits 4;
2075
2076         }
2077         units dB;
2078         mandatory true;
2079         description
2080           "Gain correction of RF path linked with array element or array layers.
2081            Common part of overall gain_correction.
2082            gain_correction = common array-carrier gain-correction + eAxC gain correction.";
2083       }
2084
2085       leaf n-ta-offset {
2086         type uint32;
2087         units Tc;
2088         mandatory true;
2089         description
2090           "Value of configurable N-TA offset
2091           units are Tc=~0.5ns=1/1.96608GHz";
2092       }
2093
2094       leaf configurable-tdd-pattern {
2095         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')";
2096         if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
2097         type leafref {
2098           path "/user-plane-configuration/configurable-tdd-patterns/tdd-pattern-id";
2099         }
2100         description
2101           "This parameter creates reference to configuration for TDD pattern applicable for particular rx-array-carrier.
2102            The leaf may exist under rx-array-carrier only in case O-RU supports feature 'CONFIGURABLE-TDD-PATTERN-SUPPORTED'
2103           AND all low-level-rx-endpoints linked to this rx-array-carrier have configurable-tdd-pattern-supported = 'true'";
2104       }
2105     }
2106
2107     list tx-arrays {
2108       key "name";
2109       config false;
2110       description
2111         "Structure describing TX array parameters";
2112
2113       uses parameters;
2114
2115       leaf max-gain {
2116         type decimal64 {
2117           fraction-digits 4;
2118
2119         }
2120         units dB;
2121         mandatory true;
2122         description
2123           "Max gain of RF path linked with array element (minimum over elements of array) or array layers";
2124       }
2125
2126       leaf independent-power-budget {
2127         type boolean;
2128         mandatory true;
2129         description
2130           "If true then every element of array has own, power budget independent from power budget of other elements.
2131           Else all elements of array that are at same row and column and have same polarization share power budget";
2132       }
2133
2134       list capabilities {
2135         description
2136           "List of capabilities related to this tx-array";
2137         uses mcap:support-for-dl;
2138       }
2139     }
2140
2141     list rx-arrays {
2142       key "name";
2143       config false;
2144       description "Structure describing RX array parameters";
2145
2146       uses parameters;
2147       container gain-correction-range {
2148         leaf max {
2149           type decimal64 {
2150             fraction-digits 4;
2151           }
2152           units dB;
2153           mandatory true;
2154           description "Array gain correction factor - maximum allowed value";
2155           }
2156         leaf min {
2157           type decimal64 {
2158             fraction-digits 4;
2159           }
2160           units dB;
2161           mandatory true;
2162           description "Array gain correction factor - minimum allowed value";
2163         }
2164
2165         description
2166           "Array gain correction factor";
2167       }
2168
2169       list capabilities {
2170         description
2171           "List of capabilities related to this rx-array";
2172         uses mcap:support-for-ul;
2173       }
2174     }
2175
2176     list relations {
2177       key "entity";
2178       config false;
2179       description "Structure describing relations between array elements";
2180
2181       leaf entity {
2182         type uint16;
2183
2184         description
2185           "Relation entity. Used as a key for list of relations.";
2186       }
2187
2188       container array1 {
2189         uses array-choice;
2190
2191         description
2192           "Defnes name for first array";
2193       }
2194       container array2 {
2195         uses array-choice;
2196
2197         description
2198           "Defnes name for second array";
2199       }
2200       list types {
2201         key "relation-type";
2202         description
2203           "Defines relation type and pairs for array elements for given arrays";
2204
2205         leaf relation-type {
2206           type enumeration {
2207             enum SHARED {
2208               description "SHARED";
2209             }
2210             enum COALOCATED {
2211               description "COALOCATED";
2212             }
2213           }
2214           description "Type of relation between array elements";
2215         }
2216         list pairs {
2217           key "element-array1";
2218           description
2219             "defines related array elements";
2220
2221           leaf element-array1 {
2222             type uint16;
2223
2224             description
2225               "Tells about id of element from array1";
2226           }
2227           leaf element-array2 {
2228             type uint16;
2229
2230             description
2231               "Tells about id of element from array2";
2232           }
2233         }
2234       }
2235     }
2236
2237     container eaxc-id-group-configuration {
2238       if-feature mcap:EAXC-ID-GROUP-SUPPORTED;
2239       description
2240         "This is the container for eAxC ID group configuration.";
2241       leaf max-num-tx-eaxc-id-groups {
2242         type leafref {
2243           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-tx-eaxc-id-groups";
2244           require-instance false;
2245         }
2246         description "eaxc-id-group-configuration";
2247       }
2248       leaf max-num-tx-eaxc-ids-per-group {
2249         type leafref {
2250           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-tx-eaxc-ids-per-group";
2251           require-instance false;
2252         }
2253         description "max-num-tx-eaxc-ids-per-group";
2254       }
2255       leaf max-num-rx-eaxc-id-groups {
2256         type leafref {
2257           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-rx-eaxc-id-groups";
2258           require-instance false;
2259         }
2260         description "max-num-rx-eaxc-id-groups";
2261       }
2262       leaf max-num-rx-eaxc-ids-per-group {
2263         type leafref {
2264           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-rx-eaxc-ids-per-group";
2265           require-instance false;
2266         }
2267         description "max-num-rx-eaxc-ids-per-group";
2268       }
2269
2270       list tx-eaxc-id-group {
2271         must "count(../tx-eaxc-id-group) <= ../max-num-tx-eaxc-id-groups" {
2272           error-message "too many tx-eaxcid-id groups";
2273         }
2274         key "representative-tx-eaxc-id";
2275         description
2276           "This is a list of the groups of the eAxC IDs assigned to low-level-tx-endpoints.
2277           Each group is a union of the 'member-tx-eaxc-id's and a 'representative-tx-eaxc-id'.
2278           The low-level-tx-endpoint associated to 'representative-tx-eaxc-id' is able to
2279           process the DL C-plane information for all the low-level-tx-endpoints associated
2280           to 'member-tx-eaxc-id's.
2281
2282           Take Note: This list should only contain eAxC IDs assigned to a tx-endpoint.";
2283
2284
2285         leaf representative-tx-eaxc-id {
2286           type uint16;
2287           description
2288             "This parameter contains eAxC_ID that populates content of C-Plane section
2289             extension 11 to eAxC_IDs configured in the group as 'member-tx-eaxc-id'(s).";
2290         }
2291         leaf-list member-tx-eaxc-id {
2292           type uint16;
2293           must "count(../member-tx-eaxc-id) <= ../../max-num-tx-eaxc-ids-per-group" {
2294             error-message "too many tx-eaxcid-id members";
2295           }
2296           must "current()!=../representative-tx-eaxc-id" {
2297             error-message "the representative eaxcid does not need to be a list member";
2298           }
2299           description
2300             "This is a list of member eAxC IDs, which together with the representative-tx-eaxc-id,
2301             are assigned to low-level-tx-endpoints in the group.";
2302         }
2303       }
2304
2305       list rx-eaxc-id-group {
2306         must "count(../rx-eaxc-id-group) <= ../max-num-rx-eaxc-id-groups" {
2307           error-message "too many rx-eaxcid-id groups";
2308         }
2309         key "representative-rx-eaxc-id";
2310         description
2311           "This is a list of the groups of the eAxC IDs assigned to low-level-rx-endpoints.
2312           Each group is a union of 'member-rx-eaxc-id's and a 'representative-rx-eaxc-id'.
2313           The low-level-rx-endpoint associated to 'representative-rx-eaxc-id' is able to
2314           process the UL C-plane information for all the low-level-rx-endpoints associated
2315           to 'member-rx-eaxc-id's.
2316
2317           Take Note: This list should only contain eAxC IDs assigned to a rx-endpoint.";
2318
2319         leaf representative-rx-eaxc-id {
2320           type uint16;
2321           description
2322             "This parameter contains eAxC_ID that populates content of C-Plane section
2323             extension 11 to eAxC_IDs configured in the group as 'member-rx-eaxc-id'(s).";
2324         }
2325
2326         leaf-list member-rx-eaxc-id {
2327           type uint16;
2328           must "count(../member-rx-eaxc-id) <= ../../max-num-rx-eaxc-ids-per-group" {
2329             error-message "too many rx-eaxcid-id members";
2330           }
2331           must "current()!=../representative-rx-eaxc-id" {
2332             error-message "the representative eaxcid does not need to be a list member";
2333           }
2334           description
2335             "This is a list of member eAxC IDs assigned to low-level-rx-endpoints in the group.";
2336         }
2337       }
2338     }
2339
2340     list static-prach-configurations {
2341       if-feature mcap:PRACH-STATIC-CONFIGURATION-SUPPORTED;
2342       key static-prach-config-id;
2343       description
2344         "List of static PRACH configurations. An O-RU shall reject any configuration
2345         modification which exceed the maximum permitted configurations supported by
2346         the O-RU";
2347
2348       leaf static-prach-config-id {
2349         type uint8;
2350         description
2351           "Supplementary parameter acting as key in list of static PRACH configurations.";
2352       }
2353
2354       uses static-prach-configuration;
2355     }
2356
2357     grouping static-prach-configuration {
2358       description
2359         "Set of parameters related to static PRACH configuration";
2360
2361       leaf pattern-period {
2362         type uint16 {
2363           range 1..1024;
2364         }
2365         mandatory true;
2366         description
2367           "Period after which static PRACH patterns are repeated. Unit: number of frames.";
2368       }
2369
2370       leaf guard-tone-low-re {
2371         type uint32;
2372         mandatory true;
2373         description
2374           "Number of REs occupied by the low guard tones.";
2375       }
2376
2377       leaf num-prach-re {
2378         type uint32;
2379         mandatory true;
2380         description
2381           "Number of contiguous PRBs per data section description";
2382       }
2383
2384       leaf guard-tone-high-re {
2385         type uint32;
2386         mandatory true;
2387         description
2388           "Number of REs occupied by the high guard tones.";
2389       }
2390
2391       leaf sequence-duration {
2392         type uint32 {
2393           range 256..24576;
2394         }
2395         units Ts;
2396         mandatory true;
2397         description
2398           "Duration of single sequence of the PRACH. Sequence may be considered as 'single PRACH symbol'";
2399       }
2400
2401       list prach-patterns {
2402         key prach-pattern-id;
2403         min-elements 1;
2404         description
2405           "Provides a PRACH pattern. Each record in the list represents a single PRACH occasion. Number of list entries cannot exceed max-prach-patterns";
2406
2407         leaf prach-pattern-id {
2408           type uint16;
2409           mandatory true;
2410           description
2411             "Supplementary parameter acting as key for prach-pattern list.";
2412         }
2413
2414         leaf number-of-repetitions {
2415           type uint8{
2416             range 1..14;
2417           }
2418           mandatory true;
2419           description
2420             "This parameter defines number of PRACH repetitions in PRACH occasion,
2421              to which the section control is applicable.";
2422         }
2423
2424         leaf number-of-occasions {
2425           type uint8;
2426           mandatory true;
2427           description
2428             "This parameter informs how many consecutive PRACH occasions is described by the PRACH pattern.";
2429         }
2430
2431         leaf re-offset {
2432           type uint32;
2433           mandatory true;
2434           description
2435             "Offset between the start of lowest-frequency RE of lowest-frequency PRB
2436              and the start of lowest-frequency RE belonging to the PRACH occasion.
2437              The re-offset is configured as number of PRACH REs.";
2438         }
2439
2440         list occasion-parameters {
2441           key occasion-id;
2442           min-elements 1;
2443           description
2444             "This is list of cp-lengths, gp-lengths and beam-ids applicable
2445              per each PRACH occasion in PRACH pattern.
2446              Note: the number of records in this list MUST be equal
2447                    to value of parameter number-of-occasions.";
2448
2449           leaf occasion-id {
2450             type uint8;
2451             mandatory true;
2452             description
2453               "Supplementary parameter acting as key in 'occasion-parameters' list";
2454           }
2455
2456           leaf cp-length {
2457             type uint16;
2458             units Ts;
2459             mandatory true;
2460             description
2461           "Cyclic prefix length. See CUS-plane specification for detailed description.";
2462           }
2463
2464           leaf gp-length {
2465             type uint16;
2466             units Ts;
2467             description
2468               "Guard period length.";
2469           }
2470
2471           leaf beam-id {
2472             type uint16;
2473             mandatory true;
2474             description
2475               "This parameter defines the beam pattern to be applied to the U-Plane data.
2476                beamId = 0 means no beamforming operation will be performed.";
2477           }
2478         }
2479
2480         leaf frame-number {
2481           type uint16{
2482             range 0..1023;
2483           }
2484           mandatory true;
2485           description
2486             "This parameter is an index inside the pattern-length, such that
2487              PRACH occasion is happening for SFN which fulfills following equation:
2488              [SFN mod pattern-length = frame-id]";
2489         }
2490
2491         leaf sub-frame-id {
2492           type uint16;
2493           mandatory true;
2494           description
2495             "Identifier of sub-frame of the PRACH occasion. Value is interpreted in the same way
2496              as subframeId field in a section description of a C-Plane message.";
2497         }
2498
2499         leaf time-offset {
2500           type uint16;
2501           units Ts;
2502           mandatory true;
2503           description
2504             "This parameter defines the time-offset from the start of the sub-frame
2505              to the start of the first Cyclic Prefix of PRACH pattern";
2506         }
2507       }
2508     }
2509
2510     grouping static-srs-configuration {
2511       description
2512         "Set of parameters related to static PRACH configuration";
2513
2514       leaf pattern-period {
2515         type uint16 {
2516           range 1..1024;
2517         }
2518         mandatory true;
2519         description
2520           "Period after which static SRS patterns are repeated. Unit: number of frames.";
2521       }
2522
2523       list srs-patterns {
2524         key srs-pattern-id;
2525         min-elements 1;
2526         description
2527           "Provides a SRS pattern. Each record in the list represents a single PRACH occasion. Number of list entries cannot exceed max-srs-patterns.";
2528
2529         leaf srs-pattern-id {
2530           type uint16;
2531           mandatory true;
2532           description
2533             "Supplementary parameter acting as key for srs-pattern list.";
2534         }
2535
2536         leaf sub-frame-id {
2537           type uint16;
2538           mandatory true;
2539           description
2540             "Identifier of sub-frame of the Raw SRS occasion. Value is interpreted in the same way
2541              as subframeId field in a section description of a C-Plane message.";
2542         }
2543
2544         leaf slot-id {
2545           type uint16;
2546           mandatory true;
2547           description
2548             "Identifier of slot of the Raw SRS occasion. Value is interpreted in the same way
2549              as slotId field in a section description of a C-Plane message.";
2550         }
2551
2552         leaf start-symbol-id {
2553           type uint16;
2554           mandatory true;
2555           description
2556             "Identifier of first symbol of the Raw SRS occasion. Value is interpreted in the same way
2557              as startSymbolId field in a section description of a C-Plane message.";
2558         }
2559
2560         leaf beam-id {
2561           type uint16;
2562           mandatory true;
2563           description
2564             "This parameter defines the beam pattern to be applied to the U-Plane data.
2565              beamId = 0 means no beamforming operation will be performed.";
2566         }
2567
2568         leaf num-symbol {
2569           type uint16;
2570           mandatory true;
2571           description
2572             "This parameter defines number of consecutive symbols covered by specific srs-pattern.
2573              Single srs-pattern may address at least one symbol. However, possible optimizations
2574              could allow for several (up to 14) symbols.";
2575         }
2576
2577         leaf start-prbc {
2578           type uint16 {
2579             range 0..1023;
2580           }
2581           mandatory true;
2582           description
2583             "Identifier of first PRB of the Raw SRS occasion. Value is interpreted in the same way
2584              as startPrbc field in a section description of a C-Plane message.";
2585         }
2586
2587         leaf num-prbc {
2588           type uint16;
2589           mandatory true;
2590           description
2591             "Number of PRBs of the Raw SRS occasion. Value is interpreted in the same way
2592              as numPrbc field in a section description of a C-Plane message.";
2593         }
2594       }
2595     }
2596
2597     grouping configurable-tdd-pattern {
2598       description
2599         "Set of parameters related to configurable TDD pattern.
2600         Note: configurable-tdd-pattern shall not be used in case the usage would collide with
2601         deprecated 'lte-tdd-pattern'.";
2602
2603       list switching-points {
2604         key switching-point-id;
2605         description
2606           "List of switching points within frame, related to configurable TDD pattern.
2607           An O-RU shall reject any configuration modification which exceeds the maximum
2608           number of switching-points supported by the O-RU";
2609
2610         leaf switching-point-id {
2611           type uint16;
2612           description
2613             "Supplementary parameter acting as key for switching-points list.";
2614           }
2615
2616         leaf direction {
2617           type enumeration {
2618             enum UL {
2619             description "Uplink";
2620             }
2621             enum DL {
2622             description "Downlink";
2623             }
2624             enum GP {
2625             description "Guard period";
2626             }
2627           }
2628           mandatory true;
2629           description
2630             "Parameter provides information regarding desired signal direction at the moment switching point occurs.";
2631         }
2632
2633         leaf frame-offset {
2634           type uint32;
2635           mandatory true;
2636           description
2637             "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.";
2638         }
2639       }
2640     }
2641
2642     list static-srs-configurations {
2643       if-feature mcap:SRS-STATIC-CONFIGURATION-SUPPORTED;
2644       key static-srs-config-id;
2645       description
2646         "List of static SRS configurations";
2647
2648       leaf static-srs-config-id {
2649         type uint8;
2650         description
2651           "Supplementary parameter acting as key in the list of static SRS configurations.";
2652       }
2653
2654       uses static-srs-configuration;
2655     }
2656
2657     list configurable-tdd-patterns {
2658       if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
2659       key tdd-pattern-id;
2660       description
2661         "List of configured TDD patterns";
2662
2663       leaf tdd-pattern-id {
2664         type uint8;
2665         description
2666           "Supplementary parameter acting as key in the list of configured TDD patterns.";
2667       }
2668
2669       uses configurable-tdd-pattern;
2670     }
2671   }
2672
2673   grouping tx-array-notification-group {
2674     description
2675       "Grouping for tx-array for notification";
2676
2677     list tx-array-carriers{
2678       key name;
2679       description "notification of state change for tx-array-carriers";
2680
2681       leaf name{
2682         type leafref{
2683           path "/user-plane-configuration/tx-array-carriers/name";
2684         }
2685         description
2686           "name of tx-array-carriers is notified at state change";
2687       }
2688       leaf state{
2689         type leafref{
2690           path "/user-plane-configuration/tx-array-carriers/state";
2691         }
2692       description
2693         "state of tx-array-carriers is notified at state change";
2694       }
2695     }
2696   }
2697
2698   grouping rx-array-notification-group {
2699     description
2700       "Grouping for rx-array for notification";
2701
2702     list rx-array-carriers{
2703       key name;
2704       description
2705         "Notification used to inform about state change of rx-array-carriers";
2706       leaf name{
2707         type leafref{
2708           path "/user-plane-configuration/rx-array-carriers/name";
2709         }
2710         description
2711           "name of rx-array-carriers is notified at state change";
2712       }
2713       leaf state{
2714         type leafref{
2715           path "/user-plane-configuration/rx-array-carriers/state";
2716         }
2717         description
2718           "state of rx-array-carriers is notified at state change";
2719       }
2720     }
2721   }
2722
2723 // top level container
2724
2725   container user-plane-configuration {
2726     description "top level container for user plane configuration";
2727
2728     uses uplane-conf-group;
2729     uses general-config;
2730   }
2731
2732   //notification statement
2733   notification tx-array-carriers-state-change {
2734     description
2735       "Notification used to inform about state change of tx-array-carriers";
2736     uses tx-array-notification-group;
2737   }
2738   notification rx-array-carriers-state-change {
2739     description
2740     "Notification used to inform about state change of tx-array-carriers";
2741
2742     uses rx-array-notification-group;
2743   }
2744 }