X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Frg_lmm.c;h=9e49c55efc0bcdb8b75919a486e5f03d3ef6128f;hb=49dec2270f1b3c03b36a801e153bf0786edffc24;hp=19bfcf04b90a594824957d1c6f8fec06f34477be;hpb=d2d9dcbd92e8f1be15dd5891aaf9ada9bc071e1a;p=o-du%2Fl2.git diff --git a/src/5gnrmac/rg_lmm.c b/src/5gnrmac/rg_lmm.c index 19bfcf04b..9e49c55ef 100755 --- a/src/5gnrmac/rg_lmm.c +++ b/src/5gnrmac/rg_lmm.c @@ -38,6 +38,7 @@ static int RLOG_FILE_ID=220; static int RLOG_MODULE_ID=4096; /* header include files (.h) */ +#include "stdbool.h" #include "envopt.h" /* environment options */ #include "envdep.h" /* environment dependent */ #include "envind.h" /* environment independent */ @@ -83,9 +84,11 @@ 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" + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ @@ -96,7 +99,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(( @@ -132,7 +137,7 @@ RgMngmt *cfm, Pst *cfmPst )); -extern U16 packMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); +extern int packMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); packMacCellCfgConfirm packMacCellCfmOpts[] = { @@ -246,6 +251,9 @@ Reason reason; /* reason */ /* Initialize Scheduler as well */ schActvInit(ENTRG, (DEFAULT_CELLS + SCH_INST_START), DFLT_REGION, PWR_UP); + /* Initialize lower mac */ + lwrMacInit(); + RETVALUE(ROK); } /* rgActvInit */ @@ -1984,13 +1992,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 @@ -2104,7 +2112,7 @@ int MacHdlCellCfgReq ) { Pst cfmPst; - int ret = ROK; + uint16_t ret = ROK; RgCellCb *cellCb; MacCellCb *macCellCb; Inst inst = pst->dstInst; @@ -2139,6 +2147,9 @@ int MacHdlCellCfgReq macCellCfgFillCfmPst(pst,&cfmPst); ret = (*packMacCellCfmOpts[cfmPst.selector])(&cfmPst,&macCellCfgCfm); } +#ifdef INTEL_WLS + LwrMacEnqueueWlsBlock(); +#endif return ret; } /* end of MacHdlCellCfgReq */ @@ -2191,6 +2202,70 @@ 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.rootSeqLen = macCellCfg->prachCfg.rootSeqLen; + 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.freqAlloc.startPrb = macCellCfg->initialDlBwp.bwp.firstPrb; + schCellCfg.schInitialDlBwp.bwp.freqAlloc.numPrb = macCellCfg->initialDlBwp.bwp.numPrb; + schCellCfg.schInitialDlBwp.bwp.scs = macCellCfg->initialDlBwp.bwp.scs; + schCellCfg.schInitialDlBwp.bwp.cyclicPrefix = macCellCfg->initialDlBwp.bwp.cyclicPrefix; + schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.searchSpaceId = + macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.searchSpaceId; + schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.coresetId = + macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.coresetId; + schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.monitoringSlot = + macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.monitoringSlot; + schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.duration = + macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.duration; + schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.monitoringSymbol = + macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.monitoringSymbol; + schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel1 = + macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel1; + schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel2 = + macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel2; + schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel4 = + macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel4; + schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel8 = + macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel8; + schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel16 = + macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.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 UL BWP */ + schCellCfg.schInitialUlBwp.bwp.freqAlloc.startPrb = macCellCfg->initialUlBwp.bwp.firstPrb; + schCellCfg.schInitialUlBwp.bwp.freqAlloc.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; @@ -2260,7 +2335,7 @@ int MacProcSchCellCfgCfm { if(schCellCfgCfm->rsp == RSP_OK) { - sendToLowerMac(PARAM_REQUEST, 0, (void *)NULL); + sendToLowerMac(CONFIG_REQUEST, 0, (void *)NULL); } else {