+/*******************************************************************
+ *
+ * @brief Free RACH configuration common
+ *
+ * @details
+ *
+ * Function : FreeRachCfgCommon
+ *
+ * Functionality:
+ * Free RACH configuration common
+ *
+ * @params[in] BWP_UplinkCommon__rach_ConfigCommon pointer
+ * @return void
+ *
+ * ****************************************************************/
+
+void FreeRachCfgCommon(struct BWP_UplinkCommon__rach_ConfigCommon *rachCfg)
+{
+ RACH_ConfigCommon_t *setup = NULLP;
+
+ if(rachCfg->choice.setup)
+ {
+ setup = rachCfg->choice.setup;
+
+ /* Total number of RA preambles */
+ DU_FREE(setup->totalNumberOfRA_Preambles, sizeof(long));
+
+ /* SSB per RACH occassion and CB Preambles per SSB */
+ DU_FREE(setup->ssb_perRACH_OccasionAndCB_PreamblesPerSSB,\
+ sizeof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB));
+
+ /* RSRP Threshold SSB */
+ DU_FREE(setup->rsrp_ThresholdSSB, sizeof(RSRP_Range_t));
+
+ /* Msg 1 Subcarrier spacing */
+ DU_FREE(setup->msg1_SubcarrierSpacing, sizeof(SubcarrierSpacing_t));
+
+ DU_FREE(rachCfg->choice.setup, sizeof(RACH_ConfigCommon_t));
+ }
+}/* FreeRachCfgCommon */
+
+/*******************************************************************
+ *
+ * @brief Free UL BWP Common
+ *
+ * @details
+ *
+ * Function : FreeBwpUlCommon
+ *
+ * Functionality:
+ * Free UL BWP Common
+ *
+ * @params[in] BWP_UplinkCommon_t pointer
+ * @return void
+ *
+ * ****************************************************************/
+void FreeBwpUlCommon(BWP_UplinkCommon_t *bwp)
+{
+ /* RACH Config Common */
+ if(bwp->rach_ConfigCommon)
+ {
+ FreeRachCfgCommon(bwp->rach_ConfigCommon);
+ DU_FREE(bwp->rach_ConfigCommon, sizeof(struct BWP_UplinkCommon__rach_ConfigCommon));
+ }
+
+ /* PUSCH Config Common */
+ if(bwp->pusch_ConfigCommon)
+ {
+ FreePuschCfgCommon(bwp->pusch_ConfigCommon);
+ DU_FREE(bwp->pusch_ConfigCommon, sizeof(struct BWP_UplinkCommon__pusch_ConfigCommon));
+ }
+
+ /* PUCCH Config Common */
+ if(bwp->pucch_ConfigCommon)
+ {
+ FreePucchCfgCommon(bwp->pucch_ConfigCommon);
+ DU_FREE(bwp->pucch_ConfigCommon, sizeof(struct BWP_UplinkCommon__pucch_ConfigCommon));
+ }
+}/* FreeBwpUlCommon */
+
+/*******************************************************************
+ *
+ * @brief Free frequency infor for UL
+ *
+ * @details
+ *
+ * Function : FreeFreqInfoUlSib
+ *
+ * Functionality:
+ * Free frequency infor for UL
+ *
+ * @params[in] FrequencyInfoUL_SIB_t pointer
+ * @return void
+ *
+ * ****************************************************************/
+
+void FreeFreqInfoUlSib(FrequencyInfoUL_SIB_t *frequencyInfoUL)
+{
+ uint8_t idx = 0;
+ struct FrequencyInfoUL_SIB__scs_SpecificCarrierList *scsCarrierList = &frequencyInfoUL->scs_SpecificCarrierList;
+
+ /* Subcarrier Spacing specifc carrier */
+ if(scsCarrierList->list.array)
+ {