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 /* This file contains message handling functionality for DU APP */
22 #include "du_f1ap_msg_hdl.h"
25 #include "du_app_mac_inf.h"
27 extern S16 cmUnpkLkwCfgCfm(LkwCfgCfm func,Pst *pst, Buffer *mBuf);
28 extern S16 cmUnpkLkwCntrlCfm(LkwCntrlCfm func,Pst *pst, Buffer *mBuf);
29 extern S16 cmUnpkLrgCfgCfm(LrgCfgCfm func,Pst *pst, Buffer *mBuf);
31 /**************************************************************************
32 * @brief Task Initiation callback function.
36 * Function : duActvInit
39 * This function is supplied as one of parameters during DU APP's
40 * task registration. SSI will invoke this function once, after
41 * it creates and attaches this TAPA Task to a system task.
43 * @param[in] Ent entity, the entity ID of this task.
44 * @param[in] Inst inst, the instance ID of this task.
45 * @param[in] Region region, the region ID registered for memory
47 * @param[in] Reason reason.
48 * @return ROK - success
50 ***************************************************************************/
51 S16 duActvInit(Ent entity, Inst inst, Region region, Reason reason)
53 duCb.init.procId = SFndProcId();
54 duCb.init.ent = entity;
55 duCb.init.inst = inst;
56 duCb.init.region = region;
57 duCb.init.reason = reason;
58 duCb.init.cfgDone = FALSE;
59 duCb.init.pool = DU_POOL;
60 duCb.init.acnt = FALSE;
61 duCb.init.trc = FALSE;
62 duCb.init.usta = TRUE;
63 duCb.mem.region = DFLT_REGION;
64 duCb.mem.pool = DU_POOL;
66 duCb.f1Status = FALSE;
68 if(ROK != cmHashListInit(&(duCb.cellLst),
72 (U16) CM_HASH_KEYTYPE_CONID,
76 DU_LOG("\nDU_APP : cellLst Initialization Failed");
79 if(ROK != cmHashListInit(&(duCb.actvCellLst),
83 (U16) CM_HASH_KEYTYPE_CONID,
87 DU_LOG("\nDU_APP : ActvCellLst Initialization Failed");
96 /**************************************************************************
97 * @brief Task Activation callback function.
101 * Function : duActvTsk
104 * Primitives invoked by DU APP's users/providers through
105 * a loosely coupled interface arrive here by means of
106 * SSI's message handling. This API is registered with
107 * SSI during the Task Registration of DU APP.
109 * @param[in] Pst *pst, Post structure of the primitive.
110 * @param[in] Buffer *mBuf, Packed primitive parameters in the
112 * @return ROK - success
115 ***************************************************************************/
116 S16 duActvTsk(Pst *pst, Buffer *mBuf)
128 DU_LOG("\n****** Received initial configs at DU APP ******\n");
135 DU_LOG("\nDU_APP : Invalid event received at duActvTsk from ENTDUAPP");
147 case LKW_EVT_CFG_CFM:
149 ret = cmUnpkLkwCfgCfm(duHdlRlcCfgComplete, pst, mBuf);
152 case LKW_EVT_CNTRL_CFM:
154 ret = cmUnpkLkwCntrlCfm(duHdlRlcCntrlCfgComplete, pst, mBuf);
157 case LKW_EVT_STA_IND:
163 DU_LOG("\nDU_APP : Invalid event %d received at duActvTsk from ENTKW", \
183 ret = cmUnpkLrgCfgCfm(duHdlMacCfgComplete, pst, mBuf);
190 case EVTMACSCHGENCFGCFM:
192 ret = cmUnpkLrgSchCfgCfm(duHdlSchCfgComplete, pst, mBuf);
195 case EVENT_MAC_CELL_CONFIG_CFM:
197 ret = unpackMacCellCfgCfm(duHandleMacCellCfgCfm, pst, mBuf);
202 DU_LOG("\nDU_APP : Invalid event received at duActvTsk from ENTRG");
221 ret = cmUnpkSctpNtfy(duSctpNtfyHdl, pst, mBuf);
226 DU_LOG("\nDU_APP : Invalid event received at duActvTsk from ENTSCTP");
240 cmUnpkEgtpCfgCfm(duHdlEgtpCfgComplete, mBuf);
245 cmUnpkEgtpSrvOpenCfm(duHdlEgtpSrvOpenComplete, mBuf);
250 cmUnpkEgtpTnlMgmtCfm(duHdlEgtpTnlMgmtCfm, mBuf);
255 DU_LOG("\nDU_APP : Invalid event[%d] received at duActvTsk from ENTEGTP", pst->event);
264 DU_LOG("\nDU_APP : DU APP can not process message from Entity %d", pst->srcEnt);
274 /**********************************************************************
276 **********************************************************************/