cptr := unsafe.Pointer(&payload[0])
decodedMsg = &ControlAckMsg{}
decodedCMsg := C.e2ap_decode_ric_control_acknowledge_message(cptr, C.size_t(len(payload)))
+ defer C.e2ap_free_decoded_ric_control_ack(decodedCMsg)
if decodedCMsg == nil {
return decodedMsg, errors.New("e2ap wrapper is unable to decode indication message due to wrong or invalid payload")
}
- defer C.e2ap_free_decoded_ric_control_ack(decodedCMsg)
decodedMsg.RequestID = int32(decodedCMsg.requestorID)
decodedMsg.InstanceId = int32(decodedCMsg.instanceID)
cptr := unsafe.Pointer(&payload[0])
decodedMsg = &ControlFailureMsg{}
decodedCMsg := C.e2ap_decode_ric_control_failure_message(cptr, C.size_t(len(payload)))
+ defer C.e2ap_free_decoded_ric_control_failure(decodedCMsg)
if decodedCMsg == nil {
return decodedMsg, errors.New("e2ap wrapper is unable to decode control failure message due to wrong or invalid payload")
}
- defer C.e2ap_free_decoded_ric_control_failure(decodedCMsg)
decodedMsg.RequestID = int32(decodedCMsg.requestorID)
decodedMsg.InstanceId = int32(decodedCMsg.instanceID)
//ml.MavLog(ml.INFO, lTransId, "Decode Control Outcome: ")
xapp.Logger.Info("Decode Control Outcome: ")
decodedMsg := C.e2sm_decode_ric_call_process_outcome(cptr, C.size_t(len(buffer)))
+ defer C.e2sm_free_ric_call_process_outcome(decodedMsg)
if decodedMsg == nil {
return controlOutcome, errors.New("e2sm wrapper is unable to get ControlOutcome due to wrong or invalid input")
}
- defer C.e2sm_free_ric_call_process_outcome(decodedMsg)
//ml.MavLog(ml.INFO, lTransId, "Decoded Control Outcome: ")
controlOutcome.ControlOutcomeType = int32(decodedMsg.ric_controlOutcome_formats.present)
if controlOutcome.ControlOutcomeType == 1 {
}
controlHeaderIE->ric_controlHeader_formats.present = E2SM_RC_ControlHeader__ric_controlHeader_formats_PR_controlHeader_Format1;
- E2SM_RC_ControlHeader_Format1_t *controlHeader_Fmt1 = (E2SM_RC_ControlHeader_Format1_t *)calloc(1, sizeof(E2SM_RC_ControlHeader_Format1_t));
+ //E2SM_RC_ControlHeader_Format1_t *controlHeader_Fmt1 = (E2SM_RC_ControlHeader_Format1_t *)calloc(1, sizeof(E2SM_RC_ControlHeader_Format1_t));
+ E2SM_RC_ControlHeader_Format1_t *controlHeader_Fmt1 = NULL;
+ controlHeaderIE->ric_controlHeader_formats.choice.controlHeader_Format1 = (E2SM_RC_ControlHeader_Format1_t *)calloc(1, sizeof(E2SM_RC_ControlHeader_Format1_t));
+ controlHeader_Fmt1 = controlHeaderIE->ric_controlHeader_formats.choice.controlHeader_Format1;
if(!controlHeader_Fmt1)
{
fprintf(stderr, "alloc E2SM_RC_ControlHeader failed\n");
+ ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
return -1;
}
}
//f1AP is an array of data
//int n = sizeof(f1AP)/sizeof(long int);
+
for(int i =0; i < f1AP_len; i++)
{
UEID_GNB_CU_CP_F1AP_ID_Item_t *F1AP_ID_Item = (UEID_GNB_CU_CP_F1AP_ID_Item_t *)calloc (1, sizeof(UEID_GNB_CU_CP_F1AP_ID_Item_t ));
OCTET_STRING_fromBuf(&nr_cgi->pLMNIdentity,plmnIdValue, plmnId_size);
//fprintf(stderr, "encodec Plmn Id = %s plmnIdValue %s and lNRCellId = %lu \n", nr_cgi->pLMNIdentity, plmnIdValue,lNRCellId);
//fprintf(stderr, "encodec Plmn Id = %s and lNRCellId = %d \n", nr_cgi->pLMNIdentity,plmnIdValue,lNRCellId);
- BIT_STRING_t *nr_cell_id = (BIT_STRING_t*)calloc(1, sizeof(BIT_STRING_t));
- if(nr_cell_id)
- {
+ BIT_STRING_t *nr_cell_id = &nr_cgi->nRCellIdentity ;
nr_cell_id->buf = (uint8_t*)calloc(1,5);
if(nr_cell_id->buf)
{
nr_cell_id->buf[4] = (lNRCellId & 0X000000000F) << 4;
nr_cell_id->bits_unused = 4;
- nr_cgi->nRCellIdentity = *nr_cell_id;
}
- }
fprintf(stderr, "showing xer of asn_DEF_NR_CGI NR_CGI_t data\n");
xer_fprint(stderr, &asn_DEF_NR_CGI, nr_cgi);