Refactor folder structure.
[sim/o1-interface.git] / ntsimulator / yang / x-ran / xran-beamforming.yang
1 module xran-beamforming {
2   yang-version 1.1;
3   namespace "urn:xran:beamforming:1.0";
4   prefix "xran-bf";
5
6   import xran-uplane-conf {
7     prefix up;
8   }
9
10   import xran-module-cap {
11     prefix "mcap";
12   }
13
14   organization "xRAN Forum";
15
16   contact
17     "www.xran.org";
18
19   description
20     "This module defines the beamforming capabilitites of an RU.
21     Only RUs that support beamforming shall support this module.
22
23     Copyright 2018 the xRAN Forum.
24
25     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
26     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
29     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35     POSSIBILITY OF SUCH DAMAGE.
36
37     Redistribution and use in source and binary forms, with or without
38     modification, are permitted provided that the following conditions are met:
39
40     * Redistributions of source code must retain the above copyright notice,
41     this list of conditions and the above disclaimer.
42     * Redistributions in binary form must reproduce the above copyright notice,
43     this list of conditions and the above disclaimer in the documentation
44     and/or other materials provided with the distribution.
45     * Neither the Members of the xRAN Forum nor the names of its
46     contributors may be used to endorse or promote products derived from
47     this software without specific prior written permission.";
48
49   revision "2018-07-20" {
50     description
51       "version 1.0.0 - First release of the xRAN YANG M-Plane models.
52
53       This version of the model supports v01.00 of the corrsponding xRAN
54       M-Plane Specification.";
55     reference "XRAN-FH.MP.0-v01.00";
56   }
57
58   feature MODIFY-BF-CONFIG {
59     description
60       "This feature indicates that the RU supports an optional feature to
61       modify beamforming configuration information";
62   }
63
64   typedef beam-reference {
65     type leafref {
66       path "/xran-bf:beamforming-config/xran-bf:per-band-config/xran-bf:beam-information/xran-bf:beamforming-properties/xran-bf:beam-id";
67     }
68     description
69       "This type is used by data models that need to reference a beam.";
70   }
71   container beamforming-config {
72     config false;
73     description
74       "A set of configuration data for the RU's beam forming functionality";
75
76     list per-band-config {
77       key band-number;
78       description "beamforming information per band";
79       leaf band-number {
80         type leafref {
81           path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
82         }
83         description
84           "band information for the beamforming information
85            related to the band number of module capabilities";
86       }
87
88       leaf-list tx-array {
89         type leafref {
90           path "/up:user-plane-configuration/up:tx-arrays/up:name";
91         }
92         description "tx arrays belonging to this band number";
93       }
94       leaf-list rx-array {
95         type leafref {
96           path "/up:user-plane-configuration/up:rx-arrays/up:name";
97         }
98         description "rx arrays belonging to this band number";
99       }
100       container static-properties {
101         description
102           "the static beamforming related information";
103         leaf beamforming-type {
104           type enumeration {
105             enum COMMON {
106               description "A common beam ID is used for entire band";
107             }
108             enum DIFFERENT {
109               description "Different beam IDs can be assigned for each PRB/RE";
110             }
111           }
112           description
113             "This value indicates supporting beamforming type in RU";
114         }
115
116         leaf number-of-beams {
117           type uint16;
118           description
119             "This value indicates the number of beam patterns RU can generate
120             and apply to the signal of each RU port (both DL and UL).
121             This value is equivalent to the maximum number of used beam IDs.";
122         }
123
124         leaf number-of-polarizations {
125           type uint8;
126           description
127             "This value indicates the number of polarizations supported at RU.";
128         }
129
130         leaf number-of-panels {
131           type uint8;
132           description
133             "This value indicates the number of antenna panels supported at RU.";
134         }
135       }
136
137       container beam-information {
138         description
139           "beam information which relates to the current beamforming configuration";
140         leaf number-of-beamforming-properties {
141           type uint16;
142           description
143             "This parameter indicates the number of beamFormingProperties entries.";
144         }
145
146         list beamforming-properties {
147           key beam-id;
148           description
149             "Array for the beamforming properties at RU.
150             These parameters can be used by the beamforming control by the NETCONF client.
151             'numberOfBeamformingProperties' indicaets the size of the array.";
152
153
154           leaf beam-id {
155             type uint16;
156             description
157               "This value indicates the beam ID whose beamforming properties are
158               described in the container.";
159           }
160
161           container beamforming-property {
162             description
163               "Structure containing single set of beamforming properties.";
164
165             leaf coarse-fine {
166               type enumeration {
167                 enum COARSE-BEAM {
168                   description "the beam-id corresponds to a coarse beam";
169                 }
170                 enum FINE-BEAM {
171                   description "the beam-id corresponds to a fine beam";
172                 }
173               }
174               description
175                 "This value indicates the beam resolution.";
176             }
177
178             leaf beam-groups-id {
179               type uint16;
180               description
181                 "Beams with same beamGroupsID can be transmitted simultaneously.";
182             }
183
184             leaf-list coarse-fine-beam-relation {
185               type beam-reference;
186               description
187                 "list of related coarse/fine beam.";
188
189             }
190
191             leaf-list neighbor-beam {
192               type beam-reference;
193               description
194                 "A list of neighbor beams which might restrict co-scheduling due
195                 to interference.";
196             }
197           }
198         }
199       }
200     }
201     container ue-specific-beamforming {
202       presence
203         "Indicates that the RU supports optional Section Type '6' Fields
204         (used for sending channel information for a specific UE";
205       config false;
206       description
207         "Information related to supput by the RU of Section Type 6 for
208         signalling UE-specific channel information to the RU";
209       leaf max-number-of-ues {
210         type uint8;
211         description
212           "Indicates tha maximum number of UE -specific channel information
213           data sets supported by the RU";
214       }
215     }
216     container operational-properties {
217       if-feature MODIFY-BF-CONFIG;
218       description "properties for dynamic beam weight/attribute support";
219
220       leaf number-of-writeable-beamforming-files {
221         type uint8  {
222           range "1 .. max";
223         }
224         mandatory true;
225         description
226           "This leaf indicates the maximum number of writeable beamforming files
227           containing beamweights and/or attributes that the RU can store, taking
228           into account the maximum number of beam-IDs as defined by 3GPP
229           TS38.214 v15.x.x";
230       }
231
232       leaf update-bf-non-delete {
233         type boolean;
234         default false;
235         description
236           "When set to TRUE, indicates that an RU supports the capability
237           to apply the modified beamforming weight information by using rpc
238           activate-beamforming-weight without deletion of tx-array-carriers and
239           rx-array-carriers in advance, i.e., to a deactivated carrier";
240       }
241
242       leaf persistent-bf-files {
243         type boolean;
244         default false;
245         description
246           "When set to TRUE, indicates that the RU supports the capability
247            to store the modified beamforming weight information file in the
248            reset persistent memory";
249       }
250     }
251
252           leaf beamforming-trough-attributes-supported {
253             type boolean;
254             description
255               "Informs if beamforming can be controlled providing attributes to RU
256                     (like angles, beamwidth).";
257           }
258
259           leaf beamforming-trough-ue-channel-info-supported {
260             type boolean;
261             description
262               "Informs if beamforming can be controlled by UE information.";
263           }
264   }
265
266   rpc activate-beamforming-config {
267     if-feature MODIFY-BF-CONFIG;
268     description
269       "rpc to activate beamforming config information by indicating the file
270       stored in the folder xRAN/beam-weights in advance";
271     input {
272       leaf beamforming-config-file {
273         type string;
274         mandatory true;
275         description
276           "file name stored in xRAN/beamforming/ folder is indicated";
277       }
278       leaf band-number {
279         type leafref {
280           path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
281         }
282         description
283           "The band to which the beam configuration applies";
284       }
285     }
286     output {
287       leaf status {
288         type enumeration {
289           enum ACCEPTED {
290             description "RU has accepted the beamforming weight/attribute file";
291           }
292           enum REJECTED {
293             description
294               "RU has rejected the beamforming weight/attribute file. The RU
295               should then use the default beamforming file.";
296           }
297         }
298         mandatory true;
299         description "Status of activation of beamforming config information";
300       }
301       leaf error-message {
302         when "../status='REJECTED'";
303         type string;
304         description
305           "Detailed error Message when the status is rejected, e.g.,
306            because new beam forming file is attempted to be applied to a
307            carrier which is still active, or the beam-id does not exist.";
308       }
309     }
310   }
311
312   //notification statement
313   notification beamforming-information-update {
314     leaf band-number {
315       type leafref {
316         path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
317       }
318       description
319         "The band to which the beamforming information is updated";
320     }
321     description
322       "this notification indicates that the beamforming properties are updated";
323
324   }
325 }