+ /* fill SIB1 configuration */
+ duCfgParam.macCellCfg.sib1Cfg.sib1PduLen = duCfgParam.srvdCellLst[0].duSysInfo.sib1Len;
+ DU_ALLOC_SHRABL_BUF(duCfgParam.macCellCfg.sib1Cfg.sib1Pdu,duCfgParam.srvdCellLst[0].duSysInfo.sib1Len);
+ memcpy(duCfgParam.macCellCfg.sib1Cfg.sib1Pdu, duCfgParam.srvdCellLst[0].duSysInfo.sib1Msg, \
+ duCfgParam.srvdCellLst[0].duSysInfo.sib1Len);
+ duCfgParam.macCellCfg.sib1Cfg.sib1RepetitionPeriod = SIB1_REPETITION_PERIOD;
+ duCfgParam.macCellCfg.sib1Cfg.coresetZeroIndex = CORESET_0_INDEX;
+ duCfgParam.macCellCfg.sib1Cfg.searchSpaceZeroIndex = SEARCHSPACE_0_INDEX;
+ duCfgParam.macCellCfg.sib1Cfg.sib1Mcs = DEFAULT_MCS;
+
+ duCfgParam.macCellCfg.sib1Cfg.pagingCfg.numPO = duCfgParam.sib1Params.srvCellCfgCommSib.dlCfg.pcchCfg.ns;
+ if((duCfgParam.sib1Params.srvCellCfgCommSib.dlCfg.pcchCfg.firstPDCCHMontioringType != \
+ PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_NOTHING) && (duCfgParam.macCellCfg.sib1Cfg.pagingCfg.numPO != 0))
+ {
+ duCfgParam.macCellCfg.sib1Cfg.pagingCfg.poPresent = TRUE;
+ memcpy(duCfgParam.macCellCfg.sib1Cfg.pagingCfg.pagingOcc,
+ duCfgParam.sib1Params.srvCellCfgCommSib.dlCfg.pcchCfg.firstPDCCHMontioringInfo,MAX_PO_PER_PF);
+ }
+ else
+ {
+ duCfgParam.macCellCfg.sib1Cfg.pagingCfg.poPresent = FALSE;
+ }
+
+ /* fill Intial DL BWP */
+ duCfgParam.macCellCfg.initialDlBwp.bwp.firstPrb = 0;
+ duCfgParam.macCellCfg.initialDlBwp.bwp.numPrb = TOTAL_PRB_20MHZ_MU0; /* configured to total BW */
+ duCfgParam.macCellCfg.initialDlBwp.bwp.scs = duCfgParam.macCellCfg.ssbCfg.scsCmn;
+ duCfgParam.macCellCfg.initialDlBwp.bwp.cyclicPrefix = NORMAL_CYCLIC_PREFIX;
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.commonSearchSpace.searchSpaceId = SEARCHSPACE_1_INDEX;
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.commonSearchSpace.coresetId = CORESET_0_INDEX;
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.commonSearchSpace.monitoringSlot =
+ SS_MONITORING_SLOT_SL1; /* sl1 - all slots */
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.commonSearchSpace.duration = 0;
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.commonSearchSpace.monitoringSymbol =
+ SS_MONITORING_SYMBOL;
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.commonSearchSpace.
+ candidate.aggLevel1 = 8;
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.commonSearchSpace.
+ candidate.aggLevel2 = 4;
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.commonSearchSpace.
+ candidate.aggLevel4 = 2;
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.commonSearchSpace.
+ candidate.aggLevel8 = 1;
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.commonSearchSpace.
+ candidate.aggLevel16 = 0;
+
+ duCfgParam.macCellCfg.initialDlBwp.pdschCommon.numTimeDomAlloc = NUM_TIME_DOM_RSRC_ALLOC;
+ idx = 0;
+ duCfgParam.macCellCfg.initialDlBwp.pdschCommon.timeDomRsrcAllocList[idx].k0 = PDSCH_K0_CFG1;
+ duCfgParam.macCellCfg.initialDlBwp.pdschCommon.timeDomRsrcAllocList[idx].mappingType =
+ PDSCH_MAPPING_TYPE_A;
+ duCfgParam.macCellCfg.initialDlBwp.pdschCommon.timeDomRsrcAllocList[idx].startSymbol =
+ PDSCH_START_SYMBOL;
+ duCfgParam.macCellCfg.initialDlBwp.pdschCommon.timeDomRsrcAllocList[idx].lengthSymbol =
+ PDSCH_LENGTH_SYMBOL;
+
+ idx++;
+ duCfgParam.macCellCfg.initialDlBwp.pdschCommon.timeDomRsrcAllocList[idx].k0 = PDSCH_K0_CFG2;
+ duCfgParam.macCellCfg.initialDlBwp.pdschCommon.timeDomRsrcAllocList[idx].mappingType =
+ PDSCH_MAPPING_TYPE_A;
+ duCfgParam.macCellCfg.initialDlBwp.pdschCommon.timeDomRsrcAllocList[idx].startSymbol =
+ PDSCH_START_SYMBOL;
+ duCfgParam.macCellCfg.initialDlBwp.pdschCommon.timeDomRsrcAllocList[idx].lengthSymbol =
+ PDSCH_LENGTH_SYMBOL;
+
+ /* ra-searchSpace ID is set to 1 */
+ duCfgParam.macCellCfg.initialDlBwp.pdcchCommon.raSearchSpaceId = SEARCHSPACE_1_INDEX;
+
+ /* fill Intial UL BWP */
+ duCfgParam.macCellCfg.initialUlBwp.bwp.firstPrb = 0;
+ duCfgParam.macCellCfg.initialUlBwp.bwp.numPrb = TOTAL_PRB_20MHZ_MU0; /* configured to total BW */
+ duCfgParam.macCellCfg.initialUlBwp.bwp.scs = duCfgParam.macCellCfg.ssbCfg.scsCmn;
+ duCfgParam.macCellCfg.initialUlBwp.bwp.cyclicPrefix = NORMAL_CYCLIC_PREFIX;
+ duCfgParam.macCellCfg.initialUlBwp.puschCommon.numTimeDomRsrcAlloc = 2;
+ duCfgParam.macCellCfg.initialUlBwp.puschCommon.timeDomRsrcAllocList[0].k2 = PUSCH_K2_CFG1;
+ duCfgParam.macCellCfg.initialUlBwp.puschCommon.timeDomRsrcAllocList[0].mappingType =
+ PUSCH_MAPPING_TYPE_A;
+ duCfgParam.macCellCfg.initialUlBwp.puschCommon.timeDomRsrcAllocList[0].startSymbol =
+ PUSCH_START_SYMBOL;
+ duCfgParam.macCellCfg.initialUlBwp.puschCommon.timeDomRsrcAllocList[0].symbolLength =
+ PUSCH_LENGTH_SYMBOL;
+
+ duCfgParam.macCellCfg.initialUlBwp.puschCommon.timeDomRsrcAllocList[1].k2 = PUSCH_K2_CFG2;
+ duCfgParam.macCellCfg.initialUlBwp.puschCommon.timeDomRsrcAllocList[1].mappingType =
+ PUSCH_MAPPING_TYPE_A;
+ duCfgParam.macCellCfg.initialUlBwp.puschCommon.timeDomRsrcAllocList[1].startSymbol =
+ PUSCH_START_SYMBOL;
+ duCfgParam.macCellCfg.initialUlBwp.puschCommon.timeDomRsrcAllocList[1].symbolLength =
+ PUSCH_LENGTH_SYMBOL;
+
+ duCfgParam.macCellCfg.dmrsTypeAPos = DMRS_TYPE_A_POS;
+
+ /* fill PUCCH config common */
+ duCfgParam.macCellCfg.initialUlBwp.pucchCommon.pucchResourceCommon = PUCCH_RSRC_COMMON;
+ duCfgParam.macCellCfg.initialUlBwp.pucchCommon.pucchGroupHopping = PUCCH_GROUP_HOPPING;
+
+ /* Plmn And SNSSAI Configuration */
+ memcpy(&duCfgParam.macCellCfg.plmnInfoList.plmn, &duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.srvdPlmn[0].plmn,\
+ sizeof(Plmn));
+ taiSliceSuppLst = &duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.srvdPlmn[0].taiSliceSuppLst;
+ duCfgParam.macCellCfg.plmnInfoList.numSupportedSlice = taiSliceSuppLst->numSupportedSlices;
+ if(taiSliceSuppLst->snssai)
+ {
+ DU_ALLOC_SHRABL_BUF(duCfgParam.macCellCfg.plmnInfoList.snssai, (duCfgParam.macCellCfg.plmnInfoList.numSupportedSlice) * sizeof(Snssai*));
+ if(duCfgParam.macCellCfg.plmnInfoList.snssai == NULLP)
+ {
+ DU_LOG("\nERROR --> DU_APP: Memory allocation failed at readMacCfg");
+ return RFAILED;
+ }
+ }
+ for(sliceIdx=0; sliceIdx<taiSliceSuppLst->numSupportedSlices; sliceIdx++)
+ {
+ if(taiSliceSuppLst->snssai[sliceIdx] != NULLP)
+ {
+ DU_ALLOC_SHRABL_BUF(duCfgParam.macCellCfg.plmnInfoList.snssai[sliceIdx], sizeof(Snssai));
+ if(duCfgParam.macCellCfg.plmnInfoList.snssai[sliceIdx] == NULLP)
+ {
+ DU_LOG("\nERROR --> DU_APP: Memory allocation failed at readMacCfg");
+ return RFAILED;
+ }
+ memcpy(duCfgParam.macCellCfg.plmnInfoList.snssai[sliceIdx], taiSliceSuppLst->snssai[sliceIdx], sizeof(Snssai));
+ }
+ }
+
+#ifndef O1_ENABLE
+
+ /*Note: Static Configuration, when O1 is not configuring the RRM policy*/
+ RrmPolicyList rrmPolicy;
+ rrmPolicy.id[0] = 1;
+ rrmPolicy.resourceType = PRB;
+ rrmPolicy.rRMMemberNum = 1;
+ memcpy(rrmPolicy.rRMPolicyMemberList[0].mcc,duCfgParam.macCellCfg.plmnInfoList.plmn.mcc, 3*sizeof(uint8_t));
+ memcpy(rrmPolicy.rRMPolicyMemberList[0].mnc,duCfgParam.macCellCfg.plmnInfoList.plmn.mnc, 3*sizeof(uint8_t));
+ rrmPolicy.rRMPolicyMemberList[0].sst = 1;
+ rrmPolicy.rRMPolicyMemberList[0].sd[0] = 2;
+ rrmPolicy.rRMPolicyMemberList[0].sd[1] = 3;
+ rrmPolicy.rRMPolicyMemberList[0].sd[2] = 4;
+ rrmPolicy.rRMPolicyMaxRatio = 90;
+ rrmPolicy.rRMPolicyMinRatio = 30;
+ rrmPolicy.rRMPolicyDedicatedRatio = 10;
+
+ cpyRrmPolicyInDuCfgParams(&rrmPolicy, 1, &duCfgParam.tempSliceCfg);
+
+#endif
+
+ return ROK;
+}
+
+/*******************************************************************
+ *
+ * @brief Configures the DU Parameters
+ *
+ * @details
+ *
+ * Function : fillDuPort
+ *
+ * Functionality:
+ * - fills the DU Ports.
+ *
+ * @params[in] duPort array to be filled
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t fillDuPort(uint16_t *duPort)
+{
+
+#ifdef O1_ENABLE
+ duPort[F1_INTERFACE] = g_cfg.DU_Port;
+ duPort[E2_INTERFACE] = g_cfg.RIC_Port;
+#else
+ duPort[F1_INTERFACE] = DU_PORT; /* DU Port idx 0 38472 */
+ duPort[E2_INTERFACE] = RIC_PORT; /* RIC Port idx 1 38482 */
+#endif
+ return ROK;
+}
+
+/*******************************************************************
+ *
+ * @brief Configures the DU Parameters
+ *
+ * @details
+ *
+ * Function : calcSliv
+ *
+ * Functionality:
+ * - calculate SLIV value from start and length field
+ *
+ * @params[in] start symbol
+ * @params[in] length of symbols
+ * @return SLIV value
+ *
+ * ****************************************************************/
+uint16_t calcSliv(uint8_t startSymbol, uint8_t lengthSymbol)
+{
+ uint16_t sliv = 0;
+ if((lengthSymbol-1) <= 7)
+ {
+ sliv = NUM_SYMBOLS_PER_SLOT * (lengthSymbol-1) + startSymbol;
+ }
+ else
+ {
+ sliv = NUM_SYMBOLS_PER_SLOT * (NUM_SYMBOLS_PER_SLOT - lengthSymbol + 1) \
+ + (NUM_SYMBOLS_PER_SLOT - 1 - startSymbol);
+ }
+ return sliv;
+}
+
+
+/*******************************************************************
+ *
+ * @brief Configures serving cell config common in sib1
+ *
+ * @details
+ *
+ * Function : fillServCellCfgCommSib
+ *
+ * Functionality:
+ * - fills Serving cell config common for SIB1
+ *
+ * @params[in] SrvCellCfgCommSib pointer
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ ** ****************************************************************/
+uint8_t fillServCellCfgCommSib(SrvCellCfgCommSib *srvCellCfgComm)
+{
+ PdcchCfgCommon pdcchCfg;
+ PdschCfgCommon pdschCfg;
+ PcchCfg pcchCfg;
+ RachCfgCommon rachCfg;
+ PuschCfgCommon puschCfg;
+ PucchCfgCommon pucchCfg;
+ TddUlDlCfgCommon tddCfg;
+
+#ifdef O1_ENABLE
+ srvCellCfgComm->scs = convertScsValToScsEnum(cellParams.ssbSubCarrierSpacing);
+#else
+ srvCellCfgComm->scs = NR_SCS;
+#endif
+
+ /* Configuring DL Config Common for SIB1*/
+ srvCellCfgComm->dlCfg.freqBandInd = NR_FREQ_BAND;
+ srvCellCfgComm->dlCfg.offsetToPointA = OFFSET_TO_POINT_A;
+#ifdef O1_ENABLE
+ srvCellCfgComm->dlCfg.dlScsCarrier.scsOffset = cellParams.ssbOffset;
+ srvCellCfgComm->dlCfg.dlScsCarrier.scs = convertScsValToScsEnum(cellParams.ssbSubCarrierSpacing);
+ srvCellCfgComm->dlCfg.dlScsCarrier.scsBw = cellParams.bSChannelBwUL;
+#else
+ srvCellCfgComm->dlCfg.dlScsCarrier.scsOffset = SSB_SUBCARRIER_OFFSET;
+ srvCellCfgComm->dlCfg.dlScsCarrier.scs = NR_SCS;
+ srvCellCfgComm->dlCfg.dlScsCarrier.scsBw = NR_BANDWIDTH;
+#endif
+ srvCellCfgComm->dlCfg.locAndBw = FREQ_LOC_BW;
+
+ /* Configuring PDCCH Config Common For SIB1 */
+ pdcchCfg.present = BWP_DownlinkCommon__pdcch_ConfigCommon_PR_setup;
+ pdcchCfg.ctrlRsrcSetZero = CORESET_0_INDEX;
+ pdcchCfg.searchSpcZero = SEARCHSPACE_0_INDEX;
+ pdcchCfg.searchSpcId = PDCCH_SEARCH_SPACE_ID;
+ pdcchCfg.ctrlRsrcSetId = PDCCH_CTRL_RSRC_SET_ID;
+ pdcchCfg.monitorSlotPrdAndOffPresent = SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
+ //pdcchCfg.monitorSlotPrdAndOff = \
+ SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
+ pdcchCfg.monitorSymbolsInSlot[0] = 128;
+ pdcchCfg.monitorSymbolsInSlot[1] = 0;
+ pdcchCfg.numCandAggLvl1 = SearchSpace__nrofCandidates__aggregationLevel1_n8;
+ pdcchCfg.numCandAggLvl2 = SearchSpace__nrofCandidates__aggregationLevel2_n4;
+ pdcchCfg.numCandAggLvl4 = SearchSpace__nrofCandidates__aggregationLevel4_n2;
+ pdcchCfg.numCandAggLvl8 = SearchSpace__nrofCandidates__aggregationLevel8_n1;
+ pdcchCfg.numCandAggLvl16 = SearchSpace__nrofCandidates__aggregationLevel16_n0;
+ pdcchCfg.searchSpcType = SearchSpace__searchSpaceType_PR_common;
+ pdcchCfg.commSrchSpcDciFrmt = PDCCH_SERACH_SPACE_DCI_FORMAT;
+ pdcchCfg.searchSpcSib1 = PDCCH_SEARCH_SPACE_ID_SIB1;
+ pdcchCfg.pagingSearchSpc = PDCCH_SEARCH_SPACE_ID_PAGING;
+ pdcchCfg.raSearchSpc = PDCCH_SEARCH_SPACE_ID_PAGING;
+ srvCellCfgComm->dlCfg.pdcchCfg = pdcchCfg;
+
+ /* Configuring PDSCH Config Common For SIB1 */
+ pdschCfg.present = BWP_DownlinkCommon__pdsch_ConfigCommon_PR_setup;
+ pdschCfg.numTimeDomRsrcAlloc = 2;
+ pdschCfg.timeDomAlloc[0].k0 = PDSCH_K0_CFG1;
+ pdschCfg.timeDomAlloc[0].mapType = PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
+ pdschCfg.timeDomAlloc[0].sliv = calcSliv(PDSCH_START_SYMBOL,PDSCH_LENGTH_SYMBOL);
+
+ pdschCfg.timeDomAlloc[1].k0 = PDSCH_K0_CFG2;
+ pdschCfg.timeDomAlloc[1].mapType = PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
+ pdschCfg.timeDomAlloc[1].sliv = calcSliv(PDSCH_START_SYMBOL,PDSCH_LENGTH_SYMBOL);
+
+ srvCellCfgComm->dlCfg.pdschCfg = pdschCfg;
+
+ /* Configuring BCCH Config for SIB1 */
+ srvCellCfgComm->dlCfg.bcchCfg.modPrdCoeff = BCCH_Config__modificationPeriodCoeff_n16;
+
+ /* Configuring PCCH Config for SIB1 */
+ pcchCfg.dfltPagingCycle = convertPagingCycleEnumToValue(PagingCycle_rf256);
+ pcchCfg.nAndPagingFrmOffsetType = PCCH_Config__nAndPagingFrameOffset_PR_oneT;
+ pcchCfg.pageFrameOffset = 0;
+ pcchCfg.ns = convertNsEnumToValue(PCCH_Config__ns_one);
+ pcchCfg.firstPDCCHMontioringType = PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS30KHZoneT_SCS15KHZhalfT;
+ memset(pcchCfg.firstPDCCHMontioringInfo, 0, sizeof(uint16_t));
+ pcchCfg.firstPDCCHMontioringInfo[0] = 44;
+
+ srvCellCfgComm->dlCfg.pcchCfg = pcchCfg;
+
+
+ /* Configuring UL Config Common */
+#ifdef O1_ENABLE
+ srvCellCfgComm->ulCfg.ulScsCarrier.scsOffset = cellParams.ssbOffset;
+ srvCellCfgComm->ulCfg.ulScsCarrier.scs = convertScsValToScsEnum(cellParams.ssbSubCarrierSpacing);
+ srvCellCfgComm->ulCfg.ulScsCarrier.scsBw = cellParams.bSChannelBwUL;
+#else
+ srvCellCfgComm->ulCfg.ulScsCarrier.scsOffset = SSB_SUBCARRIER_OFFSET;
+ srvCellCfgComm->ulCfg.ulScsCarrier.scs = NR_SCS;
+ srvCellCfgComm->ulCfg.ulScsCarrier.scsBw = NR_BANDWIDTH;
+#endif
+ srvCellCfgComm->ulCfg.freqBandInd = NR_FREQ_BAND;
+ srvCellCfgComm->ulCfg.pMax = UL_P_MAX;
+ srvCellCfgComm->ulCfg.locAndBw = FREQ_LOC_BW;
+ srvCellCfgComm->ulCfg.timeAlignTimerComm = TimeAlignmentTimer_infinity;
+
+ /* Configuring RACH Config Common for SIB1 */
+ rachCfg.present = BWP_UplinkCommon__rach_ConfigCommon_PR_setup;
+ rachCfg.prachCfgIdx = PRACH_CONFIG_IDX;
+ rachCfg.msg1Fdm = RACH_ConfigGeneric__msg1_FDM_one;
+ rachCfg.msg1FreqStart = PRACH_FREQ_START;
+ rachCfg.zeroCorrZoneCfg = ZERO_CORRELATION_ZONE_CFG;
+ rachCfg.preambleRcvdTgtPwr = PRACH_PREAMBLE_RCVD_TGT_PWR;
+ rachCfg.preambleTransMax = RACH_ConfigGeneric__preambleTransMax_n200;
+ rachCfg.pwrRampingStep = RACH_ConfigGeneric__powerRampingStep_dB2;
+ rachCfg.raRspWindow = RACH_ConfigGeneric__ra_ResponseWindow_sl10;
+ rachCfg.numRaPreamble = NUM_RA_PREAMBLE;
+ rachCfg.numSsbPerRachOcc = RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_one;
+ rachCfg.numCbPreamblePerSsb = CB_PREAMBLE_PER_SSB;
+ rachCfg.contResTimer = RACH_ConfigCommon__ra_ContentionResolutionTimer_sf64;
+ rachCfg.rsrpThreshSsb = RSRP_THRESHOLD_SSB;
+ rachCfg.rootSeqIdxPresent = RACH_ConfigCommon__prach_RootSequenceIndex_PR_l139;
+ rachCfg.rootSeqIdx = ROOT_SEQ_IDX;
+ rachCfg.msg1Scs = PRACH_SUBCARRIER_SPACING ;
+ rachCfg.restrictedSetCfg = PRACH_RESTRICTED_SET_CFG;
+ srvCellCfgComm->ulCfg.rachCfg = rachCfg;
+
+ /* Configuring PUSCH Config Common for SIB1 */
+ puschCfg.puschCfgPresent = BWP_UplinkCommon__pusch_ConfigCommon_PR_setup;
+ puschCfg.numTimeDomRsrcAlloc = 2;
+ puschCfg.timeDomAllocList[0].k2 = PUSCH_K2_CFG1;
+ puschCfg.timeDomAllocList[0].mapType = PUSCH_TimeDomainResourceAllocation__mappingType_typeA;
+ puschCfg.timeDomAllocList[0].sliv = calcSliv(PUSCH_START_SYMBOL,PUSCH_LENGTH_SYMBOL);
+ puschCfg.timeDomAllocList[1].k2 = PUSCH_K2_CFG2;
+ puschCfg.timeDomAllocList[1].mapType = PUSCH_TimeDomainResourceAllocation__mappingType_typeA;
+ puschCfg.timeDomAllocList[1].sliv = calcSliv(PUSCH_START_SYMBOL,PUSCH_LENGTH_SYMBOL);
+ puschCfg.msg3DeltaPreamble = PUSCH_MSG3_DELTA_PREAMBLE;
+ puschCfg.p0NominalWithGrant = PUSCH_P0_NOMINAL_WITH_GRANT;
+ srvCellCfgComm->ulCfg.puschCfg = puschCfg;
+
+ /* Configuring PUCCH Config Common for SIB1 */
+ pucchCfg.present = BWP_UplinkCommon__pucch_ConfigCommon_PR_setup;
+ pucchCfg.rsrcComm = PUCCH_RSRC_COMMON;
+ pucchCfg.grpHop = PUCCH_ConfigCommon__pucch_GroupHopping_neither;
+ pucchCfg.p0Nominal = PUCCH_P0_NOMINAL;
+ srvCellCfgComm->ulCfg.pucchCfg = pucchCfg;
+
+ /* Configuring TDD UL DL config common */
+ tddCfg.refScs = SubcarrierSpacing_kHz30;
+ tddCfg.txPrd = TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms5;
+ tddCfg.numDlSlots = NUM_DL_SLOTS;
+ tddCfg.numDlSymbols = NUM_DL_SYMBOLS;
+ tddCfg.numUlSlots = NUM_UL_SLOTS;
+ tddCfg.numUlSymbols = NUM_UL_SYMBOLS;
+ srvCellCfgComm->tddCfg = tddCfg;
+
+ srvCellCfgComm->ssbPosInBurst = 192;
+ srvCellCfgComm->ssbPrdServingCell = SSB_PERIODICITY;
+ srvCellCfgComm->ssPbchBlockPwr = SSB_PBCH_PWR;