Support of WG4 OpenFronthaul Management-Plane VES
[scp/oam/modeling.git] / data-model / yang / published / o-ran / ru-fh / o-ran-uplane-conf@2022-12-05.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   }
17
18   import o-ran-compression-factors {
19     prefix "cf";
20   }
21
22   import o-ran-wg4-features {
23     prefix "feat";
24   }
25
26   import ietf-hardware {
27     prefix "hw";
28   }
29
30   import o-ran-hardware {
31     prefix "or-hw";
32   }
33
34   import o-ran-usermgmt {
35     prefix "or-user";
36   }
37
38   organization "O-RAN Alliance";
39
40   contact
41     "www.o-ran.org";
42
43   description
44     "This module defines the module capabilities for
45     the O-RAN Radio Unit U-Plane configuration.
46
47     Copyright 2021 the O-RAN Alliance.
48
49     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
50     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
51     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
52     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
53     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
54     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
55     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
56     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
57     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
58     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
59     POSSIBILITY OF SUCH DAMAGE.
60
61     Redistribution and use in source and binary forms, with or without
62     modification, are permitted provided that the following conditions are met:
63
64     * Redistributions of source code must retain the above copyright notice,
65     this list of conditions and the above disclaimer.
66     * Redistributions in binary form must reproduce the above copyright notice,
67     this list of conditions and the above disclaimer in the documentation
68     and/or other materials provided with the distribution.
69     * Neither the Members of the O-RAN Alliance nor the names of its
70     contributors may be used to endorse or promote products derived from
71     this software without specific prior written permission.";
72
73   revision "2022-12-05" {
74     description
75       "version 11.0.0
76
77       1) PRB range limit for SE 12 and HP section
78       2) Introduction of PRB ranges
79       3) uplane-only-dl-mode-enable
80       4) Deprecation of power-related capabilities and addition of min-gain
81       5) se 23 max mplane limits
82       6) support Section Type 4 and associated commands";
83
84     reference "ORAN-WG4.M.0-v11.00";
85   }
86
87   revision "2022-08-15" {
88     description
89       "version 10.0.0
90
91       1) clarified description statements for representative-t/rx-eaxc-id
92       2) clarified description statements for max-num-t/rx-eaxc-ids-per-group
93       4) clarified description statements for component carrier
94       5) style guide corrections
95       6) introduction of O-RU connector functionality
96       7) fixing constraints
97       8) introducing new feature for ACK NACK feedback
98       9) added SHARED-ORU-MULTI-OPERATOR anf SHARED-ORU-MULTI-ODU features";
99
100     reference "ORAN-WG4.M.0-v10.00";
101   }
102
103   revision "2022-04-18" {
104     description
105       "version 9.0.0
106
107       1) Descriptions fixed for max-beam-updates-per-slot / max-beam-updates-per-slot
108       2) Added references to CUS-Plane spec for parameters 'frame-structure' and
109         'supported-frame-structures'
110       3) clarified max-beams-per-symbol, max-beams-per-slot, max-beam-updates-per-slot,
111         max-beam-updates-per-symbol parameters
112       4) Clarification of cp-length and cp-length-other
113       5) deprecation of rw-type and rw-duplex-scheme";
114
115       reference "ORAN-WG4.M.0-v09.00";
116   }
117
118   revision "2021-12-01" {
119     description
120       "version 8.0.0
121
122       1) Various descriptions corrected and/or clarified
123       2) Configuration for Beamforming weights were added together with changes and updates to compressions
124       3) Added new leaf node 'beam-update-contention-control-limits-required' to 'endpoint-types'
125          to indicate endpoint capability to support beam update contention control processing limits.
126       4) Added instance of 'beam-update-contention-control-limits' to 'endpoint-types'.
127       5) Added new leaf node boolean flag 'beam-update-contention-control-enabled' for O-DU to indicate
128          support of feature BEAM-UPDATE-CONTENTION-CONTROL feature.
129       6) deprecate 'channel-information-iq-bitwidth' , and define a new parameter
130          'channel-information-bitwidth' under the container 'compression'
131       7) add capability and configuration for channel information PRB granularity.
132       8) Add support for multiple transport-session-type per O-RU.
133       9) add capability and configuration for channel information compression.
134       10) deprecate 'channel-information-iq-bitwidth' , and define a new parameter
135          'channel-information-bitwidth' under the container 'compression'";
136
137       reference "ORAN-WG4.M.0-v08.00";
138   }
139
140   revision "2021-07-26" {
141     description
142       "version 7.0.0
143
144       1) Added new grouping 'per-cplane-message-limits' containing params to limit
145          per C-Plane packet processing when CPLANE-MESSAGE-PROCESSING-LIMITS feature is
146          supported by O-RU and used by O-DU.
147       2) Added new leaf node 'cplane-message-processing-limits-required' to 'endpoint-types'
148          to indicate endpoint capability to support C-Plane message processing limits.
149       3) Added instances of 'per-cplane-message-limits' to 'endpoint-types' and
150          'endpoint-capacity-sharing-groups'.
151       4) Added new leaf node to low-level-tx/rx-endpoint 'cplane-message-processing-limits-enabled'
152          for O-DU to configure support for C-Plane limits
153       5) Added t-da-offset and t-au-offset for external antenna support
154       6) Added Channel IQ bitwidth for ST6
155       7) Added ordered-by user to leaf-list member-tx-eaxc-id and leaf-list member-rx-eaxc-id
156       8) Added new PRACH formats
157       9) Ensuring beam-ids can only be 15 bits
158       10) Clarify mixed numerology restrictions";
159
160     reference "ORAN-WG4.M.0-v07.00";
161   }
162
163
164   revision "2021-03-22" {
165     description
166       "version 6.0.0
167
168       1) typographical corrections in descriptions.
169       2) Updates to transmission window control.
170       3) Introduces to existing grouping 'endpoint-section-capacity' two new leaf nodes 'max-uplane-section-header-per-symbol' and
171           'max-uplane-section-header-per-slot' to limit U-Plane data section header addition/parsing.
172       4) deprecated parameter 'max-remasks-per-section-id' since it is duplicate of leaf node 'max-control-sections-per-data-section'.
173       5) introduces new leaf nodes 'max-beams-updates-per-slot' and ''max-beams-updates-per-symbol'
174            to grouping 'endpoint-beam-capacity'
175       6) added new SRS features:
176         STATIC-TRANSMISSION-WINDOW-CONTROL
177         DYNAMIC-TRANSMISSION-WINDOW-CONTROL
178         UNIFORMLY-DISTRIBUTED-TRANSMISSION
179         ORDERED-TRANSMISSION
180         INDEPENDENT-TRANSMISSION-WINDOW-CONTROL";
181
182     reference "ORAN-WG4.M.0-v06.00";
183   }
184
185   revision "2020-12-10" {
186     description
187       "version 5.0.0
188
189       1) introduces new coupling method coupling-via-frequency-and-time-with-priorities-optimized
190       2) introduces new max-highest-priority-sections-per-slot parameter";
191
192     reference "ORAN-WG4.M.0-v05.00";
193   }
194
195   revision "2020-08-10" {
196     description
197       "version 4.0.0
198
199       1) parameters allowing for static PRACH configuration introduced
200       2) parameters allowing for static SRS configuration introduced
201       3) parameters allowing for configuration of TDD pattern introduced
202       4) Backward compatible change to introduce new parameter 'coupling-method' related
203          to Section Description Priority to serve for CUS-Plane CR";
204
205     reference "ORAN-WG4.M.0-v04.00";
206   }
207
208   revision "2020-04-17" {
209     description
210       "version 3.0.0
211
212       1) Adding optional little endian support
213       2) Adding a new capability parameter to indicate that the O-RU
214       supports regularizationFactor in section type 5
215       3) Added support for Dynamic Spectrum Sharing feature
216       4) Clarify the supported number of reMasks in RU side
217       5) Section extension for grouping multiple ports
218       6) adding PRACH formats to endpoint capabilities";
219
220     reference "ORAN-WG4.M.0-v03.00";
221   }
222
223   revision "2019-07-03" {
224     description
225       "version 1.1.0
226
227       1) added new leaf multiple-numerology-supported to enable O-RU to report
228          whether it supports multiple numerologies.
229
230       2) fixing broken constraints (configuration cannot be dependent on
231         operational state). This is a backwards incompatible revision.
232
233        As these constraints only apply when the LAA feature is used, and also
234        when considering the limited number of implementation that need to be
235        taken into consideration for backwards compatibility, it has been
236        agreed to NOT increment the namespace integer.
237
238       3) added frequency related capabilities for tx-arrays and rx-array
239
240       4) removed redundant LAA import";
241
242     reference "ORAN-WG4.M.0-v01.00";
243   }
244
245   revision "2019-02-04" {
246     description
247       "version 1.0.0
248
249       1) imported model from xRAN
250       2) changed namespace and reference from xran to o-ran";
251
252     reference "ORAN-WG4.M.0-v01.00";
253   }
254
255   feature EAXC-GAIN-CORRECTION {
256     description
257       "Presence of feature indicates that O-RU supports eAxC specific gain correction.";
258   }
259
260   feature TX-REFERENCE-LEVEL {
261     description
262       "Presence of feature indicates that O-RU supports TX gain reference level control";
263   }
264
265   typedef prach-preamble-format {
266     type enumeration {
267       enum LTE-0 {
268         description
269           "LTE PRACH Preamble format 0";
270       }
271       enum LTE-1 {
272         description
273           "LTE PRACH Preamble format 1";
274       }
275       enum LTE-2 {
276         description
277           "LTE PRACH Preamble format 2";
278       }
279       enum LTE-3 {
280         description
281           "LTE PRACH Preamble format 3";
282       }
283       enum LTE-4 {
284         description
285           "LTE PRACH Preamble format 4";
286       }
287       enum LTE-NB0 {
288         description
289           "LTE Narrowband PRACH format 0";
290       }
291       enum LTE-NB1 {
292         description
293           "LTE Narrowband PRACH format 1";
294       }
295       enum NR-0 {
296         description
297           "5GNR PRACH Preamble format 0";
298       }
299       enum NR-1 {
300         description
301           "5GNR PRACH Preamble format 1";
302       }
303       enum NR-2 {
304         description
305           "5GNR PRACH Preamble format 2";
306       }
307       enum NR-3 {
308         description
309           "5GNR PRACH Preamble format 3";
310       }
311       enum NR-A1 {
312         description
313           "5GNR PRACH Preamble format A1";
314       }
315       enum NR-A2 {
316         description
317           "5GNR PRACH Preamble format A2";
318       }
319       enum NR-A3 {
320         description
321           "5GNR PRACH Preamble format A3";
322       }
323       enum NR-B1 {
324         description
325           "5GNR PRACH Preamble format B1";
326       }
327       enum NR-B2 {
328         description
329           "5GNR PRACH Preamble format B2";
330       }
331       enum NR-B3 {
332         description
333           "5GNR PRACH Preamble format B3";
334       }
335       enum NR-B4 {
336         description
337           "5GNR PRACH Preamble format B4";
338       }
339       enum NR-C0 {
340         description
341           "5GNR PRACH Preamble format C0";
342       }
343       enum NR-C2 {
344         description
345           "5GNR PRACH Preamble format C2";
346       }
347       enum LTE-NB0-a {
348         description
349           "LTE Narrowband PRACH format 0-a";
350       }
351       enum LTE-NB1-a {
352         description
353           "LTE Narrowband PRACH format 1-a";
354       }
355       enum LTE-NB2 {
356         description
357           "LTE Narrowband PRACH format 2";
358       }
359     }
360
361     description
362       "PRACH preamble format definition";
363   }
364
365   typedef polarisation_type {
366     type enumeration {
367       enum MINUS_45 {
368         description "MINUS_45";
369       }
370       enum ZERO {
371         description "ZERO";
372       }
373       enum PLUS_45 {
374         description "PLUS_45";
375       }
376       enum PLUS_90 {
377         description "PLUS_90";
378       }
379     }
380     description "Type definition for polarisations";
381   }
382
383   grouping transmission-buffering-capacity {
384     description
385       "UL U-plane buffering capacity available for scheduled transmission of UL U-plane messages";
386
387     list transmission-buffering-capacity {
388       description
389         "Buffering capacity for specific IQ format.
390          If the list does not contain an entry for particular IQ format than endpoint
391          or group of endpoints then buffering capacity for this IQ format is
392          max-buffered-prbs = 0 and max-buffered-symbols = 0.";
393
394       uses cf:compression-details;
395
396       leaf max-buffered-prbs {
397         type uint32;
398         description
399           "Max number of PRBs (for IQ format given in compression-details) that can be buffered by an endpoint
400            or buffered collectively by group of endpoints sharing capacity. This is divided between symbols buffered";
401       }
402
403       leaf max-buffered-symbols {
404         type uint32;
405         description
406           "Max number of symbols (for IQ format given in compression-details) that can be buffered by an endpoint
407           or buffered collectively by group of endpoints sharing capacity";
408       }
409     }
410   }
411
412   grouping general-config {
413     description "a group for general configuration";
414
415     container general-config {
416       description "a container for general configuration";
417
418       leaf regularization-factor-se-configured {
419         type boolean;
420         default false;
421         description
422           "Informs if regularization factor in section extension is configured(true) or not(false), this
423           leaf indicates whether the O-DU will send the regularization factor in section extension.
424
425           If the O-RU does not support regularization-factor-se-supported in o-ran-module-cap.yang,
426           this leaf is ignored.";
427       }
428
429       leaf little-endian-byte-order {
430         type boolean;
431         default false;
432
433         description
434           "If  little endian byte order for C/U plane data flows is supported by
435           the O-RU, indicates if the O-RU should use little endian byte order
436           for all UL and DL C/U plane data flows.
437
438           If little endian byte order is NOT supported, this node is ignored
439           (and the default bigendian byte order used)";
440       }
441
442       leaf uplane-only-dl-mode-enable {
443         if-feature feat:UPLANE-ONLY-DL-MODE;
444         type boolean;
445         default false;
446         description
447           "If set to true, enable IQ data transfer without C-Plane in DL for all
448           endpoints as specified in the CUS specification clause 8.2.2.";
449       }
450       
451       leaf st4-for-time-domain-beamforming-weights-enabled {
452         if-feature feat:ST4-SLOT-CONFIG-MSG-SUPPORT;
453         type boolean;
454         default false;
455         description
456           "If O-RU indicates support for Section Type 4 command 'TIME_DOMAIN_BEAM_CONFIG' , O-DU may
457           configure the O-RU to use Section Type 4 TIME_DOMAIN_BEAM_CONFIG command by setting this
458           flag to 'true'. In which case, O-DU shall use only Section Type 4 TIME_DOMAIN_BEAM_CONFIG
459           for specifying time-domain beam information. refer to clause 12.4.3.4.4 of CUS-Plane spec.";
460       }
461     }
462   }
463
464   grouping laa-carrier-config {
465     description "Carrier Configuration for support of LAA. ";
466     leaf ed-threshold-pdsch {
467       type int8;
468       units dBm;
469       description
470         "This value indicates Energy Detection(ED) threshold for LBT for PDSCH and for measurements in dBm.";
471     }
472
473     leaf ed-threshold-drs {
474       type int8;
475       units dBm;
476       description
477         "This value indicates Energy Detection(ED) threshold for LBT for DRS in dBm.";
478     }
479
480     leaf tx-antenna-ports {
481       type uint8;
482       description
483         "This value indicates Tx antenna ports for DRS (1, 2, 4)";
484     }
485
486     leaf transmission-power-for-drs {
487       type int8;
488       units decibels;
489       description
490         "This value indicates offset of Cell specific reference Signal(CRS) power to reference signal power (dB).
491         DRS signal consists of CRS, PSS, SSS, and optionally CSI-RS.";
492     }
493
494     leaf dmtc-period {
495       type enumeration {
496         enum FORTY {
497           description
498             "40 ms";
499         }
500         enum EIGHTY {
501           description
502             "80 ms";
503         }
504         enum ONE-HUNDRED-SIXTY {
505           description
506             "160 ms";
507         }
508       }
509       units milliseconds;
510       description
511         "This value indicates DRS measurement timing configuration (DMTC) period in ms";
512     }
513
514     leaf dmtc-offset {
515       type uint8;
516       units subframes;
517       description
518         "This value indicates dmtc offset in Subframes.";
519     }
520
521     leaf lbt-timer {
522       type uint16;
523       units milliseconds;
524       description
525         "This value indicates LBT Timer in milliseconds.";
526     }
527
528     list max-cw-usage-counter {
529       when "/mcap:module-capability/mcap:rw-sub-band-info/mcap:rw-self-configure = 'true'";
530       key "priority";
531       description "";
532       leaf priority {
533         type enumeration {
534           enum P1 {
535             description "priority 1";
536           }
537           enum P2 {
538             description "priority 2";
539           }
540           enum P3 {
541             description "priority 3";
542           }
543           enum P4 {
544             description "priority 4";
545           }
546         }
547         description "This value provides the priority class traffic for which the counter is calculated.";
548       }
549
550         leaf counter-value {
551           type uint8 {
552             range "1..8";
553           }
554           description "This value indicates the maximum value of counter
555           which shows how many max congestion window value is used for backoff
556           number of priority class traffic. This value is defined at 3GPP 36.213
557           section 15.1.3 as K.";
558         }
559       }
560   }
561
562   grouping coupling-methods {
563     description
564       "Grouping for configuration of desired C-Plane / U-Plane coupling methods (if supported)";
565     leaf coupling-to {
566       type leafref {
567         path "/mcap:module-capability/mcap:ru-capabilities/mcap:coupling-methods/mcap:coupling-via-frequency-and-time";
568         require-instance false;
569       }
570
571       description
572         "RW instance of RO parameter.";
573     }
574     leaf coupling-method {
575       when "../coupling-to = 'true'";
576       type enumeration{
577         enum NORMAL {
578           description "Coupling via sectionId value. This value can be used always.";
579         }
580         enum FREQUENCY_AND_TIME {
581           description "Coupling via frequency and time. Can be used when coupling-via-frequency-and-time = true
582                       or coupling-via-frequency-and-time-with-priorities = true in o-ran-module-cap.yang";
583         }
584         enum FREQUENCY_AND_TIME_WITH_PRIORITIES {
585           description "Coupling via frequency and time with priorities. Can be used when
586                       coupling-via-frequency-and-time-with-priorities = true in o-ran-module-cap.yang";
587         }
588         enum FREQUENCY_AND_TIME_WITH_PRIORITIES_OPTIMIZED {
589           description "Coupling via frequency and time with priorities optimized. Can be used when
590                       coupling-via-frequency-and-time-with-priorities-optimized = true in o-ran-module-cap.yang";
591         }
592       }
593       default NORMAL;
594       description
595         "Method of coupling between C-Plane and U-Plane messages; see methods of coupling
596         of C-Plane and U-Plane in CUS-Plane specification. If an O-RU doesn't support the
597         necessary capability as defined in o-ran-module-cap.yang, the O-RU shall respond
598         with rpc-error including an error-message describing the error condition";
599     }
600   }
601
602   grouping eaxc {
603     description
604       "One eAxC identifier (eAxC ID) comprises a band and sector
605       identifier (BandSector_ID), a component-carrier identifier (CC_ID) and a
606       spatial stream identifier (RU_Port_ID).
607
608       In this version of the specification, one eAxC contains only one spatial
609       stream (i.e. one beam per subcarrier) at a time.
610
611       Bit allocation is subdivided as follows:
612       *    O_DU_Port_ID: Used to differentiate processing units at O-DU
613       *    BandSector_ID: Aggregated cell identifier
614       *    CC_ID: distinguishes Component Carriers
615       *    RU_Port_ID: Used to differentiate spatial streams or beams on the O-RU
616
617       The bitwidth of each of the above fields is variable this model is supposed to check
618         if we are occupying bits continuously, but we do not have to occupy all 16 bits";
619
620
621     leaf o-du-port-bitmask {
622       type uint16;
623       mandatory true;
624       description
625         "mask for eaxc-id bits used to encode O-DU Port ID";
626     }
627
628     leaf band-sector-bitmask {
629       type uint16;
630       mandatory true;
631       description
632         "mask for eaxc-id bits used to encode the band sector ID";
633     }
634
635     leaf ccid-bitmask {
636       type uint16;
637       mandatory true;
638       description
639         "mask for eaxc-id bits used to encode the component carrier id";
640     }
641
642     leaf ru-port-bitmask {
643       type uint16;
644       mandatory true;
645       description
646         "mask for eaxc-id bits used to encode the O-RU Port ID";
647     }
648
649     leaf eaxc-id {
650       type uint16;
651       mandatory true;
652       description
653         "encoded value of eaxcid to be read by CU-Plane";
654     }
655   }
656
657   grouping parameters {
658     description
659       "Grouping of all parameters common between UL and DL";
660
661     leaf name {
662       type string;
663       mandatory true;
664       description "Unique name of array antenna";
665     }
666
667     leaf number-of-rows {
668       type uint16;
669       mandatory true;
670       description "Number of rows array elements are shaped into - M";
671     }
672
673     leaf number-of-columns {
674       type uint16;
675       mandatory true;
676       description "Number of columns array elements are shaped into - N";
677     }
678
679     leaf number-of-array-layers {
680       type uint8;
681       mandatory true;
682       description "Number of array layers array elements are shaped into - Q";
683     }
684
685     leaf horizontal-spacing {
686       type decimal64 {
687             fraction-digits 5;
688         }
689       units Meter;
690
691       description "Average distance between centres of nearby AE in horizontal direction (in array coordinates system)";
692     }
693
694     leaf vertical-spacing{
695       type decimal64 {
696             fraction-digits 5;
697         }
698       units Meter;
699
700       description "Average distance between centres of nearby AE in vertical direction (in array coordinates system)";
701     }
702
703     container normal-vector-direction {
704       description
705         "Counter-clockwise rotation around z and y axis.";
706
707       leaf azimuth-angle{
708         type decimal64 {
709           fraction-digits 4;
710           }
711         units Degrees;
712
713         description "Azimuth angle, counter-clockwise rotation around z-axis. Value 'zero' points to broad-side, value '90' points to y-axis";
714       }
715        leaf zenith-angle{
716          type decimal64 {
717           fraction-digits 4;
718           }
719         units Degrees;
720
721         description "Zenith angle, counter-clockwise rotation around y-axis. Value 'zero' points to zenith, value '90' points to horizon";
722        }
723     }
724
725     container leftmost-bottom-array-element-position {
726       description "Structure describing position of leftmost, bottom array element.";
727       leaf x {
728         type decimal64 {
729           fraction-digits 4;
730           }
731         units Meter;
732
733         description "X dimension of position of leftmost, bottom array element";
734       }
735
736       leaf y {
737         type decimal64 {
738           fraction-digits 4;
739           }
740         units Meter;
741
742         description "Y dimension of position of leftmost, bottom array element";
743       }
744
745       leaf z {
746         type decimal64 {
747           fraction-digits 4;
748           }
749         units Meter;
750
751         description "Z dimension of position of leftmost, bottom array element";
752       }
753     }
754     list polarisations {
755       key "p";
756       min-elements 1;
757       max-elements 2;
758
759       description
760         "List of supported polarisations.";
761
762       leaf p {
763       type uint8;
764       mandatory true;
765       description
766         "Polarisation index. See CUS-plane";
767       }
768
769       leaf polarisation {
770         type polarisation_type;
771         mandatory true;
772         description "Type of polarisation supported by array.";
773       }
774     }
775     leaf band-number {
776       type leafref {
777         path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
778       }
779       mandatory true;
780       description
781         "This parameter informing which frequency band particular antenna
782          array is serving for.
783          Intended use is to deal with multiband solutions.";
784     }
785
786     list related-o-ru-connectors {
787       key name;
788
789       leaf name {
790         type leafref {
791           path '/hw:hardware/hw:component/hw:name';
792         }
793         must "derived-from-or-self(deref(current())/../hw:class, 'or-hw:O-RU-ANTENNA-CONNECTOR')";
794         description
795           "Referenced name of O-RU connector used by the antenna array.";
796       }
797       leaf-list array-element-id {
798         type uint16;
799         description
800           "Identifiers of array element(s) related to specific O-RU connector. Allowed values and semantic - as per CUS-Plane spec, clause 'Identification and Ordering of Array Elements'";
801       }
802       description
803         "List of unique names that identify instances of O-RU's connectors the external [tr]x-array is reachable through.";
804     }
805   }
806
807   grouping array-choice {
808     choice antenna-type {
809       case tx {
810         leaf tx-array-name {
811           type leafref {
812             path "/o-ran-uplane-conf:user-plane-configuration/o-ran-uplane-conf:tx-arrays/o-ran-uplane-conf:name";
813           }
814
815           description
816             "Leafref to tx array if such is chosen";
817         }
818       }
819       case rx {
820         leaf rx-array-name {
821           type leafref {
822             path "/o-ran-uplane-conf:user-plane-configuration/o-ran-uplane-conf:rx-arrays/o-ran-uplane-conf:name";
823           }
824
825           description
826             "Leafref to rx array if such is chosen";
827         }
828       }
829       description
830         "Choice for antenna type";
831     }
832     description
833       "Elements which groups choice for antenna type";
834   }
835
836   grouping scs-config {
837     description
838       "It groups all parameters related to SCS configuration";
839
840     leaf frame-structure {
841       type uint8;
842
843       description
844         "This parameter provides value of frame structure. For semantics and allowed values see CUS-Plane Specification, clause 'frameStructure (frame structure)'";
845     }
846
847     leaf cp-type {
848       type enumeration {
849         enum NORMAL {
850           description
851             "Normal cyclic prefix";
852         }
853
854         enum EXTENDED {
855           description
856             "Extended cyclic prefix";
857         }
858       }
859
860       description
861         "Provides type of CP (cyclic prefix) if section type 3 is not used or type of CP cannot be determined from cpLength.";
862     }
863
864     leaf cp-length {
865       type uint16;
866       units Ts;
867       mandatory true;
868       description
869         "Provides length of CP used for the first symbol after subframe boundary or half-subframe boundary.
870         See CUS-plane
871
872         If a section type 3 is used in C-plane messages addressed to the endpoint, then O-RU takes length of CP from
873         C-Plane cpLength Information Element and the value of this leaf shall be ignored by the O-RU. See cpLength (cyclic prefix length)
874         in CUS-Plane for details.
875
876         If a static configuration (see static-prach-configurations) is applicable to the endpoint, then O-RU takes
877         length of CP from M-Plane cp-length leaf in static-prach-configurations and the value of this leaf shall be ignored by the O-RU.";
878     }
879
880     leaf cp-length-other {
881       type uint16;
882       units Ts;
883       mandatory true;
884       description
885         "Provides length of CP used for symbols other than provided by cp-length.
886
887         If a section type 3 is used in C-plane messages addressed to the endpoint, then O-RU takes length of CP from
888         C-Plane cpLength Information Element and the value of this leaf shall be ignored by the O-RU. See cpLength (cyclic prefix length)
889         in CUS-Plane for details.
890
891         If a static configuration (see static-prach-configurations) is applicable to the endpoint, then O-RU takes
892         length of CP from M-Plane cp-length leaf in static-prach-configurations and the value of this leaf shall be ignored by the O-RU.";
893     }
894
895     leaf offset-to-absolute-frequency-center {
896       type int32;
897       mandatory true;
898       description
899         "This provides value of freqOffset to be used if section type 3 is not used. See freqOffset in CUS-plane.
900          offset-to-absolute-frequency-center defines the relative spacing between the centre of RE#0 of RB#0 to the center-of-channel-bandwidth.
901          If offset-to-absolute-frequency-center for NR with SCS=15kHz is odd,
902          it implies that 7.5kHz shift as indicated by the 3GPP parameter frequencyShift7p5khz for UL is applied,
903          which means enable the NR UL transmission with a 7.5 kHz shift to the LTE raster, as defined in 3GPP TS 38.331.
904          When type (in tx/rx-array-carrier) is DSS, 'offset-to-absolute-frequency-center' indicates the 1st RE of 1st RB of NR.";
905     }
906
907     list number-of-prb-per-scs {
908       key scs;
909       description
910         "List of configured for each SCS that will be used.";
911
912       leaf scs {
913         type mcap:scs-config-type;
914         description
915           "Value corresponds to SCS values defined for frameStructure in C-plane.
916           Note: set of allowed values is restricted by SCS derived from values in supported-frame-structures.";
917       }
918
919       leaf number-of-prb {
920         type uint16;
921         mandatory true;
922         description
923           "Determines max number of PRBs that will be used in all sections per one symbol.
924           This is affecting allocation of resources to endpoint. Value shall not exceed constrains
925           defined by max-prb-per-symbol of endpoint type. In addition, sum (over all used endpoints
926           within a group of endpoints sharing resources) of number-of-prb rounded up to the
927           nearest value from prb-capacity-allocation-granularity shall not exceed max-prb-per-symbol of the group.";
928       }
929     }
930   }
931
932   grouping tx-common-array-carrier-elements {
933     description
934       "This grouping contains all common parameters for tx-array-carriers and rx-array-carriers";
935
936     leaf absolute-frequency-center {
937       type uint32;
938       status deprecated;
939       description
940         "deprecated in version 5.0.0 and replaced with offset-to-absolute-frequency-center
941         and common FREF translated from absolute-frequency-center (NREF) as defined in 38.104";
942     }
943
944     leaf center-of-channel-bandwidth {
945       type uint64;
946           units Hz;
947       mandatory true;
948       description
949         "Centre frequency of channel bandwidth in Hz. Common for all numerologies.
950          center-of-channel-bandwidth is the FREF translated from absolute-frequency-center (NREF) as per 3GPP TS 38.104.
951          Refer to Table 5: Centre Bandwidth Calculation in M-plane spec for calculation of this parameter
952          for even and odd number of PRBs in LTE, NR and DSS carrier configuration.";
953     }
954
955     leaf channel-bandwidth {
956       type uint64;
957       units Hz;
958       mandatory true;
959
960       description
961         "Width of carrier given in Hertz";
962     }
963
964     leaf active {
965       type enumeration {
966         enum INACTIVE {
967               description
968                 "carrier does not provide signal - transmission is disabled";
969             }
970         enum SLEEP{
971               description
972                 "carrier is fully configured and was active but is energy saving mode";
973             }
974         enum ACTIVE{
975               description
976                 "carrier is fully configured and properly providing the signal";
977             }
978       }
979       default INACTIVE;
980
981       description
982         "Indicates if transmission is enabled for this array carriers. Note that NETCONF server uses state parameter
983         to indicate actual state of array carriers operation. When array carriers is in sleep status,
984         NETCONF server rejects all other operation request to tx-array-carriers object except either request to change from sleep
985         to active status or delete MO operation (see 4.8) to the object.";
986     }
987
988     leaf state {
989       type enumeration {
990         enum DISABLED {
991           description
992             "array carrier is not active - transmission of signal is disabled.";
993         }
994         enum BUSY {
995           description
996             "array carrier is processing an operation requested by change of active parameter.
997             When array carriers is BUSY the transmission of signal is not guaranteed.";
998         }
999         enum READY {
1000           description
1001             "array carrier had completed activation operation - is active and transmission of signal is ongoing.";
1002         }
1003       }
1004       config false;
1005       mandatory true;
1006       description
1007         "Indicates state of array carriers activation operation";
1008     }
1009
1010     leaf type {
1011       type enumeration {
1012         enum NR {
1013               description
1014                 "5G technology";
1015         }
1016         enum LTE {
1017               description
1018                 "LTE technology";
1019         }
1020         enum DSS_LTE_NR {
1021           if-feature mcap:DSS_LTE_NR;
1022               description
1023                 "NR and LTE technologies in Dynamic Spectrum Sharing mode";
1024         }
1025       }
1026       description
1027         "Type of carrier. Indicates array-carrier technology.";
1028     }
1029
1030     leaf duplex-scheme {
1031       type enumeration {
1032         enum TDD {
1033               description
1034                 "TDD scheme";
1035             }
1036         enum FDD {
1037               description
1038                 "FDD scheme";
1039         }
1040       }
1041       config false;
1042
1043       description
1044         "Type of duplex scheme O-RU supports.";
1045     }
1046     leaf rw-duplex-scheme {
1047       type leafref {
1048         path "/user-plane-configuration/tx-array-carriers[name=current()/../name]" + "/duplex-scheme";
1049         require-instance false;
1050       }
1051       status deprecated;
1052       description
1053         "Config true type of duplex scheme.
1054          Status is deprecated because 'lte-tdd-frame' container, where it was used, is also deprecated.
1055          Additionally duplex-scheme is derived from the band-number.";
1056     }
1057     leaf rw-type {
1058       type leafref {
1059         path "/user-plane-configuration/tx-array-carriers[name=current()/../name]" + "/type";
1060         require-instance false;
1061       }
1062       status deprecated;
1063       description
1064         "Config true type of carrier.
1065          Status is deprecated because leafref is to a 'config true' schema-node";
1066     }
1067   }
1068
1069   grouping rx-common-array-carrier-elements {
1070     description
1071       "This grouping contains all common parameters for tx-array-carriers and rx-array-carriers";
1072
1073     leaf absolute-frequency-center {
1074       type uint32;
1075       status deprecated;
1076       description
1077         "deprecated in version 5.0.0 and replaced with offset-to-absolute-frequency-center
1078         and common FREF translated from absolute-frequency-center (NREF) as defined in 38.104";
1079     }
1080
1081     leaf center-of-channel-bandwidth {
1082       type uint64;
1083           units Hz;
1084       mandatory true;
1085       description
1086         "Centre frequency of channel bandwidth in Hz. Common for all numerologies.
1087          center-of-channel-bandwidth is the FREF translated from absolute-frequency-center (NREF) as per 3GPP TS 38.104.
1088          Refer to Table 5: Centre Bandwidth Calculation in M-plane spec for calculation of this parameter
1089          for even and odd number of PRBs in LTE, NR and DSS carrier configuration.";
1090     }
1091
1092     leaf channel-bandwidth {
1093       type uint64;
1094       units Hz;
1095       mandatory true;
1096
1097       description
1098         "Width of carrier given in Hertz";
1099     }
1100
1101     leaf active {
1102       type enumeration {
1103         enum INACTIVE {
1104               description
1105                 "carrier does not provide signal - transmission is disabled";
1106             }
1107         enum SLEEP{
1108               description
1109                 "carrier is fully configured and was active but is energy saving mode";
1110             }
1111         enum ACTIVE{
1112               description
1113                 "carrier is fully configured and properly providing the signal";
1114             }
1115       }
1116       default INACTIVE;
1117
1118       description
1119         "Indicates if transmission is enabled for this array carriers. Note that NETCONF server uses state parameter
1120         to indicate actual state of array carriers operation. When array carriers is in sleep status,
1121         NETCONF server rejects all other operation request to tx-array-carriers object except either request to change from sleep
1122         to active status or delete MO operation (see 4.8) to the object.";
1123     }
1124
1125     leaf state {
1126       type enumeration {
1127         enum DISABLED {
1128           description
1129             "array carrier is not active - transmission of signal is disabled.";
1130         }
1131         enum BUSY {
1132           description
1133             "array carrier is processing an operation requested by change of active parameter.
1134             When array carriers is BUSY the transmission of signal is not guaranteed.";
1135         }
1136         enum READY {
1137           description
1138             "array carrier had completed activation operation - is active and transmission of signal is ongoing.";
1139         }
1140       }
1141       config false;
1142       mandatory true;
1143       description
1144         "Indicates state of array carriers activation operation";
1145     }
1146
1147     leaf type {
1148       type enumeration {
1149         enum NR {
1150               description
1151                 "5G technology";
1152         }
1153         enum LTE {
1154               description
1155                 "LTE technology";
1156         }
1157         enum DSS_LTE_NR {
1158           if-feature mcap:DSS_LTE_NR;
1159               description
1160                 "NR and LTE technologies in Dynamic Spectrum Sharing mode";
1161         }
1162       }
1163       description
1164         "Type of carrier. Indicates array-carrier technology.";
1165     }
1166
1167     leaf duplex-scheme {
1168       type enumeration {
1169         enum TDD {
1170               description
1171                 "TDD scheme";
1172             }
1173         enum FDD {
1174               description
1175                 "FDD scheme";
1176         }
1177       }
1178       config false;
1179
1180       description
1181         "Type of duplex scheme O-RU supports.";
1182     }
1183   }
1184
1185   grouping endpoint-section-capacity {
1186     leaf max-control-sections-per-data-section {
1187       type uint8 {
1188         range "1..12";
1189       }
1190       description
1191         "Max number of C-plane sections (C-plane section is part of C-plane message that carries 'section fields')
1192         referring to same U-plane section (U-plane section is part of U-plane message that carries
1193         'section header fields' and 'PRB fields') that is supported by endpoint.
1194         Note that additional limitations specific for each section type apply on top of this number.";
1195     }
1196     leaf max-sections-per-symbol {
1197       type uint16;
1198       description
1199         "Max number of sections within one symbol that can be processed by endpoint
1200         or processed collectively by group of endpoints sharing capacity";
1201     }
1202     leaf max-sections-per-slot {
1203       type uint16;
1204       description
1205         "Max number of sections within one slot that can be processed by endpoint
1206         or processed collectively by group of endpoints sharing capacity.";
1207     }
1208     leaf max-highest-priority-sections-per-slot {
1209       type uint16;
1210       must "current() < ../max-sections-per-slot" {
1211         error-message "the sectionID for the highest priority needs to be less than the max sectionIds per slot";
1212       }
1213       description
1214         "Max number of highest priority sections within one slot that can be processed by endpoint or processed  collectively by
1215         group of endpoints sharing capacity. This leaf applies only when coupling-via-frequency-and-time-with-priorities-optimized
1216         is true, in other instances this leaf is ignored by the O-RU. The sectionId for highest priority section descriptions shall
1217         start from 0 to specified max value and is a subset of max-sections-per-slot and must be less than max-sections-per-slot.";
1218     }
1219
1220     leaf max-remasks-per-section-id {
1221       type uint8 {
1222         range "1..12";
1223       }
1224       default 12;
1225       status deprecated;
1226       description
1227         "maximum number of different reMask values that is applied to a PRB
1228         within one section id. This value can be processed by endpoint
1229         or processed collectively by group of endpoints sharing capacity.
1230         This parameter is duplicated max-control-sections-per-data-section, hence being deprecated.";
1231     }
1232     leaf max-uplane-section-header-per-symbol {
1233       type uint16;
1234       description
1235         "Maximum number of U-Plane data section header within one symbol that can be processed by an endpoint or processed collectively by group of
1236         endpoints sharing capacity. Clarification for multiple U-Plane data section headers per C-Plane section description is specified in sectionId IE
1237         description in CUS-Plane specification. For the cases where this optional parameter is not populated by O-RU or an older version O-DU does not
1238         interpret this parameter, O-DU may optionally use max-sections-per-symbol as the default value to limit of U-Plane data  section messages which
1239         can be processed by the O-RU. If none of the above limitations are supported, O-RU and O-DU may rely on offline negotiation.
1240         As an example, this parameter can be used to limit O-RU processing while using Section extension type#6 and #12, which are used for non-contiguous
1241         PRB allocation, and hence results in multiple U-Plane data section headers for a given C-Plane section description.";
1242     }
1243     leaf max-uplane-section-header-per-slot {
1244       type uint16;
1245       description
1246         "Maximum number of U-Plane data section headers within one slot that can be processed by an endpoint or processed collectively by group of
1247         endpoints sharing capacity. Clarification for multiple U-Plane data section headers per C-Plane section description is specified in sectionId IE
1248         description in CUS-Plane specification. For the cases where this optional parameter is not populated by O-RU or an older version O-DU does not
1249         interpret this parameter, O-DU may optionally use max-sections-per-slot as the default value to limit of U-Plane data  section messages which can
1250         be processed by the O-RU. If none of the above limitations are supported, O-RU and O-DU may rely on offline negotiation.
1251         As an example, this parameter can be used to limit O-RU processing while using Section extension type#6 and #12, which are used for non-contiguous
1252         PRB allocation, and hence results in multiple U-Plane data section headers for a given C-Plane section description.";
1253     }
1254
1255     description
1256       "Parameters describing section capacity where section is understood as number of different sectionId values. Additionally, max limits for U-Plane data sections
1257       refer to U-Plane data section headers";
1258   }
1259
1260   grouping endpoint-section-extension-limits {
1261     leaf max-mcscaleremask-per-prb {
1262       type uint16;
1263       description
1264         "This parameter limits the number of sets of {mcScaleReMask, csf, mcScaleOffset} values per symPrbPattern the O-RU can support when SE 23 is used in a
1265         data section description. Refer to clause 7.7.23.1 of the CUS-Plane specification.";
1266     }
1267     leaf max-prb-ranges-per-sec-ext-12 {
1268       type uint16;
1269       description
1270         "Optional parameter reported by O-RU which applies to Section Extension 12 and specifies
1271         the maximum number of frequency ranges R per section description supported by O-RU.
1272         If this limit is exceeded by the O-DU, the O-RU is responsible for sending alarm notification
1273         with 'fault-id = 31' to subscribers following the procedures defined in Clause 11 and
1274         Table A.1-1 of O-RAN.WG4.MP.0.
1275         As an example, the O-RU can include the following in the corresponding active-alarm list
1276         entry and alarm-notification message:
1277         <fault-text>Error C-Plane message</fault-text>
1278         <probable-cause>Maximum number of frequency ranges in SE-12 per section description exceeded</probable-cause>
1279         <proposed-repair-actions>Reduce frequency ranges per section description used in SE-12</proposed-repair-actions>";
1280     }
1281     leaf max-freq-hops-per-sec-ext-13 {
1282       type uint16;
1283       description
1284         "Optional parameter reported by O-RU which applies to Section Extension 13 and specifies
1285         the maximum number of frequency hops R per section description supported by O-RU.
1286         If this limit is exceeded by the O-DU, the O-RU is responsible for sending alarm notification
1287         with 'fault-id = 31' to subscribers following the procedures defined in Clause 11 and
1288         Table A.1-1 of O-RAN.WG4.MP.0.
1289         As an example, the O-RU can include the following in the corresponding active-alarm list
1290         entry and alarm-notification message:
1291         <fault-text>Error C-Plane message</fault-text>
1292         <probable-cause>Maximum number of frequency hops in SE 13 per section description exceeded</probable-cause>
1293         <proposed-repair-actions>Reduce frequency hops per section description used in SE-13</proposed-repair-actions>";
1294     }
1295
1296     description
1297       "Parameters describing C-Plane section extension limits/capacities.";
1298   }
1299
1300   grouping endpoint-beam-capacity {
1301     leaf max-beams-per-symbol {
1302       type uint16 {
1303         range "min .. 32767";
1304       }
1305       description
1306         "Max number of beams within one symbol that can be processed by endpoint
1307         or processed collectively by group of endpoints sharing capacity
1308
1309         If the parameter is absent or if value 0 is reported for the parameter,
1310         then the endpoint does not support beamforming operation.";
1311     }
1312     leaf max-beams-per-slot {
1313       type uint16 {
1314         range "min .. 32767";
1315       }
1316       description
1317         "Max number of beams within one slot that can be processed by endpoint
1318         or processed collectively by group of endpoints sharing capacity
1319
1320         If the parameter is absent or if value 0 is reported for the parameter,
1321         then the endpoint does not support beamforming operation.";
1322     }
1323     leaf max-beam-updates-per-slot {
1324       type uint16 {
1325         range "min .. 32767";
1326       }
1327       description
1328         "Max number of beams within one slot that can be updated by endpoint
1329         or processed collectively by group of endpoints sharing capacity
1330
1331         If the parameter is absent or if value 0 is reported for the parameter,
1332         then the endpoint does not support beamforming operation.";
1333     }
1334     leaf max-beam-updates-per-symbol {
1335       type uint16 {
1336         range "min .. 32767";
1337       }
1338       description
1339         "Max number of beams within one symbol that can be updated by endpoint
1340         or processed collectively by group of endpoints sharing capacity
1341
1342         If the parameter is absent or if value 0 is reported for the parameter,
1343         then the endpoint does not support beamforming operation.";
1344     }
1345
1346     description
1347       "Parameters describing beam capacity where number of beams is understood as number of different beamId values.
1348        Parameters defined for beam updates shall be used to put a maximum limit on number of beam/beamIds which can be updated
1349        every slot/symbol. Note: This parameter does not put any restriction on which beams/beamIds can be updated.
1350
1351        If the parameters defining beam capacity and beam updates are absent or if value 0 is reported for the parameters
1352        defining beam capacity and beam updates, then the endpoint does not support beamforming operation.";
1353   }
1354
1355   grouping endpoint-prb-capacity {
1356     leaf max-prb-per-symbol {
1357       type uint16;
1358       description
1359         "Max number of prbs within one symbol that can be processed by endpoint
1360         or processed collectively by group of endpoints sharing capacity";
1361     }
1362
1363     leaf max-prb-ranges-per-symbol {
1364       type uint32;
1365       description
1366         "Optional parameter reported by O-RU which indicates the maximum number of PRB ranges
1367         that can be processed by single endpoint or processed collectively by group of endpoints
1368         sharing capacity within one symbol. For details please see O-RAN WG4 CUS-Plane specification,
1369         Clause 7.8.2.1.2 'Limits of number of PRB ranges'.
1370
1371         In case CU-Plane traffic generated by the O-DU exceeds the limit, an O-RU is responsible
1372         for sending alarm notification with 'fault-id = 31' to subscribers following the procedures
1373         defined in Clause 11 and Table A.1-1 of O-RAN.WG4.MP.0.
1374
1375         As an example, the O-RU can include the following in the corresponding active-alarm list
1376         entry and alarm-notif message:
1377         <fault-text>Error C-Plane message</fault-text>
1378         <probable-cause>max-prb-ranges-per-symbol exceeded</probable-cause>
1379         <proposed-repair-actions>Reduce value of  number of PRB ranges used per symbol</proposed-repair-actions>";
1380     }
1381
1382     description
1383       "Attributes presenting processing capacity related to PRB.";
1384   }
1385
1386   grouping endpoint-numerology-capacity {
1387     leaf max-numerologies-per-symbol {
1388       type uint16;
1389       description
1390         "Max number of numerologies within one symbol that can be processed by endpoint
1391         or processed collectively by group of endpoints sharing capacity";
1392     }
1393
1394     description
1395       "Attributes presenting processing capacity related to numerology.
1396
1397       This leaf contains valid data only when multiple-numerology-supported
1398       is set to true.";
1399   }
1400
1401   grouping per-cplane-message-limits  {
1402     leaf max-beams-per-cplane-message {
1403       type uint16;
1404       description
1405         "Maximum number of beams which can be recieved in one single C-Plane message. Number of beams,
1406         may include only beamIds, only beam weights or mix of beamIds and beamweights being received by
1407         an O-RU in a single C-Plane message.
1408         To avoid application layer fragmentation of C-Plane message across the fronthaul, O-RU should
1409         avoid setting this to a very low value.
1410         As a usage scenario, an O-RU may choose to define only a few quantized values e.g. (128, 256).
1411         If the value is set to 0 by O-RU, the O-DU need not restrict the number of beams it can send
1412         in single C-Plane message (except limited by MTU size).";
1413     }
1414
1415     leaf max-highest-priority-sec-per-cplane-message {
1416       type uint16;
1417       description
1418         "Maximum number of highest priority sections which can be received in one single C-Plane message.
1419         This leaf applies only when 'coupling-via-frequency-and-time-with-priorities' is true";
1420     }
1421
1422     leaf max-beams-per-slot-with-cplane-limits {
1423       type uint16;
1424       description
1425         "Maximum number of beams that are required to be processed by endpoint or processed collectively
1426         by group of endpoints sharing capacity when O-DU enables C-Plane limits. This value should replace
1427         'max-beams-per-slot' defined in 'endpoint-beam-capacity'";
1428     }
1429
1430     leaf max-highest-priority-sections-per-slot-with-cplane-limits {
1431       type uint16;
1432       description
1433         "Maximum number of highest priority sections that are required to be processed by endpoint or processed
1434         collectively by group of endpoints sharing capacity when O-DU supports C-Plane limits. This value should
1435         replace 'max-highest-priority-sections-per-slot' defined in 'endpoint-section-capacity'";
1436     }
1437
1438     leaf max-num-se22-per-cplane-message {
1439       type uint16;
1440       description
1441         "This value limits the max number of section extension 22 (ACK/NACK request) included in a C-Plane message as supported
1442         by the endpoint or collectively by group of endpoints sharing capacity when O-DU enables C-Plane limits
1443         and when section extension 22 (ACK/NACK request) and section type 8 (ACK/NACK feedback) are supported by the endpoint or endpoint sharing group.";
1444     }
1445
1446     leaf max-prb-ranges-per-hp-section-sec-ext-12 {
1447       type uint16;
1448       description
1449         "Optional parameter reported by O-RU which applies to Section Extension 12 and specifies the
1450         maximum number of frequency ranges R per highest priority section description supported by O-RU.
1451         If this limit is exceeded by the O-DU, the O-RU is responsible for sending alarm notification
1452         with 'fault-id = 31' to subscribers following the procedures defined in Clause 11 and
1453         Table A.1-1 of O-RAN.WG4.MP.0.
1454         As an example, the O-RU can include the following in the corresponding active-alarm list
1455         entry and alarm-notification message:
1456         <fault-text>Error C-Plane message</fault-text>
1457         <probable-cause>Maximum number of frequency hops per highest priority section description exceeded</probable-cause>
1458         <proposed-repair-actions>Reduce frequency range per highest section description</proposed-repair-actions>";
1459     }
1460
1461     description
1462       "Attributes limit maximum instances of certian parameters contained in a C-Plane mesaage e.g. beams,
1463       highest priority sections. This limitation is useful for O-RUs which are packet processing based and are
1464       dimensioned to handle fixed number of parameters contained in a C-Plane message. In addition, if O-DU supports
1465       cplane limits, O-RU can operate more efficiently and endpoint capacity for applicable parameters are enhanced.
1466       as specified by 'max-beams-per-slot-with-cplane-limits' and 'max-highest-priority-sections-per-slot-with-cplane-limits'";
1467   }
1468
1469   grouping beam-update-contention-control-limits  {
1470     leaf max-beams-per-symbol-with-beam-contention-control {
1471       type uint16;
1472       description
1473         "Maximum number of beams within one symbol that can be processed by an endpoint or processed collectively
1474         by group of endpoints sharing capacity when O-DU enables the O-RU feature BEAM-UPDATE-CONTENTION-CONTROL.
1475         This value should replace 'max-beams-per-symbol' defined in 'endpoint-beam-capacity'";
1476     }
1477
1478     leaf max-beams-updates-per-symbol-with-beam-contention-control {
1479       type uint16;
1480       description
1481         "Maximum number of beams within one symbol that can be updated by an endpoint or processed collectively
1482         by group of endpoints sharing capacity when O-DU enables the O-RU feature BEAM-UPDATE-CONTENTION-CONTROL.
1483         This value should replace 'max-beam-updates-per-symbol' defined in 'endpoint-beam-capacity'";
1484     }
1485
1486     description
1487       "If O-DU supports BEAM-UPDATE-CONTENTION-CONTROL, O-RU can operate more efficiently and endpoint capacity for applicable
1488       parameters are enhanced.";
1489   }
1490
1491   grouping endpoint-static-config-support {
1492     leaf static-config-supported {
1493       type enumeration {
1494         enum NONE {
1495           description
1496             "The endpoint does not support static PRACH / SRS configuration.
1497              Reception of PRACH / SRS is possible through real time C-Plane messages
1498              if other endpoint capabilities allow for that.";
1499         }
1500         enum PRACH {
1501           if-feature mcap:PRACH-STATIC-CONFIGURATION-SUPPORTED;
1502           description
1503             "The endpoint supports statically configured PRACH reception";
1504         }
1505         enum SRS {
1506           if-feature mcap:SRS-STATIC-CONFIGURATION-SUPPORTED;
1507           description
1508             "The endpoint supports statically configured SRS reception";
1509         }
1510       }
1511       default NONE;
1512
1513       description
1514         "The parameter informs if endpoint can be statically configured to process PRACH or SRS reception";
1515     }
1516
1517     leaf max-prach-patterns {
1518       when "(/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'PRACH')";
1519       type uint8;
1520         description
1521           "Maximum number of PRACH patterns the endpoint can handle in PRACH configuration";
1522     }
1523
1524     leaf max-srs-patterns {
1525       when "(/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'SRS')";
1526       type uint8;
1527         description
1528           "Maximum number of SRS patterns the endpoint can handle in SRS configuration";
1529     }
1530
1531     description
1532       "Endpoint's capabilities related to static PRACH / SRS configuration.";
1533   }
1534
1535   grouping endpoint-tdd-pattern-support {
1536     leaf configurable-tdd-pattern-supported {
1537       if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
1538       type boolean;
1539       default false;
1540
1541       description
1542         "The parameter informs if endpoint supports configuration for TDD pattern";
1543     }
1544
1545     leaf tdd-group {
1546       type uint8;
1547       description
1548         "Parameter is used to group static-low-level-[tr]x-endpoints.
1549         Note: [tr]x-array-carriers using static-low-level-[tr]x-endpoints
1550         having the same value of tdd-group, must have the same TDD switching
1551         points and the same directions to the air interface granted - regardless TDD switching
1552         is controlled by M-Plane or by C-Plane";
1553     }
1554
1555     description
1556       "This grouping exposes static-low-level-[tr]x-endpoint's capabilities related to its support for configurable
1557       TDD patterns and limitations regarding common TDD switching per groups of endpoints.";
1558   }
1559
1560   grouping u-plane-transmission-control {
1561     description
1562       "Configuration for UL U-plane transmission control";
1563
1564     leaf transmission-window-control {
1565       if-feature "feat:STATIC-TRANSMISSION-WINDOW-CONTROL or feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL";
1566       type enumeration {
1567         enum NONE {
1568           description
1569             "O-RU will use normal transmission type with normal transmission window";
1570         }
1571         enum STATIC {
1572           if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL;
1573           description
1574             "O-RU will use transmission window offset and size and transmission type as configured over M-plane";
1575         }
1576         enum DYNAMIC {
1577           if-feature feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL;
1578           description
1579             "O-RU will use transmission window offset and size and transmission type as requested over C-plane";
1580         }
1581       }
1582       default NONE;
1583
1584       description
1585         "Selects type of UL U-plane transmission window control for the endpoint";
1586     }
1587
1588     leaf transmission-window-schedule {
1589       when "(../transmission-window-control = 'STATIC')";
1590       if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL;
1591       type union {
1592         type empty;
1593         type leafref {
1594           path "/user-plane-configuration/transmission-window-schedules/id";
1595         }
1596       }
1597       description
1598         "Identifies U-plane transmission window schedule (which provides a list of symbol-specific offsets)
1599          to be used by the endpoint.
1600          Symbol-specific offset values from the schedule are added to endpoint specific offset value
1601          from transmission-window-offset.
1602          If this element is not present, the O-RU assumes as all symbol specific offsets are zero.
1603          For restrictions on values of symbol-specific offsets see description of transmission-window-offset.
1604          This parameter shall not be set to value other than empty if transmission control is not enabled
1605          by transmission-window-control.";
1606     }
1607
1608     leaf transmission-window-offset {
1609       when "(../transmission-window-control = 'STATIC')";
1610       if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL;
1611       type uint16;
1612       units "number of symbols";
1613       default 0;
1614       description
1615         "Transmission window offset.
1616          The effective symbol-specific offset is sum of endpoint-specific offset value from transmission-window-offset
1617          and symbol-specific offset from transmission-window-schedules referenced by transmission-window-schedule.
1618
1619          If this element is not present then O-RU assumes transmission-window-offset is zero.
1620          This parameter shall not be set to value other than 0 if transmission control is not enabled
1621          by transmission-window-control.
1622
1623          There is no direct upper bound for this parameter (except value range defined by leaf type) but there are
1624          restrictions on combination of values of transmission-window-offset, transmission-window-offset,
1625          symbol-specific offset from transmission-window-schedules and transmission-window-size.
1626
1627          Specifically, if endpoint is set for delay managed operation (non-time-managed-delay-enabled = FALSE)
1628          then O-RU handles U-Plane transmission as delay managed traffic and combination of values of
1629          transmission-window-offset, symbol-specific offset from transmission-window-schedules and
1630          transmission-window-size must not exceed O-RU buffering capacity (transmission-buffering-capacity)
1631          for the requested reception schedule.
1632
1633          If endpoint is set for non-delay managed operation (non-time-managed-delay-enabled = TRUE)
1634          then O-RU handles U-Plane transmission on best effort basis. In this case any combination of values
1635          of transmission-window-offset, symbol-specific offset from transmission-window-schedules and
1636          transmission-window-size is permitted. This does not remove restrictions on parameters due to restrictions
1637          defined for value type or restrictions that depend on INDEPENDENT-TRANSMISSION-WINDOW-CONTROL feature
1638
1639          Additional restrictions on values (and presence) of transmission-window-schedule, transmission-window-offset
1640          and transmission-window-size depend on presence of INDEPENDENT-TRANSMISSION-WINDOW-CONTROL feature.
1641
1642          If INDEPENDENT-TRANSMISSION-WINDOW-CONTROL feature is not supported then all endpoints with
1643          transmission control enabled that handle the same carrier type and SCS must be configured
1644          (via M-plane or C-plane) with parameter values resulting in transmission windows that coincide
1645          between the endpoints. That is, for every symbol N, the effective transmission window for symbol N
1646          must be shared (start at the same time and end at the same time) by all the endpoints handling
1647          same carrier type and SCS. This restriction applies only to endpoints that have transmission
1648          control enabled.
1649
1650          If INDEPENDENT-TRANSMISSION-WINDOW-CONTROL feature is supported then restriction described
1651          above does not apply and a different transmission window (window offset and window size)
1652          can be used for every endpoint capable of transmission window control.";
1653     }
1654
1655     leaf transmission-window-size {
1656       when "(../transmission-window-control = 'STATIC')";
1657       if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL;
1658       type uint16 {
1659         range "0..10000";
1660       }
1661       units "microsecond";
1662       default 0;
1663       description
1664         "Transmission window size to be used; only values that are compatible with SCS used
1665          for the endpoint are allowed.
1666          Minimum supported value is determined by SCS specific transmission window size
1667          reported by O-RU in ru-delay-profile.
1668
1669          Client can use special value 0 (zero) instead of the SCS specific transmission window
1670          size reported by O-RU in ru-delay-profile with the same effect.
1671          This parameter shall not be set to value other than 0 if transmission control is not enabled
1672          (transmission-window-control = NONE) or the endpoint is set for non-delay managed operation
1673          (non-time-managed-delay-enabled = TRUE).
1674
1675          There is no direct upper bound for this parameter (except value range defined by leaf type) but there are
1676          restrictions on combination of values of transmission-window-offset, transmission-window-offset,
1677          symbol-specific offset from transmission-window-schedules and transmission-window-size.
1678          See description of transmission-window-offset for more details.";
1679     }
1680
1681     leaf transmission-type {
1682       when "(../transmission-window-control = 'STATIC')";
1683       if-feature "feat:STATIC-TRANSMISSION-WINDOW-CONTROL and feat:UNIFORMLY-DISTRIBUTED-TRANSMISSION";
1684       type enumeration {
1685         enum NORMAL {
1686           description
1687             "Normal transmission (unspecified within transmission window)";
1688         }
1689         enum UNIFORMLY-DISTRIBUTED {
1690           if-feature feat:UNIFORMLY-DISTRIBUTED-TRANSMISSION;
1691           description
1692             "Uniformly distributed over transmission window: each of N messages in the window
1693              transmitted at random time in a separate subwindow; subwindow size is window size / N ";
1694         }
1695       }
1696
1697       description "Type of delay supported by the endpoint";
1698     }
1699   }
1700
1701   grouping tx-endpoint-compression-grouping {
1702     description
1703       "Grouping for endpoint compression";
1704
1705     container compression {
1706       presence
1707         "This container shall exists to avoid misaligned compression
1708         methods between devices";
1709
1710       description
1711         "Container which consists of global configurable parameters for compression";
1712
1713       uses cf:compression-details;
1714
1715       leaf fs-offset {
1716         if-feature cf:CONFIGURABLE-FS-OFFSET;
1717         type uint8;
1718         default 0;
1719         description
1720           "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1721            Please refer to CU-Plane specification for details";
1722       }
1723
1724       list dynamic-compression-configuration {
1725         when "../compression-type = 'DYNAMIC'";
1726         key "id";
1727         unique "compression-method iq-bitwidth fs-offset";
1728         description
1729           "List of possible configuration in case dynamic configuration is used
1730            Note: In case of empty list all available compressions can be chosen dynamically
1731                  and default fs-offset is taken (0).
1732                  If the feature CONFIGURABLE-FS-OFFSET is not supported,
1733                  fs-offset will not be considered as one of the criteria for unique statement.
1734                  Refer to RFC7950 clause 7.8.3 for details of unique statement";
1735
1736         leaf id {
1737           type uint16;
1738           description
1739             "Identification number for particular compression";
1740         }
1741
1742         uses cf:compression-method-grouping;
1743
1744         leaf fs-offset {
1745           if-feature cf:CONFIGURABLE-FS-OFFSET;
1746           type uint8;
1747           default 0;
1748           description
1749             "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1750              Please refer to CU-Plane specification for details";
1751         }
1752
1753         leaf channel-information-iq-bitwidth {
1754           type uint8{
1755             range "1..16";
1756           }
1757           status deprecated;
1758           description
1759             "I/Q bitwidth for channel information in Section Type6.
1760             Leaf is deprecated as it should be independent of dynamic compression,
1761             NETCONF client instead uses channel-information-bitwidth schema node";
1762         }
1763       }
1764
1765       leaf channel-information-bitwidth {
1766         type uint8{
1767           range "1..16";
1768         }
1769         description
1770           "I/Q bitwidth for channel information in Section Type6.
1771            maximum value of 16bit is limitted by 4bit ciIqWidth in the C-Plane message.
1772            Note: This parameter shall be used when the NETCONF client does not make use of
1773            the CHANNEL-INFORMATION-COMPRESSION feature.";
1774       }
1775
1776       list channel-information-compressions {
1777         if-feature "feat:CHANNEL-INFORMATION-COMPRESSION";
1778         key id;
1779
1780         leaf id {
1781           type uint16;
1782           description
1783             "Identification number for particular channel information compression";
1784         }
1785
1786         leaf channel-information-compression-method {
1787           type cf:ci-compression-method-def;
1788           description
1789             "Channel information compression method";
1790         }
1791
1792         leaf iq-bitwidth {
1793           type uint8{
1794             range "1..16";
1795           }
1796           description
1797             "Bitwidth to be used in compression, maximum value of 16bit is limitted by 4bit ciIqWidth in the C-Plane message.
1798
1799             When this schema node is used in the configuration, the O-RU shall ignore the configuration of the
1800             /low-level-tx-endpoints/compression/channel-information-bitwidth schema node";
1801         }
1802
1803         description
1804           "List of available compressions, that can be dynamically choosen, for channel information (e.g. ST6) for this endpoint.
1805            Note1: When only one compression is listed here, it implies that channel information compression
1806                   is static and mentioned compression is taken into use.
1807            Note2: O-RU Shall reject configuration with compressions that are not supported";
1808       }
1809
1810       list bf-weights-compressions {
1811         key id;
1812
1813         leaf id {
1814           type uint16;
1815           description
1816             "Identification number for particular beamforming compression";
1817         }
1818
1819         leaf bf-weights-compression {
1820           type cf:bf-compression-method-def;
1821           description
1822             "Beamforming weight compression method";
1823         }
1824
1825         leaf iq-bitwidth {
1826           type uint8;
1827           description
1828             "Bitwidth to be used in compression";
1829         }
1830
1831         description
1832           "List of available compressions, that can be dynamically choosen, for beamforming weights for this endpoint.
1833            Note1: When only one compression is listed here, it implies that beamforming weights compression
1834                   is static and mentioned compression is taken into use.
1835            Note2: O-RU Shall reject configuration with compressions that are not supported";
1836       }
1837     }
1838   }
1839
1840   grouping rx-endpoint-compression-grouping {
1841     description
1842       "Grouping for endpoint compression";
1843
1844     container compression {
1845       presence
1846         "This container shall exists to avoid misaligned compression
1847         methods between devices";
1848
1849       description
1850         "Container which consists of global configurable parameters for compression";
1851
1852       uses cf:compression-details;
1853
1854       leaf fs-offset {
1855         if-feature cf:CONFIGURABLE-FS-OFFSET;
1856         type uint8;
1857         default 0;
1858         description
1859           "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1860            Please refer to CU-Plane specification for details";
1861       }
1862
1863       list dynamic-compression-configuration {
1864         when "../compression-type = 'DYNAMIC'";
1865         key "id";
1866         unique "compression-method iq-bitwidth fs-offset";
1867         description
1868           "List of possible configuration in case dynamic configuration is used
1869            Note: In case of empty list all available compressions can be chosen dynamically
1870                  and default fs-offset is taken (0).
1871                  If the feature CONFIGURABLE-FS-OFFSET is not supported,
1872                  fs-offset will not be considered as one of the criteria for unique statement.
1873                  Refer to RFC7950 clause 7.8.3 for details of unique statement";
1874
1875         leaf id {
1876           type uint16;
1877           description
1878             "Identification number for particular compression";
1879         }
1880
1881         uses cf:compression-method-grouping;
1882
1883         leaf fs-offset {
1884           if-feature cf:CONFIGURABLE-FS-OFFSET;
1885           type uint8;
1886           default 0;
1887           description
1888             "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
1889              Please refer to CU-Plane specification for details";
1890         }
1891       }
1892
1893       list bf-weights-compressions {
1894         key id;
1895
1896         leaf id {
1897           type uint16;
1898           description
1899             "Identification number for particular beamforming compression";
1900         }
1901
1902         leaf bf-weights-compression {
1903           type cf:bf-compression-method-def;
1904           description
1905             "Beamforming weight compression method";
1906         }
1907
1908         leaf iq-bitwidth {
1909           type uint8;
1910           description
1911             "Bitwidth to be used in compression";
1912         }
1913
1914         description
1915           "List of available compressions, that can be dynamically choosen, for beamforming weights for this endpoint.
1916            Note1: When only one compression is listed here, it implies that beamforming weights compression
1917                   is static and mentioned compression is taken into use.
1918            Note2: O-RU Shall reject configuration with compressions that are not supported";
1919       }
1920     }
1921   }
1922   
1923   grouping supported-section-type4-config {
1924     description
1925       "Set of parameters required for section type 4 slot configuration message.";
1926       list st4-supported-commands {
1927         key "st4-command-type";
1928         
1929         description
1930           "This parameter specifies the list of Section Type 4 command types supported by O-RU.";
1931         leaf st4-command-type {
1932           type enumeration {
1933             enum TIME_DOMAIN_BEAM_CONFIG {
1934               description "O-RU support for receiving time domain beamforming command.";
1935             }
1936             enum TDD_CONFIG_PATTERN {
1937               description "O-RU support for receiving TDD symbol pattern for a given slot.";
1938             }
1939           }
1940           description
1941             "Section Type 4 command types supported by O-RU.";
1942         }
1943       }
1944       
1945       list st4-reception-mask {
1946         key "cmd-scope";
1947        
1948         description
1949           "List of symbol mask per command scope, specifying the O-RU capability to receive Section Type 4 message for a
1950           given command scope only for symbols for which the corresponding bit is set to '1' in the bitmask. If the O-RU
1951           receives a Section Type 4 message with associated command for a symbol whose bit value is set to '0' in this
1952           bitmask, the O-RU shall reject the Section Type 4 message";
1953         
1954         leaf cmd-scope {
1955           type enumeration {
1956             enum ARRAY-COMMAND {
1957               description
1958                 "Command applies to all endpoints assigned to the tx-array(s) and/or rx-array(s).If the O-RU
1959                 is operating with multiple O-DUs, the scope of an individual O-DU is limited, to the
1960                 endpoints assigned to the O-DU which was the originator of the command.";
1961             }
1962             enum CARRIER-COMMAND {
1963               description
1964                 "Command applies to all endpoints assigned to the tx-array-carrier and/or rx-array-carrier.";
1965             }
1966             enum O-RU-COMMAND {
1967               description
1968                 "O-RU level command, i.e., one that applies to all arrays and carriers. If the O-RU
1969                 is operating with multiple O-DUs, the scope of an individual O-DU is limited, as
1970                 specified in CUS-Plane specification, clause 7.5.2.17.";
1971             }
1972           }
1973           description "Command scope for section type 4 commands";
1974         }  
1975        
1976         leaf st4-reception-bitmask {
1977           type uint16;
1978             description
1979              "This parameter specifies the O-RU capability to receive Section Type 4 message with associated commands for the symbols
1980              for which the corresponding bit is set to '1' in the bitmask. If the O-RU receives a Section Type 4 message with
1981              associated command for a symbol whose bit value is set to '0' in this bitmask, the O-RU shall reject the Section Type 4 message";
1982         }
1983      }
1984   }
1985
1986   grouping uplane-conf-group {
1987     description
1988       "Grouping for uplane configuration related parameters";
1989
1990     list low-level-tx-links {
1991       key name;
1992       description
1993         "Object model for low-level-tx-link configuration";
1994
1995       leaf name {
1996         type string;
1997         description
1998           "Unique name of low-level-tx-link object.";
1999       }
2000
2001       leaf sro-id {
2002         if-feature feat:SHARED-ORU-MULTI-OPERATOR;
2003         type leafref {
2004           path "/or-user:users/or-user:user/or-user:sro-id";
2005         }
2006         description
2007           "An optional shared resource operator associated with this list entry.
2008           When present, indicates that the list entry corresponds to a low-level-tx-link
2009           associated with a shared resouce operator where the sro-id idenifies
2010           a specific shared resouce operator.
2011           This schema-node is used to refine NACM privileges for shared
2012           resource operators";
2013       }
2014
2015       leaf processing-element {
2016         type leafref {
2017           path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name";
2018         }
2019         mandatory true;
2020         description
2021           "Contains name of processing-element to be used as transport by low-level-tx-link,
2022            if 'transport-qualified-processing-element' is included in the configuration,
2023            the O-RU shall use 'transport-qualified-processing-element' instead of this schema node,
2024            an O-RU Controller shall still configure this schema node with a leafref to a valid ru-element,
2025            but this shall not be used by the O-RU.";
2026       }
2027
2028       leaf transport-session-type {
2029         if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
2030         type enumeration {
2031           enum ETH-INTERFACE {
2032             description "VLAN based CUS Transport ";
2033           }
2034           enum UDPIP-INTERFACE {
2035             description "UDP/IP based CUS Transport ";
2036           }
2037           enum ALIASMAC-INTERFACE{
2038             description "Alias MAC address based CUS Transport ";
2039           }
2040         }
2041         description
2042           "transport session type used when an O-RU is configured with multiple processing elements of different transport session types,
2043            in which case it is used for referencing a processing element in 'transport-qualified-processing-element'";
2044       }
2045
2046       leaf transport-qualified-processing-element {
2047         if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
2048         type leafref {
2049           path "/o-ran-pe:processing-elements/o-ran-pe:additional-transport-session-type-elements[o-ran-pe:transport-session-type = current()/../transport-session-type]/o-ran-pe:ru-elements/o-ran-pe:name";
2050         }
2051         description
2052            "Contains name of processing-element to be used as transport by low-level-tx-link.
2053            Used when the processing element is configured
2054            by the list 'additional-transport-session-type-elements'";
2055       }
2056
2057       leaf tx-array-carrier {
2058         type leafref {
2059           path "/user-plane-configuration/tx-array-carriers/name";
2060         }
2061         mandatory true;
2062         description
2063           "Contains name of tx-array-carriers MO to be used as transport by low-level-tx-link";
2064       }
2065
2066       leaf low-level-tx-endpoint {
2067         type leafref {
2068           path "/user-plane-configuration/low-level-tx-endpoints/name";
2069         }
2070         mandatory true;
2071         description
2072           "Contains name of low-level-tx-endpoints MO to be used as transport by low-level-tx-link";
2073       }
2074     }
2075
2076     list low-level-rx-links {
2077       key name;
2078       description
2079         "Object model for low-level-rx-links configuration";
2080
2081       leaf name {
2082         type string;
2083
2084         description
2085           "Unique name of low-level-rx-links object.";
2086       }
2087
2088       leaf sro-id {
2089         if-feature feat:SHARED-ORU-MULTI-OPERATOR;
2090         type leafref {
2091           path "/or-user:users/or-user:user/or-user:sro-id";
2092         }
2093         description
2094           "An optional shared resource operator associated with this list entry.
2095           When present, indicates that the list entry corresponds to a low-level-rx-link
2096           associated with a shared resouce operator where the sro-id idenifies
2097           a specific shared resouce operator.
2098           This schema-node is used to refine NACM privileges for shared
2099           resource operators";
2100       }
2101
2102       leaf processing-element {
2103         type leafref {
2104           path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name";
2105         }
2106         mandatory true;
2107         description
2108           "Contains name of processing-element to be used as transport by low-level-rx-link,
2109            if 'transport-qualified-processing-element' is included in the configuration,
2110            the O-RU shall use 'transport-qualified-processing-element' instead of this schema node,
2111            an O-RU Controller shall still configure this schema node with a leafref to a valid ru-element,
2112            but this shall not be used by the O-RU.";
2113       }
2114
2115       leaf transport-session-type {
2116         if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
2117         type enumeration {
2118           enum ETH-INTERFACE {
2119             description "VLAN based CUS Transport ";
2120           }
2121           enum UDPIP-INTERFACE {
2122             description "UDP/IP based CUS Transport ";
2123           }
2124           enum ALIASMAC-INTERFACE{
2125             description "Alias MAC address based CUS Transport ";
2126           }
2127         }
2128         description
2129           "transport session type used when an O-RU is configured with multiple processing elements of different transport session types,
2130            in which case it is used for referencing a processing element in 'transport-qualified-processing-element'";
2131       }
2132
2133       leaf transport-qualified-processing-element {
2134         if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
2135         type leafref {
2136           path "/o-ran-pe:processing-elements/o-ran-pe:additional-transport-session-type-elements[o-ran-pe:transport-session-type = current()/../transport-session-type]/o-ran-pe:ru-elements/o-ran-pe:name";
2137         }
2138         description
2139            "Contains name of processing-element to be used as transport by low-level-rx-link.
2140            Used when the processing element is configured
2141            by the list 'additional-transport-session-type-elements'";
2142       }
2143
2144       leaf rx-array-carrier {
2145         type leafref {
2146           path "/user-plane-configuration/rx-array-carriers/name";
2147         }
2148         mandatory true;
2149
2150         description
2151           "Contains name of rx-array-carriers MO to be used as transport by low-level-rx-links";
2152       }
2153
2154       leaf low-level-rx-endpoint {
2155         type leafref {
2156           path "/user-plane-configuration/low-level-rx-endpoints/name";
2157         }
2158         mandatory true;
2159
2160         description
2161           "Contains name of low-level-rx-endpoints MO to be used as transport by low-level-rx-links";
2162       }
2163
2164       leaf user-plane-uplink-marking {
2165         type leafref {
2166           path "/o-ran-pe:processing-elements/o-ran-pe:enhanced-uplane-mapping/o-ran-pe:uplane-mapping/o-ran-pe:up-marking-name";
2167         }
2168         description
2169           "Parameter to set the non-default marking for user-plane";
2170       }
2171
2172       leaf enhanced-user-plane-uplink-marking {
2173         if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
2174         type leafref {
2175           path "/o-ran-pe:processing-elements/o-ran-pe:additional-transport-session-type-elements[o-ran-pe:transport-session-type = current()/../transport-session-type]/o-ran-pe:enhanced-uplane-mapping/o-ran-pe:uplane-mapping/o-ran-pe:up-marking-name";
2176         }
2177         description
2178            "Parameter to set the non-default marking for user-plane.
2179             Used when the enhanced-uplane-mapping is configured
2180             by the list 'additional-transport-session-type-elements'";
2181       }
2182     }
2183
2184     list endpoint-types {
2185       key "id";
2186       config false;
2187       description
2188         "Properties of endpoint that are common to multiple endpoints if such are identified
2189          Note: For any endpoint supporting mixed numerology within slot/symbol (multiple-numerology-supported=TRUE)
2190               * Interval specific (per-slot and per-symbol) capacity constraints instantaneous capacity usage
2191                 (i.e. capacity is shared/distributed between all numerologies used at an instant of time).
2192               * Instantaneous capacity usage is the sum of capacity usages of all intervals of a specific type (slot/symbol)
2193                 that share the instant of time at which instantaneous capacity usage is evaluated regardless of numerology.
2194               * Capacity used in an interval is allocated at the start of the interval and is released at the end of the interval
2195                 (e.g. capacity used for symbol #N of numerology #M is unavailable during symbol #N and available for reuse after symbol #N ends).";
2196
2197       leaf id {
2198         type uint16;
2199         description
2200           "Identifies type of endpoints sharing same properties. Values shall start with 0 and shall be allocated without gaps.";
2201       }
2202
2203       list supported-section-types {
2204         key "section-type";
2205         description
2206           "Indicates section types and extensions endpoints of this type support";
2207
2208         leaf section-type {
2209           type uint8;
2210
2211           description
2212             "This parameter determines the characteristics of U-plane data to be transferred or received from a beam with one pattern id.";
2213         }
2214
2215         leaf-list supported-section-extensions {
2216           type uint8;
2217
2218           description
2219             "This parameter provides the extension types supported by the O-RU
2220             which provides additional parameters specific to the subject data extension";
2221         }
2222       }
2223       
2224       uses supported-section-type4-config {
2225         if-feature feat:ST4-SLOT-CONFIG-MSG-SUPPORT;
2226       }
2227
2228       leaf-list supported-frame-structures {
2229         type uint8;
2230
2231         description
2232           "List of supported values of frame structure. For semantic and allowed values see CUS-Plane Specification, clause 'frameStructure (frame structure)'";
2233       }
2234
2235       leaf managed-delay-support {
2236         type enumeration {
2237           enum MANAGED {
2238             description
2239               "Time managed delays are supported";
2240           }
2241
2242           enum NON_MANAGED {
2243             description
2244               "Non time managed delays are supported";
2245           }
2246
2247           enum BOTH {
2248             description
2249               "Both time managed and non time managed delays are supported";
2250           }
2251         }
2252
2253         description
2254           "Type of delay supported by the endpoint";
2255       }
2256
2257       leaf multiple-numerology-supported {
2258         type boolean;
2259         default true;
2260         description
2261           "Indicates whether the endpoint type supports multiple numerologies";
2262       }
2263
2264       leaf max-numerology-change-duration {
2265         type uint16 {
2266           range "0..10000";
2267         }
2268
2269         units Ts;
2270         description
2271           "Maximum gap of endpoint operation that will be caused by changing of
2272           numerology.
2273
2274           This time is required for reconfiguration and flushing of pipes.
2275
2276           This leaf contains valid data only when multiple-numerology-supported
2277           is set to true.";
2278       }
2279
2280       uses endpoint-section-capacity;
2281       uses endpoint-beam-capacity;
2282       uses endpoint-prb-capacity;
2283       uses endpoint-section-extension-limits;
2284
2285       leaf-list prb-capacity-allocation-granularity {
2286         type uint16;
2287
2288         description
2289           "List of capacity allocation steps. O-RU allocates PRB capacity rounding it up to nearest value N
2290           from prb-capacity-allocation-granularity such that M >= number-of-prb-per-scs.
2291           See also number-of-prb-per-scs/number-of-prb.";
2292       }
2293
2294       uses endpoint-numerology-capacity;
2295
2296       leaf static-transmission-window-control-supported {
2297         if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL;
2298         type boolean;
2299         description
2300           "Endpoint supports transmission-window-control = STATIC";
2301       }
2302
2303       leaf uniformly-distributed-transmission-supported {
2304         if-feature "feat:STATIC-TRANSMISSION-WINDOW-CONTROL and feat:UNIFORMLY-DISTRIBUTED-TRANSMISSION";
2305         type boolean;
2306         description
2307           "Endpoint supports transmission-type = UNIFORMLY-DISTRIBUTED";
2308       }
2309
2310       leaf ordered-transmission-supported {
2311         if-feature feat:ORDERED-TRANSMISSION;
2312         type boolean;
2313         description
2314           "Endpoint supports ordered transmission of U-plane messages
2315            and can be configured with ordered-transmission = TRUE";
2316       }
2317
2318       leaf dynamic-transmission-window-control-supported {
2319         if-feature feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL;
2320         type boolean;
2321         description
2322           "Endpoint supports U-plane transmission window control via C-plane
2323            (supports transmission-window-control = DYNAMIC) with independent window offset and size per symbol";
2324       }
2325
2326       leaf dynamic-transmission-window-control-per-section-supported {
2327         when "../dynamic-transmission-window-control-supported = 'true'";
2328         if-feature feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL;
2329         type boolean;
2330         description
2331           "Endpoint supports U-plane transmission window control via C-plane
2332            (supports transmission-window-control = DYNAMIC) with independent window offset and size per section";
2333       }
2334
2335       leaf dynamic-uniformly-distributed-transmission-supported {
2336         if-feature "feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL and feat:UNIFORMLY-DISTRIBUTED-TRANSMISSION";
2337         type boolean;
2338         description
2339           "Endpoint supports U-plane transmission window control via C-plane
2340            (supports transmission-window-control = DYNAMIC) with independent transmission type per symbol";
2341       }
2342
2343       leaf dynamic-uniformly-distributed-transmission-per-section-supported {
2344         when "../dynamic-uniformly-distributed-transmission-supported = 'true'";
2345         type boolean;
2346         description
2347           "Endpoint supports U-plane transmission window control via C-plane
2348            (supports transmission-window-control = DYNAMIC) with independent transmission type per section";
2349       }
2350
2351       uses transmission-buffering-capacity {
2352         when "static-transmission-window-control-supported = 'true' or dynamic-transmission-window-control-supported = 'true'";
2353         if-feature "feat:STATIC-TRANSMISSION-WINDOW-CONTROL or feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL";
2354       }
2355
2356       leaf cplane-message-processing-limits-required {
2357          if-feature feat:CPLANE-MESSAGE-PROCESSING-LIMITS;
2358          type boolean;
2359          config false;
2360          description
2361            "Endpoint requires applying C-Plane message processing limits defined in 'per-cplane-message-limits'.
2362            and can be configured with cplane-message-processing-limits-enabled = TRUE";
2363        }
2364
2365       uses per-cplane-message-limits {
2366         when "cplane-message-processing-limits-required = 'true'";
2367         if-feature feat:CPLANE-MESSAGE-PROCESSING-LIMITS;
2368       }
2369
2370       leaf beam-update-contention-control-limits-required {
2371         if-feature feat:BEAM-UPDATE-CONTENTION-CONTROL;
2372         type boolean;
2373         config false;
2374         description
2375           "Endpoint requires applying beam update contention control limits defined in 'beam-update-contention-control-limits'.
2376           and can be configured with beam-update-contention-control-enabled = TRUE";
2377       }
2378
2379       uses beam-update-contention-control-limits {
2380         when "beam-update-contention-control-limits-required = 'true'";
2381         if-feature feat:BEAM-UPDATE-CONTENTION-CONTROL;
2382       }
2383
2384       leaf max-ack-nack-per-symbol {
2385         type uint16;
2386         description
2387           "This value indicates the max number of ACK/NACK feedbacks supported by the endpoint in a symbol when
2388           section extension 22 (ACK/NACK request) and section type 8 (ACK/NACK feedback) are supported by the endpoint.
2389           The number of ACK/NACK feedbacks in a symbol is defined as the sum of 'numberofACKs' + 'numberofNACKs' in all C-Plane
2390           messages sent by the endpoints in a symbol";
2391       }
2392     }
2393
2394     list transmission-window-schedules {
2395       if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL;
2396
2397       key id;
2398       description
2399         "Parameters for scheduled UL U-plane message transmission (static transmission window control)";
2400
2401       leaf id {
2402         type uint16;
2403         description
2404           "Identifies a UL U-plane message transmission schedule";
2405       }
2406
2407       list schedule {
2408         key symbol;
2409         description
2410           "Defines transmission window offset for given symbol.
2411            If no entry is present for a symbol then O-RU assumes offset=0 for that symbol.
2412            Entries with offset=0 shall be omitted.";
2413
2414         leaf symbol {
2415           type uint16;
2416           description
2417             "Number of a symbol within a frame for which transmission offset is given.";
2418         }
2419
2420         leaf offset {
2421           type uint16;
2422           description
2423             "Transmission window offset; expressed as number of symbols the transmission window start is delayed by.
2424              This value is added to u-plane-transmission-control/transmission-window-offset.
2425              For restrictions on value of offset see description of transmission-window-offset.";
2426         }
2427       }
2428     }
2429
2430     list endpoint-capacity-sharing-groups {
2431       key "id";
2432       config false;
2433       description
2434         "Represents groups of endpoints that share capacity. Depending on O-RU implementation,
2435         processing resources that handle CU-plane (e.g. memory to keep sections and beams)
2436         could be allocated per endpoint or shared between several endpoints.
2437         To address this O-RU shall report own capability per endpoint (see endpoint-types)
2438         and per group of endpoints sharing capacity.
2439         If endpoint is in multiple groups then resulting constraint is minimum over all groups.
2440         Note: values of parameters representing capacity that is not shared between endpoints in a group
2441               shall be set to max value of specific parameter; this effectively removes related constraint.
2442         Note: For any endpoint supporting mixed numerology within slot/symbol (multiple-numerology-supported=TRUE)
2443               * Interval specific (per-slot and per-symbol) capacity constraints instantaneous capacity usage
2444                 (i.e. capacity is shared/distributed between all numerologies used at an instant of time).
2445               * Instantaneous capacity usage is the sum of capacity usages of all intervals of a specific type (slot/symbol)
2446                 that share the instant of time at which instantaneous capacity usage is evaluated regardless of numerology.
2447               * Capacity used in an interval is allocated at the start of the interval and is released at the end of the interval
2448                 (e.g. capacity used for symbol #N of numerology #M is unavailable during symbol #N and available for reuse after symbol #N ends).";
2449
2450       leaf id {
2451         type uint16;
2452         description
2453           "Identifies group of endpoints sharing resources.
2454           Values shall start with 0 and shall be allocated without gaps.";
2455       }
2456       uses endpoint-section-capacity;
2457       uses endpoint-beam-capacity;
2458       uses endpoint-prb-capacity;
2459       uses endpoint-numerology-capacity;
2460       uses endpoint-section-extension-limits;
2461
2462       leaf max-endpoints {
2463         type uint16;
2464         description
2465           "Indicates how many endpoints in the group can be used4 simultaneously";
2466       }
2467       leaf max-managed-delay-endpoints {
2468         type uint16;
2469         description
2470           "Number of endpoints supporting managed delay that can be used (configured for use) at a time";
2471       }
2472       leaf max-non-managed-delay-endpoints {
2473         type uint16;
2474         description
2475           "Number of endpoints supporting non-managed delay that can be used (configured for use) at a time";
2476       }
2477       uses transmission-buffering-capacity {
2478         if-feature "feat:STATIC-TRANSMISSION-WINDOW-CONTROL or feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL";
2479       }
2480
2481       uses per-cplane-message-limits {
2482         if-feature feat:CPLANE-MESSAGE-PROCESSING-LIMITS;
2483       }
2484
2485       leaf max-ack-nack-per-symbol {
2486         type uint16;
2487         description
2488           "This value indicates the max number of ACK/NACK feedbacks supported by the endpoint sharing group in a symbol when
2489            section extension 22 (ACK/NACK request) and section type 8 (ACK/NACK feedback) are supported by the endpoint sharing group.
2490            The number of ACK/NACK feedbacks in a symbol is defined as the sum of 'numberofACKs' + 'numberofNACKs' in all C-Plane
2491            messages sent by the endpoints in group in a symbol";
2492       }
2493     }
2494
2495     list endpoint-prach-group  {
2496       key "id";
2497       config false;
2498       description
2499         "Represents group of a series of PRACH preamble formats";
2500
2501       leaf id {
2502         type uint16;
2503         description
2504           "Identifies group of PRACH preamble formats.";
2505       }
2506
2507       leaf-list supported-prach-preamble-formats {
2508         type prach-preamble-format;
2509         min-elements 1;
2510         description
2511           "the list of PRACH preamble formats supported by the endpoint-type that is
2512           applicable to static-low-level-rx-endpoints in the O-RU";
2513       }
2514
2515     }
2516
2517     list supported-compression-method-sets {
2518       key "id";
2519       config false;
2520       description
2521         "List of available compression methods supported by device";
2522
2523       leaf id {
2524         type uint16;
2525         description
2526           "Identification number for compression method set";
2527       }
2528
2529       list compression-method-supported {
2530         uses cf:compression-method-grouping;
2531         uses cf:compresion-format-grp {
2532           status deprecated;
2533         }
2534
2535         leaf-list fs-offset {
2536           if-feature cf:CONFIGURABLE-FS-OFFSET;
2537           type uint8;
2538           default 0;
2539           description
2540             "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
2541              Please refer to CU-Plane specification for details";
2542
2543         }
2544         description
2545           "List of supported compression methods by O-RU
2546            Note: if O-RU supports different compression methods per endpoint
2547                  then please refer to endpoints to have information what
2548                  exactly is supported on particular endpoint";
2549       }
2550     }
2551
2552     list static-low-level-tx-endpoints {
2553       key name;
2554       config false;
2555       description
2556         "Object model for static-low-level-tx-endpoints configuration";
2557
2558       leaf name {
2559         type string;
2560
2561         description
2562           "Unique name of static-low-level-tx-endpoints object.";
2563       }
2564
2565       leaf-list restricted-interfaces {
2566         type leafref {
2567           path "/if:interfaces/if:interface/if:name";
2568         }
2569         description
2570           "Optionally used to indicate that a low-level link is constrained to operate only via a subset of the available interfaces.";
2571       }
2572
2573       leaf array {
2574         type leafref {
2575           path "/user-plane-configuration/tx-arrays/name";
2576         }
2577         mandatory true;
2578         description
2579           "Contains distname of tx-arrays, particular low-level-tx-endpoints is in hardware dependency with.
2580           Note: single instance of tx-arrays can be referenced by many instances of low-level-tx-endpoints
2581           (e.g. to allow DU to handle multiple fronthauls and multiple component carriers).";
2582       }
2583
2584       leaf endpoint-type {
2585         type leafref {
2586           path "../../endpoint-types/id";
2587         }
2588
2589         description
2590           "Reference to endpoint type capabilities list element supported by this endpoint";
2591       }
2592
2593       leaf-list capacity-sharing-groups {
2594         type leafref {
2595           path "../../endpoint-capacity-sharing-groups/id";
2596         }
2597
2598         description
2599           "Reference to capacities of sharing-groups supported by this endpoint";
2600       }
2601
2602       list supported-reference-level {
2603         if-feature TX-REFERENCE-LEVEL;
2604         key "id";
2605         description
2606           "Informs about supported ranges for gain reference level.";
2607
2608         leaf id {
2609           type uint16;
2610           description
2611             "Identification number for particular range";
2612         }
2613
2614         leaf min {
2615           type decimal64 {
2616             fraction-digits 4;
2617           }
2618           units dB;
2619           mandatory true;
2620           description
2621             "Minimum of supported gain reference level";
2622         }
2623
2624         leaf max {
2625           type decimal64 {
2626             fraction-digits 4;
2627           }
2628           units dB;
2629           mandatory true;
2630           description
2631             "Maximum of supported gain reference level";
2632         }
2633       }
2634
2635       container compression {
2636         description
2637           "Container collecting compression related parameters.";
2638
2639         leaf dynamic-compression-supported {
2640           type boolean;
2641
2642           description
2643             "Informs if endpoint supports dynamic compression method";
2644         }
2645
2646         leaf realtime-variable-bit-width-supported {
2647           type boolean;
2648
2649           description
2650             "Informs if endpoint supports real-time variable bit with";
2651         }
2652
2653         leaf supported-compression-set-id {
2654           type leafref {
2655             path "../../../supported-compression-method-sets/id";
2656           }
2657
2658           description
2659             "Id of supported compression set for this endpoint";
2660         }
2661       }
2662
2663       uses endpoint-tdd-pattern-support;
2664
2665     }
2666
2667     list static-low-level-rx-endpoints {
2668       key name;
2669       config false;
2670       description
2671         "Object model for static-low-level-rx-endpoints configuration";
2672
2673       leaf name {
2674         type string;
2675
2676         description
2677           "Unique name of static-low-level-rx-endpoints object.";
2678       }
2679
2680       leaf-list restricted-interfaces {
2681         type leafref {
2682           path "/if:interfaces/if:interface/if:name";
2683         }
2684         description
2685           "Optionally used to indicate that a low-level link is constrained to operate only via a subset of the available interfaces.";
2686       }
2687
2688       leaf array {
2689         type leafref {
2690           path "/user-plane-configuration/rx-arrays/name";
2691         }
2692         mandatory true;
2693         description
2694           "Contains distname of rx-arrays, particular low-level-rx-endpoints is in hardware dependency with.
2695           Note: single instance of rx-arrays can be referenced by many instances of low-level-rx-endpoints
2696           (e.g. to allow DU to handle multiple fronthauls and multiple component carriers).";
2697       }
2698
2699       leaf endpoint-type {
2700         type leafref {
2701           path "../../endpoint-types/id";
2702         }
2703
2704         description
2705           "Reference to endpoint type capabilities list element supported by this endpoint";
2706       }
2707
2708       leaf-list capacity-sharing-groups {
2709         type leafref {
2710           path "../../endpoint-capacity-sharing-groups/id";
2711         }
2712
2713         description
2714           "Reference to capacities of sharing-groups supported by this endpoint";
2715       }
2716
2717       leaf prach-group {
2718         type leafref {
2719           path "../../endpoint-prach-group/id";
2720           require-instance false;
2721         }
2722         description
2723           "An optional leaf used for those rx endpoints that support PRACH, indicating
2724           the group id describing the set of of PRACH preambles supported";
2725       }
2726
2727       container compression {
2728         description
2729           "Container collecting compression related parameters.";
2730
2731         leaf dynamic-compression-supported {
2732           type boolean;
2733
2734           description
2735             "Informs if endpoint supports dynamic compression method";
2736         }
2737
2738         leaf realtime-variable-bit-width-supported {
2739           type boolean;
2740
2741           description
2742             "Informs if endpoint supports real-time variable bit with";
2743         }
2744
2745         leaf supported-compression-set-id {
2746           type leafref {
2747             path "../../../supported-compression-method-sets/id";
2748           }
2749
2750           description
2751             "Id of supported compression set for this endpoint";
2752         }
2753       }
2754
2755       uses endpoint-static-config-support;
2756
2757       uses endpoint-tdd-pattern-support;
2758
2759       leaf transmission-order {
2760         when "(/user-plane-configuration/endpoint-types[id=current()/../endpoint-type]/ordered-transmission-supported = 'true')";
2761         if-feature feat:ORDERED-TRANSMISSION;
2762         type uint32;
2763         description
2764           "The value indicates relative order of sending U-plane messages specific to same symbol
2765            and transmission window by two endpoints with ordered-transmission = TRUE
2766            belonging to the same transmission-order-group;
2767            multiple endpoints may report the same value if their relative sending order is not guaranteed";
2768       }
2769
2770       leaf transmission-order-group {
2771         when "(/user-plane-configuration/endpoint-types[id=current()/../endpoint-type]/ordered-transmission-supported = 'true')";
2772         if-feature feat:ORDERED-TRANSMISSION;
2773         type uint32;
2774         description
2775           "The value indicates a group of endpoints that preserve relative ordering of message sending;
2776            message sending between endpoints in different groups is not guaranteed";
2777       }
2778     }
2779
2780     list low-level-tx-endpoints {
2781       key "name";
2782
2783       description
2784         "Object model for low-level-tx-endpoints configuration - augmented static-low-level-tx-endpoints by local-address
2785         which cannot be added to static low-level-tx-endpoints as we cannot have modifiable element in static object";
2786
2787       leaf name {
2788         type leafref {
2789           path "/user-plane-configuration/static-low-level-tx-endpoints/name";
2790           require-instance false;
2791         }
2792         mandatory true;
2793
2794         description
2795           "Unique name of low-level-tx-endpoint object. Reference to static object";
2796       }
2797
2798       leaf sro-id {
2799         if-feature feat:SHARED-ORU-MULTI-OPERATOR;
2800         type leafref {
2801           path "/or-user:users/or-user:user/or-user:sro-id";
2802         }
2803         description
2804           "An optional shared resource operator associated with this list entry.
2805           When present, indicates that the list entry corresponds to a low-level-tx-endpoint
2806           associated with a shared resouce operator where the sro-id idenifies
2807           a specific shared resouce operator.
2808           This schema-node is used to refine NACM privileges for shared
2809           resource operators";
2810       }
2811
2812
2813       uses tx-endpoint-compression-grouping;
2814       uses scs-config;
2815
2816       container e-axcid {
2817         uses eaxc;
2818
2819         description
2820           "Contains local address of low level TX endpoint offered by NETCONF server.";
2821       }
2822
2823       uses coupling-methods;
2824
2825       leaf configurable-tdd-pattern-supported {
2826         if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
2827         type leafref {
2828           path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/configurable-tdd-pattern-supported";
2829           require-instance false;
2830         }
2831         description "RO to RW parameter mapping - needed for conditional under tx-array-carrier";
2832       }
2833
2834       leaf cplane-message-processing-limits-enabled {
2835         if-feature feat:CPLANE-MESSAGE-PROCESSING-LIMITS;
2836         type boolean;
2837         default false;
2838         description
2839           "TRUE: O-DU shall support the C-Plane message processing limits and has selected to adhere to the C-Plane limits defined in 'per-cplane-message-limits'.
2840           FALSE: O-DU shall not support C-Plane message processing limits and endpoint limits defined in 'per-cplane-message-limits' shall not apply";
2841       }
2842
2843       leaf beam-update-contention-control-enabled {
2844         if-feature feat:BEAM-UPDATE-CONTENTION-CONTROL;
2845         type boolean;
2846         default false;
2847         description
2848           "TRUE: O-DU shall support beam update contention control feature of O-RU.Thus requiring O-DU to comply with beam
2849           updates restrictions defined in CUS-Plane Spec Section 'Weight-based dynamic beamforming'. In this case applicable
2850           beam limits defined in 'beam-update-contention-control-limits' shall apply.
2851           FALSE: O-DU shall not support beam update contention control feature of O-RU. Applicable beam limits defined in
2852           'endpoint-beam-capacity' shall apply";
2853       }
2854
2855       container channel-information-prb-group-configuration {
2856         if-feature feat:CHANNEL-INFORMATION-PRB-GROUP;
2857         description
2858           "Container for configurable parameters for channel information prb group";
2859
2860         leaf enable-ci-prb-group {
2861           type boolean;
2862           description
2863             "Informs whether or not to enable channel information PRB group in the O-RU,
2864             if its value is set to true, the O-RU shall receive and process channel
2865             information (e.g., ST6) with PRB group size of configured ci-prb-group-size.";
2866         }
2867
2868         leaf ci-prb-group-size {
2869           type uint8 {
2870             range "2..254";
2871           }
2872           description
2873             "The configured channel information PRB group size.
2874             If enable-ci-prb-group is configured as TRUE, and the IE ciPrbGroupSize doesn't exsit in a section description for channel information,
2875             the parameter ci-prb-group-size shall be used for this section description.
2876             If the IE ciPrbGroupSize exsits in a section description for channel information,
2877             no matter whether enable-ci-prb-group is configured as TRUE, the IE ciPrbGroupSize shall be used for this section description.";
2878         }
2879       }
2880     }
2881
2882     list low-level-rx-endpoints {
2883       key name;
2884
2885       description
2886         "Object model for low-level-rx-endpoint configuration - augmented static-low-level-rx-endpoints by local-address
2887         which cannot be added to static low-level-rx-endpoints as we cannot have modifiable element in static object";
2888
2889       leaf name {
2890         type leafref {
2891           path "/user-plane-configuration/static-low-level-rx-endpoints/name";
2892           require-instance false;
2893         }
2894         mandatory true;
2895
2896         description
2897           "Unique name of low-level-rx-endpoint object. Reference to static object";
2898       }
2899
2900       leaf sro-id {
2901         if-feature feat:SHARED-ORU-MULTI-OPERATOR;
2902         type leafref {
2903           path "/or-user:users/or-user:user/or-user:sro-id";
2904         }
2905         description
2906           "An optional shared resource operator associated with this list entry.
2907           When present, indicates that the list entry corresponds to a low-level-rx-endpoint
2908           associated with a shared resouce operator where the sro-id idenifies
2909           a specific shared resouce operator.
2910           This schema-node is used to refine NACM privileges for shared
2911           resource operators";
2912       }
2913
2914       uses rx-endpoint-compression-grouping;
2915       uses scs-config;
2916
2917       list ul-fft-sampling-offsets {
2918         key scs;
2919         description
2920           "List of FFT sampling offsets configured for each SCS that will be used.
2921           Client shall configure one element for each SCS that will be used.";
2922
2923         leaf scs {
2924           type mcap:scs-config-type;
2925           description
2926             "Value corresponds to SCS values defined for frameStructure in C-plane
2927             Note: set of allowed values is restricted by SCS derived from values in supported-frame-structures.";
2928         }
2929
2930         leaf ul-fft-sampling-offset {
2931           type uint16;
2932
2933           units Ts;
2934           description
2935             "Determines time advance of capture window for FFT.
2936             Value represents time advance of capture window start in relation to the end of CP. Unit is Ts.
2937             Note: value of this parameter is usually set to '0' (zero) for PRACH channels.
2938             Any phase offset resulting from the non-zero value of this parameter is handled in O-DU.";
2939         }
2940       }
2941
2942       container e-axcid {
2943         uses eaxc;
2944
2945         description
2946           "Contains local address of low level RX endpoint offered by NETCONF server.";
2947       }
2948
2949       leaf eaxc-gain-correction {
2950         if-feature EAXC-GAIN-CORRECTION;
2951         type decimal64 {
2952           fraction-digits 4;
2953         }
2954         units dB;
2955         default 0;
2956         description
2957           "eAxC specific part of overall gain_correction.
2958            gain_correction = common array-carrier gain-correction + eAxC-gain-correction.";
2959       }
2960
2961       leaf non-time-managed-delay-enabled {
2962         type boolean;
2963         default false;
2964         description
2965           "Tells if non time managed delay shall be enabled";
2966       }
2967
2968       uses coupling-methods;
2969
2970       leaf static-config-supported {
2971         type leafref {
2972           path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/static-config-supported";
2973           require-instance false;
2974         }
2975         description "RO to RW parameter mapping - for further conditionals";
2976       }
2977
2978       leaf static-prach-configuration {
2979         when "(/user-plane-configuration/low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'PRACH')";
2980         if-feature mcap:PRACH-STATIC-CONFIGURATION-SUPPORTED;
2981         type leafref {
2982           path "/user-plane-configuration/static-prach-configurations/static-prach-config-id";
2983         }
2984         description
2985           "This parameter creates reference to static PRACH configuration applicable for particular endpoint";
2986       }
2987
2988       leaf static-srs-configuration {
2989         when "(/user-plane-configuration/low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'SRS')";
2990         if-feature mcap:SRS-STATIC-CONFIGURATION-SUPPORTED;
2991         type leafref {
2992           path "/user-plane-configuration/static-srs-configurations/static-srs-config-id";
2993         }
2994         description
2995           "This parameter creates reference to static SRS configuration applicable for particular endpoint";
2996       }
2997
2998       leaf configurable-tdd-pattern-supported {
2999         if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
3000         type leafref {
3001           path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/configurable-tdd-pattern-supported";
3002           require-instance false;
3003         }
3004         description "RO to RW parameter mapping - needed for conditional under rx-array-carrier";
3005       }
3006
3007       uses u-plane-transmission-control;
3008
3009       leaf ordered-transmission {
3010         if-feature feat:ORDERED-TRANSMISSION;
3011         type boolean;
3012         default false;
3013         description
3014           "Commands O-RU to order UL U-plane message transmission between endpoints
3015            Meaningless when ordered transmission is not supported for particular endpoint.";
3016       }
3017
3018       leaf cplane-message-processing-limits-enabled {
3019         if-feature feat:CPLANE-MESSAGE-PROCESSING-LIMITS;
3020         type boolean;
3021         default false;
3022         description
3023           "TRUE: O-DU shall support C-Plane message processing limits and has selected to adhere
3024           to the C-Plane limits defined in 'per-cplane-message-limits'.
3025           FALSE: O-DU shall not support C-Plane message processing limits and hence C-Plane and
3026           endpoint limits defined in 'per-cplane-message-limits' shall not apply";
3027       }
3028
3029       leaf beam-update-contention-control-enabled {
3030         if-feature feat:BEAM-UPDATE-CONTENTION-CONTROL;
3031         type boolean;
3032         default false;
3033         description
3034           "TRUE: O-DU shall support beam update contention control feature of O-RU.Thus requiring O-DU to comply with beam
3035           updates restrictions defined in CUS-Plane Spec Section 'Weight-based dynamic beamforming'. In this case applicable
3036           beam limits defined in 'beam-update-contention-control-limits' shall apply.
3037           FALSE: O-DU shall not support beam update contention control feature of O-RU. Applicable beam limits defined in
3038           'endpoint-beam-capacity' shall apply";
3039       }
3040     }
3041
3042     list tx-array-carriers {
3043       key name;
3044       description
3045         "Object model for tx-array-carriers configuration";
3046
3047       leaf name {
3048         type string;
3049
3050         description
3051           "Unique name of tx-array-carriers object.";
3052       }
3053
3054       list odu-ids {
3055         if-feature feat:SHARED-ORU-MULTI-ODU;
3056         key odu-id;
3057         description
3058           "An optional list of o-du identities associated with this list entry.
3059           When present, indicates that the list entry corresponds to a tx-array-carrier
3060           associated with one or more particular odu-id(s).
3061
3062           This list is used to enable enhanced watchdog operation when operating
3063           in a single operator environment, where watchdog supervision is performed
3064           on a per odu-id basis and supervision failure only results in a sub-set
3065           of carriers beign de-activated.";
3066
3067         leaf odu-id {
3068           type string;
3069           description "an o-du identity ";
3070         }
3071       }
3072
3073       list sro-ids-and-odu-ids {
3074         if-feature "feat:SHARED-ORU-MULTI-ODU and feat:SHARED-ORU-MULTI-OPERATOR";
3075         key "odu-id sro-id";
3076         description
3077           "An optional list of sro and o-du identities associated with this list entry.
3078           When present, indicates that the list entry corresponds to a tx-array-carrier
3079           associated with one or more particular odu-id(s) operated by a particular sro-id.
3080
3081           This list is used to enable enhanced watchdog operationwhen operating
3082           in a multi operator environment, where watchdog supervision is performed on
3083           a per odu-id basis and supervision failure only results in a sub-set of
3084           carriers beign de-activated.";
3085         leaf odu-id {
3086           type string;
3087           description "an o-du identity ";
3088         }
3089         leaf sro-id {
3090           type string;
3091           description "an sro identity ";
3092         }
3093       }
3094
3095       uses tx-common-array-carrier-elements;
3096
3097       leaf band-number {
3098         if-feature mcap:LAA;
3099         type leafref {
3100           path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
3101           require-instance false;
3102         }
3103         description
3104           "This parameter informing which frequency band particular antenna
3105            array is serving for.
3106            Intended use is to deal with multi-band solutions.";
3107       }
3108
3109       container lte-tdd-frame {
3110         when "(/user-plane-configuration/tx-array-carriers/rw-type = 'LTE') and  (/user-plane-configuration/tx-array-carriers/rw-duplex-scheme = 'TDD')";
3111         status deprecated;
3112         description
3113           "Container which consists of global configurable parameters for tdd Frame.
3114           This contained is deprecated due to introduction of TDD pattern configuration
3115           applicable in a common way for LTE and NR.";
3116
3117         leaf subframe-assignment {
3118           type enumeration {
3119             enum SAO {
3120               description "subframe assignment configuration 0";
3121             }
3122             enum SA1 {
3123               description "subframe assignment configuration 1";
3124             }
3125             enum SA2 {
3126               description "subframe assignment configuration 2";
3127             }
3128             enum SA3 {
3129               description "subframe assignment configuration 3";
3130             }
3131             enum SA4 {
3132               description "subframe assignment configuration 4";
3133             }
3134             enum SA5 {
3135               description "subframe assignment configuration 5";
3136             }
3137               enum SA6 {
3138                 description "subframe assignment configuration 6";
3139             }
3140           }
3141           mandatory true;
3142           description
3143             "Indicates DL/UL subframe configuration as specified in
3144             3GPP TS 36.211 [v15.3.0, table 4.2-2]";
3145         }
3146         leaf special-subframe-pattern {
3147           type enumeration {
3148             enum SPP0 {
3149               description "special subframe pattern configuration 0";
3150             }
3151             enum SPP1 {
3152               description "special subframe pattern configuration 1";
3153             }
3154             enum SPP2 {
3155               description "special subframe pattern configuration 2";
3156             }
3157             enum SPP3 {
3158               description "special subframe pattern configuration 3";
3159             }
3160             enum SPP4 {
3161               description "special subframe pattern configuration 4";
3162             }
3163             enum SPP5 {
3164               description "special subframe pattern configuration 5";
3165             }
3166             enum SPP6 {
3167               description "special subframe pattern configuration 6";
3168             }
3169             enum SPP7 {
3170               description "special subframe pattern configuration 7";
3171             }
3172             enum SPP8 {
3173               description "special subframe pattern configuration 8";
3174             }
3175             enum SPP9 {
3176               description "special subframe pattern configuration 9";
3177             }
3178             enum SPP10 {
3179               description "special subframe pattern configuration 10";
3180             }
3181           }
3182           mandatory true;
3183           description
3184             "Indicates TDD special subframe configuration as in TS 36.211
3185              [v15.3.0, table 4.2-1] ";
3186         }
3187       }
3188
3189       container laa-carrier-configuration {
3190         when "../band-number = 46";
3191         if-feature mcap:LAA;
3192         description "Container to specify LAA feature related carrier configuration.";
3193         uses laa-carrier-config;
3194       }
3195
3196       leaf gain {
3197         type decimal64 {
3198           fraction-digits 4;
3199         }
3200         units dB;
3201         mandatory true;
3202
3203         description
3204           "Transmission gain in dB. Value applicable to each array element carrier belonging to array carrier.
3205
3206           The value of tranmsmission gain shall meet the constraints defined in CUS-Plane, clause 8.1.3.3.";
3207       }
3208
3209       leaf downlink-radio-frame-offset {
3210         type uint32 {
3211           range 0..12288000;
3212         }
3213         mandatory true;
3214
3215         description
3216           "This parameter is used for offsetting the starting position of 10ms radio frame.
3217           Note: The value should have same value within DU to all tx-array-carriers that have same frequency and bandwidth.
3218           Note2: Unit is 1/1.2288e9 s. Then, its range is calculated 0..12288000.";
3219       }
3220
3221       leaf downlink-sfn-offset {
3222         type int16 {
3223           range -32768..32767;
3224         }
3225         mandatory true;
3226
3227         description
3228           "This parameter is used for offsetting SFN value.
3229           Unit is in 10ms.
3230           Note: The value should have same value within DU to all tx-array-carriers that have same frequency and bandwidth.";
3231       }
3232
3233       leaf t-da-offset {
3234         if-feature "feat:EXT-ANT-DELAY-CONTROL";
3235         type uint32;
3236         units Tc;
3237         default 0;
3238         description
3239           "the time difference between the output of DL signal at the
3240            antenna connector of O-RU and the transmission over the air.
3241            units are Tc=~0.5ns=1/1.96608GHz.
3242            An O-RU with 'ext-ant-delay-capability' = 'PER-O-RU' shall reject any configuration
3243            where different values of t-da-offset are configured on tx-array-carriers;
3244            An O-RU with 'ext-ant-delay-capability' = 'PER-ARRAY' shall reject any configuration
3245            where different values of t-da-offset are configured on tx-array-carriers associated with the same tx-array.";
3246       }
3247
3248       leaf reference-level {
3249         if-feature TX-REFERENCE-LEVEL;
3250         type decimal64 {
3251           fraction-digits 4;
3252         }
3253         units dB;
3254         default 0;
3255         description
3256           "Allows to adjust reference level for sum of IQ signal power over eAxCs in this array-carrier.";
3257       }
3258
3259       leaf configurable-tdd-pattern {
3260         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')";
3261         if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
3262         type leafref {
3263           path "/user-plane-configuration/configurable-tdd-patterns/tdd-pattern-id";
3264         }
3265         description
3266           "This parameter creates reference to configuration for TDD pattern applicable for particular tx-array-carrier.
3267           The leaf may exist under tx-array-carrier only in case O-RU supports feature 'CONFIGURABLE-TDD-PATTERN-SUPPORTED'
3268           AND all low-level-tx-endpoints linked to this tx-array-carrier have configurable-tdd-pattern-supported = 'true'";
3269       }
3270     }
3271
3272     list rx-array-carriers {
3273       key name;
3274       description
3275         "Object model for rx-array-carriers configuration";
3276
3277           leaf name {
3278             type string;
3279             description
3280             "Unique name of rx-array-carriers object.";
3281       }
3282
3283       list odu-ids {
3284         if-feature feat:SHARED-ORU-MULTI-ODU;
3285         key odu-id;
3286         description
3287           "An optional list of o-du identities associated with this list entry.
3288           When present, indicates that the list entry corresponds to a rx-array-carrier
3289           associated with one or more particular odu-id(s).
3290
3291           This list is used to enable enhanced watchdog operation when operating
3292           in a single operator environment, where watchdog supervision is performed
3293           on a per odu-id basis and supervision failure only results in a sub-set
3294           of carriers beign de-activated.";
3295
3296         leaf odu-id {
3297           type string;
3298           description "an o-du identity ";
3299         }
3300       }
3301
3302       list sro-ids-and-odu-ids {
3303         if-feature "feat:SHARED-ORU-MULTI-ODU and feat:SHARED-ORU-MULTI-OPERATOR";
3304         key "odu-id sro-id";
3305         description
3306           "An optional list of sro and o-du identities associated with this list entry.
3307           When present, indicates that the list entry corresponds to a rx-array-carrier
3308           associated with one or more particular odu-id(s) operated by a particular sro-id.
3309
3310           This list is used to enable enhanced watchdog operationwhen operating
3311           in a multi operator environment, where watchdog supervision is performed on
3312           a per odu-id basis and supervision failure only results in a sub-set of
3313           carriers beign de-activated.";
3314         leaf odu-id {
3315           type string;
3316           description "an o-du identity ";
3317         }
3318         leaf sro-id {
3319           type string;
3320           description "an sro identity ";
3321         }
3322       }
3323
3324       uses rx-common-array-carrier-elements;
3325
3326       leaf downlink-radio-frame-offset {
3327         type uint32 {
3328           range 0..12288000;
3329         }
3330         mandatory true;
3331
3332         description
3333           "This parameter is used for offsetting the starting position of 10ms radio frame.
3334           Note: The value should have same value within DU to all tx-array-carriers that have same frequency and bandwidth.
3335           Note2: Unit is 1/1.2288e9 s. Then, its range is calculated 0..12288000.";
3336       }
3337
3338       leaf downlink-sfn-offset {
3339         type int16 {
3340           range -32768..32767;
3341         }
3342         mandatory true;
3343
3344         description
3345           "This parameter is used for offsetting SFN value.
3346           Unit is in 10ms.
3347           Note: The value should have same value within DU to all tx-array-carriers that have same frequency and bandwidth.";
3348       }
3349
3350       leaf gain-correction {
3351         type decimal64 {
3352           fraction-digits 4;
3353
3354         }
3355         units dB;
3356         mandatory true;
3357         description
3358           "Gain correction of RF path linked with array element or array layers.
3359            Common part of overall gain_correction.
3360            gain_correction = common array-carrier gain-correction + eAxC gain correction.";
3361       }
3362
3363       leaf n-ta-offset {
3364         type uint32;
3365         units Tc;
3366         mandatory true;
3367         description
3368           "Value of configurable N-TA offset
3369           units are Tc=~0.5ns=1/1.96608GHz";
3370       }
3371
3372       leaf t-au-offset {
3373         if-feature "feat:EXT-ANT-DELAY-CONTROL";
3374         type uint32;
3375         units Tc;
3376         default 0;
3377         description
3378           "the time difference between the reception over the air and
3379            the input of UL signal at the antenna connector of O-RU.
3380            units are Tc=~0.5ns=1/1.96608GHz.
3381            An O-RU with 'ext-ant-delay-capability' = 'PER-O-RU' shall reject any configuration
3382            where different values of t-au-offset are configured on rx-array-carriers;
3383            An O-RU with 'ext-ant-delay-capability' = 'PER-ARRAY' shall reject any configuration
3384            where different values of t-au-offset are configured on rx-array-carriers associated with the same rx-array.";
3385       }
3386
3387       leaf configurable-tdd-pattern {
3388         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')";
3389         if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
3390         type leafref {
3391           path "/user-plane-configuration/configurable-tdd-patterns/tdd-pattern-id";
3392         }
3393         description
3394           "This parameter creates reference to configuration for TDD pattern applicable for particular rx-array-carrier.
3395            The leaf may exist under rx-array-carrier only in case O-RU supports feature 'CONFIGURABLE-TDD-PATTERN-SUPPORTED'
3396           AND all low-level-rx-endpoints linked to this rx-array-carrier have configurable-tdd-pattern-supported = 'true'";
3397       }
3398     }
3399
3400     list tx-arrays {
3401       key "name";
3402       config false;
3403       description
3404         "Structure describing TX array parameters";
3405
3406       uses parameters;
3407
3408       leaf min-gain {
3409         type decimal64 {
3410           fraction-digits 4;
3411
3412         }
3413         units dB;
3414         description
3415           "Min gain of RF path linked with array element (maximum over elements of array) or array layers";
3416       }
3417
3418       leaf max-gain {
3419         type decimal64 {
3420           fraction-digits 4;
3421
3422         }
3423         units dB;
3424         mandatory true;
3425         description
3426           "Max gain of RF path linked with array element (minimum over elements of array) or array layers";
3427       }
3428
3429       leaf independent-power-budget {
3430         type boolean;
3431         mandatory true;
3432         description
3433           "If true then every element of array has own, power budget independent from power budget of other elements.
3434           Else all elements of array that are at same row and column and have same polarisation share power budget";
3435       }
3436
3437       list capabilities {
3438         description
3439           "List of capabilities related to this tx-array";
3440         uses mcap:support-for-dl;
3441       }
3442     }
3443
3444     list rx-arrays {
3445       key "name";
3446       config false;
3447       description "Structure describing RX array parameters";
3448
3449       uses parameters;
3450       container gain-correction-range {
3451         leaf max {
3452           type decimal64 {
3453             fraction-digits 4;
3454           }
3455           units dB;
3456           mandatory true;
3457           description "Array gain correction factor - maximum allowed value";
3458           }
3459         leaf min {
3460           type decimal64 {
3461             fraction-digits 4;
3462           }
3463           units dB;
3464           mandatory true;
3465           description "Array gain correction factor - minimum allowed value";
3466         }
3467
3468         description
3469           "Array gain correction factor";
3470       }
3471
3472       list capabilities {
3473         description
3474           "List of capabilities related to this rx-array";
3475         uses mcap:support-for-ul;
3476       }
3477     }
3478
3479     list relations {
3480       key "entity";
3481       config false;
3482       description "Structure describing relations between array elements";
3483
3484       leaf entity {
3485         type uint16;
3486
3487         description
3488           "Relation entity. Used as a key for list of relations.";
3489       }
3490
3491       container array1 {
3492         uses array-choice;
3493
3494         description
3495           "Defines name for first array";
3496       }
3497       container array2 {
3498         uses array-choice;
3499
3500         description
3501           "Defines name for second array";
3502       }
3503       list types {
3504         key "relation-type";
3505         description
3506           "Defines relation type and pairs for array elements for given arrays";
3507
3508         leaf relation-type {
3509           type enumeration {
3510             enum SHARED {
3511               description "SHARED";
3512             }
3513             enum COALOCATED {
3514               description "COALOCATED";
3515             }
3516           }
3517           description "Type of relation between array elements";
3518         }
3519         list pairs {
3520           key "element-array1";
3521           description
3522             "defines related array elements";
3523
3524           leaf element-array1 {
3525             type uint16;
3526
3527             description
3528               "Tells about id of element from array1";
3529           }
3530           leaf element-array2 {
3531             type uint16;
3532
3533             description
3534               "Tells about id of element from array2";
3535           }
3536         }
3537       }
3538     }
3539
3540     container eaxc-id-group-configuration {
3541       if-feature mcap:EAXC-ID-GROUP-SUPPORTED;
3542       description
3543         "This is the container for eAxC ID group configuration.";
3544       leaf max-num-tx-eaxc-id-groups {
3545         type leafref {
3546           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-tx-eaxc-id-groups";
3547           require-instance false;
3548         }
3549         description "eaxc-id-group-configuration";
3550       }
3551       leaf max-num-tx-eaxc-ids-per-group {
3552         type leafref {
3553           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-tx-eaxc-ids-per-group";
3554           require-instance false;
3555         }
3556         description "max-num-tx-eaxc-ids-per-group";
3557       }
3558       leaf max-num-rx-eaxc-id-groups {
3559         type leafref {
3560           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-rx-eaxc-id-groups";
3561           require-instance false;
3562         }
3563         description "max-num-rx-eaxc-id-groups";
3564       }
3565       leaf max-num-rx-eaxc-ids-per-group {
3566         type leafref {
3567           path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-rx-eaxc-ids-per-group";
3568           require-instance false;
3569         }
3570         description "max-num-rx-eaxc-ids-per-group";
3571       }
3572
3573       list tx-eaxc-id-group {
3574         must "count(../tx-eaxc-id-group) <= ../max-num-tx-eaxc-id-groups" {
3575           error-message "too many tx-eaxcid-id groups";
3576         }
3577         key "representative-tx-eaxc-id";
3578         description
3579           "This is a list of the groups of the eAxC IDs assigned to low-level-tx-endpoints.
3580           Each group is a union of the 'member-tx-eaxc-id's and a 'representative-tx-eaxc-id'.
3581           The low-level-tx-endpoint associated to 'representative-tx-eaxc-id' is able to
3582           process the DL C-plane information for all the low-level-tx-endpoints associated
3583           to 'member-tx-eaxc-id's.
3584
3585           Take Note: This list should only contain eAxC IDs assigned to a tx-endpoint.";
3586
3587
3588         leaf representative-tx-eaxc-id {
3589           type uint16;
3590           description
3591             "This parameter contains eAxC_ID that populates content of C-Plane section
3592             extension 10 to eAxC_IDs configured in the group as 'member-tx-eaxc-id'(s).";
3593         }
3594         leaf-list member-tx-eaxc-id {
3595           type uint16;
3596           must "count(../member-tx-eaxc-id) <= ../../max-num-tx-eaxc-ids-per-group" {
3597             error-message "too many tx-eaxcid-id members";
3598           }
3599           must "current()!=../representative-tx-eaxc-id" {
3600             error-message "the representative eaxcid does not need to be a list member";
3601           }
3602           ordered-by user;
3603           description
3604             "This is a list of member eAxC IDs, which together with the representative-tx-eaxc-id,
3605             are assigned to low-level-tx-endpoints in the group.
3606             This list is defined as 'ordered-by user', because the order of the eaxc-id list should be maintained,
3607             and the parameters in the SE10 are applied to the eaxc-ids based on the order of eaxc-ids in the list
3608             when the section extension conveys unique parameters (beamId/ueId) per eaxc-id.";
3609         }
3610       }
3611
3612       list rx-eaxc-id-group {
3613         must "count(../rx-eaxc-id-group) <= ../max-num-rx-eaxc-id-groups" {
3614           error-message "too many rx-eaxcid-id groups";
3615         }
3616         key "representative-rx-eaxc-id";
3617         description
3618           "This is a list of the groups of the eAxC IDs assigned to low-level-rx-endpoints.
3619           Each group is a union of 'member-rx-eaxc-id's and a 'representative-rx-eaxc-id'.
3620           The low-level-rx-endpoint associated to 'representative-rx-eaxc-id' is able to
3621           process the UL C-plane information for all the low-level-rx-endpoints associated
3622           to 'member-rx-eaxc-id's.
3623
3624           Take Note: This list should only contain eAxC IDs assigned to a rx-endpoint.";
3625
3626         leaf representative-rx-eaxc-id {
3627           type uint16;
3628           description
3629             "This parameter contains eAxC_ID that populates content of C-Plane section
3630             extension 10 to eAxC_IDs configured in the group as 'member-rx-eaxc-id'(s).";
3631         }
3632
3633         leaf-list member-rx-eaxc-id {
3634           type uint16;
3635           must "count(../member-rx-eaxc-id) <= ../../max-num-rx-eaxc-ids-per-group" {
3636             error-message "too many rx-eaxcid-id members";
3637           }
3638           must "current()!=../representative-rx-eaxc-id" {
3639             error-message "the representative eaxcid does not need to be a list member";
3640           }
3641           ordered-by user;
3642           description
3643             "This is a list of member eAxC IDs assigned to low-level-rx-endpoints in the group.
3644             This list is defined as 'ordered-by user', because the order of the eaxc-id list should be maintained,
3645             and the parameters in the SE10 are applied to the eaxc-ids based on the order of eaxc-ids in the list
3646             when the section extension conveys unique parameters (beamId/ueId) per eaxc-id.";
3647         }
3648       }
3649     }
3650
3651     list static-prach-configurations {
3652       if-feature mcap:PRACH-STATIC-CONFIGURATION-SUPPORTED;
3653       key static-prach-config-id;
3654       description
3655         "List of static PRACH configurations. An O-RU shall reject any configuration
3656         modification which exceed the maximum permitted configurations supported by
3657         the O-RU";
3658
3659       leaf static-prach-config-id {
3660         type uint8;
3661         description
3662           "Supplementary parameter acting as key in list of static PRACH configurations.";
3663       }
3664
3665       uses static-prach-configuration;
3666     }
3667
3668     grouping static-prach-configuration {
3669       description
3670         "Set of parameters related to static PRACH configuration";
3671
3672       leaf pattern-period {
3673         type uint16 {
3674           range 1..1024;
3675         }
3676         mandatory true;
3677         description
3678           "Period after which static PRACH patterns are repeated. Unit: number of frames.";
3679       }
3680
3681       leaf guard-tone-low-re {
3682         type uint32;
3683         mandatory true;
3684         description
3685           "Number of REs occupied by the low guard tones.";
3686       }
3687
3688       leaf num-prach-re {
3689         type uint32;
3690         mandatory true;
3691         description
3692           "Number of contiguous PRBs per data section description";
3693       }
3694
3695       leaf guard-tone-high-re {
3696         type uint32;
3697         mandatory true;
3698         description
3699           "Number of REs occupied by the high guard tones.";
3700       }
3701
3702       leaf sequence-duration {
3703         type uint32 {
3704           range 256..24576;
3705         }
3706         units Ts;
3707         mandatory true;
3708         description
3709           "Duration of single sequence of the PRACH. Sequence may be considered as 'single PRACH symbol'";
3710       }
3711
3712       list prach-patterns {
3713         key prach-pattern-id;
3714         min-elements 1;
3715         description
3716           "Provides a PRACH pattern. Each record in the list represents a single PRACH occasion. Number of list entries cannot exceed max-prach-patterns";
3717
3718         leaf prach-pattern-id {
3719           type uint16;
3720           mandatory true;
3721           description
3722             "Supplementary parameter acting as key for prach-pattern list.";
3723         }
3724
3725         leaf number-of-repetitions {
3726           type uint8{
3727             range 1..14;
3728           }
3729           mandatory true;
3730           description
3731             "This parameter defines number of PRACH repetitions in PRACH occasion,
3732              to which the section control is applicable.";
3733         }
3734
3735         leaf number-of-occasions {
3736           type uint8;
3737           mandatory true;
3738           description
3739             "This parameter informs how many consecutive PRACH occasions is described by the PRACH pattern.";
3740         }
3741
3742         leaf re-offset {
3743           type uint32;
3744           mandatory true;
3745           description
3746             "Offset between the start of lowest-frequency RE of lowest-frequency PRB
3747              and the start of lowest-frequency RE belonging to the PRACH occasion.
3748              The re-offset is configured as number of PRACH REs.";
3749         }
3750
3751         list occasion-parameters {
3752           key occasion-id;
3753           min-elements 1;
3754           description
3755             "This is list of cp-lengths, gp-lengths and beam-ids applicable
3756              per each PRACH occasion in PRACH pattern.
3757              Note: the number of records in this list MUST be equal
3758                    to value of parameter number-of-occasions.";
3759
3760           leaf occasion-id {
3761             type uint8;
3762             mandatory true;
3763             description
3764               "Supplementary parameter acting as key in 'occasion-parameters' list";
3765           }
3766
3767           leaf cp-length {
3768             type uint16;
3769             units Ts;
3770             mandatory true;
3771             description
3772           "Cyclic prefix length. See CUS-plane specification for detailed description.";
3773           }
3774
3775           leaf gp-length {
3776             type uint16;
3777             units Ts;
3778             description
3779               "Guard period length.";
3780           }
3781
3782           leaf beam-id {
3783             type uint16 {
3784               range "min .. 32767";
3785             }
3786             mandatory true;
3787             description
3788               "This parameter defines the beam pattern to be applied to the U-Plane data.
3789                beamId = 0 means no beamforming operation will be performed.";
3790           }
3791         }
3792
3793         leaf frame-number {
3794           type uint16{
3795             range 0..1023;
3796           }
3797           mandatory true;
3798           description
3799             "This parameter is an index inside the pattern-length, such that
3800              PRACH occasion is happening for SFN which fulfills following equation:
3801              [SFN mod pattern-length = frame-id]";
3802         }
3803
3804         leaf sub-frame-id {
3805           type uint16;
3806           mandatory true;
3807           description
3808             "Identifier of sub-frame of the PRACH occasion. Value is interpreted in the same way
3809              as subframeId field in a section description of a C-Plane message.";
3810         }
3811
3812         leaf time-offset {
3813           type uint16;
3814           units Ts;
3815           mandatory true;
3816           description
3817             "This parameter defines the time-offset from the start of the sub-frame
3818              to the start of the first Cyclic Prefix of PRACH pattern";
3819         }
3820       }
3821     }
3822
3823     grouping static-srs-configuration {
3824       description
3825         "Set of parameters related to static PRACH configuration";
3826
3827       leaf pattern-period {
3828         type uint16 {
3829           range 1..1024;
3830         }
3831         mandatory true;
3832         description
3833           "Period after which static SRS patterns are repeated. Unit: number of frames.";
3834       }
3835
3836       list srs-patterns {
3837         key srs-pattern-id;
3838         min-elements 1;
3839         description
3840           "Provides a SRS pattern. Each record in the list represents a single PRACH occasion. Number of list entries cannot exceed max-srs-patterns.";
3841
3842         leaf srs-pattern-id {
3843           type uint16;
3844           mandatory true;
3845           description
3846             "Supplementary parameter acting as key for srs-pattern list.";
3847         }
3848
3849         leaf sub-frame-id {
3850           type uint16;
3851           mandatory true;
3852           description
3853             "Identifier of sub-frame of the Raw SRS occasion. Value is interpreted in the same way
3854              as subframeId field in a section description of a C-Plane message.";
3855         }
3856
3857         leaf slot-id {
3858           type uint16;
3859           mandatory true;
3860           description
3861             "Identifier of slot of the Raw SRS occasion. Value is interpreted in the same way
3862              as slotId field in a section description of a C-Plane message.";
3863         }
3864
3865         leaf start-symbol-id {
3866           type uint16;
3867           mandatory true;
3868           description
3869             "Identifier of first symbol of the Raw SRS occasion. Value is interpreted in the same way
3870              as startSymbolId field in a section description of a C-Plane message.";
3871         }
3872
3873         leaf beam-id {
3874           type uint16 {
3875             range "min .. 32767";
3876           }
3877           mandatory true;
3878           description
3879             "This parameter defines the beam pattern to be applied to the U-Plane data.
3880              beamId = 0 means no beamforming operation will be performed.";
3881         }
3882
3883         leaf num-symbol {
3884           type uint16;
3885           mandatory true;
3886           description
3887             "This parameter defines number of consecutive symbols covered by specific srs-pattern.
3888              Single srs-pattern may address at least one symbol. However, possible optimisations
3889              could allow for several (up to 14) symbols.";
3890         }
3891
3892         leaf start-prbc {
3893           type uint16 {
3894             range 0..1023;
3895           }
3896           mandatory true;
3897           description
3898             "Identifier of first PRB of the Raw SRS occasion. Value is interpreted in the same way
3899              as startPrbc field in a section description of a C-Plane message.";
3900         }
3901
3902         leaf num-prbc {
3903           type uint16;
3904           mandatory true;
3905           description
3906             "Number of PRBs of the Raw SRS occasion. Value is interpreted in the same way
3907              as numPrbc field in a section description of a C-Plane message.";
3908         }
3909       }
3910     }
3911
3912     grouping configurable-tdd-pattern {
3913       description
3914         "Set of parameters related to configurable TDD pattern.
3915         Note: configurable-tdd-pattern shall not be used in case the usage would collide with
3916         deprecated 'lte-tdd-pattern'.";
3917
3918       list switching-points {
3919         key switching-point-id;
3920         description
3921           "List of switching points within frame, related to configurable TDD pattern.
3922           An O-RU shall reject any configuration modification which exceeds the maximum
3923           number of switching-points supported by the O-RU";
3924
3925         leaf switching-point-id {
3926           type uint16;
3927           description
3928             "Supplementary parameter acting as key for switching-points list.";
3929           }
3930
3931         leaf direction {
3932           type enumeration {
3933             enum UL {
3934             description "Uplink";
3935             }
3936             enum DL {
3937             description "Downlink";
3938             }
3939             enum GP {
3940             description "Guard period";
3941             }
3942           }
3943           mandatory true;
3944           description
3945             "Parameter provides information regarding desired signal direction at the moment switching point occurs.";
3946         }
3947
3948         leaf frame-offset {
3949           type uint32;
3950           mandatory true;
3951           description
3952             "Offset from DL air frame boundary transmitted at RF connector to the point in time that is characteristic to the operation on RF switches. Unit is 1/1.2288e9 s.";
3953         }
3954       }
3955     }
3956
3957     list static-srs-configurations {
3958       if-feature mcap:SRS-STATIC-CONFIGURATION-SUPPORTED;
3959       key static-srs-config-id;
3960       description
3961         "List of static SRS configurations";
3962
3963       leaf static-srs-config-id {
3964         type uint8;
3965         description
3966           "Supplementary parameter acting as key in the list of static SRS configurations.";
3967       }
3968
3969       uses static-srs-configuration;
3970     }
3971
3972     list configurable-tdd-patterns {
3973       if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED;
3974       key tdd-pattern-id;
3975       description
3976         "List of configured TDD patterns";
3977
3978       leaf tdd-pattern-id {
3979         type uint8;
3980         description
3981           "Supplementary parameter acting as key in the list of configured TDD patterns.";
3982       }
3983
3984       uses configurable-tdd-pattern;
3985     }
3986   }
3987
3988   grouping tx-array-notification-group {
3989     description
3990       "Grouping for tx-array for notification";
3991
3992     list tx-array-carriers{
3993       key name;
3994       description "notification of state change for tx-array-carriers";
3995
3996       leaf name{
3997         type leafref{
3998           path "/user-plane-configuration/tx-array-carriers/name";
3999         }
4000         description
4001           "name of tx-array-carriers is notified at state change";
4002       }
4003       leaf state{
4004         type leafref{
4005           path "/user-plane-configuration/tx-array-carriers/state";
4006         }
4007       description
4008         "state of tx-array-carriers is notified at state change";
4009       }
4010     }
4011   }
4012
4013   grouping rx-array-notification-group {
4014     description
4015       "Grouping for rx-array for notification";
4016
4017     list rx-array-carriers{
4018       key name;
4019       description
4020         "Notification used to inform about state change of rx-array-carriers";
4021       leaf name{
4022         type leafref{
4023           path "/user-plane-configuration/rx-array-carriers/name";
4024         }
4025         description
4026           "name of rx-array-carriers is notified at state change";
4027       }
4028       leaf state{
4029         type leafref{
4030           path "/user-plane-configuration/rx-array-carriers/state";
4031         }
4032         description
4033           "state of rx-array-carriers is notified at state change";
4034       }
4035     }
4036   }
4037
4038   // top level container
4039   container user-plane-configuration {
4040     description "top level container for user plane configuration";
4041
4042     uses uplane-conf-group;
4043     uses general-config;
4044   }
4045
4046   //notification statement
4047   notification tx-array-carriers-state-change {
4048     description
4049       "Notification used to inform about state change of tx-array-carriers";
4050     uses tx-array-notification-group;
4051   }
4052   notification rx-array-carriers-state-change {
4053     description
4054     "Notification used to inform about state change of tx-array-carriers";
4055
4056     uses rx-array-notification-group;
4057   }
4058 }