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 static const 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;
78 S16 RgPrgPMacSMacUeSCellCfg(Pst *pst, RgPrgUeSCellCfgInfo *ueSCellCfgInfo)
81 return ((*RgPrgPMacSMacUeSCellCfgReqMt[0])(pst, ueSCellCfgInfo));
84 /* Matrix for config confirm from SMac to Pmac*/
85 static const RgSMacPMacCfgCfm RgPrgSMacPMacCfgCfmMt[RG_PRG_MAX] =
88 cmPkPrgSMacPMacCfgCfm,
95 * @brief Config confirm from SMac to PMac for Ue Cell Config Req
99 * Function :RgPrgSMacPMacCfg
101 * @param[in] Pst *pst
102 * @param[in] RgPrgCfgCfmInfo *cfmCfm
106 S16 RgPrgSMacPMacCfg(Pst *pst,RgPrgCfgCfmInfo *cfgCfm)
109 return ((*RgPrgSMacPMacCfgCfmMt[0])(pst, cfgCfm));
112 /* Matrix for Ue SCell delete req/Ue Id change req from PMac to SMac */
113 static const RgUeSCellDelReq RgPrgPMacSMacUeSCellDelReqMt[RG_PRG_MAX] =
116 cmPkPrgPMacSMacUeSCellDelReq,
118 RgPrgPMacSMacUeSCellDelReq
123 * @brief Ue SCell delete Req/Ue Id change Req from PMac to SMac
127 * Function : RgPrgPMacSMacUeSCellDel
129 * @param[in] Pst *pst
130 * @param[in] RgPrgUeSCellDelInfo *ueSCellDelInfo;
134 S16 RgPrgPMacSMacUeSCellDel(Pst *pst,RgPrgUeSCellDelInfo *ueSCellDelInfo)
137 return ((*RgPrgPMacSMacUeSCellDelReqMt[0])(pst, ueSCellDelInfo));
142 /* Matrix for Lch ReConfig Req*/
143 static const RgPrgUeScellModLchReq RgPrgPMacSMacUeScellModLchReqMt[RG_PRG_MAX] =
146 cmPkPrgPMacSMacUeSCellLchModReq,
148 RgPrgPMacSMacUeSCellLchModReq
154 * @brief Ue Lch Reconfig Req from PMac to SMac
158 * Function : RgPrgPMacSMacUeScellLchMod
160 * @param[in] Pst *pst
161 * @param[in] RgPrgUeSCellLchModInfo *lchCfgInfo
165 S16 RgPrgPMacSMacUeScellLchMod(Pst *pst,RgPrgUeSCellLchModInfo *lchCfgInfo)
168 return ((*RgPrgPMacSMacUeScellModLchReqMt[0])(pst, lchCfgInfo));
172 /* Matrix for delete Lch Req*/
173 static const RgPrgUeScellDelLchReq RgPrgPMacSMacUeScellDelLchReqMt[RG_PRG_MAX] =
176 cmPkPrgPMacSMacUeSCellLchDelReq,
178 RgPrgPMacSMacUeSCellLchDelReq
184 * @brief Delete Lch Req from PMac to SMac
188 * Function : RgPrgPMacSMacUeScellLchDel
190 * @param[in] Pst *pst
191 * @param[in] RgPrgUeSCellLchDelInfo *delLcCb
195 S16 RgPrgPMacSMacUeScellLchDel(Pst *pst,RgPrgUeSCellLchDelInfo *delLcCb)
198 return ((*RgPrgPMacSMacUeScellDelLchReqMt[0])(pst, delLcCb));
202 /* Matrix for Lch Config Req*/
203 static const RgPrgUeScellAddLchReq RgPrgPMacSMacUeScellAddLchReqMt[RG_PRG_MAX] =
206 cmPkPrgPMacSMacUeSCellLchAddReq,
208 RgPrgPMacSMacUeSCellLchAddReq
214 * @brief Ue Lch config Req from PMac to SMac
218 * Function : RgPrgPMacSMacUeScellLchAdd
220 * @param[in] Pst *pst
221 * @param[in] RgPrgUeSCellLchAddInfo *lchCfgInfo
225 S16 RgPrgPMacSMacUeScellLchAdd(Pst *pst,RgPrgUeSCellLchAddInfo *lchCfgInfo)
228 return ((*RgPrgPMacSMacUeScellAddLchReqMt[0])(pst, lchCfgInfo));
233 /**********************************************************************
236 **********************************************************************/