+/*******************************************************************
+ *
+ * @brief Converts DU specific failure cause to E2 interface
+ * failure cause
+ *
+ * @details
+ *
+ * Function : convertDuCauseToE2Cause
+ *
+ * Functionality: Converts DU specific failure cause to E2
+ * interface failure cause
+ *
+ * @params[in] DU specific failure cause
+ * E2 specific failure cause
+ *
+ * @return void
+ *
+ * ****************************************************************/
+void convertDuCauseToE2Cause(CauseOfResult l2Cause, E2FailureCause *failureCause)
+{
+ switch(l2Cause)
+ {
+ case STATS_ID_NOT_FOUND:
+ case PARAM_INVALID:
+ {
+ failureCause->causeType = E2_RIC_REQUEST;
+ failureCause->cause = E2_ACTION_NOT_SUPPORTED;
+ break;
+ }
+ case RESOURCE_UNAVAILABLE:
+ {
+ failureCause->causeType = E2_RIC_REQUEST;
+ failureCause->cause = E2_FUNCTION_RESOURCE_LIMIT;
+ break;
+ }
+ default:
+ {
+ failureCause->causeType = E2_RIC_REQUEST;
+ failureCause->cause = E2_RIC_REQUEST_CAUSE_UNSPECIFIED;
+ break;
+ }
+ }
+}
+
+/************************************************************************
+ *
+ * @brief Converts InterfaceType into E2nodeComponentInterfaceType value
+ *
+ * @details
+ *
+ * Function : convertInterfaceToE2ComponentInterfaceType
+ *
+ * Functionality: Convert InterfaceType into E2nodeComponentInterfaceType
+ * value
+ *
+ * @params[in] Actual value of interface
+ * @return Enum value of e2 interface
+ *
+ * **********************************************************************/
+
+uint8_t convertInterfaceToE2ComponentInterfaceType(uint8_t interface)
+{
+ switch(interface)
+ {
+ case NG:
+ return E2nodeComponentInterfaceType_ng;
+
+ case XN:
+ return E2nodeComponentInterfaceType_xn;
+
+ case E1:
+ return E2nodeComponentInterfaceType_e1;
+
+ case F1:
+ return E2nodeComponentInterfaceType_f1;
+
+ case W1:
+ return E2nodeComponentInterfaceType_w1;
+
+ case S1:
+ return E2nodeComponentInterfaceType_s1;
+
+ case X2:
+ return E2nodeComponentInterfaceType_x2;
+ }
+ return RFAILED;
+}
+
+/*******************************************************************
+ *
+ * @brief Converts MAC-specific Measurement type to E2 interface
+ * specific measurement type
+ *
+ * @details
+ *
+ * Function : convertMacMeasTypeToE2MeasType
+ *
+ * Functionality: Converts MAC-specific Measurement type to E2
+ * interface specific measurement type
+ *
+ * @params[in] MAC specific measurement type
+ * E2 interface specific measurement type
+ *
+ * @return uint8_t
+ *
+ * ****************************************************************/
+uint8_t convertMacMeasTypeToE2MeasType(MacMeasurementType macMeasName, char *e2MeasName)
+{
+ uint8_t measNameLen = 0;
+
+ switch(macMeasName)
+ {
+ case MAC_DL_TOTAL_PRB_USAGE:
+ {
+ measNameLen = strlen("RRU.PrbTotDl");
+ memcpy(e2MeasName, "RRU.PrbTotDl", measNameLen+1);
+ break;
+ }
+ case MAC_UL_TOTAL_PRB_USAGE:
+ {
+ measNameLen = strlen("RRU.PrbTotUl");
+ memcpy(e2MeasName, "RRU.PrbTotUl", measNameLen+1);
+ break;
+ }
+ default:
+ {
+ DU_LOG("\nERROR --> E2AP : MAC mesurement type [%d] not supported", macMeasName);
+ return RFAILED;
+ }
+ }
+ return ROK;
+}
+