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 "common_def.h"
33 #include "lrg.h" /* layer manager for MAC */
34 #include "crg.h" /* CRG interface includes*/
35 #include "rgu.h" /* RGU interface includes*/
36 #include "tfu.h" /* TFU interface includes*/
37 #include "rg_sch_inf.h" /* SCH interface includes*/
38 #include "rg_prg.h" /* PRG interface includes*/
39 #include "rg_env.h" /* MAC Enviroments includes */
40 #include "rg.h" /* MAC includes*/
41 #include "rg_err.h" /* MAC error includes*/
43 /* header/extern include files (.x) */
44 #include "rgu.x" /* RGU types */
45 #include "tfu.x" /* RGU types */
46 #include "lrg.x" /* layer management typedefs for MAC */
47 #include "crg.x" /* layer management typedefs for MAC */
48 #include "rg_sch_inf.x" /* layer management typedefs for MAC */
49 #include "rg_prg.x" /* PRG interface typedefs*/
50 #include "du_app_mac_inf.h"
51 #include "rg.x" /* typedefs for MAC */
54 #include "rg_pom_scell.x"
56 /* Matrix for Ue SCell Config Req*/
57 PRIVATE CONSTANT RgPrgUeSCellCfgReq RgPrgPMacSMacUeSCellCfgReqMt[RG_PRG_MAX] =
60 cmPkPrgPMacSMacUeSCellCfgReq,
62 RgPrgPMacSMacUeSCellCfgReq
67 * @brief Ue SCell config Req from PMac to SMac
71 * Function : RgPrgPMacSMacUeSCellCfg
74 * @param[in] RgPrgUeSCellCfgInfo *ueSCellCfgInfo;
79 PUBLIC S16 RgPrgPMacSMacUeSCellCfg
82 RgPrgUeSCellCfgInfo *ueSCellCfgInfo
85 PUBLIC S16 RgPrgPMacSMacUeSCellCfg(pst, ueSCellCfgInfo)
87 RgPrgUeSCellCfgInfo *ueSCellCfgInfo;
91 TRC3(RgPrgPMacSMacUeSCellCfg);
93 return ((*RgPrgPMacSMacUeSCellCfgReqMt[0])(pst, ueSCellCfgInfo));
96 /* Matrix for config confirm from SMac to Pmac*/
97 PRIVATE CONSTANT RgSMacPMacCfgCfm RgPrgSMacPMacCfgCfmMt[RG_PRG_MAX] =
100 cmPkPrgSMacPMacCfgCfm,
107 * @brief Config confirm from SMac to PMac for Ue Cell Config Req
111 * Function :RgPrgSMacPMacCfg
113 * @param[in] Pst *pst
114 * @param[in] RgPrgCfgCfmInfo *cfmCfm
119 PUBLIC S16 RgPrgSMacPMacCfg
122 RgPrgCfgCfmInfo *cfgCfm
125 PUBLIC S16 RgPrgSMacPMacCfg(pst, cfgCfm)
127 RgPrgCfgCfmInfo *cfgCfm;
131 TRC3(RgPrgSMacPMacCfg);
133 return ((*RgPrgSMacPMacCfgCfmMt[0])(pst, cfgCfm));
136 /* Matrix for Ue SCell delete req/Ue Id change req from PMac to SMac */
137 PRIVATE CONSTANT RgUeSCellDelReq RgPrgPMacSMacUeSCellDelReqMt[RG_PRG_MAX] =
140 cmPkPrgPMacSMacUeSCellDelReq,
142 RgPrgPMacSMacUeSCellDelReq
147 * @brief Ue SCell delete Req/Ue Id change Req from PMac to SMac
151 * Function : RgPrgPMacSMacUeSCellDel
153 * @param[in] Pst *pst
154 * @param[in] RgPrgUeSCellDelInfo *ueSCellDelInfo;
159 PUBLIC S16 RgPrgPMacSMacUeSCellDel
162 RgPrgUeSCellDelInfo *ueSCellDelInfo
165 PUBLIC S16 RgPrgPMacSMacUeSCellDel(pst, ueSCellDelInfo)
167 RgPrgUeSCellDelInfo *ueSCellDelInfo;
171 TRC3(RgPrgPMacSMacUeSCellDel);
173 return ((*RgPrgPMacSMacUeSCellDelReqMt[0])(pst, ueSCellDelInfo));
178 /* Matrix for Lch ReConfig Req*/
179 PRIVATE CONSTANT RgPrgUeScellModLchReq RgPrgPMacSMacUeScellModLchReqMt[RG_PRG_MAX] =
182 cmPkPrgPMacSMacUeSCellLchModReq,
184 RgPrgPMacSMacUeSCellLchModReq
190 * @brief Ue Lch Reconfig Req from PMac to SMac
194 * Function : RgPrgPMacSMacUeScellLchMod
196 * @param[in] Pst *pst
197 * @param[in] RgPrgUeSCellLchModInfo *lchCfgInfo
202 PUBLIC S16 RgPrgPMacSMacUeScellLchMod
205 RgPrgUeSCellLchModInfo *lchCfgInfo
208 PUBLIC S16 RgPrgPMacSMacUeScellLchMod(pst, lchCfgInfo)
210 RgPrgUeSCellLchModInfo *lchCfgInfo;
214 TRC3(RgPrgPMacSMacUeScellLchMod);
216 return ((*RgPrgPMacSMacUeScellModLchReqMt[0])(pst, lchCfgInfo));
220 /* Matrix for delete Lch Req*/
221 PRIVATE CONSTANT RgPrgUeScellDelLchReq RgPrgPMacSMacUeScellDelLchReqMt[RG_PRG_MAX] =
224 cmPkPrgPMacSMacUeSCellLchDelReq,
226 RgPrgPMacSMacUeSCellLchDelReq
232 * @brief Delete Lch Req from PMac to SMac
236 * Function : RgPrgPMacSMacUeScellLchDel
238 * @param[in] Pst *pst
239 * @param[in] RgPrgUeSCellLchDelInfo *delLcCb
244 PUBLIC S16 RgPrgPMacSMacUeScellLchDel
247 RgPrgUeSCellLchDelInfo *delLcCb
250 PUBLIC S16 RgPrgPMacSMacUeScellLchDel(pst, delLcCb)
252 RgPrgUeSCellLchDelInfo *delLcCb;
256 TRC3(RgPrgPMacSMacUeScellLchDel);
258 return ((*RgPrgPMacSMacUeScellDelLchReqMt[0])(pst, delLcCb));
262 /* Matrix for Lch Config Req*/
263 PRIVATE CONSTANT RgPrgUeScellAddLchReq RgPrgPMacSMacUeScellAddLchReqMt[RG_PRG_MAX] =
266 cmPkPrgPMacSMacUeSCellLchAddReq,
268 RgPrgPMacSMacUeSCellLchAddReq
274 * @brief Ue Lch config Req from PMac to SMac
278 * Function : RgPrgPMacSMacUeScellLchAdd
280 * @param[in] Pst *pst
281 * @param[in] RgPrgUeSCellLchAddInfo *lchCfgInfo
286 PUBLIC S16 RgPrgPMacSMacUeScellLchAdd
289 RgPrgUeSCellLchAddInfo *lchCfgInfo
292 PUBLIC S16 RgPrgPMacSMacUeScellLchAdd(pst, lchCfgInfo)
294 RgPrgUeSCellLchAddInfo *lchCfgInfo;
298 TRC3(RgPrgPMacSMacUeScellLchAdd);
300 return ((*RgPrgPMacSMacUeScellAddLchReqMt[0])(pst, lchCfgInfo));
305 /**********************************************************************
308 **********************************************************************/