Bug fix.
[sim/o1-interface.git] / ntsimulator / yang / o-ran / ru-fh / o-ran-uplane-conf.yang
1 module o-ran-uplane-conf {
2   yang-version 1.1;
3   namespace "urn:o-ran:uplane-conf:1.0";
4   prefix "o-ran-uplane-conf";
5
6   import o-ran-processing-element {
7     prefix "o-ran-pe";
8   }
9
10   import ietf-interfaces {
11     prefix "if";
12   }
13
14   import o-ran-module-cap {
15     prefix "mcap";
16     revision-date 2019-07-03;
17     // need to align/update with final date of publication
18   }
19
20   import o-ran-compression-factors {
21     prefix "cf";
22   }
23
24   organization "O-RAN Alliance";
25
26   contact
27     "www.o-ran.org";
28
29   description
30     "This module defines the module capabilities for
31     the O-RAN Radio Unit U-Plane configuration.
32
33     Copyright 2019 the O-RAN Alliance.
34
35     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
36     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
38     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
39     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
40     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
41     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
42     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
43     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
44     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
45     POSSIBILITY OF SUCH DAMAGE.
46
47     Redistribution and use in source and binary forms, with or without
48     modification, are permitted provided that the following conditions are met:
49
50     * Redistributions of source code must retain the above copyright notice,
51     this list of conditions and the above disclaimer.
52     * Redistributions in binary form must reproduce the above copyright notice,
53     this list of conditions and the above disclaimer in the documentation
54     and/or other materials provided with the distribution.
55     * Neither the Members of the O-RAN Alliance nor the names of its
56     contributors may be used to endorse or promote products derived from
57     this software without specific prior written permission.";
58
59   revision "2019-07-03" {
60     description
61       "version 1.1.0
62
63       1) added new leaf multiple-numerology-supported to enable O-RU to report
64          whether it supports multiple numerologies.
65
66       2) fixing broken constraints (configuration cannot be dependent on
67         operational state). This is a backwards incompatible revision.
68
69        As these constraints only apply when the LAA feature is used, and also
70        when considering the limited number of implementation that need to be
71        taken into consideration for backwards compatibility, it has been
72        agreed to NOT increment the namespace integer.
73
74       3) added frequency related capabilities for tx-arrays and rx-array
75
76       4) removed redundant LAA import";
77
78     reference "ORAN-WG4.M.0-v01.00";
79   }
80
81   revision "2019-02-04" {
82     description
83       "version 1.0.0
84
85       1) imported model from xRAN
86       2) changed namespace and reference from xran to o-ran";
87
88     reference "ORAN-WG4.M.0-v01.00";
89   }
90
91   typedef polarisation_type {
92     type enumeration {
93       enum MINUS_45 {
94         description "MINUS_45";
95       }
96       enum ZERO {
97         description "ZERO";
98       }
99       enum PLUS_45 {
100         description "PLUS_45";
101       }
102       enum PLUS_90 {
103         description "PLUS_90";
104       }
105     }
106     description "Type definition for polarisations";
107   }
108
109   grouping laa-carrier-config {
110     description "Carrier Configuration for support of LAA. ";
111     leaf ed-threshold-pdsch {
112       type int8;
113       units dBm;
114       description
115         "This value indicates Energy Detection(ED) threshold for LBT for PDSCH and for measurements in dBm.";
116     }
117
118     leaf ed-threshold-drs {
119       type int8;
120       units dBm;
121       description
122         "This value indicates Energy Detection(ED) threshold for LBT for DRS in dBm.";
123     }
124
125     leaf tx-antenna-ports {
126       type uint8;
127       description
128         "This value indicates Tx antenna ports for DRS (1, 2, 4)";
129     }
130
131     leaf transmission-power-for-drs {
132       type int8;
133       units decibels;
134       description
135         "This value indicates offset of Cell specific reference Signal(CRS) power to reference signal power (dB).
136         DRS signal consists of CRS, PSS, SSS, and optionally CSI-RS.";
137     }
138
139     leaf dmtc-period {
140       type enumeration {
141         enum FORTY {
142           description
143             "40 ms";
144         }
145         enum EIGHTY {
146           description
147             "80 ms";
148         }
149         enum ONE-HUNDRED-SIXTY {
150           description
151             "160 ms";
152         }
153       }
154       units milliseconds;
155       description
156         "This value indicates DRS measurement timing configuration (DMTC) period in ms";
157     }
158
159     leaf dmtc-offset {
160       type uint8;
161       units subframes;
162       description
163         "This value indicates dmtc offset in Subframes.";
164     }
165
166     leaf lbt-timer {
167       type uint16;
168       units milliseconds;
169       description
170         "This value indicates LBT Timer in milliseconds.";
171     }
172
173     list max-cw-usage-counter {
174       when "/mcap:module-capability/mcap:rw-sub-band-info/mcap:rw-self-configure = 'true'";
175       key "priority";
176       description "";
177       leaf priority {
178         type enumeration {
179           enum P1 {
180             description "priority 1";
181           }
182           enum P2 {
183             description "priority 2";
184           }
185           enum P3 {
186             description "priority 3";
187           }
188           enum P4 {
189             description "priority 4";
190           }
191         }
192         description "This value provides the priority class traffic for which the counter is calculated.";
193       }
194
195         leaf counter-value {
196           type uint8 {
197             range "1..8";
198           }
199           description "This value indicates the maximum value of counter
200           which shows how many max congestion window value is used for backoff
201           number of priority class traffic. This value is defined at 3GPP 36.213
202           section 15.1.3 as K.";
203         }
204       }
205   }
206
207   grouping  eaxc {
208     description
209       "One eAxC identifier (eAxC ID) comprises a band and sector
210       identifier (BandSector_ID), a component-carrier identifier (CC_ID) and a
211       spatial stream identifier (RU_Port_ID).
212
213       In this version of the specification, one eAxC contains only one spatial
214       stream (i.e. one beam per subcarrier) at a time.
215
216       Bit allocation is subdivided as follows:
217       *    O_DU_Port_ID: Used to differentiate processing units at O-DU
218       *    BandSector_ID: Aggregated cell identifier
219       *    CC_ID: distinguishes Carrier Components
220       *    RU_Port_ID: Used to differentiate spatial streams or beams on the O-RU
221
222       The bitwidth of each of the above fields is variable this model is supposed to check
223         if we are occpying bits continuously but we do not have to occupy all 16 bits";
224
225
226     leaf o-du-port-bitmask {
227       type uint16;
228       mandatory true;
229       description
230         "mask for eaxc-id bits used to encode O-DU Port ID";
231     }
232
233     leaf band-sector-bitmask {
234       type uint16;
235       mandatory true;
236       description
237         "mask for eaxc-id bits used to encode the band sector ID";
238     }
239
240     leaf ccid-bitmask {
241       type uint16;
242       mandatory true;
243       description
244         "mask for eaxc-id bits used to encode the component carrier id";
245     }
246
247     leaf ru-port-bitmask {
248       type uint16;
249       mandatory true;
250       description
251         "mask for eaxc-id bits used to encode the O-RU Port ID";
252     }
253
254     leaf eaxc-id {
255       type uint16;
256       mandatory true;
257       description
258         "encoded value of eaxcid to be read by CU-Plane";
259     }
260   }
261
262   grouping parameters {
263     description
264       "Grouping of all parameters common between UL and DL";
265
266     leaf name {
267       type string;
268       mandatory true;
269       description "Unique name of array antenna";
270     }
271
272     leaf number-of-rows {
273       type uint16;
274       mandatory true;
275       description "Number of rows array elements are shaped into - M";
276     }
277
278     leaf number-of-columns {
279       type uint16;
280       mandatory true;
281       description "Number of columns array elements are shaped into - N";
282     }
283
284     leaf number-of-array-layers {
285       type uint8;
286       mandatory true;
287       description "Number of array layers array elements are shaped into - Q";
288     }
289
290     leaf horizontal-spacing {
291       type decimal64 {
292             fraction-digits 5;
293         }
294       units Meter;
295
296       description "Average distance between centers of nearby AE in horizontal direction (in array coordinates system)";
297     }
298
299     leaf vertical-spacing{
300       type decimal64 {
301             fraction-digits 5;
302         }
303       units Meter;
304
305       description "Average distance between centers of nearby AE in vertical direction (in array coordinates system)";
306     }
307
308     container normal-vector-direction {
309       description
310         "Counter-clockwise rotation around z and y axis.";
311
312       leaf azimuth-angle{
313         type decimal64 {
314           fraction-digits 4;
315           }
316         units Degrees;
317
318         description "Azimuth angle, counter-clockwise rotation around z-axis. Value 'zero' points to broad-side, value '90' points to y-axis";
319       }
320        leaf zenith-angle{
321          type decimal64 {
322           fraction-digits 4;
323           }
324         units Degrees;
325
326         description "Zenith angle, counter-clockwise rotation around y-axis. Value 'zero' points to zenith, value '90' points to horizon";
327        }
328     }
329
330     container leftmost-bottom-array-element-position {
331       description "Structure describing position of leftmost, bottom array element.";
332       leaf x {
333         type decimal64 {
334           fraction-digits 4;
335           }
336         units Meter;
337
338         description "X dimension of position of leftmost, bottom array element";
339       }
340
341       leaf y {
342         type decimal64 {
343           fraction-digits 4;
344           }
345         units Meter;
346
347         description "Y dimension of position of leftmost, bottom array element";
348       }
349
350       leaf z {
351         type decimal64 {
352           fraction-digits 4;
353           }
354         units Meter;
355
356         description "Z dimension of position of leftmost, bottom array element";
357       }
358     }
359     list polarisations {
360       key "p";
361       min-elements 1;
362       max-elements 2;
363
364       description
365         "List of supported polarisations.";
366
367       leaf p {
368       type uint8;
369       mandatory true;
370       description
371         "Polarisation index. See CUS-plane";
372       }
373
374       leaf polarisation {
375         type polarisation_type;
376         mandatory true;
377         description "Type of polarisation supported by array.";
378       }
379     }
380     leaf band-number {
381       type leafref {
382         path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
383       }
384       mandatory true;
385       description
386         "This parameter informing which frequency band particular antenna
387          array is serving for.
388          Intended use is to deal with multiband solutions.";
389     }
390   }
391
392   grouping array-choice {
393     choice antenna-type {
394       case tx {
395         leaf tx-array-name {
396           type leafref {
397             path "/o-ran-uplane-conf:user-plane-configuration/o-ran-uplane-conf:tx-arrays/o-ran-uplane-conf:name";
398           }
399
400           description
401             "Leafref to tx array if such is choosen";
402         }
403       }
404       case rx {
405         leaf rx-array-name {
406           type leafref {
407             path "/o-ran-uplane-conf:user-plane-configuration/o-ran-uplane-conf:rx-arrays/o-ran-uplane-conf:name";
408           }
409
410           description
411             "Leafref to rx array if such is choosen";
412         }
413       }
414       description
415         "Choice for antenna type";
416     }
417     description
418       "Elements which groups choice for antenna type";
419   }
420
421   grouping scs-config {
422     description
423       "It groups all parameters related to SCS configuration";
424
425     leaf frame-structure {
426       type uint8;
427
428       description
429         "This parameter defines the frame structure. The first 4 bits define the FFT/iFFT size
430         being used for all IQ data processing related to this message.
431         The second 4 bits define the sub carrier spacing as well as the number of slots per 1ms sub-frame
432         according to 3GPP TS 38.211, taking for completeness also 3GPP TS 36.211 into account";
433     }
434
435     leaf cp-type {
436       type enumeration {
437         enum NORMAL {
438           description
439             "Normal cyclic prefix";
440         }
441
442         enum EXTENDED {
443           description
444             "Extended cyclic prefix";
445         }
446       }
447
448       description
449         "Provides type of CP (cyclic prefix) if section type 3 is not used or type of CP cannot be determined from cpLength.";
450     }
451
452     leaf cp-length {
453       type uint16;
454       units Ts;
455       mandatory true;
456       description
457         "Used for symbol 0 for NR & LTE, and symbol 7*2u for NR.
458         See CUS-plane";
459     }
460
461     leaf cp-length-other {
462       type uint16;
463       units Ts;
464       mandatory true;
465       description
466         "Used for other symbols than by cp-length above";
467     }
468
469     leaf offset-to-absolute-frequency-center {
470       type int32;
471       mandatory true;
472       description
473         "This provides value of freqOffset to be used if section type 3 is not used. See freqOffset in CUS-plane.";
474     }
475
476     list number-of-prb-per-scs {
477       key scs;
478       description
479         "List of configured for each SCS that will be used.";
480
481       leaf scs {
482         type mcap:scs-config-type;
483         description
484           "Value corresponds to SCS values defined for frameStructure in C-plane.
485           Note: set of allowed values is restricted by SCS derived from values in supported-frame-structures.";
486       }
487
488       leaf number-of-prb {
489         type uint16;
490         mandatory true;
491         description
492           "Determines max number of PRBs that will be used in all sections per one symbol.
493           This is affecting allocation of resources to endpoint. Value shall not exceed constrains
494           defined by max-prb-per-symbol of endpoint type. In addition sum (over all used epoints
495           within a group of endpoints sharing resources) of number-of-prb rounded up to
496           nearest value from prb-capacity-allocation-granularity shall not exceed max-prb-per-symbol of the group.";
497       }
498     }
499   }
500
501   grouping tx-common-array-carrier-elements {
502     description
503       "This grouping containes all common parameters for tx-array-carriers and rx-array-carriers";
504
505     leaf absolute-frequency-center {
506       type uint32;
507       mandatory true;
508       description
509         "Absolute Radio Frequency Channel Number - indirectly indicates RF center carrier frequency of signal.
510         Reflected in arfcn.";
511     }
512
513     leaf center-of-channel-bandwidth {
514       type uint64;
515           units Hz;
516       mandatory true;
517       description
518         "Center frequency of channel bandwidth in Hz. Common for all numerologies.";
519     }
520
521     leaf channel-bandwidth {
522       type uint64;
523       units Hz;
524       mandatory true;
525
526       description
527         "Width of carrier given in Hertz";
528     }
529
530     leaf active {
531       type enumeration {
532         enum INACTIVE {
533               description
534                 "carrier does not provide signal - transmission is disabled";
535             }
536         enum SLEEP{
537               description
538                 "carrier is fully configured and was active but is energy saving mode";
539             }
540         enum ACTIVE{
541               description
542                 "carrier is fully configured and properly providing the signal";
543             }
544       }
545       default INACTIVE;
546
547       description
548         "Indicates if transmission is enabled for this array carriers. Note that Netconf server uses state parameter
549         to indicate actual state of array carriers operation. When array carriers is in sleep status,
550         Netconf server rejects all other operation request to tx-array-carriers object except either request to change from sleep
551         to active status or delete MO operation (see 4.8) to the object.";
552     }
553
554     leaf state {
555       type enumeration {
556         enum DISABLED {
557           description
558             "array carrier is not active - transmission of signal is disabled.";
559         }
560         enum BUSY {
561           description
562             "array carrier is processing an operation requested by change of active parameter.
563             When array carriers is BUSY the transmission of signal is not guaranteed.";
564         }
565         enum READY {
566           description
567             "array carrier had completed activation operation - is active and transmission of signal is ongoing.";
568         }
569       }
570       config false;
571       mandatory true;
572       description
573         "Indicates state of array carriers activation operation";
574     }
575
576     leaf type {
577       type enumeration {
578         enum NR {
579               description
580                 "5G technology";
581             }
582         enum LTE {
583               description
584                 "LTE technology";
585         }
586       }
587       config false;
588       mandatory true;
589       description
590         "Type of carrier. Indicates array-carrier technology.";
591     }
592     leaf duplex-scheme {
593       type enumeration {
594         enum TDD {
595               description
596                 "TDD scheme";
597             }
598         enum FDD {
599               description
600                 "FDD scheme";
601         }
602       }
603       config false;
604
605       description
606         "Type of duplex scheme O-RU supports.";
607     }
608     leaf rw-duplex-scheme {
609       type leafref {
610         path "/user-plane-configuration/tx-array-carriers[name=current()/../name]" + "/duplex-scheme";
611         require-instance false;
612       }
613       description
614         "Config true type of duplex scheme.";
615     }
616     leaf rw-type {
617       type leafref {
618         path "/user-plane-configuration/tx-array-carriers[name=current()/../name]" + "/type";
619         require-instance false;
620       }
621       description
622         "Config true type of carrier.";
623     }
624   }
625
626   grouping rx-common-array-carrier-elements {
627     description
628       "This grouping containes all common parameters for tx-array-carriers and rx-array-carriers";
629
630     leaf absolute-frequency-center {
631       type uint32;
632       mandatory true;
633       description
634         "Absolute Radio Frequency Channel Number - indirectly indicates RF center carrier frequency of signal.
635         Reflected in arfcn.";
636     }
637
638     leaf center-of-channel-bandwidth {
639       type uint64;
640           units Hz;
641       mandatory true;
642       description
643         "Center frequency of channel bandwidth in Hz. Common for all numerologies.";
644     }
645
646     leaf channel-bandwidth {
647       type uint64;
648       units Hz;
649       mandatory true;
650
651       description
652         "Width of carrier given in Hertz";
653     }
654
655     leaf active {
656       type enumeration {
657         enum INACTIVE {
658               description
659                 "carrier does not provide signal - transmission is disabled";
660             }
661         enum SLEEP{
662               description
663                 "carrier is fully configured and was active but is energy saving mode";
664             }
665         enum ACTIVE{
666               description
667                 "carrier is fully configured and properly providing the signal";
668             }
669       }
670       default INACTIVE;
671
672       description
673         "Indicates if transmission is enabled for this array carriers. Note that Netconf server uses state parameter
674         to indicate actual state of array carriers operation. When array carriers is in sleep status,
675         Netconf server rejects all other operation request to tx-array-carriers object except either request to change from sleep
676         to active status or delete MO operation (see 4.8) to the object.";
677     }
678
679     leaf state {
680       type enumeration {
681         enum DISABLED {
682           description
683             "array carrier is not active - transmission of signal is disabled.";
684         }
685         enum BUSY {
686           description
687             "array carrier is processing an operation requested by change of active parameter.
688             When array carriers is BUSY the transmission of signal is not guaranteed.";
689         }
690         enum READY {
691           description
692             "array carrier had completed activation operation - is active and transmission of signal is ongoing.";
693         }
694       }
695       config false;
696       mandatory true;
697       description
698         "Indicates state of array carriers activation operation";
699     }
700
701     leaf type {
702       type enumeration {
703         enum NR {
704               description
705                 "5G technology";
706             }
707         enum LTE {
708               description
709                 "LTE technology";
710         }
711       }
712       config false;
713       mandatory true;
714       description
715         "Type of carrier. Indicates array-carrier technology.";
716     }
717     leaf duplex-scheme {
718       type enumeration {
719         enum TDD {
720               description
721                 "TDD scheme";
722             }
723         enum FDD {
724               description
725                 "FDD scheme";
726         }
727       }
728       config false;
729
730       description
731         "Type of duplex scheme O-RU supports.";
732     }
733   }
734
735   grouping endpoint-section-capacity {
736     leaf max-control-sections-per-data-section {
737       type uint8 {
738         range "1..12";
739       }
740       description
741         "Max number of C-plane sections (C-plane section is part of C-plane message that carries 'section fields')
742         referring to same U-plane section (U-plane section is part of U-plane message that carries
743         'section header fields' and 'PRB fields') that is supported by endpoint.
744         Note that additional limitations specific for each section type apply on top of this number.";
745     }
746     leaf max-sections-per-symbol {
747       type uint16;
748       description
749         "Max number of sections within one symbol that can be processed by endpoint
750         or processed collectively by group of endpoints sharing capacity";
751     }
752     leaf max-sections-per-slot {
753       type uint16;
754       description
755         "Max number of sections within one slot that can be processed by endpoint
756         or processed collectively by group of endpoints sharing capacity.";
757     }
758
759     description
760       "Parameters describing section capacity where section is undestood as number of different sectionId values";
761   }
762
763   grouping endpoint-beam-capacity {
764     leaf max-beams-per-symbol {
765       type uint16;
766       description
767         "Max number of beams within one symbol that can be processed by endpoint
768         or processed collectively by group of endpoints sharing capacity";
769     }
770     leaf max-beams-per-slot {
771       type uint16;
772       description
773         "Max number of beams within one slot that can be processed by endpoint
774         or processed collectively by group of endpoints sharing capacity";
775     }
776
777     description
778       "Parameters describing beam capacity where number of beams is understood as number of different beamId values";
779   }
780
781   grouping endpoint-prb-capacity {
782     leaf max-prb-per-symbol {
783       type uint16;
784       description
785         "Max number of prbs within one symbol that can be processed by endpoint
786         or processed collectively by group of endpoints sharing capacity";
787     }
788
789     description
790       "Attributes presenting processing capacity related to PRB.";
791   }
792
793   grouping endpoint-numerology-capacity {
794     leaf max-numerologies-per-symbol {
795       type uint16;
796       description
797         "Max number of numerologies within one symbol that can be processed by endpoint
798         or processed collectively by group of endpoints sharing capacity";
799     }
800
801     description
802       "Attributes presenting processing capacity related to numerology.
803
804       This leaf contains valid data only when multiple-numerology-supported
805       is set to true.";
806   }
807
808   grouping uplane-conf-group {
809     description
810       "Grouping for uplane configuration related parameters";
811
812     list low-level-tx-links {
813       key name;
814       description
815         "Object model for low-level-tx-link configuration";
816
817       leaf name {
818         type string;
819         description
820           "Unique name of low-level-tx-link object.";
821       }
822
823       leaf processing-element {
824         type leafref {
825           path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name";
826         }
827         mandatory true;
828         description
829           "Contains name of processing-element to be used as transport by low-level-tx-link";
830       }
831
832       leaf tx-array-carrier {
833         type leafref {
834           path "/user-plane-configuration/tx-array-carriers/name";
835         }
836         mandatory true;
837         description
838           "Contains name of tx-array-carriers MO to be used as transport by low-level-tx-link";
839       }
840
841       leaf low-level-tx-endpoint {
842         type leafref {
843           path "/user-plane-configuration/low-level-tx-endpoints/name";
844         }
845         mandatory true;
846         description
847           "Contains name of low-level-tx-endpoints MO to be used as transport by low-level-tx-link";
848       }
849     }
850
851     list low-level-rx-links {
852       key name;
853       description
854         "Object model for low-level-rx-links configuration";
855
856       leaf name {
857         type string;
858
859         description
860           "Unique name of low-level-rx-links object.";
861       }
862
863       leaf processing-element {
864         type leafref {
865           path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name";
866         }
867         mandatory true;
868         description
869           "Contains name of processing-element to be used as transport by LowLevelTxLink";
870       }
871
872       leaf rx-array-carrier {
873         type leafref {
874           path "/user-plane-configuration/rx-array-carriers/name";
875         }
876         mandatory true;
877
878         description
879           "Contains name of rx-array-carriers MO to be used as transport by low-level-rx-links";
880       }
881
882       leaf low-level-rx-endpoint {
883         type leafref {
884           path "/user-plane-configuration/low-level-rx-endpoints/name";
885         }
886         mandatory true;
887
888         description
889           "Contains name of low-level-rx-endpoints MO to be used as transport by low-level-rx-links";
890       }
891
892       leaf user-plane-uplink-marking {
893         type leafref {
894           path "/o-ran-pe:processing-elements/o-ran-pe:enhanced-uplane-mapping/o-ran-pe:uplane-mapping/o-ran-pe:up-marking-name";
895         }
896         description
897           "Parameter to set the non-default marking for user-plane";
898       }
899     }
900
901     list endpoint-types {
902       key "id";
903       config false;
904       description
905         "Properties of endpoint that are common to multiple endpoints if such are identified";
906
907       leaf id {
908         type uint16;
909         description
910           "Identifies type of endpoints sharing same properties. Values shall start with 0 and shall be allocated without gaps.";
911       }
912
913       list supported-section-types {
914         key "section-type";
915         description
916           "Indicates section types and extensions endpoints of this type support";
917
918         leaf section-type {
919           type uint8;
920
921           description
922             "This parameter determines the characteristics of U-plane data to be transferred or received from a beam with one pattern id.";
923         }
924
925         leaf-list supported-section-extensions {
926           type uint8;
927
928           description
929             "This parameter provides the extension types supported by the O-RU
930             which provides additional parameters specific to the subject data extension";
931         }
932       }
933
934       leaf-list supported-frame-structures {
935         type uint8;
936
937         description
938           "List of supported values of frame structure";
939       }
940
941       leaf managed-delay-support {
942         type enumeration {
943           enum MANAGED {
944             description
945               "Time managed delays are supported";
946           }
947
948           enum NON_MANAGED {
949             description
950               "Non time managed delays are not supported";
951           }
952
953           enum BOTH {
954             description
955               "Both time managed and non time managed delays are supported";
956           }
957         }
958
959         description
960           "Type of delay supported by the endpoint";
961       }
962
963       leaf multiple-numerology-supported {
964         type boolean;
965         default true;
966         description
967           "Indicates whether the endpoint type supports multiple numerologies";
968       }
969
970       leaf max-numerology-change-duration {
971         type uint16 {
972           range "0..10000";
973         }
974
975         units Ts;
976         description
977           "Maximum gap of endpoint operation that will be caused by changing of
978           numerology.
979
980           This time is required for reconfiguration and flushing of pipes.
981
982           This leaf contains valid data only when multiple-numerology-supported
983           is set to true.";
984       }
985
986       uses endpoint-section-capacity;
987       uses endpoint-beam-capacity;
988       uses endpoint-prb-capacity;
989
990       leaf-list prb-capacity-allocation-granularity {
991         type uint16;
992
993         description
994           "List of capacity allocation steps. O-RU allocates PRB capacity rounding it up to nearest value N
995           from prb-capacity-allocation-granularity such that M >= number-of-prb-per-scs.
996           See also number-of-prb-per-scs/number-of-prb.";
997       }
998
999       uses endpoint-numerology-capacity;
1000     }
1001
1002     list endpoint-capacity-sharing-groups {
1003       key "id";
1004       config false;
1005       description
1006         "Represents groups of endpoints that share capacity. Depending on O-RU implementation,
1007         processing resources that handle CU-plane (e.g. memory to keep sections and beams)
1008         could be allocated per endpoint or shared between several endpoints.
1009         To address this O-RU shall reports own capability per endpoint (see endpoint-types)
1010         and per group of endpoints sharing capacity.
1011         If endpoint is in multiple groups then resulting constraint is minimum over all groups.
1012         Note: values of parameters representing capacity that is not shared between endpoints in a group shall be set to max value of specific parameter; this effectively removes related constraint.
1013 ";
1014
1015       leaf id {
1016         type uint16;
1017         description
1018           "Identifies group of endpoints sharing resources.
1019           Values shall start with 0 and shall be allocated without gaps.";
1020       }
1021       uses endpoint-section-capacity;
1022       uses endpoint-beam-capacity;
1023       uses endpoint-prb-capacity;
1024       uses endpoint-numerology-capacity;
1025
1026       leaf max-endpoints {
1027         type uint16;
1028         description
1029           "Indicates how many endpoints in the group can be used4 simultaneously";
1030       }
1031       leaf max-managed-delay-endpoints {
1032         type uint16;
1033         description
1034           "Number of endpoints supporting managed delay that can be used (configured for use) at a time";
1035       }
1036       leaf max-non-managed-delay-endpoints {
1037         type uint16;
1038         description
1039           "Number of endpoints supporting non-managed delay that can be used (configured for use) at a time";
1040       }
1041     }
1042
1043     list static-low-level-tx-endpoints {
1044       key name;
1045       config false;
1046       description
1047         "Object model for static-low-level-tx-endpoints configuration";
1048
1049       leaf name {
1050         type string;
1051
1052         description
1053           "Unique name of static-low-level-tx-endpoints object.";
1054       }
1055
1056       leaf-list restricted-interfaces {
1057         type leafref {
1058           path "/if:interfaces/if:interface/if:name";
1059         }
1060         description
1061           "Optionally used to indicate that a low-level link is constrained to operate only via a subset of the available interfaces.";
1062       }
1063
1064       leaf array {
1065         type leafref {
1066           path "/user-plane-configuration/tx-arrays/name";
1067         }
1068         mandatory true;
1069         description
1070           "Contains distname of tx-arrays, particular low-level-tx-endpoints is in hardware dependency with.
1071           Note: single instance of tx-arrays can be referenced by many instances of low-level-tx-endpoints
1072           (e.g. to allow DU to handle multiple fronthauls and multiple component carriers).";
1073       }
1074
1075       leaf endpoint-type {
1076         type leafref {
1077           path "../../endpoint-types/id";
1078         }
1079
1080         description
1081           "Reference to endpoint type capabilities list element supported by this endpoint";
1082       }
1083
1084       leaf-list capacity-sharing-groups {
1085         type leafref {
1086           path "../../endpoint-capacity-sharing-groups/id";
1087         }
1088
1089         description
1090           "Reference to capacities of sharing-groups supported by this endpoint";
1091       }
1092     }
1093
1094     list static-low-level-rx-endpoints {
1095       key name;
1096       config false;
1097       description
1098         "Object model for static-low-level-rx-endpoints configuration";
1099
1100       leaf name {
1101         type string;
1102
1103         description
1104           "Unique name of static-low-level-rx-endpoints object.";
1105       }
1106
1107       leaf-list restricted-interfaces {
1108         type leafref {
1109           path "/if:interfaces/if:interface/if:name";
1110         }
1111         description
1112           "Optionally used to indicate that a low-level link is constrained to operate only via a subset of the available interfaces.";
1113       }
1114
1115       leaf array {
1116         type leafref {
1117           path "/user-plane-configuration/rx-arrays/name";
1118         }
1119         mandatory true;
1120         description
1121           "Contains distname of rx-arrays, particular low-level-rx-endpoints is in hardware dependency with.
1122           Note: single instance of rx-arrays can be referenced by many instances of low-level-rx-endpoints
1123           (e.g. to allow DU to handle multiple fronthauls and multiple component carriers).";
1124       }
1125
1126       leaf endpoint-type {
1127         type leafref {
1128           path "../../endpoint-types/id";
1129         }
1130
1131         description
1132           "Reference to endpoint type capabilities list element supported by this endpoint";
1133       }
1134
1135       leaf-list capacity-sharing-groups {
1136         type leafref {
1137           path "../../endpoint-capacity-sharing-groups/id";
1138         }
1139
1140         description
1141           "Reference to capacities of sharing-groups supported by this endpoint";
1142       }
1143     }
1144
1145     list low-level-tx-endpoints {
1146       key "name";
1147
1148       description
1149         "Object model for low-level-tx-endpoints configuration - augmented static-low-level-tx-endpoints by local-address
1150         which cannot be added to static low-level-tx-endpoints as we cannot have modificable element in static object";
1151
1152       leaf name {
1153         type leafref {
1154           path "/user-plane-configuration/static-low-level-tx-endpoints/name";
1155           require-instance false;
1156         }
1157         mandatory true;
1158
1159         description
1160           "Unique name of low-level-tx-endpoint object. Reference to static object";
1161       }
1162
1163       container compression {
1164         presence
1165           "This container shall exists to avoid missaligned compression
1166           methods between devices";
1167
1168         description
1169           "Container which consists of global configurable parameters for compression";
1170
1171         uses cf:compression-details;
1172       }
1173
1174       uses scs-config;
1175
1176       container e-axcid {
1177         uses eaxc;
1178
1179         description
1180           "Contains local address of low level TX endpoint offered by Netconf server.";
1181       }
1182
1183
1184
1185     }
1186
1187     list low-level-rx-endpoints {
1188       key name;
1189
1190       description
1191         "Object model for low-level-rx-endpoint configuration - augmented static-low-level-rx-endpoints by local-address
1192         which cannot be added to static low-level-rx-endpoints as we cannot have modificable element in static object";
1193
1194       leaf name {
1195         type leafref {
1196           path "/user-plane-configuration/static-low-level-rx-endpoints/name";
1197           require-instance false;
1198         }
1199         mandatory true;
1200
1201         description
1202           "Unique name of low-level-rx-endpoint object. Reference to static object";
1203       }
1204
1205       container compression {
1206         description
1207           "Container which consists of global configurable parameters for compression";
1208
1209         uses cf:compression-details;
1210       }
1211
1212       uses scs-config;
1213
1214       list ul-fft-sampling-offsets {
1215         key scs;
1216         description
1217           "List of FFT sampling offsets configured for each SCS that will be used.
1218           Client shall configure one element for each SCS that will be used.";
1219
1220         leaf scs {
1221           type mcap:scs-config-type;
1222           description
1223             "Value corresponds to SCS values defined for frameStructure in C-plane
1224             Note: set of allowed values is restricted by SCS derived from values in supported-frame-structures.";
1225         }
1226
1227         leaf ul-fft-sampling-offset {
1228           type uint16;
1229
1230           units Ts;
1231           description
1232             "Determines time advance of capture window for FFT.
1233             Value represents time advance of capture window start in relation to the end of CP. Unit is Ts.
1234             Note: value of this parameter is usually set to '0' (zero) for PRACH channels.
1235             Any phase offset resulting from the non-zero value of this parameter is handled in O-DU.";
1236         }
1237       }
1238
1239       container e-axcid {
1240         uses eaxc;
1241
1242         description
1243           "Contains local address of low level RX endpoint offered by Netconf server.";
1244       }
1245
1246       leaf non-time-managed-delay-enabled {
1247         type boolean;
1248         default false;
1249         description
1250           "Tells if non time managed delay shall be enabled";
1251       }
1252     }
1253
1254     list tx-array-carriers {
1255       key name;
1256       description
1257         "Object model for tx-array-carriers configuration";
1258
1259       leaf name {
1260         type string;
1261
1262         description
1263           "Unique name of tx-array-carriers object.";
1264       }
1265
1266       uses tx-common-array-carrier-elements;
1267
1268       leaf band-number {
1269         if-feature mcap:LAA;
1270         type leafref {
1271           path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
1272           require-instance false;
1273         }
1274         description
1275           "This parameter informing which frequency band particular antenna
1276            array is serving for.
1277            Intended use is to deal with multiband solutions.";
1278       }
1279
1280       container lte-tdd-frame {
1281         when "(/user-plane-configuration/tx-array-carriers/rw-type = 'LTE') and  (/user-plane-configuration/tx-array-carriers/rw-duplex-scheme = 'TDD')";
1282         description
1283           "Container which consists of global configurable parameters for tdd Frame";
1284
1285         leaf subframe-assignment {
1286           type enumeration {
1287             enum SAO {
1288               description "subframe assignment configuration 0";
1289             }
1290             enum SA1 {
1291               description "subframe assignment configuration 1";
1292             }
1293             enum SA2 {
1294               description "subframe assignment configuration 2";
1295             }
1296             enum SA3 {
1297               description "subframe assignment configuration 3";
1298             }
1299             enum SA4 {
1300               description "subframe assignment configuration 4";
1301             }
1302             enum SA5 {
1303               description "subframe assignment configuration 5";
1304             }
1305               enum SA6 {
1306                 description "subframe assignment configuration 6";
1307             }
1308           }
1309           mandatory true;
1310           description
1311             "Indicates DL/UL subframe configuration as specified in
1312             3GPP TS 36.211 [v15.3.0, table 4.2-2]";
1313         }
1314         leaf special-subframe-pattern {
1315           type enumeration {
1316             enum SPP0 {
1317               description "special subframe pattern configuration 0";
1318             }
1319             enum SPP1 {
1320               description "special subframe pattern configuration 1";
1321             }
1322             enum SPP2 {
1323               description "special subframe pattern configuration 2";
1324             }
1325             enum SPP3 {
1326               description "special subframe pattern configuration 3";
1327             }
1328             enum SPP4 {
1329               description "special subframe pattern configuration 4";
1330             }
1331             enum SPP5 {
1332               description "special subframe pattern configuration 5";
1333             }
1334             enum SPP6 {
1335               description "special subframe pattern configuration 6";
1336             }
1337             enum SPP7 {
1338               description "special subframe pattern configuration 7";
1339             }
1340             enum SPP8 {
1341               description "special subframe pattern configuration 8";
1342             }
1343             enum SPP9 {
1344               description "special subframe pattern configuration 9";
1345             }
1346             enum SPP10 {
1347               description "special subframe pattern configuration 10";
1348             }
1349           }
1350           mandatory true;
1351           description
1352             "Indicates TDD special subframe configuration as in TS 36.211
1353              [v15.3.0, table 4.2-1] ";
1354         }
1355       }
1356
1357       container laa-carrier-configuration {
1358         // [ast] Fix? added relative path
1359         // when "../band-number = 46";
1360         when "./../band-number = 46";
1361         if-feature mcap:LAA;
1362         description "Container to specify LAA feature related carrier configuration.";
1363         uses laa-carrier-config;
1364       }
1365
1366       leaf gain {
1367         type decimal64 {
1368           fraction-digits 4;
1369         }
1370         units dB;
1371         mandatory true;
1372
1373         description
1374           "Transmission gain in dB. Value applicable to each array element carrier belonging to array carrier.";
1375       }
1376
1377       leaf downlink-radio-frame-offset {
1378         type uint32 {
1379           range 0..12288000;
1380         }
1381         mandatory true;
1382
1383         description
1384           "This parameter is used for offsetting the starting position of 10ms radio frame.
1385           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.
1386           Note2: Unit is 1/1.2288e9 Hz and accuracy is 1/4 Tc. Then, its range is calculated 0..12288000.";
1387       }
1388
1389       leaf downlink-sfn-offset {
1390         type int16 {
1391           range -32768..32767;
1392         }
1393         mandatory true;
1394
1395         description
1396           "This parameter is used for offsetting SFN value.
1397           Unit is in 10ms.
1398           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.";
1399       }
1400     }
1401
1402     list rx-array-carriers {
1403       key name;
1404       description
1405         "Object model for rx-array-carriers configuration";
1406
1407           leaf name {
1408             type string;
1409             description
1410             "Unique name of rx-array-carriers object.";
1411       }
1412
1413       uses rx-common-array-carrier-elements;
1414
1415       leaf downlink-radio-frame-offset {
1416         type uint32 {
1417           range 0..12288000;
1418         }
1419         mandatory true;
1420
1421         description
1422           "This parameter is used for offsetting the starting position of 10ms radio frame.
1423           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.
1424           Note2: Unit is 1/1.2288e9 Hz and accuracy is 1/4 Tc. Then, its range is calculated 0..12288000.";
1425       }
1426
1427       leaf downlink-sfn-offset {
1428         type int16 {
1429           range -32768..32767;
1430         }
1431         mandatory true;
1432
1433         description
1434           "This parameter is used for offsetting SFN value.
1435           Unit is in 10ms.
1436           Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.";
1437       }
1438
1439       leaf gain-correction {
1440         type decimal64 {
1441           fraction-digits 4;
1442
1443         }
1444         units dB;
1445         mandatory true;
1446         description
1447           "Gain correction of RF path linked with array element or array layers";
1448       }
1449
1450       leaf n-ta-offset {
1451         type uint32;
1452         units Tc;
1453         mandatory true;
1454         description
1455           "Value of configurable N-TA offset
1456           units are Tc=~0.5ns=1/1.96608GHz";
1457       }
1458     }
1459
1460     list tx-arrays {
1461       key "name";
1462       config false;
1463       description
1464         "Structure describing TX array parameters";
1465
1466       uses parameters;
1467
1468       leaf max-gain {
1469         type decimal64 {
1470           fraction-digits 4;
1471
1472         }
1473         units dB;
1474         mandatory true;
1475         description
1476           "Max gain of RF path linked with array element (minimum over elements of array) or array layers";
1477       }
1478
1479       leaf independent-power-budget {
1480         type boolean;
1481         mandatory true;
1482         description
1483           "If true then every element of array has own, power budget independent from power budget of other elements.
1484           Else all elements of array that are at same row and column and have same polarization share power budget";
1485       }
1486
1487       list capabilities {
1488         description
1489           "List of capabilities related to this tx-array";
1490         // [ast] Fix for list without key
1491         key max-supported-frequency-dl;
1492         // [ast] end fix
1493         uses mcap:support-for-dl;
1494       }
1495     }
1496
1497     list rx-arrays {
1498       key "name";
1499       config false;
1500       description "Structure describing RX array parameters";
1501
1502       uses parameters;
1503       container gain-correction-range {
1504             leaf max {
1505           type decimal64 {
1506             fraction-digits 4;
1507           }
1508           units dB;
1509           mandatory true;
1510           description "Array gain correction factor - maximum allowed value";
1511                 }
1512                 leaf min {
1513           type decimal64 {
1514             fraction-digits 4;
1515           }
1516           units dB;
1517           mandatory true;
1518           description "Array gain correction factor - minimum allowed value";
1519                 }
1520
1521         description
1522           "Array gain correction factor";
1523       }
1524
1525       list capabilities {
1526         description
1527           "List of capabilities related to this rx-array";
1528         // [ast] Fix for list without key
1529         key max-supported-frequency-ul;
1530         // [ast] end fix
1531         uses mcap:support-for-ul;
1532       }
1533     }
1534
1535     list relations {
1536       key "entity";
1537       config false;
1538       description "Structure describing relations between array elements";
1539
1540       leaf entity {
1541         type uint16;
1542
1543         description
1544           "Relation entity. Used as a key for list of relations.";
1545       }
1546
1547       container array1 {
1548         uses array-choice;
1549
1550         description
1551           "Defnes name for first array";
1552       }
1553       container array2 {
1554         uses array-choice;
1555
1556         description
1557           "Defnes name for second array";
1558       }
1559       list types {
1560         key "relation-type";
1561         description
1562           "Defines relation type and pairs for array elements for given arrays";
1563
1564         leaf relation-type {
1565           type enumeration {
1566             enum SHARED {
1567               description "SHARED";
1568             }
1569             enum COALOCATED {
1570               description "COALOCATED";
1571             }
1572           }
1573           description "Type of relation between array elements";
1574         }
1575         list pairs {
1576           key "element-array1";
1577           description
1578             "defines related array elements";
1579
1580           leaf element-array1 {
1581             type uint16;
1582
1583                 description
1584                   "Tells about id of element from array1";
1585           }
1586           leaf element-array2 {
1587             type uint16;
1588
1589                 description
1590                   "Tells about id of element from array2";
1591           }
1592         }
1593       }
1594     }
1595   }
1596
1597   grouping tx-array-notification-group {
1598     description
1599       "Grouping for tx-array for notification";
1600
1601     list tx-array-carriers{
1602       key name;
1603       description "notification of state change for tx-array-carriers";
1604
1605       leaf name{
1606         type leafref{
1607           path "/user-plane-configuration/tx-array-carriers/name";
1608         }
1609         description
1610           "name of tx-array-carriers is notified at state change";
1611       }
1612       leaf state{
1613         type leafref{
1614           path "/user-plane-configuration/tx-array-carriers/state";
1615         }
1616       description
1617         "state of tx-array-carriers is notified at state change";
1618       }
1619     }
1620   }
1621
1622   grouping rx-array-notification-group {
1623     description
1624       "Grouping for rx-array for notification";
1625
1626     list rx-array-carriers{
1627       key name;
1628       description
1629         "Notification used to inform about state change of rx-array-carriers";
1630       leaf name{
1631         type leafref{
1632           path "/user-plane-configuration/rx-array-carriers/name";
1633         }
1634         description
1635           "name of rx-array-carriers is notified at state change";
1636       }
1637       leaf state{
1638         type leafref{
1639           path "/user-plane-configuration/rx-array-carriers/state";
1640         }
1641         description
1642           "state of rx-array-carriers is notified at state change";
1643       }
1644     }
1645   }
1646
1647 // top level container
1648
1649   container user-plane-configuration {
1650     description "top level container for user plane configuration";
1651
1652     uses uplane-conf-group;
1653
1654   }
1655
1656   //notification statement
1657   notification tx-array-carriers-state-change {
1658     description
1659       "Notification used to inform about state change of tx-array-carriers";
1660     uses tx-array-notification-group;
1661   }
1662   notification rx-array-carriers-state-change {
1663     description
1664     "Notification used to inform about state change of tx-array-carriers";
1665
1666     uses rx-array-notification-group;
1667   }
1668 }