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 "kw_env.h" /* RLC environment options */
25 #include "kw.h" /* RLC defines */
28 /* header/extern include files (.x) */
30 #include "lkw.x" /* LKW */
31 #include "ckw.x" /* CKW */
32 #include "kwu.x" /* KWU */
36 #include "du_app_rlc_inf.h"
39 RlcDuUeCfgRsp rlcUeCfgRspOpts[] =
41 packRlcDuUeCfgRsp, /* 0 - loosely coupled */
42 DuProcRlcUeCfgRsp, /* 1 - tightly coupled */
43 packRlcDuUeCfgRsp /* 2 - LWLC loosely coupled */
47 /***********************************************************
51 * Handler for the ue create response to DUAPP
55 * This function reports ue create response to DUAPP
57 * @param[in] post Post structure
58 * @param[in] cfgRsp ue create Config Response
64 *************************************************************/
65 uint8_t SendRlcUeRspToDu(Pst *pst, RlcCfgCfmInfo *cfgRsp)
67 /* jump to specific primitive depending on configured selector */
69 RlcUeCfgRsp *ueRsp = NULLP;
71 RLC_ALLOC_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCfgRsp));
74 DU_LOG("\nERROR --> RLC: Memory allocation failed for ueRsp at SendRlcUeCreateRspToDu()");
79 /* Mapping Old api to New Api */
80 ret = fillRlcUeCfgRsp(ueRsp, cfgRsp);
83 ret = (*rlcUeCfgRspOpts[pst->selector])(pst, ueRsp);
86 DU_LOG("\nERROR --> RLC: Failed at SendRlcUeRspToDu()");
87 RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCfgRsp));
92 DU_LOG("\nERROR --> RLC: Failed at fillRlcUeCfgRsp() for event %d", pst->event);
93 RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCfgRsp));
97 } /* end of SendRlcUeRspToDu */
99 /**********************************************************************
101 **********************************************************************/