X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Frg_lmm.c;h=e96308a338a6d6b144d1952f15b50d2132efcc38;hb=c4b8f7a0c5c6491323c6a87b2d1031d61ee0188e;hp=45ab0666187d5fd2f2eea49626d729e28872d808;hpb=46fa0c4b110175e7bc5d56f1e419fe4005db36b9;p=o-du%2Fl2.git diff --git a/src/5gnrmac/rg_lmm.c b/src/5gnrmac/rg_lmm.c index 45ab06661..e96308a33 100755 --- a/src/5gnrmac/rg_lmm.c +++ b/src/5gnrmac/rg_lmm.c @@ -83,7 +83,7 @@ static int RLOG_MODULE_ID=4096; #endif #include "ss_rbuf.h" #include "ss_rbuf.x" - +#include "lwr_mac.h" /* MAC CL defines */ #include "mac.h" #include "lwr_mac_phy.h" #include "lwr_mac_fsm.h" @@ -98,7 +98,9 @@ EXTERN Void rgGetSId ARGS((SystemId *s)); /* Public variable declaration */ ClCb clGlobalCp; -MacCb macCb; +extern MacCb macCb; + +int MacSchCellCfgReq(Pst *pst,MacCellCfg *macCellCfg); /* forward references */ PRIVATE U16 rgLMMGenCfg ARGS(( @@ -134,7 +136,7 @@ RgMngmt *cfm, Pst *cfmPst )); -extern U16 packMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); +extern int packMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); packMacCellCfgConfirm packMacCellCfmOpts[] = { @@ -1989,13 +1991,13 @@ Inst inst; * -# ROK **/ #ifdef ANSI -PUBLIC S16 MacSchGenCfgReq +PUBLIC int MacSchGenCfgReq ( Pst *pst, /* post structure */ RgMngmt *cfg /* config structure */ ) #else -PUBLIC S16 MacSchGenCfgReq(pst, cfg) +PUBLIC int MacSchGenCfgReq(pst, cfg) Pst *pst; /* post structure */ RgMngmt *cfg; /* config structure */ #endif @@ -2109,7 +2111,7 @@ int MacHdlCellCfgReq ) { Pst cfmPst; - int ret = ROK; + uint16_t ret = ROK; RgCellCb *cellCb; MacCellCb *macCellCb; Inst inst = pst->dstInst; @@ -2199,6 +2201,69 @@ int MacSchCellCfgReq schCellCfg.sib1SchCfg.searchSpaceZeroIndex = macCellCfg->sib1Cfg.searchSpaceZeroIndex; schCellCfg.sib1SchCfg.sib1Mcs = macCellCfg->sib1Cfg.sib1Mcs; + /* fill RACH config params */ + schCellCfg.schRachCfg.prachCfgIdx = macCellCfg->prachCfg.prachCfgIdx; + schCellCfg.schRachCfg.prachSubcSpacing = \ + macCellCfg->prachCfg.prachSubcSpacing; + schCellCfg.schRachCfg.msg1FreqStart = macCellCfg->prachCfg.msg1FreqStart; + schCellCfg.schRachCfg.msg1Fdm = macCellCfg->prachCfg.msg1Fdm; + schCellCfg.schRachCfg.rootSeqIdx = macCellCfg->prachCfg.fdm[0].rootSeqIdx; + schCellCfg.schRachCfg.numRootSeq = macCellCfg->prachCfg.fdm[0].numRootSeq; + schCellCfg.schRachCfg.k1 = macCellCfg->prachCfg.fdm[0].k1; + schCellCfg.schRachCfg.ssbPerRach = macCellCfg->prachCfg.ssbPerRach; + schCellCfg.schRachCfg.prachMultCarrBand = \ + macCellCfg->prachCfg.prachMultCarrBand; + schCellCfg.schRachCfg.raContResTmr = macCellCfg->prachCfg.raContResTmr; + schCellCfg.schRachCfg.rsrpThreshSsb = macCellCfg->prachCfg.rsrpThreshSsb; + schCellCfg.schRachCfg.raRspWindow = macCellCfg->prachCfg.raRspWindow; + + /* fill initial DL BWP */ + schCellCfg.schInitialDlBwp.bwp.firstPrb = macCellCfg->initialDlBwp.bwp.firstPrb; + schCellCfg.schInitialDlBwp.bwp.numPrb = macCellCfg->initialDlBwp.bwp.numPrb; + schCellCfg.schInitialDlBwp.bwp.scs = macCellCfg->initialDlBwp.bwp.scs; + schCellCfg.schInitialDlBwp.bwp.cyclicPrefix = macCellCfg->initialDlBwp.bwp.cyclicPrefix; + schCellCfg.schInitialDlBwp.pdcchCommon.raSearchSpace.searchSpaceId = + macCellCfg->initialDlBwp.pdcchCommon.raSearchSpace.searchSpaceId; + schCellCfg.schInitialDlBwp.pdcchCommon.raSearchSpace.coresetId = + macCellCfg->initialDlBwp.pdcchCommon.raSearchSpace.coresetId; + schCellCfg.schInitialDlBwp.pdcchCommon.raSearchSpace.monitoringSlot = + macCellCfg->initialDlBwp.pdcchCommon.raSearchSpace.monitoringSlot; + schCellCfg.schInitialDlBwp.pdcchCommon.raSearchSpace.duration = + macCellCfg->initialDlBwp.pdcchCommon.raSearchSpace.duration; + schCellCfg.schInitialDlBwp.pdcchCommon.raSearchSpace.monitoringSymbol = + macCellCfg->initialDlBwp.pdcchCommon.raSearchSpace.monitoringSymbol; + schCellCfg.schInitialDlBwp.pdcchCommon.raSearchSpace.candidate.aggLevel1 = + macCellCfg->initialDlBwp.pdcchCommon.raSearchSpace.candidate.aggLevel1; + schCellCfg.schInitialDlBwp.pdcchCommon.raSearchSpace.candidate.aggLevel2 = + macCellCfg->initialDlBwp.pdcchCommon.raSearchSpace.candidate.aggLevel2; + schCellCfg.schInitialDlBwp.pdcchCommon.raSearchSpace.candidate.aggLevel4 = + macCellCfg->initialDlBwp.pdcchCommon.raSearchSpace.candidate.aggLevel4; + schCellCfg.schInitialDlBwp.pdcchCommon.raSearchSpace.candidate.aggLevel8 = + macCellCfg->initialDlBwp.pdcchCommon.raSearchSpace.candidate.aggLevel8; + schCellCfg.schInitialDlBwp.pdcchCommon.raSearchSpace.candidate.aggLevel16 = + macCellCfg->initialDlBwp.pdcchCommon.raSearchSpace.candidate.aggLevel16; + schCellCfg.schInitialDlBwp.pdschCommon.k0 = macCellCfg->initialDlBwp.pdschCommon.k0; + schCellCfg.schInitialDlBwp.pdschCommon.mappingType = + macCellCfg->initialDlBwp.pdschCommon.mappingType; + schCellCfg.schInitialDlBwp.pdschCommon.startSymbol = + macCellCfg->initialDlBwp.pdschCommon.startSymbol; + schCellCfg.schInitialDlBwp.pdschCommon.lengthSymbol = + macCellCfg->initialDlBwp.pdschCommon.lengthSymbol; + + /* fill initial DL BWP */ + schCellCfg.schInitialUlBwp.bwp.firstPrb = macCellCfg->initialUlBwp.bwp.firstPrb; + schCellCfg.schInitialUlBwp.bwp.numPrb = macCellCfg->initialUlBwp.bwp.numPrb; + schCellCfg.schInitialUlBwp.bwp.scs = macCellCfg->initialUlBwp.bwp.scs; + schCellCfg.schInitialUlBwp.bwp.cyclicPrefix = macCellCfg->initialUlBwp.bwp.cyclicPrefix; + schCellCfg.schInitialUlBwp.puschCommon.k2 = macCellCfg->initialUlBwp.puschCommon.k2; + schCellCfg.schInitialUlBwp.puschCommon.mappingType = + macCellCfg->initialUlBwp.puschCommon.mappingType; + schCellCfg.schInitialUlBwp.puschCommon.startSymbol = + macCellCfg->initialUlBwp.puschCommon.startSymbol; + schCellCfg.schInitialUlBwp.puschCommon.lengthSymbol = + macCellCfg->initialUlBwp.puschCommon.lengthSymbol; + + cfgPst.srcProcId = pst->dstProcId; cfgPst.dstProcId = pst->srcProcId; cfgPst.srcEnt = ENTRG; @@ -2268,7 +2333,7 @@ int MacProcSchCellCfgCfm { if(schCellCfgCfm->rsp == RSP_OK) { - sendToLowerMac(PARAM_REQUEST, 0, (void *)NULL); + sendToLowerMac(CONFIG_REQUEST, 0, (void *)NULL); } else {