#include "lkw.h"
#include "lrg.x"
#include "lkw.x"
+#include "du_app_mac_inf.h"
#include "du_cfg.h"
#include "du_mgr.h"
#include "du_sctp.h"
#include "lsctp.h"
#include "legtp.h"
#include "lphy_stub.h"
+#include "du_utils.h"
U8 rlcDlCfg = 0;
U8 numRlcDlSaps = 0;
packMacCellCfgReq packMacCellCfgOpts[] =
{
packMacCellCfg, /* packing for loosely coupled */
- MacHdlCellCfgReq, /* packing for tightly coupled */
+ MacProcCellCfgReq, /* packing for tightly coupled */
packMacCellCfg, /* packing for light weight loosly coupled */
};
DuMacCellStartReq packMacCellStartReqOpts[] =
{
packMacCellStartReq, /* Loose coupling */
- MacHdlCellStartReq, /* TIght coupling */
+ MacProcCellStartReq, /* TIght coupling */
packMacCellStartReq /* Light weight-loose coupling */
};
DuMacCellStopReq packMacCellStopReqOpts[] =
{
packMacCellStopReq, /* Loose coupling */
- MacHdlCellStopReq, /* TIght coupling */
+ MacProcCellStopReq, /* TIght coupling */
packMacCellStopReq /* Light weight-loose coupling */
};
genCfg->lmPst.pool = RLC_POOL;
genCfg->lmPst.selector = ODU_SELECTOR_LC;
- /* Fill Header */
+ /* Fill Header */
kwMngmt.hdr.msgType = TCFG;
kwMngmt.hdr.msgLen = 0;
kwMngmt.hdr.entId.ent = ENTKW;
lSap->procId = DU_PROC;
lSap->ent = ENTKW;
lSap->inst = (inst == RLC_UL_INST) ?
- RLC_DL_INST : RLC_UL_INST;
+ RLC_DL_INST : RLC_UL_INST;
lSap->sapId = 0;
lSap->selector = ODU_SELECTOR_LC;
kwMngmt.hdr.elmId.elmnt = STUDXSAP;
{
DuCellCb *cell = NULLP;
DU_ALLOC(cell, sizeof(DuCellCb))
- if(cell == NULLP)
- {
- DU_LOG("\nDU_APP : Memory Allocation failed in duProcCfgComplete");
- ret = RFAILED;
- }
- else
- {
- U32 nci;
- U8 idx1;
- memset(cell, 0, sizeof(DuCellCb));
- cell->cellId = ++cellId;
- cell->cellInfo.nrEcgi.plmn.mcc[0] = PLMN_MCC0;
- cell->cellInfo.nrEcgi.plmn.mcc[1] = PLMN_MCC1;
- cell->cellInfo.nrEcgi.plmn.mcc[2] = PLMN_MCC2;
- cell->cellInfo.nrEcgi.plmn.mnc[0] = PLMN_MNC0;
- cell->cellInfo.nrEcgi.plmn.mnc[1] = PLMN_MNC1;
- cell->cellInfo.nrEcgi.plmn.mnc[2] = PLMN_MNC2;
- cell->cellInfo.nrEcgi.cellId = NR_CELL_ID;
- cell->cellInfo.nrPci = NR_PCI;
- cell->cellInfo.fiveGsTac = DU_TAC;
- for(idx1=0; idx1<MAX_PLMN; idx1++)
- {
- cell->cellInfo.plmn[idx1].mcc[0] = PLMN_MCC0;
- cell->cellInfo.plmn[idx1].mcc[1] = PLMN_MCC1;
- cell->cellInfo.plmn[idx1].mcc[2] = PLMN_MCC2;
- cell->cellInfo.plmn[idx1].mnc[0] = PLMN_MNC0;
- cell->cellInfo.plmn[idx1].mnc[1] = PLMN_MNC1;
- cell->cellInfo.plmn[idx1].mnc[2] = PLMN_MNC2;
+ if(cell == NULLP)
+ {
+ DU_LOG("\nDU_APP : Memory Allocation failed in duProcCfgComplete");
+ ret = RFAILED;
+ }
+ else
+ {
+ U32 nci;
+ U8 idx1;
+ memset(cell, 0, sizeof(DuCellCb));
+ cell->cellId = ++cellId;
+ cell->cellInfo.nrEcgi.plmn.mcc[0] = PLMN_MCC0;
+ cell->cellInfo.nrEcgi.plmn.mcc[1] = PLMN_MCC1;
+ cell->cellInfo.nrEcgi.plmn.mcc[2] = PLMN_MCC2;
+ cell->cellInfo.nrEcgi.plmn.mnc[0] = PLMN_MNC0;
+ cell->cellInfo.nrEcgi.plmn.mnc[1] = PLMN_MNC1;
+ cell->cellInfo.nrEcgi.plmn.mnc[2] = PLMN_MNC2;
+ cell->cellInfo.nrEcgi.cellId = NR_CELL_ID;
+ cell->cellInfo.nrPci = NR_PCI;
+ cell->cellInfo.fiveGsTac = DU_TAC;
+ for(idx1=0; idx1<MAX_PLMN; idx1++)
+ {
+ cell->cellInfo.plmn[idx1].mcc[0] = PLMN_MCC0;
+ cell->cellInfo.plmn[idx1].mcc[1] = PLMN_MCC1;
+ cell->cellInfo.plmn[idx1].mcc[2] = PLMN_MCC2;
+ cell->cellInfo.plmn[idx1].mnc[0] = PLMN_MNC0;
+ cell->cellInfo.plmn[idx1].mnc[1] = PLMN_MNC1;
+ cell->cellInfo.plmn[idx1].mnc[2] = PLMN_MNC2;
+ }
+ cell->cellInfo.maxUe = duCfgParam.maxUe;
+ cell->cellStatus = CELL_OUT_OF_SERVICE;
+ nci = (U16)cell->cellInfo.nrEcgi.cellId;
+
+ duCb.cfgCellLst[nci-1] = cell;
+ duCb.numCfgCells++;
}
- cell->cellInfo.maxUe = duCfgParam.maxUe;
- cell->cellStatus = CELL_OUT_OF_SERVICE;
- nci = (U16)cell->cellInfo.nrEcgi.cellId;
-
- duCb.cfgCellLst[nci-1] = cell;
- duCb.numCfgCells++;
}
- }
if(ret != RFAILED)
{
//Start layer configs
duBuildRlcLsapCfg(ENTRG, (Inst)RLC_UL_INST, cellIdx);
}
duBuildRlcLsapCfg(ENTKW, (Inst)RLC_UL_INST, 0);
-
+
return ROK;
}
{
duBuildRlcLsapCfg(ENTRG, (Inst)RLC_DL_INST, cellIdx);
}
-
+
return ROK;
}
/**************************************************************************
{
switch (cntrl->hdr.elmId.elmnt)
{
- case STRGUSAP:
- {
- if (pst->srcInst == RLC_DL_INST)
- {
- DU_LOG("\nDU_APP : BIND OF RLC DL TO MAC (RGU) SAP SUCCESSFUL");
- macCfgInst++;
- if(macCfgInst < DEFAULT_CELLS)
- {
- macCfgInst = 0;
- duBindUnbindRlcToMacSap((Inst) RLC_DL_INST, ABND);
- }
- else
- {
- duBindUnbindRlcToMacSap((Inst) RLC_UL_INST, ABND);
- }
- }
- else
- {
- DU_LOG("\nDU_APP : BIND OF RLC UL TO MAC (RGU) SAP SUCCESSFUL");
- macCfgInst++;
- if(macCfgInst < DEFAULT_CELLS)
- {
- duBindUnbindRlcToMacSap((Inst) RLC_UL_INST, ABND);
- }
- else
- {
- duSendSchCfg();
- }
- break;
- }
- }
+ case STRGUSAP:
+ {
+ if (pst->srcInst == RLC_DL_INST)
+ {
+ DU_LOG("\nDU_APP : BIND OF RLC DL TO MAC (RGU) SAP SUCCESSFUL");
+ macCfgInst++;
+ if(macCfgInst < DEFAULT_CELLS)
+ {
+ macCfgInst = 0;
+ duBindUnbindRlcToMacSap((Inst) RLC_DL_INST, ABND);
+ }
+ else
+ {
+ duBindUnbindRlcToMacSap((Inst) RLC_UL_INST, ABND);
+ }
+ }
+ else
+ {
+ DU_LOG("\nDU_APP : BIND OF RLC UL TO MAC (RGU) SAP SUCCESSFUL");
+ macCfgInst++;
+ if(macCfgInst < DEFAULT_CELLS)
+ {
+ duBindUnbindRlcToMacSap((Inst) RLC_UL_INST, ABND);
+ }
+ else
+ {
+ duSendSchCfg();
+ }
+ break;
+ }
+ }
}
}
{
switch(cfm->hdr.elmId.elmnt)
{
- case STGEN:
- {
- rlcUlCfg |= RLC_GEN_CFG;
- break;
- }
- case STRGUSAP:
- {
- numRlcMacSaps++;
- if(numRlcMacSaps == DEFAULT_CELLS)
- {
- rlcUlCfg |= RLC_MAC_SAP_CFG;
- numRlcMacSaps = 0;
- }
- break;
- }
- case STUDXSAP:
- {
- rlcUlCfg |= RLC_UDX_SAP_CFG;
- break;
-
- }
- default:
- break;
+ case STGEN:
+ {
+ rlcUlCfg |= RLC_GEN_CFG;
+ break;
+ }
+ case STRGUSAP:
+ {
+ numRlcMacSaps++;
+ if(numRlcMacSaps == DEFAULT_CELLS)
+ {
+ rlcUlCfg |= RLC_MAC_SAP_CFG;
+ numRlcMacSaps = 0;
+ }
+ break;
+ }
+ case STUDXSAP:
+ {
+ rlcUlCfg |= RLC_UDX_SAP_CFG;
+ break;
+
+ }
+ default:
+ break;
}
DU_LOG("\nDU_APP : RLC UL Cfg Cfm received for the element %d ",cfm->hdr.elmId.elmnt);
if(rlcUlCfg == DU_RLC_UL_CONFIGURED)
{
- rlcUlCfg = 0;
- numRlcMacSaps = 0;
- //Start configuration of RLC DL
- duSendRlcDlCfg();
+ rlcUlCfg = 0;
+ numRlcMacSaps = 0;
+ //Start configuration of RLC DL
+ duSendRlcDlCfg();
}
}
{
switch(cfm->hdr.elmId.elmnt)
{
- case STGEN:
- {
- rlcDlCfg |= RLC_GEN_CFG;
- break;
- }
- case STRGUSAP:
- {
- numRlcMacSaps++;
- if(numRlcMacSaps == DEFAULT_CELLS)
- {
- rlcDlCfg |= RLC_MAC_SAP_CFG;
- numRlcMacSaps = 0;
- }
- break;
- }
- case STUDXSAP:
- {
- rlcDlCfg |= RLC_UDX_SAP_CFG;
- break;
-
- }
- default:
- break;
+ case STGEN:
+ {
+ rlcDlCfg |= RLC_GEN_CFG;
+ break;
+ }
+ case STRGUSAP:
+ {
+ numRlcMacSaps++;
+ if(numRlcMacSaps == DEFAULT_CELLS)
+ {
+ rlcDlCfg |= RLC_MAC_SAP_CFG;
+ numRlcMacSaps = 0;
+ }
+ break;
+ }
+ case STUDXSAP:
+ {
+ rlcDlCfg |= RLC_UDX_SAP_CFG;
+ break;
+
+ }
+ default:
+ break;
}
DU_LOG("\nDU_APP : RLC DL Cfg Cfm received for the element %d ",cfm->hdr.elmId.elmnt);
if(rlcDlCfg == DU_RLC_DL_CONFIGURED)
{
- rlcDlCfg = 0;
- //Start configuration of MAC
- duSendMacCfg();
+ rlcDlCfg = 0;
+ //Start configuration of MAC
+ duSendMacCfg();
}
}
DU_SET_ZERO(&rgMngmt, sizeof(RgMngmt));
genCfg = &(rgMngmt.t.cfg.s.genCfg);
-
+
/*----------- Fill General Configuration Parameters ---------*/
genCfg->mem.region = MAC_MEM_REGION;
- genCfg->mem.pool = RG_POOL;
+ genCfg->mem.pool = MAC_POOL;
genCfg->tmrRes = 10;
genCfg->numRguSaps = 2;
genCfg->lmPst.prior = PRIOR0;
genCfg->lmPst.route = RTESPEC;
genCfg->lmPst.region = MAC_MEM_REGION;
- genCfg->lmPst.pool = RG_POOL;
+ genCfg->lmPst.pool = MAC_POOL;
genCfg->lmPst.selector = ODU_SELECTOR_LC;
- /* Fill Header */
+ /* Fill Header */
rgMngmt.hdr.msgType = TCFG;
rgMngmt.hdr.msgLen = 0;
rgMngmt.hdr.entId.ent = ENTRG;
rgMngmt.hdr.response.prior = PRIOR0;
rgMngmt.hdr.response.route = RTESPEC;
rgMngmt.hdr.response.mem.region = MAC_MEM_REGION;
- rgMngmt.hdr.response.mem.pool = RG_POOL;
+ rgMngmt.hdr.response.mem.pool = MAC_POOL;
rgMngmt.hdr.response.selector = ODU_SELECTOR_LC;
/* Fill Pst */
uSap = &(rgMngmt.t.cfg.s.rguSap);
uSap->mem.region = MAC_MEM_REGION;
- uSap->mem.pool = RG_POOL;
+ uSap->mem.pool = MAC_POOL;
uSap->suId = 0;
uSap->spId = sapId;
uSap->procId = DU_PROC;
rgMngmt.hdr.entId.inst = (Inst)0;
rgMngmt.hdr.elmId.elmnt = STRGUSAP;
rgMngmt.hdr.response.mem.region = MAC_MEM_REGION;
- rgMngmt.hdr.response.mem.pool = RG_POOL;
-
+ rgMngmt.hdr.response.mem.pool = MAC_POOL;
+
/* fill pst */
pst.selector = ODU_SELECTOR_LC;
pst.srcEnt = ENTDUAPP;
{
switch (cfm->hdr.elmId.elmnt)
{
- case STGEN:
- {
- macCfg |= MAC_GEN_CFG;
- break;
- }
- case STRGUSAP:
- {
- macCfg |= MAC_SAP_CFG;
- numRlcMacSaps++;
- break;
- }
- default:
- break;
+ case STGEN:
+ {
+ macCfg |= MAC_GEN_CFG;
+ break;
+ }
+ case STRGUSAP:
+ {
+ macCfg |= MAC_SAP_CFG;
+ numRlcMacSaps++;
+ break;
+ }
+ default:
+ break;
}
DU_LOG("\nDU_APP : MAC Cfg Cfm received for the element %d ",cfm->hdr.elmId.elmnt);
if(macCfg == MAC_CONFIGURED && numRlcMacSaps == MAX_MAC_SAP)
{
- macCfg = 0;
- DU_LOG("\nDU_APP : Completed sending Configs");
- macCfgInst = 0;
- duBindUnbindRlcToMacSap(RLC_DL_INST, ABND);
+ macCfg = 0;
+ DU_LOG("\nDU_APP : Completed sending Configs");
+ macCfgInst = 0;
+ duBindUnbindRlcToMacSap(RLC_DL_INST, ABND);
}
}
TRC2(smBindKwToRguSap)
- DU_SET_ZERO(&kwMngmt, sizeof(KwMngmt));
+ DU_SET_ZERO(&kwMngmt, sizeof(KwMngmt));
DU_SET_ZERO(&pst, sizeof(Pst));
if (action == ABND)
{
if(BuildAndSendF1SetupReq() != ROK)
{
- return RFAILED;
+ return RFAILED;
}
}
else if(ricParams.assocId == ntfy->u.assocChange.assocId)
{
if(BuildAndSendE2SetupReq() != ROK)
{
- return RFAILED;
+ return RFAILED;
}
}
else
- {
+ {
DU_LOG("\nDU_APP : Invalid assocId %d received", ntfy->u.assocChange.assocId);
- return RFAILED;
- }
+ return RFAILED;
+ }
return ROK;
}
pst->event = event;
pst->selector = ODU_SELECTOR_LC;
pst->pool= DU_POOL;
-
+
RETVALUE(ROK);
}
S16 duBuildEgtpCfgReq()
{
- Pst pst;
- EgtpConfig egtpCfg;
-
- DU_LOG("\nDU_APP : Sending EGTP config request");
-
- cmMemset((U8 *)&egtpCfg, 0, sizeof(EgtpConfig));
- cmMemcpy((U8 *)&egtpCfg, (U8 *)&duCfgParam.egtpParams, (PTR)sizeof(EgtpConfig));
-
- duFillEgtpPst(&pst, EVTCFGREQ);
- packEgtpCfgReq(&pst, egtpCfg);
-
- RETVALUE(ROK);
+ Pst pst;
+ EgtpConfig egtpCfg;
+
+ DU_LOG("\nDU_APP : Sending EGTP config request");
+
+ cmMemset((U8 *)&egtpCfg, 0, sizeof(EgtpConfig));
+ cmMemcpy((U8 *)&egtpCfg, (U8 *)&duCfgParam.egtpParams, (PTR)sizeof(EgtpConfig));
+
+ duFillEgtpPst(&pst, EVTCFGREQ);
+ packEgtpCfgReq(&pst, egtpCfg);
+
+ RETVALUE(ROK);
}
/*******************************************************************
* RFAILED - failure
*
* ****************************************************************/
-
+
S16 duSendEgtpSrvOpenReq()
{
Pst pst;
S16 duHdlEgtpSrvOpenComplete(CmStatus cfm)
{
- S16 ret = ROK;
-
- if(cfm.status == LCM_PRIM_OK)
- {
- DU_LOG("\nDU_APP : EGTP server opened successfully");
+ S16 ret = ROK;
+
+ if(cfm.status == LCM_PRIM_OK)
+ {
+ DU_LOG("\nDU_APP : EGTP server opened successfully");
#ifdef EGTP_TEST
- duSendEgtpTnlMgmtReq(EGTP_TNL_MGMT_ADD, EGTP_LCL_TEID, EGTP_REM_TEID);
+ duSendEgtpTnlMgmtReq(EGTP_TNL_MGMT_ADD, EGTP_LCL_TEID, EGTP_REM_TEID);
#endif
- }
- else
- {
- DU_LOG("\nDU_APP : EGTP server opening failed");
- ret = RFAILED;
- }
-
- RETVALUE(ret);
+ }
+ else
+ {
+ DU_LOG("\nDU_APP : EGTP server opening failed");
+ ret = RFAILED;
+ }
+
+ RETVALUE(ret);
}
/*******************************************************************
tnlEvt.action = action;
tnlEvt.lclTeid = lclTeid;
tnlEvt.remTeid = remTeid;
-
+
DU_LOG("\nDU_APP : Sending EGTP tunnel management request");
-
+
duFillEgtpPst(&pst, EVTTNLMGMTREQ);
packEgtpTnlMgmtReq(&pst, tnlEvt);
-
+
RETVALUE(ROK);
}
egtpMsg.msgHdr.extHdr.pdcpNmb.pres = FALSE;
egtpMsg.msgHdr.teId = 1;
egtpMsg.msg = mBuf;
-
+
egtpHdlDatInd(egtpMsg);
return ROK;
{
if(SAddPstMsgMult((Data *)data, datSize, mBuf) != ROK)
{
- DU_LOG("\nDU_APP : SAddPstMsgMult failed");
- SPutMsg(mBuf);
- RETVALUE(RFAILED);
+ DU_LOG("\nDU_APP : SAddPstMsgMult failed");
+ SPutMsg(mBuf);
+ RETVALUE(RFAILED);
}
}
else
S16 ret, cnt, idx;
Data revPkArray[CM_IPV4_HDRLEN];
Data pkArray[CM_IPV4_HDRLEN];
-
+
/* initialize locals */
cnt = 0;
cmMemset(revPkArray, 0, CM_IPV4_HDRLEN);
/* this function automatically reverses revPkArray */
ret = SAddPreMsgMult(revPkArray, (MsgLen)cnt, mBuf);
-
+
duSendEgtpDatInd(mBuf);
-
+
RETVALUE(ROK);
}
#endif /* EGTP_TEST */
cfg->instId = DEFAULT_CELLS + 1;
/* Filling of Gen config */
cfg->genCfg.mem.region = MAC_MEM_REGION;
- cfg->genCfg.mem.pool = RG_POOL;
+ cfg->genCfg.mem.pool = MAC_POOL;
cfg->genCfg.tmrRes = 10;
#ifdef LTE_ADV
cfg->genCfg.lmPst.prior = PRIOR0;
cfg->genCfg.lmPst.route = RTESPEC;
cfg->genCfg.lmPst.region = MAC_MEM_REGION;
- cfg->genCfg.lmPst.pool = RG_POOL;
+ cfg->genCfg.lmPst.pool = MAC_POOL;
cfg->genCfg.lmPst.selector = ODU_SELECTOR_LC;
/* Fill Header */
rgMngmt.hdr.entId.inst = DU_INST;
rgMngmt.hdr.elmId.elmnt = STSCHINST;
rgMngmt.hdr.response.mem.region = MAC_MEM_REGION;
- rgMngmt.hdr.response.mem.pool = RG_POOL;
+ rgMngmt.hdr.response.mem.pool = MAC_POOL;
/* Fill Pst */
pst.selector = ODU_SELECTOR_LC;
{
switch (cfm->hdr.elmId.elmnt)
{
- case STSCHINST:
- {
- DU_LOG("\nDU_APP : Received SCH CFG CFM at DU APP");
- break;
- }
- default:
- break;
+ case STSCHINST:
+ {
+ DU_LOG("\nDU_APP : Received SCH CFG CFM at DU APP");
+ break;
+ }
+ default:
+ break;
}
}
duLayerConfigComplete();
duFillEgtpPst(&pst, EVTSLOTIND);
packEgtpSlotInd(&pst);
-
+
RETVALUE(ROK);
-
+
}
/**************************************************************************
memcpy(duMacCellCfg,&duCfgParam.macCellCfg,sizeof(MacCellCfg));
/* Fill Pst */
- pst.selector = ODU_SELECTOR_LWLC;
- pst.srcEnt = ENTDUAPP;
- pst.dstEnt = ENTRG;
- pst.dstInst = 0;
- pst.srcInst = 0;
- pst.dstProcId = DU_PROC;
- pst.srcProcId = DU_PROC;
- pst.region = DU_APP_MEM_REGION;
- pst.pool = DU_POOL;
- pst.event = EVENT_MAC_CELL_CONFIG_REQ;
+ FILL_PST_DUAPP_TO_MAC(pst, EVENT_MAC_CELL_CONFIG_REQ);
/* Send MAC cell config to MAC */
return (*packMacCellCfgOpts[pst.selector])(&pst, duMacCellCfg);
* RFAILED - failure
*
***************************************************************************/
-int duHandleMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm)
+uint8_t duHandleMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm)
{
uint8_t actvCellIdx = 0;
- S16 ret = ROK;
+ uint8_t ret = ROK;
if(macCellCfgCfm->rsp == ROK)
{
* RFAILED - failure
*
* ****************************************************************/
-uint16_t duHandleSlotInd(Pst *pst, SlotInfo *slotInfo)
+uint8_t duHandleSlotInd(Pst *pst, SlotIndInfo *slotInfo)
{
-
+
DU_LOG("\nDU APP : Slot Indication received");
- if(slotInfo->cellId <=0 || slotInfo->cellId > DU_MAX_CELLS)
+ if(slotInfo->cellId <=0 || slotInfo->cellId > MAX_NUM_CELL)
{
DU_LOG("\nDU APP : Invalid Cell Id %d", slotInfo->cellId);
}
{
duCb.actvCellLst[slotInfo->cellId-1]->firstSlotIndRcvd = true;
if((duCb.actvCellLst[slotInfo->cellId-1] != NULL) && \
- (duCb.actvCellLst[slotInfo->cellId-1]->cellStatus == \
- ACTIVATION_IN_PROGRESS))
+ (duCb.actvCellLst[slotInfo->cellId-1]->cellStatus == \
+ ACTIVATION_IN_PROGRESS))
{
- DU_LOG("\nDU APP : 5G-NR Cell %d is UP", slotInfo->cellId);
- duCb.actvCellLst[slotInfo->cellId-1]->cellStatus = ACTIVATED;
+ DU_LOG("\nDU APP : 5G-NR Cell %d is UP", slotInfo->cellId);
+ duCb.actvCellLst[slotInfo->cellId-1]->cellStatus = ACTIVATED;
}
-
+
}
/* TODO : Slot Indication to be moved out of EGTP_TEST when
#endif
if((pst->selector == ODU_SELECTOR_LWLC) || (pst->selector == ODU_SELECTOR_TC))
- DU_FREE_SHRABL_BUF(MAC_MEM_REGION, pst->pool, slotInfo, sizeof(SlotInfo));
+ DU_FREE_SHRABL_BUF(MAC_MEM_REGION, pst->pool, slotInfo, sizeof(SlotIndInfo));
return ROK;
}
* RFAILED - failure
*
* ****************************************************************/
-uint16_t duBuildAndSendMacCellStartReq()
+uint8_t duBuildAndSendMacCellStartReq()
{
Pst pst;
MacCellStartInfo *cellStartInfo = NULL;
return RFAILED;
}
- for(uint8_t id = 0; id < DU_MAX_CELLS; id++)
+ for(uint8_t id = 0; id < MAX_NUM_CELL; id++)
{
if(duCb.actvCellLst[id])
{
- duCb.actvCellLst[id]->firstSlotIndRcvd = FALSE;
- cellStartInfo->cellId = duCb.actvCellLst[id]->cellInfo.nrEcgi.cellId;
-
- /* Fill Pst */
- pst.selector = ODU_SELECTOR_LWLC;
- pst.srcEnt = ENTDUAPP;
- pst.dstEnt = ENTRG;
- pst.dstInst = 0;
- pst.srcInst = 0;
- pst.dstProcId = DU_PROC;
- pst.srcProcId = DU_PROC;
- pst.region = DU_APP_MEM_REGION;
- pst.pool = DU_POOL;
- pst.event = EVENT_MAC_CELL_START_REQ;
-
- return (*packMacCellStartReqOpts[pst.selector])(&pst, cellStartInfo);
+ duCb.actvCellLst[id]->firstSlotIndRcvd = FALSE;
+ cellStartInfo->cellId = duCb.actvCellLst[id]->cellInfo.nrEcgi.cellId;
+
+ /* Fill Pst */
+ FILL_PST_DUAPP_TO_MAC(pst, EVENT_MAC_CELL_START_REQ);
+
+ return (*packMacCellStartReqOpts[pst.selector])(&pst, cellStartInfo);
}
}
return ROK;
* RFAILED - failure
*
* ****************************************************************/
-uint16_t duBuildAndSendMacCellStopReq()
+uint8_t duBuildAndSendMacCellStopReq()
{
Pst pst;
MacCellStopInfo *cellStopInfo = NULL;
-
+
DU_LOG("\nDU APP : Building and Sending cell stop request to MAC");
/* Send Cell Stop Request to MAC */
return RFAILED;
}
cellStopInfo->cellId = duCb.actvCellLst[0]->cellId;
-
+
/* Fill Pst */
- pst.selector = ODU_SELECTOR_LWLC;
- pst.srcEnt = ENTDUAPP;
- pst.dstEnt = ENTRG;
- pst.dstInst = 0;
- pst.srcInst = 0;
- pst.dstProcId = DU_PROC;
- pst.srcProcId = DU_PROC;
- pst.region = DU_APP_MEM_REGION;
- pst.pool = DU_POOL;
- pst.event = EVENT_MAC_CELL_STOP_REQ;
-
+ FILL_PST_DUAPP_TO_MAC(pst, EVENT_MAC_CELL_STOP_REQ);
+
return (*packMacCellStopReqOpts[pst.selector])(&pst, cellStopInfo);
}
* RFAILED - failure
*
* ****************************************************************/
-uint16_t duHandleStopInd(Pst *pst, MacCellStopInfo *cellStopId)
+uint8_t duHandleStopInd(Pst *pst, MacCellStopInfo *cellStopId)
{
- if(cellStopId->cellId <=0 || cellStopId->cellId > DU_MAX_CELLS)
+ if(cellStopId->cellId <=0 || cellStopId->cellId > MAX_NUM_CELL)
{
DU_LOG("\nDU APP : Invalid Cell Id %d", cellStopId->cellId);
}
- if(duCb.actvCellLst[cellStopId->cellId-1] != NULL)
- {
+ if(duCb.actvCellLst[cellStopId->cellId-1] != NULL)
+ {
if(duCb.actvCellLst[cellStopId->cellId-1]->firstSlotIndRcvd)
{
- duCb.actvCellLst[cellStopId->cellId-1]->firstSlotIndRcvd = false;
- if((duCb.actvCellLst[cellStopId->cellId-1]->cellStatus == \
- ACTIVATED))
- {
- DU_LOG("\nDU APP : 5G-NR Cell %d is DOWN", cellStopId->cellId);
- duCb.actvCellLst[cellStopId->cellId-1]->cellStatus = DELETION_IN_PROGRESS;
- }
+ duCb.actvCellLst[cellStopId->cellId-1]->firstSlotIndRcvd = false;
+ if((duCb.actvCellLst[cellStopId->cellId-1]->cellStatus == \
+ ACTIVATED))
+ {
+ DU_LOG("\nDU APP : 5G-NR Cell %d is DOWN", cellStopId->cellId);
+ duCb.actvCellLst[cellStopId->cellId-1]->cellStatus = DELETION_IN_PROGRESS;
+ }
}
- }
+ }
if((pst->selector == ODU_SELECTOR_LWLC) || (pst->selector == ODU_SELECTOR_TC))
DU_FREE_SHRABL_BUF(MAC_MEM_REGION, pst->pool, cellStopId, sizeof(MacCellStopInfo));
* RFAILED - failure
*
* ****************************************************************/
-uint16_t duHandleUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo)
+uint8_t duHandleUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo)
{
-
+
DU_LOG("\nDU APP : UL CCCH Indication received");
return (duProcUlCcchInd(ulCcchIndInfo));