MacSchUeCreateReqFunc macSchUeCreateReqOpts[] =
{
packMacSchUeCreateReq, /* packing for loosely coupled */
- macSchUeCreateReq, /* packing for tightly coupled */
+ MacSchUeCreateReq, /* packing for tightly coupled */
packMacSchUeCreateReq /* packing for light weight loosely coupled */
};
-DuMacUeCreateRspFunc DuMacUeCreateRspOpts[] =
+MacDuUeCfgRspFunc MacDuUeCfgRspOpts[] =
{
- packDuMacUeCreateRsp, /* packing for loosely coupled */
- DuHandleMacUeCreateRsp, /* packing for tightly coupled */
- packDuMacUeCreateRsp, /* packing for light weight loosly coupled */
+ packDuMacUeCfgRsp, /* packing for loosely coupled */
+ DuProcMacUeCfgRsp, /* packing for tightly coupled */
+ packDuMacUeCfgRsp /* packing for light weight loosly coupled */
+};
+
+MacSchUeReconfigReqFunc macSchUeReconfigReqOpts[] =
+{
+ packMacSchUeReconfigReq, /* packing for loosely coupled */
+ MacSchUeReconfigReq, /* packing for tightly coupled */
+ packMacSchUeReconfigReq /* packing for light weight loosely coupled */
};
/*******************************************************************
* ****************************************************************/
uint8_t fillPdschServCellCfg(PdschServCellCfg macPdschCfg, SchPdschServCellCfg *schPdschCfg)
{
- schPdschCfg->maxMimoLayers = NULL;
if(macPdschCfg.maxMimoLayers)
{
- /* TODO : Optional parameter */
+ if(!schPdschCfg->maxMimoLayers)
+ {
+ MAC_ALLOC_SHRABL_BUF(schPdschCfg->maxMimoLayers, sizeof(uint8_t));
+ if(!schPdschCfg->maxMimoLayers)
+ {
+ DU_LOG("\nMAC :Memory Alloc MimoLayers Failed at fillPdschServCellCfg()");
+ return RFAILED;
+ }
+ }
+ *schPdschCfg->maxMimoLayers = *macPdschCfg.maxMimoLayers;
+ }
+ else
+ {
+ schPdschCfg->maxMimoLayers = NULLP;
}
schPdschCfg->numHarqProcForPdsch = \
macPdschCfg.numHarqProcForPdsch;
- schPdschCfg->maxCodeBlkGrpPerTb = NULL;
if(macPdschCfg.maxCodeBlkGrpPerTb)
{
- /* TODO : Optional parameter */
+ if(!schPdschCfg->maxCodeBlkGrpPerTb)
+ {
+ MAC_ALLOC_SHRABL_BUF(schPdschCfg->maxCodeBlkGrpPerTb, sizeof(SchMaxCodeBlkGrpPerTB));
+ if(!schPdschCfg->maxCodeBlkGrpPerTb)
+ {
+ DU_LOG("\nMAC :Memory Alloc for code Block Failed at fillPdschServCellCfg()");
+ return RFAILED;
+ }
+ }
+ *schPdschCfg->maxCodeBlkGrpPerTb = *macPdschCfg.maxCodeBlkGrpPerTb;
+ }
+ else
+ {
+ schPdschCfg->maxCodeBlkGrpPerTb = NULLP;
}
- schPdschCfg->codeBlkGrpFlushInd = NULL;
if(macPdschCfg.codeBlkGrpFlushInd)
{
- /* TODO : Optional parameter */
+ if(!schPdschCfg->codeBlkGrpFlushInd)
+ {
+ MAC_ALLOC_SHRABL_BUF(schPdschCfg->codeBlkGrpFlushInd, sizeof(bool));
+ if(!schPdschCfg->codeBlkGrpFlushInd)
+ {
+ DU_LOG("\nMAC :Memory Alloc for Flush Ind Failed at fillPdschServCellCfg()");
+ return RFAILED;
+ }
+ }
+ *schPdschCfg->codeBlkGrpFlushInd = *macPdschCfg.codeBlkGrpFlushInd;
+ }
+ else
+ {
+ schPdschCfg->codeBlkGrpFlushInd = NULLP;
}
- schPdschCfg->xOverhead = NULL;
if(macPdschCfg.xOverhead)
{
- /* TODO : Optional parameter */
+ if(!schPdschCfg->xOverhead)
+ {
+ MAC_ALLOC_SHRABL_BUF(schPdschCfg->xOverhead, sizeof(SchPdschXOverhead));
+ if(!schPdschCfg->xOverhead)
+ {
+ DU_LOG("\nMAC :Memory Alloc for xOverHead Failed at fillPdschServCellCfg()");
+ return RFAILED;
+ }
+ }
+ *schPdschCfg->xOverhead = *macPdschCfg.xOverhead;
+ }
+ else
+ {
+ schPdschCfg->xOverhead = NULLP;
}
return ROK;
{
uint8_t idx;
+ schPuschCfg->dataScramblingId = macPuschCfg.dataScramblingId;
schPuschCfg->dmrsUlCfgForPuschMapTypeA.addPos = \
macPuschCfg.dmrsUlCfgForPuschMapTypeA.addPos;
schPuschCfg->dmrsUlCfgForPuschMapTypeA.transPrecodDisabled.scramblingId0 = \
schPdschCfg->rbgSize = macPdschCfg.rbgSize;
schPdschCfg->numCodeWordsSchByDci = macPdschCfg.numCodeWordsSchByDci;
schPdschCfg->bundlingType = macPdschCfg.bundlingType;
-
+ if(schPdschCfg->bundlingType == STATIC_BUNDLING_TYPE)
+ {
+ schPdschCfg->bundlingInfo.SchStaticBundling.size = macPdschCfg.bundlingInfo.StaticBundling.size;
+ }
+ else if(schPdschCfg->bundlingType == DYNAMIC_BUNDLING_TYPE)
+ {
+ schPdschCfg->bundlingInfo.SchDynamicBundling.sizeSet1 = macPdschCfg.bundlingInfo.DynamicBundling.sizeSet1;
+ schPdschCfg->bundlingInfo.SchDynamicBundling.sizeSet2 = macPdschCfg.bundlingInfo.DynamicBundling.sizeSet2;
+ }
return ROK;
}
/* TODO : Optional Parameter */
}
- schLcCfg->ulLcCfg = NULL;
- if(macLcCfg.ulLcCfg)
- {
- /* TODO : Optional Parameter */
- }
-
return ROK;
}
}
schUeCfg.numLc = ueCfg->numLcs;
- if(schUeCfg.numLc > MAX_NUM_LOGICAL_CHANNELS)
+ if(schUeCfg.numLc > MAX_NUM_LC)
{
DU_LOG("\nMAC : Number of Logical channels %d exceeds max limit %d",\
- schUeCfg.numLc, MAX_NUM_LOGICAL_CHANNELS);
+ schUeCfg.numLc, MAX_NUM_LC);
}
for(idx = 0; idx < schUeCfg.numLc; idx++)
{
}
/* Fill event and send UE create request to SCH */
- FILL_PST_MAC_TO_SCH(pst, EVENT_UE_CREATE_REQ_TO_SCH);
+ FILL_PST_MAC_TO_SCH(pst, EVENT_UE_CONFIG_REQ_TO_SCH);
return(*macSchUeCreateReqOpts[pst.selector])(&pst, &schUeCfg);
}
}
/* Check if UE already configured */
- ueCb = &macCb.macCell[cellIdx]->ueCb[ueCfg->ueIdx];
+ ueCb = &macCb.macCell[cellIdx]->ueCb[ueCfg->ueIdx -1];
if(ueCb)
{
if((ueCb->ueIdx == ueCfg->ueIdx) && (ueCb->crnti == ueCfg->crnti) &&\
}
/* Fill SRB1 info */
- if(ueCfg->numLcs > MAX_NUM_LOGICAL_CHANNELS)
+ if(ueCfg->numLcs > MAX_NUM_LC)
{
DU_LOG("\nMAC : Number of LC to configure[%d] exceeds limit[%d]",\
- ueCfg->numLcs, MAX_NUM_LOGICAL_CHANNELS);
+ ueCfg->numLcs, MAX_NUM_LC);
return RFAILED;
}
for(lcIdx = 0; lcIdx < ueCfg->numLcs; lcIdx++)
{
ueCb->dlInfo.lcCb[ueCb->dlInfo.numDlLc].lcId = ueCfg->lcCfgList[lcIdx].lcId;
- ueCb->dlInfo.lcCb[ueCb->dlInfo.numDlLc].lcState = LC_STATE_ACTIVE;
+ ueCb->dlInfo.lcCb[ueCb->dlInfo.numDlLc].lcState = MAC_LC_STATE_ACTIVE;
ueCb->dlInfo.numDlLc++;
}
/* Fill Post structure and send UE Create response*/
memset(&rspPst, 0, sizeof(Pst));
- FILL_PST_MAC_TO_DUAPP(rspPst, EVENT_MAC_UE_CREATE_RSP);
- return DuMacUeCreateRspOpts[rspPst.selector](&rspPst, cfgRsp);
-
+ FILL_PST_MAC_TO_DUAPP(rspPst, EVENT_MAC_UE_CONFIG_RSP);
+ return MacDuUeCfgRspOpts[rspPst.selector](&rspPst, cfgRsp);
}
if(schCfgRsp->rsp == RSP_NOK)
{
DU_LOG("\nMAC : SCH UE Create Response : FAILURE [CRNTI %d]", schCfgRsp->crnti);
- memset(&macCb.macCell[cellIdx]->ueCb[schCfgRsp->ueIdx], 0, sizeof(MacUeCb));
+ memset(&macCb.macCell[cellIdx]->ueCb[schCfgRsp->ueIdx -1], 0, sizeof(MacUeCb));
macCb.macCell[cellIdx]->numActvUe--;
result = MAC_DU_APP_RSP_NOK;
}
return ret;
}
+/*******************************************************************
+ *
+ * @brief Handles UE Reconfig requst from DU APP
+ *
+ * @details
+ *
+ * Function : MacProcUeReconfigReq
+ *
+ * Functionality: Handles UE Reconfig requst from DU APP
+ *
+ * @params[in]
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t MacProcUeReconfigReq(Pst *pst, MacUeCfg *ueCfg)
+{
+ //TODO:
+ return ROK;
+}
+
/**********************************************************************
End of file