X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_msg_hdl.c;h=81cc516649c00fecbd743915f92a7febf4f6a142;hb=def50dc175cebc67238db5f1acd5ff322a2279bd;hp=6483dcaaf7b36f5651827d2d05c293db72c5db43;hpb=cfe7ea3ab6cb69d18ed91d79c1bf66b3bc8bdc98;p=o-du%2Fl2.git diff --git a/src/du_app/du_msg_hdl.c b/src/du_app/du_msg_hdl.c index 6483dcaaf..81cc51664 100644 --- a/src/du_app/du_msg_hdl.c +++ b/src/du_app/du_msg_hdl.c @@ -55,6 +55,7 @@ extern uint8_t egtpHdlDatInd(EgtpMsg egtpMsg); extern uint8_t BuildAndSendDUConfigUpdate(); extern uint16_t getTransId(); extern uint8_t cmPkLrgSchCfgReq(Pst * pst,RgMngmt * cfg); +uint8_t BuildAndSendRrcDeliveryReport(uint32_t gnbCuUeF1apId, uint32_t gnbDuUeF1apId, RrcDeliveryReport *rrcDelivery); packMacCellCfgReq packMacCellCfgOpts[] = { @@ -178,8 +179,8 @@ uint8_t duBuildRlcCfg(Inst inst) uint8_t duBuildRlcLsapCfg(Ent ent, Inst inst, uint8_t lsapInst) { - RlcMngmt rlcMngmt; - RlcSapCfg *lSap = NULLP; + RlcMngmt rlcMngmt; + RlcSapCfg *lSap = NULLP; Pst pst; DU_SET_ZERO(&rlcMngmt, sizeof(RlcMngmt)); @@ -254,8 +255,8 @@ uint8_t duBuildRlcLsapCfg(Ent ent, Inst inst, uint8_t lsapInst) ***************************************************************************/ uint8_t duBuildRlcUsapCfg(uint8_t elemId, Ent ent, Inst inst) { - RlcMngmt rlcMngmt; - RlcSapCfg *uSap = NULLP; + RlcMngmt rlcMngmt; + RlcSapCfg *uSap = NULLP; Pst pst; DU_SET_ZERO(&rlcMngmt, sizeof(RlcMngmt)); @@ -321,9 +322,9 @@ uint8_t duBuildRlcUsapCfg(uint8_t elemId, Ent ent, Inst inst) ***************************************************************************/ uint8_t duProcCfgComplete() { - uint8_t ret = ROK; + uint8_t ret = ROK; static uint16_t cellId = 0; - uint16_t idx; + uint16_t idx; for(idx=0; idx< DEFAULT_CELLS; idx++) { DuCellCb *cell = NULLP; @@ -891,9 +892,8 @@ uint8_t duBindUnbindRlcToMacSap(uint8_t inst, uint8_t action) RlcMngmt rlcMngmt; Pst pst; - TRC2(smBindKwToRguSap) - DU_SET_ZERO(&rlcMngmt, sizeof(RlcMngmt)); + DU_SET_ZERO(&rlcMngmt, sizeof(RlcMngmt)); DU_SET_ZERO(&pst, sizeof(Pst)); if (action == ABND) @@ -994,7 +994,7 @@ uint8_t duSctpNtfyHdl(Buffer *mBuf, CmInetSctpNotification *ntfy) * ****************************************************************/ uint8_t duFillEgtpPst(Pst *pst, Event event) { - memset((uint8_t *)pst, 0, sizeof(Pst)); + memset(pst, 0, sizeof(Pst)); pst->srcEnt = (Ent)ENTDUAPP; pst->srcInst = (Inst)DU_INST; pst->srcProcId = DU_PROC; @@ -1033,8 +1033,8 @@ uint8_t duBuildEgtpCfgReq() DU_LOG("\nDU_APP : Sending EGTP config request"); - memset((uint8_t *)&egtpCfg, 0, sizeof(EgtpConfig)); - memcpy((uint8_t *)&egtpCfg, (uint8_t *)&duCfgParam.egtpParams, (PTR)sizeof(EgtpConfig)); + memset(&egtpCfg, 0, sizeof(EgtpConfig)); + memcpy(&egtpCfg, &duCfgParam.egtpParams, sizeof(EgtpConfig)); duFillEgtpPst(&pst, EVTCFGREQ); packEgtpCfgReq(&pst, egtpCfg); @@ -1203,12 +1203,6 @@ uint8_t duHdlEgtpTnlMgmtCfm(EgtpTnlEvt tnlEvtCfm) if(tnlEvtCfm.cfmStatus.status == LCM_PRIM_OK) { DU_LOG("\nDU_APP : Tunnel management confirm OK"); - -#ifdef EGTP_TEST - duSendUeCreateReqToRlc(); - - duSendEgtpTestData(); -#endif } else { @@ -1282,14 +1276,14 @@ uint8_t duSendEgtpTestData() MsgLen mLen; mLen = 0; - ODU_FIND_MSG_LEN(mBuf, &mLen); + ODU_GET_MSG_LEN(mBuf, &mLen); - memset((uint8_t *)&ipv4Hdr, 0, sizeof(CmIpv4Hdr)); + memset(&ipv4Hdr, 0, sizeof(CmIpv4Hdr)); ipv4Hdr.length = CM_IPV4_HDRLEN + mLen; ipv4Hdr.hdrVer = 0x45; ipv4Hdr.proto = 1; - ipv4Hdr.srcAddr = CM_INET_NTOH_U32(duCfgParam.egtpParams.localIp.ipV4Addr); - ipv4Hdr.destAddr = CM_INET_NTOH_U32(duCfgParam.egtpParams.destIp.ipV4Addr); + ipv4Hdr.srcAddr = CM_INET_NTOH_UINT32(duCfgParam.egtpParams.localIp.ipV4Addr); + ipv4Hdr.destAddr = CM_INET_NTOH_UINT32(duCfgParam.egtpParams.destIp.ipV4Addr); /* Packing IPv4 header into buffer */ uint8_t ret, cnt, idx; @@ -1546,15 +1540,14 @@ uint8_t duSendEgtpSlotInd() * Functionality: * Initiates MAC Configs towards MAC * - * @param[in] void + * @param[in]cell id * @return ROK - success * RFAILED - failure * ***************************************************************************/ -uint8_t duBuildAndSendMacCellCfg() +uint8_t duBuildAndSendMacCellCfg(uint16_t cellId) { Pst pst; - DU_SET_ZERO(&pst, sizeof(Pst)); MacCellCfg *duMacCellCfg = NULLP; DU_ALLOC_SHRABL_BUF(duMacCellCfg, sizeof(MacCellCfg)); @@ -1563,8 +1556,8 @@ uint8_t duBuildAndSendMacCellCfg() return RFAILED; } - /* store the address in the duCb so that we can free on confirm msg */ - duCb.duMacCellCfg = duMacCellCfg; + /* store the address in the duCellCb so that we can free on confirm msg */ + duCb.actvCellLst[cellId-1]->duMacCellCfg = duMacCellCfg; /* copy the mac config structure from duCfgParams */ memcpy(duMacCellCfg,&duCfgParam.macCellCfg,sizeof(MacCellCfg)); @@ -1596,29 +1589,30 @@ uint8_t duHandleMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm) uint8_t actvCellIdx = 0; uint8_t ret = ROK; - if(macCellCfgCfm->rsp == ROK) + for(actvCellIdx = 0; actvCellIdx < MAX_NUM_CELL; actvCellIdx++) { - for(actvCellIdx = 0 ; actvCellIdx cellId == duCb.actvCellLst[actvCellIdx]->cellId) - { - duCb.duMacCellCfg = NULLP; - /* Build and send GNB-DU config update */ - ret = BuildAndSendDUConfigUpdate(); - - /* TODO: Trigger cell start req once cell up slot ind is received*/ - /* Build and Send Cell Start Req to MAC */ - ret = duBuildAndSendMacCellStartReq(); - - } - } - } - else - { - DU_LOG("\nMac cell cfg failed"); - ret = RFAILED; - } - return ret; + if(macCellCfgCfm->cellId == duCb.actvCellLst[actvCellIdx]->cellId) + { + duCb.actvCellLst[actvCellIdx]->duMacCellCfg = NULLP; + } + } + if(macCellCfgCfm->rsp == ROK) + { + /* Build and send GNB-DU config update */ + ret = BuildAndSendDUConfigUpdate(); + + /* Build and Send Cell Start Req to MAC */ + ret = duBuildAndSendMacCellStartReq(); + } + else + { + /* TODO : Action to be taken if cell configuration fails. + * Should CU be informed? */ + + DU_LOG("\nMac cell cfg failed"); + ret = RFAILED; + } + return ret; } /******************************************************************* @@ -1640,15 +1634,15 @@ uint8_t duHandleMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm) * ****************************************************************/ uint8_t duHandleSlotInd(Pst *pst, SlotIndInfo *slotInfo) { - - DU_LOG("\nDU APP : Slot Indication received"); - if(slotInfo->cellId <=0 || slotInfo->cellId > MAX_NUM_CELL) { DU_LOG("\nDU APP : Invalid Cell Id %d", slotInfo->cellId); } if(!duCb.actvCellLst[slotInfo->cellId-1]->firstSlotIndRcvd) { +#ifdef ODU_SLOT_IND_DEBUG_LOG + DU_LOG("\nDU APP : Slot Indication received"); +#endif duCb.actvCellLst[slotInfo->cellId-1]->firstSlotIndRcvd = true; if((duCb.actvCellLst[slotInfo->cellId-1] != NULL) && \ (duCb.actvCellLst[slotInfo->cellId-1]->cellStatus == \