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