+
+/*******************************************************************
+ *
+ * @brief Build RAN function added list
+ *
+ * @details
+ *
+ * Function : BuildRanFunctionAddedList
+ *
+ * Functionality: Build RAN function added list
+ *
+ * @params[in] DuDb *duDb, RANfunctionsID_List_t *ranFuncAddedList
+ *
+ * @return ROK - success
+ * RFAILED - failure
+ * ****************************************************************/
+
+uint8_t BuildRanFunctionAddedList(DuDb *duDb, RANfunctionsID_List_t *ranFuncAddedList)
+{
+ uint8_t ranFuncIdx = 0;
+ RANfunctionID_ItemIEs_t *ranFuncAddedItemIe;
+
+ ranFuncAddedList->list.count = duDb->numOfRanFunction;
+ ranFuncAddedList->list.size = ranFuncAddedList->list.count*sizeof(RANfunctionID_ItemIEs_t*);
+ RIC_ALLOC(ranFuncAddedList->list.array, ranFuncAddedList->list.size);
+ if(ranFuncAddedList->list.array)
+ {
+ for(ranFuncIdx = 0; ranFuncIdx< ranFuncAddedList->list.count; ranFuncIdx++)
+ {
+ RIC_ALLOC(ranFuncAddedList->list.array[ranFuncIdx], sizeof(RANfunction_ItemIEs_t));
+ if(ranFuncAddedList->list.array[ranFuncIdx] == NULLP)
+ {
+ DU_LOG("\nERROR --> E2AP : Memory allocation for RAN function added list array item");
+ return RFAILED;
+ }
+ ranFuncAddedItemIe = (RANfunctionID_ItemIEs_t*)ranFuncAddedList->list.array[ranFuncIdx];
+ ranFuncAddedItemIe->id = ProtocolIE_IDE2_id_RANfunctionID_Item;
+ ranFuncAddedItemIe->criticality= CriticalityE2_ignore;
+ ranFuncAddedItemIe->value.present = RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item;
+ ranFuncAddedItemIe->value.choice.RANfunctionID_Item.ranFunctionID =duDb->ranFunction[ranFuncIdx].id;
+ ranFuncAddedItemIe->value.choice.RANfunctionID_Item.ranFunctionRevision=duDb->ranFunction[ranFuncIdx].revisionCounter;
+ }
+ }
+ else
+ {
+ DU_LOG("\nERROR --> E2AP : Memory allocation for RAN function added list array");
+ return RFAILED;
+ }
+ return ROK;
+}
+