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 *******************************************************************************/
18 /* This file defines API towards RLC interface */
19 #include "common_def.h"
20 #include "rgu.h" /* RGU interface includes*/
21 #include "lkw.h" /* LKW defines */
22 #include "ckw.h" /* CKW defines */
23 #include "kwu.h" /* KWU defines */
24 #include "rlc_env.h" /* RLC environment options */
28 /* header/extern include files (.x) */
30 #include "lkw.x" /* LKW */
31 #include "ckw.x" /* CKW */
32 #include "kwu.x" /* KWU */
34 #include "rlc_utils.h" /* RLC defines */
35 #include "du_app_rlc_inf.h"
38 RlcDuUeCfgRsp rlcUeCfgRspOpts[] =
40 packRlcDuUeCfgRsp, /* 0 - loosely coupled */
41 DuProcRlcUeCfgRsp, /* 1 - tightly coupled */
42 packRlcDuUeCfgRsp /* 2 - LWLC loosely coupled */
46 /***********************************************************
50 * Handler for the ue create response to DUAPP
54 * This function reports ue create response to DUAPP
56 * @param[in] post Post structure
57 * @param[in] cfgRsp ue create Config Response
63 *************************************************************/
64 uint8_t SendRlcUeCfgRspToDu(Pst *pst, RlcCfgCfmInfo *cfgRsp)
66 /* jump to specific primitive depending on configured selector */
69 RlcUeCfgRsp *ueRsp = NULLP;
71 gCb = RLC_GET_RLCCB(pst->srcInst);
72 RLC_ALLOC_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCfgRsp));
75 DU_LOG("\nERROR --> RLC: Memory allocation failed for ueRsp at SendRlcUeCreateRspToDu()");
80 /* Mapping Old api to New Api */
81 ret = fillRlcUeCfgRsp(ueRsp, cfgRsp);
84 ret = (*rlcUeCfgRspOpts[pst->selector])(pst, ueRsp);
87 DU_LOG("\nERROR --> RLC: Failed at SendRlcUeCfgRspToDu()");
88 RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCfgRsp));
93 DU_LOG("\nERROR --> RLC: Failed at fillRlcUeCfgRsp() for event %d", pst->event);
94 RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCfgRsp));
97 RLC_FREE(gCb, cfgRsp, sizeof(RlcCfgCfmInfo));
99 } /* end of SendRlcUeCfgRspToDu */
101 /**********************************************************************
103 **********************************************************************/