static int RLOG_MODULE_ID=4096;
/* header include files (.h) */
-#include "envopt.h" /* environment options */
-#include "envdep.h" /* environment dependent */
-#include "envind.h" /* environment independent */
-#include "gen.h" /* general */
-#include "ssi.h" /* system services */
-#include "cm_tkns.h" /* Common Token Defines */
-#include "cm_llist.h" /* Common Link List Defines */
-#include "cm_hash.h" /* Common Hash List Defines */
-#include "cm_mblk.h" /* common memory link list library */
-#include "cm_lte.h" /* Common LTE Defines */
+#include "common_def.h"
#include "rg_env.h" /* MAC Environment Defines */
#include "crg.h" /* CRG Interface defines */
#include "rgu.h" /* RGU Interface defines */
#include "du_log.h"
/* header/extern include files (.x) */
-#include "gen.x" /* general */
-#include "ssi.x" /* system services */
-#include "cm5.x" /* system services */
-#include "cm_tkns.x" /* Common Token Definitions */
-#include "cm_llist.x" /* Common Link List Definitions */
-#include "cm_lib.x" /* Common Library Definitions */
-#include "cm_hash.x" /* Common Hash List Definitions */
-#include "cm_mblk.x" /* common memory link list library */
-#include "cm_lte.x" /* Common LTE Defines */
#include "crg.x" /* CRG Interface includes */
#include "rgu.x" /* RGU Interface includes */
#include "tfu.x" /* RGU Interface includes */
/* Public variable declaration */
ClCb clGlobalCp;
-MacCb macCb;
+extern MacCb macCb;
int MacSchCellCfgReq(Pst *pst,MacCellCfg *macCellCfg);
{
case STRGUSAP:
if ((cfg->s.rguSap.spId > LRG_MAX_RGU_SAPS) &&
- (cfg->s.rguSap.selector != RGU_SEL_TC) &&
- (cfg->s.rguSap.selector != RGU_SEL_LC))
+ (cfg->s.rguSap.selector != ODU_SELECTOR_TC) &&
+ (cfg->s.rguSap.selector != ODU_SELECTOR_LC))
{
ret = LCM_REASON_INVALID_PAR_VAL;
RLOG0(L_ERROR, "unsupported Selector value for RGU");
* there is cfg request with sap is 1*/
break;
case STCRGSAP:
- if ((cfg->s.crgSap.selector != CRG_SEL_TC) &&
- (cfg->s.crgSap.selector != CRG_SEL_LC))
+ if ((cfg->s.crgSap.selector != ODU_SELECTOR_TC) &&
+ (cfg->s.crgSap.selector != ODU_SELECTOR_LC))
{
ret = LCM_REASON_INVALID_PAR_VAL;
RLOG0(L_ERROR, "unsupported Selector value for CRG");
break;
case STTFUSAP:
#ifndef CL_MAC_LWLC
- if ((cfg->s.tfuSap.selector != TFU_SEL_TC) &&
- (cfg->s.tfuSap.selector != TFU_SEL_LC))
+ if ((cfg->s.tfuSap.selector != ODU_SELECTOR_TC) &&
+ (cfg->s.tfuSap.selector != ODU_SELECTOR_LC))
{
ret = LCM_REASON_INVALID_PAR_VAL;
RLOG0(L_ERROR, "unsupported Selector value for TFU");
{
RETVALUE(LCM_REASON_INVALID_MSGTYPE);
}
- if ((cfg->s.genCfg.lmPst.selector != LRG_SEL_TC) &&
- (cfg->s.genCfg.lmPst.selector != LRG_SEL_LC))
+ if ((cfg->s.genCfg.lmPst.selector != ODU_SELECTOR_TC) &&
+ (cfg->s.genCfg.lmPst.selector != ODU_SELECTOR_LC))
{
RLOG0(L_ERROR, "unsupported Selector value for RGU");
RETVALUE(LCM_REASON_INVALID_PAR_VAL);
pst->dstEnt = ENTDUAPP;
pst->dstInst = 0;
pst->srcInst = 0;
- pst->selector = MAC_SCH_LC_SELECTOR;
+ pst->selector = ODU_SELECTOR_LC;
RgMiLrgSchCfgCfm(pst, cfm);
RETVALUE(ROK);
cfmPst->dstInst = 0;
cfmPst->dstProcId = cfmPst->srcProcId;
- cfmPst->selector = LRG_SEL_LC;
+ cfmPst->selector = ODU_SELECTOR_LC;
cfmPst->prior = reqPst->prior;
cfmPst->route = reqPst->route;
cfmPst->region = reqPst->region;
Pst cfmPst;
uint16_t ret = ROK;
RgCellCb *cellCb;
- MacCellCb *macCellCb;
+ MacCellCb *macCellCb = NULLP;
Inst inst = pst->dstInst;
cmMemset((U8 *)&cfmPst, 0, sizeof(Pst));
DU_LOG("\nMAC : macCellCb is NULL at handling of macCellCfg\n");
return RFAILED;
}
+ memset(macCellCb, 0, sizeof(MacCellCb));
macCb.macCell = macCellCb;
macCb.macCell->cellId = macCellCfg->cellId;
- /* Send cell cfg to scheduler */
+
+ MAC_ALLOC(cellCb->macCellCfg.sib1Cfg.sib1Pdu, macCellCfg->sib1Cfg.sib1PduLen);
+ if(cellCb->macCellCfg.sib1Cfg.sib1Pdu == NULLP)
+ {
+ DU_LOG("\nMAC : macCellCb is NULL at handling of sib1Pdu of macCellCfg\n");
+ return RFAILED;
+ }
+ memcpy(cellCb->macCellCfg.sib1Cfg.sib1Pdu, macCellCfg->sib1Cfg.sib1Pdu, macCellCfg->sib1Cfg.sib1PduLen);
+
+ /* Send cell cfg to scheduler */
ret = MacSchCellCfgReq(pst, macCellCfg);
if(ret != ROK)
{
MacCellCfgCfm macCellCfgCfm;
macCellCfgCfm.rsp = RSP_NOK;
- macCellCfgCfm.transId = macCellCfg->transId;
+ macCellCfgCfm.cellId = macCellCfg->cellId;
macCellCfgFillCfmPst(pst,&cfmPst);
ret = (*packMacCellCfmOpts[cfmPst.selector])(&cfmPst,&macCellCfgCfm);
}
+ else
+ {
+ if(macCellCfg->prachCfg.fdm[0].numUnusedRootSeq != 0)
+ {
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, macCellCfg->prachCfg.fdm[0].unsuedRootSeq,
+ macCellCfg->prachCfg.fdm[0].numUnusedRootSeq* sizeof(uint8_t));
+ }
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, macCellCfg->sib1Cfg.sib1Pdu, macCellCfg->sib1Cfg.sib1PduLen);
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, macCellCfg ,sizeof(MacCellCfg));
+ }
+
#ifdef INTEL_WLS
LwrMacEnqueueWlsBlock();
#endif
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.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.srcInst = 0;
cfgPst.dstEnt = ENTRG;
cfgPst.dstInst = 1;
- cfgPst.selector = MAC_SCH_TC_SELECTOR;
+ cfgPst.selector = ODU_SELECTOR_TC;
cfgPst.event = EVENT_SCH_CELL_CFG;
ret = (*SchCellCfgOpts[cfgPst.selector])(&cfgPst, &schCellCfg);
cmMemset((U8 *)&pst, 0, sizeof(Pst));
cellCb = rgCb[macCb.macInst].cell;
- macCellCfgCfm.transId = cellCb->macCellCfg.transId;
+ macCellCfgCfm.cellId = cellCb->macCellCfg.cellId;
macCellCfgCfm.rsp = response;
memcpy((void *)&pst, (void *)&rgCb[macCb.macInst].rgInit.lmPst, sizeof(Pst));