Initial commit
[o-du/l2.git] / src / 5gnrmac / rg_prg_pt.c
1 /*******************************************************************************
2 ################################################################################
3 #   Copyright (c) [2017-2019] [Radisys]                                        #
4 #                                                                              #
5 #   Licensed under the Apache License, Version 2.0 (the "License");            #
6 #   you may not use this file except in compliance with the License.           #
7 #   You may obtain a copy of the License at                                    #
8 #                                                                              #
9 #       http://www.apache.org/licenses/LICENSE-2.0                             #
10 #                                                                              #
11 #   Unless required by applicable law or agreed to in writing, software        #
12 #   distributed under the License is distributed on an "AS IS" BASIS,          #
13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
14 #   See the License for the specific language governing permissions and        #
15 #   limitations under the License.                                             #
16 ################################################################################
17 *******************************************************************************/
18
19 /************************************************************************
20  
21      Name:     LTE-MAC layer
22   
23      Type:     C source file
24   
25      Desc:     C source code for MAC to MAC (PRG) interface 
26   
27      File:     rg_prg_pt.c 
28   
29 **********************************************************************/
30
31 /* header include files -- defines (.h) */
32 #include "envopt.h"        /* environment options */
33 #include "envdep.h"        /* environment dependent */
34 #include "envind.h"        /* environment independent */
35 #include "gen.h"           /* general layer */
36 #include "ssi.h"           /* system service interface */
37 #include "cm_hash.h"       /* common hash list */
38 #include "cm_mblk.h"       /* common memory link list library */
39 #include "cm_llist.h"      /* common linked list library */
40 #include "cm_err.h"        /* common error */
41 #include "cm_lte.h"        /* common LTE */
42 #include "lrg.h"           /* layer manager for MAC */
43 #include "crg.h"           /* CRG interface includes*/
44 #include "rgu.h"           /* RGU interface includes*/
45 #include "tfu.h"           /* TFU interface includes*/
46 #include "rg_sch_inf.h"    /* SCH interface includes*/
47 #include "rg_prg.h"        /* PRG interface includes*/
48 #include "rg_env.h"        /* MAC Enviroments includes */
49 #include "rg.h"            /* MAC includes*/
50 #include "rg_err.h"        /* MAC error includes*/
51
52 /* header/extern include files (.x) */
53 #include "gen.x"           /* general layer typedefs */
54 #include "ssi.x"           /* system services typedefs */
55 #include "cm5.x"           /* common timers */
56 #include "cm_hash.x"       /* common hash list */
57 #include "cm_lib.x"        /* common library */
58 #include "cm_llist.x"      /* common linked list */
59 #include "cm_mblk.x"       /* memory management */
60 #include "cm_tkns.x"       /* common tokens */
61 #include "cm_lte.x"        /* common tokens */
62 #include "rgu.x"           /* RGU types */
63 #include "tfu.x"           /* RGU types */
64 #include "lrg.x"           /* layer management typedefs for MAC */
65 #include "crg.x"           /* layer management typedefs for MAC */
66 #include "rg_sch_inf.x"    /* layer management typedefs for MAC */
67 #include "rg_prg.x"        /* PRG interface typedefs*/
68 #include "rg.x"            /* typedefs for MAC */
69
70 #ifdef LTE_ADV
71 #include "rg_pom_scell.x"
72
73 /* Matrix for Ue SCell Config Req*/
74 PRIVATE CONSTANT RgPrgUeSCellCfgReq RgPrgPMacSMacUeSCellCfgReqMt[RG_PRG_MAX] =
75 {
76 #ifdef LCPRG
77   cmPkPrgPMacSMacUeSCellCfgReq,
78 #else
79    RgPrgPMacSMacUeSCellCfgReq
80 #endif
81 };
82
83 /**
84 * @brief Ue SCell config Req from PMac to SMac 
85 *
86 * @details
87 *
88 *     Function : RgPrgPMacSMacUeSCellCfg
89 *
90 *  @param[in]   Pst         *pst
91 *  @param[in]   RgPrgUeSCellCfgInfo *ueSCellCfgInfo;
92 *  @return   S16
93 *      -# ROK
94 **/
95 #ifdef ANSI
96 PUBLIC S16 RgPrgPMacSMacUeSCellCfg
97 (
98  Pst         *pst,
99  RgPrgUeSCellCfgInfo *ueSCellCfgInfo
100 )
101 #else
102 PUBLIC S16 RgPrgPMacSMacUeSCellCfg(pst, ueSCellCfgInfo)
103  Pst         *pst;
104  RgPrgUeSCellCfgInfo *ueSCellCfgInfo;
105 #endif
106 {
107
108    TRC3(RgPrgPMacSMacUeSCellCfg);
109
110    RETVALUE((*RgPrgPMacSMacUeSCellCfgReqMt[0])(pst, ueSCellCfgInfo));
111 }
112
113 /* Matrix for config confirm from SMac to Pmac*/
114 PRIVATE CONSTANT RgSMacPMacCfgCfm RgPrgSMacPMacCfgCfmMt[RG_PRG_MAX] =
115 {
116 #ifdef LCPRG
117    cmPkPrgSMacPMacCfgCfm,
118 #else
119    RgPrgSMacPMacCfgCfm
120 #endif
121 };
122
123 /**
124 * @brief Config confirm from SMac to PMac for Ue Cell Config Req 
125 *
126 * @details
127 *
128 *     Function :RgPrgSMacPMacCfg
129 *
130 *  @param[in]   Pst              *pst
131 *  @param[in]   RgPrgCfgCfmInfo  *cfmCfm
132 *  @return   S16
133 *      -# ROK
134 **/
135 #ifdef ANSI
136 PUBLIC S16 RgPrgSMacPMacCfg
137 (
138  Pst             *pst,
139  RgPrgCfgCfmInfo *cfgCfm
140 )
141 #else
142 PUBLIC S16 RgPrgSMacPMacCfg(pst, cfgCfm)
143  Pst             *pst;
144  RgPrgCfgCfmInfo *cfgCfm;
145 #endif
146 {
147
148    TRC3(RgPrgSMacPMacCfg);
149
150    RETVALUE((*RgPrgSMacPMacCfgCfmMt[0])(pst, cfgCfm));
151 }
152
153 /* Matrix for Ue SCell delete req/Ue Id change req from PMac to SMac */
154 PRIVATE CONSTANT RgUeSCellDelReq RgPrgPMacSMacUeSCellDelReqMt[RG_PRG_MAX] =
155 {
156 #ifdef LCPRG
157    cmPkPrgPMacSMacUeSCellDelReq,
158 #else
159    RgPrgPMacSMacUeSCellDelReq
160 #endif
161 };
162
163 /**
164 * @brief Ue SCell delete Req/Ue Id change Req from PMac to SMac
165 *
166 * @details
167 *
168 *     Function : RgPrgPMacSMacUeSCellDel 
169 *
170 *  @param[in]   Pst                 *pst
171 *  @param[in]   RgPrgUeSCellDelInfo *ueSCellDelInfo;
172 *  @return   S16
173 *      -# ROK
174 **/
175 #ifdef ANSI
176 PUBLIC S16 RgPrgPMacSMacUeSCellDel
177 (
178  Pst                 *pst,
179  RgPrgUeSCellDelInfo *ueSCellDelInfo
180 )
181 #else
182 PUBLIC S16 RgPrgPMacSMacUeSCellDel(pst, ueSCellDelInfo)
183  Pst                 *pst;
184  RgPrgUeSCellDelInfo *ueSCellDelInfo;
185 #endif
186 {
187
188    TRC3(RgPrgPMacSMacUeSCellDel);
189
190    RETVALUE((*RgPrgPMacSMacUeSCellDelReqMt[0])(pst, ueSCellDelInfo));
191 }
192
193
194
195 /* Matrix for Lch ReConfig Req*/
196 PRIVATE CONSTANT RgPrgUeScellModLchReq RgPrgPMacSMacUeScellModLchReqMt[RG_PRG_MAX] =
197 {
198 #ifdef LCPRG
199   cmPkPrgPMacSMacUeSCellLchModReq,
200 #else
201    RgPrgPMacSMacUeSCellLchModReq
202 #endif
203 };
204
205
206 /**
207 * @brief Ue Lch Reconfig Req from PMac to SMac 
208 *
209 * @details
210 *
211 *     Function : RgPrgPMacSMacUeScellLchMod
212 *
213 *  @param[in]   Pst                      *pst
214 *  @param[in]   RgPrgUeSCellLchModInfo   *lchCfgInfo
215 *  @return   S16
216 *      -# ROK
217 **/
218 #ifdef ANSI
219 PUBLIC S16 RgPrgPMacSMacUeScellLchMod
220 (
221  Pst                      *pst,
222  RgPrgUeSCellLchModInfo   *lchCfgInfo
223 )
224 #else
225 PUBLIC S16 RgPrgPMacSMacUeScellLchMod(pst, lchCfgInfo)
226  Pst                      *pst;
227  RgPrgUeSCellLchModInfo   *lchCfgInfo;
228 #endif
229 {
230
231    TRC3(RgPrgPMacSMacUeScellLchMod);
232
233    RETVALUE((*RgPrgPMacSMacUeScellModLchReqMt[0])(pst, lchCfgInfo));
234 }
235
236
237 /* Matrix for delete Lch Req*/
238 PRIVATE CONSTANT RgPrgUeScellDelLchReq RgPrgPMacSMacUeScellDelLchReqMt[RG_PRG_MAX] =
239 {
240 #ifdef LCPRG
241   cmPkPrgPMacSMacUeSCellLchDelReq,
242 #else
243    RgPrgPMacSMacUeSCellLchDelReq
244 #endif
245 };
246
247
248 /**
249 * @brief Delete Lch Req from PMac to SMac 
250 *
251 * @details
252 *
253 *     Function : RgPrgPMacSMacUeScellLchDel
254 *
255 *  @param[in]   Pst                      *pst
256 *  @param[in]   RgPrgUeSCellLchDelInfo   *delLcCb
257 *  @return   S16
258 *      -# ROK
259 **/
260 #ifdef ANSI
261 PUBLIC S16 RgPrgPMacSMacUeScellLchDel
262 (
263  Pst                       *pst,
264  RgPrgUeSCellLchDelInfo    *delLcCb
265 )
266 #else
267 PUBLIC S16 RgPrgPMacSMacUeScellLchDel(pst, delLcCb)
268  Pst                       *pst;
269  RgPrgUeSCellLchDelInfo    *delLcCb;
270 #endif
271 {
272
273    TRC3(RgPrgPMacSMacUeScellLchDel);
274
275    RETVALUE((*RgPrgPMacSMacUeScellDelLchReqMt[0])(pst, delLcCb));
276 }
277
278
279 /* Matrix for Lch Config Req*/
280 PRIVATE CONSTANT RgPrgUeScellAddLchReq RgPrgPMacSMacUeScellAddLchReqMt[RG_PRG_MAX] =
281 {
282 #ifdef LCPRG
283   cmPkPrgPMacSMacUeSCellLchAddReq,
284 #else
285    RgPrgPMacSMacUeSCellLchAddReq
286 #endif
287 };
288
289
290 /**
291 * @brief Ue Lch config Req from PMac to SMac 
292 *
293 * @details
294 *
295 *     Function : RgPrgPMacSMacUeScellLchAdd
296 *
297 *  @param[in]   Pst                      *pst
298 *  @param[in]   RgPrgUeSCellLchAddInfo   *lchCfgInfo
299 *  @return   S16
300 *      -# ROK
301 **/
302 #ifdef ANSI
303 PUBLIC S16 RgPrgPMacSMacUeScellLchAdd
304 (
305  Pst                      *pst,
306  RgPrgUeSCellLchAddInfo   *lchCfgInfo
307 )
308 #else
309 PUBLIC S16 RgPrgPMacSMacUeScellLchAdd(pst, lchCfgInfo)
310  Pst                      *pst;
311  RgPrgUeSCellLchAddInfo   *lchCfgInfo;
312 #endif
313 {
314
315    TRC3(RgPrgPMacSMacUeScellLchAdd);
316
317    RETVALUE((*RgPrgPMacSMacUeScellAddLchReqMt[0])(pst, lchCfgInfo));
318 }
319
320 #endif /* LTE_ADV */
321
322 /**********************************************************************
323  
324          End of file
325 **********************************************************************/