1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
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 #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
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 *******************************************************************************/
19 /************************************************************************
25 Desc: C source code for MAC to MAC (PRG) interface
29 **********************************************************************/
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*/
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 */
71 #include "rg_pom_scell.x"
73 /* Matrix for Ue SCell Config Req*/
74 PRIVATE CONSTANT RgPrgUeSCellCfgReq RgPrgPMacSMacUeSCellCfgReqMt[RG_PRG_MAX] =
77 cmPkPrgPMacSMacUeSCellCfgReq,
79 RgPrgPMacSMacUeSCellCfgReq
84 * @brief Ue SCell config Req from PMac to SMac
88 * Function : RgPrgPMacSMacUeSCellCfg
91 * @param[in] RgPrgUeSCellCfgInfo *ueSCellCfgInfo;
96 PUBLIC S16 RgPrgPMacSMacUeSCellCfg
99 RgPrgUeSCellCfgInfo *ueSCellCfgInfo
102 PUBLIC S16 RgPrgPMacSMacUeSCellCfg(pst, ueSCellCfgInfo)
104 RgPrgUeSCellCfgInfo *ueSCellCfgInfo;
108 TRC3(RgPrgPMacSMacUeSCellCfg);
110 RETVALUE((*RgPrgPMacSMacUeSCellCfgReqMt[0])(pst, ueSCellCfgInfo));
113 /* Matrix for config confirm from SMac to Pmac*/
114 PRIVATE CONSTANT RgSMacPMacCfgCfm RgPrgSMacPMacCfgCfmMt[RG_PRG_MAX] =
117 cmPkPrgSMacPMacCfgCfm,
124 * @brief Config confirm from SMac to PMac for Ue Cell Config Req
128 * Function :RgPrgSMacPMacCfg
130 * @param[in] Pst *pst
131 * @param[in] RgPrgCfgCfmInfo *cfmCfm
136 PUBLIC S16 RgPrgSMacPMacCfg
139 RgPrgCfgCfmInfo *cfgCfm
142 PUBLIC S16 RgPrgSMacPMacCfg(pst, cfgCfm)
144 RgPrgCfgCfmInfo *cfgCfm;
148 TRC3(RgPrgSMacPMacCfg);
150 RETVALUE((*RgPrgSMacPMacCfgCfmMt[0])(pst, cfgCfm));
153 /* Matrix for Ue SCell delete req/Ue Id change req from PMac to SMac */
154 PRIVATE CONSTANT RgUeSCellDelReq RgPrgPMacSMacUeSCellDelReqMt[RG_PRG_MAX] =
157 cmPkPrgPMacSMacUeSCellDelReq,
159 RgPrgPMacSMacUeSCellDelReq
164 * @brief Ue SCell delete Req/Ue Id change Req from PMac to SMac
168 * Function : RgPrgPMacSMacUeSCellDel
170 * @param[in] Pst *pst
171 * @param[in] RgPrgUeSCellDelInfo *ueSCellDelInfo;
176 PUBLIC S16 RgPrgPMacSMacUeSCellDel
179 RgPrgUeSCellDelInfo *ueSCellDelInfo
182 PUBLIC S16 RgPrgPMacSMacUeSCellDel(pst, ueSCellDelInfo)
184 RgPrgUeSCellDelInfo *ueSCellDelInfo;
188 TRC3(RgPrgPMacSMacUeSCellDel);
190 RETVALUE((*RgPrgPMacSMacUeSCellDelReqMt[0])(pst, ueSCellDelInfo));
195 /* Matrix for Lch ReConfig Req*/
196 PRIVATE CONSTANT RgPrgUeScellModLchReq RgPrgPMacSMacUeScellModLchReqMt[RG_PRG_MAX] =
199 cmPkPrgPMacSMacUeSCellLchModReq,
201 RgPrgPMacSMacUeSCellLchModReq
207 * @brief Ue Lch Reconfig Req from PMac to SMac
211 * Function : RgPrgPMacSMacUeScellLchMod
213 * @param[in] Pst *pst
214 * @param[in] RgPrgUeSCellLchModInfo *lchCfgInfo
219 PUBLIC S16 RgPrgPMacSMacUeScellLchMod
222 RgPrgUeSCellLchModInfo *lchCfgInfo
225 PUBLIC S16 RgPrgPMacSMacUeScellLchMod(pst, lchCfgInfo)
227 RgPrgUeSCellLchModInfo *lchCfgInfo;
231 TRC3(RgPrgPMacSMacUeScellLchMod);
233 RETVALUE((*RgPrgPMacSMacUeScellModLchReqMt[0])(pst, lchCfgInfo));
237 /* Matrix for delete Lch Req*/
238 PRIVATE CONSTANT RgPrgUeScellDelLchReq RgPrgPMacSMacUeScellDelLchReqMt[RG_PRG_MAX] =
241 cmPkPrgPMacSMacUeSCellLchDelReq,
243 RgPrgPMacSMacUeSCellLchDelReq
249 * @brief Delete Lch Req from PMac to SMac
253 * Function : RgPrgPMacSMacUeScellLchDel
255 * @param[in] Pst *pst
256 * @param[in] RgPrgUeSCellLchDelInfo *delLcCb
261 PUBLIC S16 RgPrgPMacSMacUeScellLchDel
264 RgPrgUeSCellLchDelInfo *delLcCb
267 PUBLIC S16 RgPrgPMacSMacUeScellLchDel(pst, delLcCb)
269 RgPrgUeSCellLchDelInfo *delLcCb;
273 TRC3(RgPrgPMacSMacUeScellLchDel);
275 RETVALUE((*RgPrgPMacSMacUeScellDelLchReqMt[0])(pst, delLcCb));
279 /* Matrix for Lch Config Req*/
280 PRIVATE CONSTANT RgPrgUeScellAddLchReq RgPrgPMacSMacUeScellAddLchReqMt[RG_PRG_MAX] =
283 cmPkPrgPMacSMacUeSCellLchAddReq,
285 RgPrgPMacSMacUeSCellLchAddReq
291 * @brief Ue Lch config Req from PMac to SMac
295 * Function : RgPrgPMacSMacUeScellLchAdd
297 * @param[in] Pst *pst
298 * @param[in] RgPrgUeSCellLchAddInfo *lchCfgInfo
303 PUBLIC S16 RgPrgPMacSMacUeScellLchAdd
306 RgPrgUeSCellLchAddInfo *lchCfgInfo
309 PUBLIC S16 RgPrgPMacSMacUeScellLchAdd(pst, lchCfgInfo)
311 RgPrgUeSCellLchAddInfo *lchCfgInfo;
315 TRC3(RgPrgPMacSMacUeScellLchAdd);
317 RETVALUE((*RgPrgPMacSMacUeScellAddLchReqMt[0])(pst, lchCfgInfo));
322 /**********************************************************************
325 **********************************************************************/