+/**********************************************************************************
+ *
+ * @brief Fills Ue Cfg from DU DB to MacUeCfg
+ *
+ * @details
+ *
+ * Function : fillMacUeCfg
+ *
+ * Functionality: fills ue Cfg to be sent to MAC
+ *
+ * @params[in] DuMacUeCfg Pointer
+ * MacUeCfg Pointer
+ *
+ * @return ROK - success
+ * RFAILED - failure
+ * *******************************************************************************/
+void fillMacUeCfg(DuMacUeCfg *duMacUeCfg, MacUeCfg *macUeCfg)
+{
+ uint8_t lcIdx = 0;
+
+ macUeCfg->cellId = duMacUeCfg->cellId;
+ macUeCfg->ueId = duMacUeCfg->ueId;
+ macUeCfg->crnti = duMacUeCfg->crnti;
+ macUeCfg->macCellGrpCfgPres = duMacUeCfg->macCellGrpCfgPres;
+ if(macUeCfg->macCellGrpCfgPres)
+ {
+ memcpy(&macUeCfg->macCellGrpCfg, &duMacUeCfg->macCellGrpCfg, sizeof(MacCellGrpCfg));
+ }
+ macUeCfg->phyCellGrpCfgPres = duMacUeCfg->phyCellGrpCfgPres;
+ if(macUeCfg->phyCellGrpCfgPres)
+ {
+ memcpy(&macUeCfg->phyCellGrpCfg, &duMacUeCfg->phyCellGrpCfg, sizeof(PhyCellGrpCfg));
+ }
+ macUeCfg->spCellCfgPres = duMacUeCfg->spCellCfgPres;
+ if(macUeCfg->spCellCfgPres)
+ {
+ macUeCfg->spCellCfg.servCellIdx = duMacUeCfg->spCellCfg.servCellIdx;
+ macUeCfg->spCellCfg.servCellCfg.initDlBwp = duMacUeCfg->spCellCfg.servCellCfg.initDlBwp;
+ macUeCfg->spCellCfg.servCellCfg.numDlBwpToAdd = duMacUeCfg->spCellCfg.servCellCfg.numDlBwpToAddOrMod;
+ if(macUeCfg->spCellCfg.servCellCfg.numDlBwpToAdd > 0)
+ {
+ memcpy(macUeCfg->spCellCfg.servCellCfg.dlBwpToAddList, duMacUeCfg->spCellCfg.servCellCfg.dlBwpToAddOrModList, \
+ (sizeof(DlBwpInfo) * MAX_NUM_BWP));
+ }
+ macUeCfg->spCellCfg.servCellCfg.firstActvDlBwpId = duMacUeCfg->spCellCfg.servCellCfg.firstActvDlBwpId;
+ macUeCfg->spCellCfg.servCellCfg.defaultDlBwpId = duMacUeCfg->spCellCfg.servCellCfg.defaultDlBwpId;
+ macUeCfg->spCellCfg.servCellCfg.bwpInactivityTmr = duMacUeCfg->spCellCfg.servCellCfg.bwpInactivityTmr;
+ memcpy(&macUeCfg->spCellCfg.servCellCfg.pdschServCellCfg, &duMacUeCfg->spCellCfg.servCellCfg.pdschServCellCfg, sizeof(PdschServCellCfg));
+ memcpy(&macUeCfg->spCellCfg.servCellCfg.initUlBwp, &duMacUeCfg->spCellCfg.servCellCfg.initUlBwp, sizeof(InitialUlBwp));
+ macUeCfg->spCellCfg.servCellCfg.numUlBwpToAdd = duMacUeCfg->spCellCfg.servCellCfg.numUlBwpToAddOrMod;
+ if(macUeCfg->spCellCfg.servCellCfg.numUlBwpToAdd > 0)
+ {
+ memcpy(macUeCfg->spCellCfg.servCellCfg.ulBwpToAddList, duMacUeCfg->spCellCfg.servCellCfg.ulBwpToAddOrModList,\
+ (sizeof(UlBwpInfo) * MAX_NUM_BWP));
+ }
+ macUeCfg->spCellCfg.servCellCfg.firstActvUlBwpId = duMacUeCfg->spCellCfg.servCellCfg.firstActvUlBwpId;
+ }
+ if(duMacUeCfg->ambrCfg != NULLP)
+ {
+ memcpy(macUeCfg->ambrCfg, duMacUeCfg->ambrCfg, sizeof(AmbrCfg));
+ }
+ memcpy(&macUeCfg->dlModInfo, &duMacUeCfg->dlModInfo, sizeof(ModulationInfo));
+ memcpy(&macUeCfg->ulModInfo, &duMacUeCfg->ulModInfo, sizeof(ModulationInfo));
+ if(duMacUeCfg->numLcs > 0)
+ {
+ macUeCfg->numLcs = 0;
+ for(lcIdx = 0; lcIdx < duMacUeCfg->numLcs; lcIdx++)
+ {
+ if(duMacUeCfg->lcCfgList[lcIdx].configType == CONFIG_ADD)
+ {
+ //VS: To thoroughly check
+ memcpy(&macUeCfg->lcCfgList[macUeCfg->numLcs], &duMacUeCfg->lcCfgList[lcIdx].lcConfig, sizeof(LcCfg));
+ macUeCfg->numLcs++;
+ }
+ }
+ }
+}
+
+/**********************************************************************************
+ *
+ * @brief Fills Ue Cfg from DU DB to RLCUeCfg
+ *
+ * @details
+ *
+ * Function : fillRlcUeCfg
+ *
+ * Functionality: fills ue Cfg to be sent to RLC
+ *
+ * @params[in] DuRlcUeCfg Pointer
+ * RlcUeCfg Pointer
+ *
+ * @return ROK - success
+ * RFAILED - failure
+ * *******************************************************************************/
+void fillRlcUeCfg(DuRlcUeCfg *duRlcUeCfg, RlcUeCfg *rlcUeCfg)
+{
+ uint8_t lcIdx = 0;
+
+ rlcUeCfg->cellId = duRlcUeCfg->cellId;
+ rlcUeCfg->ueId = duRlcUeCfg->ueId;
+
+ rlcUeCfg->numLcsToAdd = 0;
+ for(lcIdx = 0; lcIdx < duRlcUeCfg->numLcs; lcIdx++)
+ {
+ if(duRlcUeCfg->rlcLcCfg[lcIdx].configType == CONFIG_ADD)
+ {
+ memcpy(&rlcUeCfg->rlcLcCfgAdd[rlcUeCfg->numLcsToAdd], &duRlcUeCfg->rlcLcCfg[lcIdx].rlcBearerCfg, sizeof(RlcBearerCfg));
+ rlcUeCfg->numLcsToAdd++;
+ }
+ }
+ return;
+}
+