ASN_SEQUENCE_ADD return code was checked only in 0.5% of calls, existing errors not detected by sanitize address

This commit is contained in:
laurent
2023-01-11 09:59:39 +01:00
committed by Robert Schmidt
parent 1a0c0cd1c9
commit 9a789dbb8a
78 changed files with 910 additions and 931 deletions
+32 -32
View File
@@ -84,7 +84,7 @@ int m2ap_eNB_generate_m2_setup_request(
ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
///* mandatory */
///* c2. GNB_eNB_ID (integrer value) */
@@ -93,7 +93,7 @@ int m2ap_eNB_generate_m2_setup_request(
//ie->criticality = M2AP_Criticality_reject;
//ie->value.present = M2AP_M2SetupRequestIEs__value_PR_GNB_eNB_ID;
//asn_int642INTEGER(&ie->value.choice.GNB_eNB_ID, f1ap_du_data->gNB_eNB_id);
//ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
//asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
/* c3. ENBname */
@@ -104,7 +104,7 @@ int m2ap_eNB_generate_m2_setup_request(
ie->value.present = M2AP_M2SetupRequest_Ies__value_PR_ENBname;
//OCTET_STRING_fromBuf(&ie->value.choice.ENB_Name, m2ap_eNB_data_p->eNB_name,
//strlen(m2ap_eNB_data_p->eNB_name));
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* mandatory */
@@ -138,7 +138,7 @@ int m2ap_eNB_generate_m2_setup_request(
&mbms_configuration_data_item->eCGI.eUTRANcellIdentifier);
M2AP_MBMS_Service_Area_t * mbms_service_area;
mbms_service_area = (M2AP_MBMS_Service_Area_t*)calloc(1,sizeof(M2AP_MBMS_Service_Area_t));
ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
}
@@ -154,10 +154,10 @@ int m2ap_eNB_generate_m2_setup_request(
//M2AP_MBMS_Service_Area_ID_List_t mbmsServiceAreaList;
ASN_SEQUENCE_ADD(&ie->value.choice.ENB_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
asn1cSeqAdd(&ie->value.choice.ENB_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
LOG_W(M2AP,"m2ap_eNB_data_p->assoc_id %d\n",m2ap_eNB_data_p->assoc_id);
/* encode */
@@ -214,7 +214,7 @@ int m2ap_eNB_generate_m2_setup_request(
// // ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[0],
// // ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
// // ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -236,7 +236,7 @@ int m2ap_eNB_generate_m2_setup_request(
// // plmn = (M2AP_PLMN_Identity_t *)calloc(1,sizeof(M2AP_PLMN_Identity_t));
// // {
// // MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
// // ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
// // asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
// // }
//
// // if (instance_p->frame_type[i] == FDD) {
@@ -277,10 +277,10 @@ int m2ap_eNB_generate_m2_setup_request(
// // AssertFatal(0,"M2Setupresponse not supported for TDD!");
// // }
// // }
// // ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
// // asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
// // }
// //}
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -295,9 +295,9 @@ int m2ap_eNB_generate_m2_setup_request(
// // //@TODO: consider to update this value
// // INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
// // }
// // ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
// // asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
// //}
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
// M2AP_ERROR("Failed to encode M2 setup response\n");
@@ -341,7 +341,7 @@ int m2ap_eNB_generate_m2_setup_request(
//
// //m2ap_eNB_set_cause (&ie->value.choice.Cause, cause_type, cause_value);
//
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* optional: consider to handle this later */
// ie = (M2AP_M2SetupFailure_Ies_t *)calloc(1, sizeof(M2AP_M2SetupFailure_Ies_t));
@@ -353,7 +353,7 @@ int m2ap_eNB_generate_m2_setup_request(
// // ie->value.choice.TimeToWait = time_to_wait;
// //}
//
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
// M2AP_ERROR("Failed to encode M2 setup failure\n");
@@ -429,7 +429,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_reject;
// ie->value.present = M2AP_HandoverRequest_IEs__value_PR_UE_M2AP_ID;
// ie->value.choice.UE_M2AP_ID = m2ap_id_get_id_source(&instance_p->id_manager, ue_id);
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -438,7 +438,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// ie->value.present = M2AP_HandoverRequest_IEs__value_PR_Cause;
// ie->value.choice.Cause.present = M2AP_Cause_PR_radioNetwork;
// ie->value.choice.Cause.choice.radioNetwork = M2AP_CauseRadioNetwork_handover_desirable_for_radio_reasons;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -448,7 +448,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
// &ie->value.choice.ECGI.pLMN_Identity);
// MACRO_ENB_ID_TO_CELL_IDENTITY(m2ap_eNB_data_p->eNB_id, 0, &ie->value.choice.ECGI.eUTRANcellIdentifier);
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -460,7 +460,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// //@TODO: consider to update these values
// INT16_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_group_id, &ie->value.choice.GUMMEI.gU_Group_ID.mME_Group_ID);
// MME_CODE_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_code, &ie->value.choice.GUMMEI.mME_Code);
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -512,13 +512,13 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
//
// INT32_TO_OCTET_STRING(m2ap_handover_req->e_rabs_tobesetup[i].gtp_teid,&e_RABs_ToBeSetup_Item->uL_GTPtunnelEndpoint.gTP_TEID);
// }
// ASN_SEQUENCE_ADD(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
// asn1cSeqAdd(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
// }
// }
//
// OCTET_STRING_fromBuf(&ie->value.choice.UE_ContextInformation.rRC_Context, (char*) m2ap_handover_req->rrc_buffer, m2ap_handover_req->rrc_buffer_size);
//
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -534,10 +534,10 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// MACRO_ENB_ID_TO_CELL_IDENTITY(0, 0, &lastVisitedCell_Item->choice.e_UTRAN_Cell.global_Cell_ID.eUTRANcellIdentifier);
// lastVisitedCell_Item->choice.e_UTRAN_Cell.cellType.cell_Size = M2AP_Cell_Size_small;
// lastVisitedCell_Item->choice.e_UTRAN_Cell.time_UE_StayedInCell = 2;
// ASN_SEQUENCE_ADD(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
// asn1cSeqAdd(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
// }
//
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
// M2AP_ERROR("Failed to encode X2 handover request\n");
@@ -588,7 +588,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_ignore;
// ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID;
// ie->value.choice.UE_M2AP_ID = id_source;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -596,7 +596,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_ignore;
// ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID_1;
// ie->value.choice.UE_M2AP_ID_1 = id_target;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -614,11 +614,11 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// {
// e_RABs_Admitted_Item->e_RAB_ID = m2ap_handover_req_ack->e_rabs_tobesetup[i].e_rab_id;
// }
// ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
// asn1cSeqAdd(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
// }
// }
//
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -628,7 +628,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
//
// OCTET_STRING_fromBuf(&ie->value.choice.TargeteNBtoSource_eNBTransparentContainer, (char*) m2ap_handover_req_ack->rrc_buffer, m2ap_handover_req_ack->rrc_buffer_size);
//
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
// M2AP_ERROR("Failed to encode X2 handover response\n");
@@ -680,7 +680,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_reject;
// ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID;
// ie->value.choice.UE_M2AP_ID = id_source;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_UEContextRelease_IEs_t *)calloc(1, sizeof(M2AP_UEContextRelease_IEs_t));
@@ -688,7 +688,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_reject;
// ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID_1;
// ie->value.choice.UE_M2AP_ID_1 = id_target;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
// M2AP_ERROR("Failed to encode X2 UE Context Release\n");
@@ -737,7 +737,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_reject;
// ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID;
// ie->value.choice.UE_M2AP_ID = id_source;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* optional */
// if (id_target != -1) {
@@ -746,7 +746,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_ignore;
// ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID_1;
// ie->value.choice.UE_M2AP_ID_1 = id_target;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
// }
//
// /* mandatory */
@@ -770,7 +770,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
// M2AP_ERROR("unhandled cancel cause\n");
// exit(1);
// }
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
// M2AP_ERROR("Failed to encode X2 Handover Cancel\n");
+1 -1
View File
@@ -30,7 +30,7 @@
#include "intertask_interface.h"
#include "asn1_conversions.h"
#include "oai_asn1.h"
#include "m3ap_common.h"
#include "m3ap_MCE_defs.h"
+20 -20
View File
@@ -129,7 +129,7 @@ int MCE_send_MBMS_SESSION_START_RESPONSE(instance_t instance, m3ap_session_start
ie->criticality = M3AP_Criticality_reject;
ie->value.present = M3AP_MBMSSessionStartResponse_IEs__value_PR_MCE_MBMS_M3AP_ID;
//ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c1. MME_MBMS_M3AP_ID (integer value) */ //long
@@ -138,7 +138,7 @@ int MCE_send_MBMS_SESSION_START_RESPONSE(instance_t instance, m3ap_session_start
ie->criticality = M3AP_Criticality_reject;
ie->value.present = M3AP_MBMSSessionStartResponse_IEs__value_PR_MME_MBMS_M3AP_ID;
//ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (m3ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -186,7 +186,7 @@ int MCE_send_MBMS_SESSION_START_FAILURE(instance_t instance, m3ap_session_start_
// // ie->criticality = M3AP_Criticality_reject;
// // ie->value.present = M3AP_M3SetupFailure_Ies__value_PR_GlobalMCE_ID;
// // ie->value.choice.GlobalMCE_ID = M3AP_get_next_transaction_identifier(enb_mod_idP, mce_mod_idP);
// // ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// // asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// /* c2. Cause */
@@ -196,7 +196,7 @@ int MCE_send_MBMS_SESSION_START_FAILURE(instance_t instance, m3ap_session_start_
// ie->value.present = M3AP_SessionStartFailure_Ies__value_PR_Cause;
// ie->value.choice.Cause.present = M3AP_Cause_PR_radioNetwork;
// ie->value.choice.Cause.choice.radioNetwork = M3AP_CauseRadioNetwork_unspecified;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
//
// /* encode */
@@ -290,7 +290,7 @@ int MCE_send_MBMS_SESSION_STOP_RESPONSE(instance_t instance, m3ap_session_start_
ie->criticality = M3AP_Criticality_reject;
ie->value.present = M3AP_MBMSSessionStopResponse_IEs__value_PR_MCE_MBMS_M3AP_ID;
//ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c1. MCE_MBMS_M3AP_ID (integer value) */ //long
@@ -299,7 +299,7 @@ int MCE_send_MBMS_SESSION_STOP_RESPONSE(instance_t instance, m3ap_session_start_
ie->criticality = M3AP_Criticality_reject;
ie->value.present = M3AP_MBMSSessionStopResponse_IEs__value_PR_MCE_MBMS_M3AP_ID;
//ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (m3ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -389,7 +389,7 @@ int MCE_send_MBMS_SESSION_UPDATE_RESPONSE(instance_t instance, m3ap_mbms_session
ie->criticality = M3AP_Criticality_reject;
ie->value.present = M3AP_MBMSSessionUpdateResponse_IEs__value_PR_MCE_MBMS_M3AP_ID;
//ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c1. MCE_MBMS_M3AP_ID (integer value) */ //long
@@ -398,7 +398,7 @@ int MCE_send_MBMS_SESSION_UPDATE_RESPONSE(instance_t instance, m3ap_mbms_session
ie->criticality = M3AP_Criticality_reject;
ie->value.present = M3AP_MBMSSessionUpdateResponse_IEs__value_PR_MCE_MBMS_M3AP_ID;
//ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (m3ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -486,7 +486,7 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
// ie->value.choice.Global_MCE_ID.mCE_ID.buf[1],
// ie->value.choice.Global_MCE_ID.mCE_ID.buf[2]);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// ///* mandatory */
// ///* c2. GNB_MCE_ID (integrer value) */
@@ -495,7 +495,7 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
// //ie->criticality = M3AP_Criticality_reject;
// //ie->value.present = M3AP_M3SetupRequestIEs__value_PR_GNB_MCE_ID;
// //asn_int642INTEGER(&ie->value.choice.GNB_MCE_ID, f1ap_du_data->gNB_MCE_id);
// //ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// //asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* optional */
/* c3. MCEname */
@@ -507,7 +507,7 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
ie->value.present = M3AP_M3SetupRequestIEs__value_PR_MCEname;
OCTET_STRING_fromBuf(&ie->value.choice.MCEname, m3ap_MCE_data_p->MCE_name,
strlen(m3ap_MCE_data_p->MCE_name));
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* mandatory */ //but removed from asn definition (optional) since it crashes when decoding ???????????
@@ -531,13 +531,13 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
OCTET_STRING_fromBuf(m3ap_mbmsservicearea1,"02",2);
//ASN_SEQUENCE_ADD(&m3ap_mbmsservicearealistitem->list,m3ap_mbmsservicearea1);
//asn1cSeqAdd(&m3ap_mbmsservicearealistitem->list,m3ap_mbmsservicearea1);
//ASN_SEQUENCE_ADD(&ie->value.choice.MBMSServiceAreaListItem,m3ap_mbmsservicearealistitem);
//ASN_SEQUENCE_ADD(&ie->value.choice.MBMSServiceAreaListItem.list,m3ap_mbmsservicearealistitem);
ASN_SEQUENCE_ADD(&ie->value.choice.MBMSServiceAreaListItem.list,m3ap_mbmsservicearea1);
//asn1cSeqAdd(&ie->value.choice.MBMSServiceAreaListItem,m3ap_mbmsservicearealistitem);
//asn1cSeqAdd(&ie->value.choice.MBMSServiceAreaListItem.list,m3ap_mbmsservicearealistitem);
asn1cSeqAdd(&ie->value.choice.MBMSServiceAreaListItem.list,m3ap_mbmsservicearea1);
//ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
//asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
@@ -578,9 +578,9 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
// mbms_service_area2 = (M3AP_MBMS_Service_Area_t*)calloc(1,sizeof(M3AP_MBMS_Service_Area_t));
// //memset(mbms_service_area,0,sizeof(OCTET_STRING_t));
// OCTET_STRING_fromBuf(mbms_service_area,"01",2);
// ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
// asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
// OCTET_STRING_fromBuf(mbms_service_area2,"02",2);
// ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area2);
// asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area2);
//
//
// }
@@ -596,10 +596,10 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
// //M3AP_MBMS_Service_Area_ID_List_t mbmsServiceAreaList;
//
//
// ASN_SEQUENCE_ADD(&ie->value.choice.MCE_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
// asn1cSeqAdd(&ie->value.choice.MCE_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
//
// }
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// LOG_W(M3AP,"m3ap_MCE_data_p->assoc_id %d\n",m3ap_MCE_data_p->assoc_id);
// /* encode */
+32 -32
View File
@@ -83,7 +83,7 @@ int m2ap_MCE_generate_m2_setup_request(
// ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[0],
// ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[1],
// ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[2]);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (M2AP_M2SetupRequest_Ies_t *)calloc(1, sizeof(M2AP_M2SetupRequest_Ies_t));
@@ -105,7 +105,7 @@ int m2ap_MCE_generate_m2_setup_request(
// plmn = (M2AP_PLMN_Identity_t *)calloc(1,sizeof(M2AP_PLMN_Identity_t));
// {
// MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
// ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
// asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
// }
// if (instance_p->frame_type[i] == FDD) {
@@ -146,10 +146,10 @@ int m2ap_MCE_generate_m2_setup_request(
// AssertFatal(0,"M2Setuprequest not supported for TDD!");
// }
// }
// ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
// asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
// }
//}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (M2AP_M2SetupRequest_Ies_t *)calloc(1, sizeof(M2AP_M2SetupRequest_Ies_t));
@@ -164,9 +164,9 @@ int m2ap_MCE_generate_m2_setup_request(
// //@TODO: consider to update this value
// INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
// }
// ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
// asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
//}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
M2AP_ERROR("Failed to encode M2 setup request\n");
@@ -216,7 +216,7 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
// ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[0],
// ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[1],
// ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[2]);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -238,7 +238,7 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
// plmn = (M2AP_PLMN_Identity_t *)calloc(1,sizeof(M2AP_PLMN_Identity_t));
// {
// MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
// ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
// asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
// }
// if (instance_p->frame_type[i] == FDD) {
@@ -279,10 +279,10 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
// AssertFatal(0,"M2Setupresponse not supported for TDD!");
// }
// }
// ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
// asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
// }
//}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -297,9 +297,9 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
// //@TODO: consider to update this value
// INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
// }
// ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
// asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
//}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
M2AP_ERROR("Failed to encode M2 setup response\n");
@@ -343,7 +343,7 @@ int m2ap_MCE_generate_m2_setup_failure(instance_t instance,
//m2ap_MCE_set_cause (&ie->value.choice.Cause, cause_type, cause_value);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional: consider to handle this later */
ie = (M2AP_M2SetupFailure_Ies_t *)calloc(1, sizeof(M2AP_M2SetupFailure_Ies_t));
@@ -355,7 +355,7 @@ int m2ap_MCE_generate_m2_setup_failure(instance_t instance,
// ie->value.choice.TimeToWait = time_to_wait;
//}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
M2AP_ERROR("Failed to encode M2 setup failure\n");
@@ -431,7 +431,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_reject;
// ie->value.present = M2AP_HandoverRequest_IEs__value_PR_UE_M2AP_ID;
// ie->value.choice.UE_M2AP_ID = m2ap_id_get_id_source(&instance_p->id_manager, ue_id);
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -440,7 +440,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// ie->value.present = M2AP_HandoverRequest_IEs__value_PR_Cause;
// ie->value.choice.Cause.present = M2AP_Cause_PR_radioNetwork;
// ie->value.choice.Cause.choice.radioNetwork = M2AP_CauseRadioNetwork_handover_desirable_for_radio_reasons;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -450,7 +450,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
// &ie->value.choice.ECGI.pLMN_Identity);
// MACRO_MCE_ID_TO_CELL_IDENTITY(m2ap_MCE_data_p->MCE_id, 0, &ie->value.choice.ECGI.eUTRANcellIdentifier);
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -462,7 +462,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// //@TODO: consider to update these values
// INT16_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_group_id, &ie->value.choice.GUMMEI.gU_Group_ID.mME_Group_ID);
// MME_CODE_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_code, &ie->value.choice.GUMMEI.mME_Code);
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -514,13 +514,13 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
//
// INT32_TO_OCTET_STRING(m2ap_handover_req->e_rabs_tobesetup[i].gtp_teid,&e_RABs_ToBeSetup_Item->uL_GTPtunnelEndpoint.gTP_TEID);
// }
// ASN_SEQUENCE_ADD(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
// asn1cSeqAdd(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
// }
// }
//
// OCTET_STRING_fromBuf(&ie->value.choice.UE_ContextInformation.rRC_Context, (char*) m2ap_handover_req->rrc_buffer, m2ap_handover_req->rrc_buffer_size);
//
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -536,10 +536,10 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// MACRO_MCE_ID_TO_CELL_IDENTITY(0, 0, &lastVisitedCell_Item->choice.e_UTRAN_Cell.global_Cell_ID.eUTRANcellIdentifier);
// lastVisitedCell_Item->choice.e_UTRAN_Cell.cellType.cell_Size = M2AP_Cell_Size_small;
// lastVisitedCell_Item->choice.e_UTRAN_Cell.time_UE_StayedInCell = 2;
// ASN_SEQUENCE_ADD(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
// asn1cSeqAdd(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
// }
//
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
// M2AP_ERROR("Failed to encode X2 handover request\n");
@@ -590,7 +590,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_ignore;
// ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID;
// ie->value.choice.UE_M2AP_ID = id_source;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -598,7 +598,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_ignore;
// ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID_1;
// ie->value.choice.UE_M2AP_ID_1 = id_target;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -616,11 +616,11 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// {
// e_RABs_Admitted_Item->e_RAB_ID = m2ap_handover_req_ack->e_rabs_tobesetup[i].e_rab_id;
// }
// ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
// asn1cSeqAdd(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
// }
// }
//
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -630,7 +630,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
//
// OCTET_STRING_fromBuf(&ie->value.choice.TargetMCEtoSource_MCETransparentContainer, (char*) m2ap_handover_req_ack->rrc_buffer, m2ap_handover_req_ack->rrc_buffer_size);
//
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
// M2AP_ERROR("Failed to encode X2 handover response\n");
@@ -682,7 +682,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_reject;
// ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID;
// ie->value.choice.UE_M2AP_ID = id_source;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// ie = (M2AP_UEContextRelease_IEs_t *)calloc(1, sizeof(M2AP_UEContextRelease_IEs_t));
@@ -690,7 +690,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_reject;
// ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID_1;
// ie->value.choice.UE_M2AP_ID_1 = id_target;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
// M2AP_ERROR("Failed to encode X2 UE Context Release\n");
@@ -739,7 +739,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_reject;
// ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID;
// ie->value.choice.UE_M2AP_ID = id_source;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* optional */
// if (id_target != -1) {
@@ -748,7 +748,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// ie->criticality = M2AP_Criticality_ignore;
// ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID_1;
// ie->value.choice.UE_M2AP_ID_1 = id_target;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
// }
//
// /* mandatory */
@@ -772,7 +772,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
// M2AP_ERROR("unhandled cancel cause\n");
// exit(1);
// }
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
// M2AP_ERROR("Failed to encode X2 Handover Cancel\n");
+1 -1
View File
@@ -30,7 +30,7 @@
#include "intertask_interface.h"
#include "asn1_conversions.h"
#include "oai_asn1.h"
#include "m3ap_common.h"
#include "m3ap_MME_defs.h"
+30 -30
View File
@@ -94,7 +94,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
ie->criticality = M3AP_Criticality_reject;
ie->value.present = M3AP_MBMSSessionStartRequest_IEs__value_PR_MME_MBMS_M3AP_ID;
//ie->value.choice.MME_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c2. TMGI */
@@ -108,7 +108,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
uint8_t TMGI[5] = {4,3,2,1,0};
OCTET_STRING_fromBuf(&tmgi->serviceID,(const char*)&TMGI[2],3);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
/* c2. MBMS_Session_ID */
if(0){
@@ -118,7 +118,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
ie->value.present = M3AP_MBMSSessionStartRequest_IEs__value_PR_MBMS_Session_ID;
//M3AP_MBMS_Session_ID_t * mbms_session_id = &ie->value.choice.MBMS_Session_ID;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* mandatory */
/* c2. MBMS_E_RAB_QoS_Parameters */
@@ -133,7 +133,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
//struct M3AP_GBR_QosInformation *gbrQosInformation; /* OPTIONAL */
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c2. MBMS_Session_Duration */
ie = (M3AP_MBMSSessionStartRequest_IEs_t *)calloc(1, sizeof(M3AP_MBMSSessionStartRequest_IEs_t));
@@ -145,7 +145,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
uint8_t duration[5] = {4,3,2,1,0};
OCTET_STRING_fromBuf(mbms_session_duration,(const char*)&duration[2],3);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c2 MBMS_Service_Area */
ie = (M3AP_MBMSSessionStartRequest_IEs_t *)calloc(1, sizeof(M3AP_MBMSSessionStartRequest_IEs_t));
@@ -157,7 +157,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
uint8_t duration[5] = {4,3,2,1,0};
OCTET_STRING_fromBuf(mbms_service_area,(const char*)&duration[2],1);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c2 MinimumTimeToMBMSDataTransfer */
ie = (M3AP_MBMSSessionStartRequest_IEs_t *)calloc(1, sizeof(M3AP_MBMSSessionStartRequest_IEs_t));
@@ -170,7 +170,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
OCTET_STRING_fromBuf(minimumtimetombmsdatatransfer,(const char*)&duration[2],1);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c2 TNL_Information */
ie = (M3AP_MBMSSessionStartRequest_IEs_t *)calloc(1, sizeof(M3AP_MBMSSessionStartRequest_IEs_t));
@@ -195,7 +195,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
ip = (224U << 24) | (0) << 16 | (0) << 8 | (2);
INT32_TO_OCTET_STRING(ip, &tnl_information->iPSourceAddress);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
/* c2 Time_ofMBMS_DataTransfer */
if(0){
@@ -208,7 +208,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
//char duration[5] = {4,3,2,1,0};
//OCTET_STRING_fromBuf(absolute_time_ofmbms_data,(const char*)&duration[2],3);
//}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
/* c2 MBMS_Cell_List */
@@ -222,9 +222,9 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
{
//MCC_MNC_TO_PLMNID(0,0,3,ecgi->pLMN_Identity);
//MACRO_ENB_ID_TO_CELL_IDENTITY(1,0,ecgi->eUTRANcellIdentifier);
ASN_SEQUENCE_ADD(&mbms_cell_list->list,ecgi);
asn1cSeqAdd(&mbms_cell_list->list,ecgi);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* encode */
@@ -344,7 +344,7 @@ int MME_send_MBMS_SESSION_STOP_REQUEST(instance_t instance, m3ap_session_stop_re
ie->criticality = M3AP_Criticality_reject;
ie->value.present = M3AP_MBMSSessionStopRequest_IEs__value_PR_MME_MBMS_M3AP_ID;
//ie->value.choice.MME_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c2. MCE_MBMS_M3AP_ID (integer value) */ //long
@@ -354,7 +354,7 @@ int MME_send_MBMS_SESSION_STOP_REQUEST(instance_t instance, m3ap_session_stop_re
ie->value.present = M3AP_MBMSSessionStopRequest_IEs__value_PR_MCE_MBMS_M3AP_ID;
//ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* encode */
@@ -667,7 +667,7 @@ int MME_send_M3_SETUP_RESPONSE(instance_t instance, /*uint32_t assoc_id,*/
*ie->value.choice.CriticalityDiagnostics.procedureCriticality = M3AP_Criticality_reject;
//ie->value.choice.CriticalityDiagnostics.transactionID = (M2AP_TransactionID_t *)calloc(1, sizeof(M3AP_TransactionID_t));
//*ie->value.choice.CriticalityDiagnostics.transactionID = 0;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* encode */
@@ -717,7 +717,7 @@ int MME_send_M3_SETUP_FAILURE(instance_t instance,m3ap_setup_failure_t* m3ap_set
// // ie->criticality = M3AP_Criticality_reject;
// // ie->value.present = M3AP_M3SetupFailure_Ies__value_PR_GlobalMCE_ID;
// // ie->value.choice.GlobalMCE_ID = M3AP_get_next_transaction_identifier(enb_mod_idP, mce_mod_idP);
// // ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// // asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* mandatory */
// /* c2. Cause */
@@ -727,7 +727,7 @@ int MME_send_M3_SETUP_FAILURE(instance_t instance,m3ap_setup_failure_t* m3ap_set
// ie->value.present = M3AP_M3SetupFailure_Ies__value_PR_Cause;
// ie->value.choice.Cause.present = M3AP_Cause_PR_radioNetwork;
// ie->value.choice.Cause.choice.radioNetwork = M3AP_CauseRadioNetwork_unspecified;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
//
// /* optional */
// /* c3. TimeToWait */
@@ -737,7 +737,7 @@ int MME_send_M3_SETUP_FAILURE(instance_t instance,m3ap_setup_failure_t* m3ap_set
// ie->criticality = M3AP_Criticality_ignore;
// ie->value.present = M3AP_M3SetupFailure_Ies__value_PR_TimeToWait;
// ie->value.choice.TimeToWait = M3AP_TimeToWait_v10s;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
// }
//
// /* optional */
@@ -755,7 +755,7 @@ int MME_send_M3_SETUP_FAILURE(instance_t instance,m3ap_setup_failure_t* m3ap_set
// *ie->value.choice.CriticalityDiagnostics.procedureCriticality = M3AP_Criticality_reject;
// //ie->value.choice.CriticalityDiagnostics.transactionID = (M3AP_TransactionID_t *)calloc(1, sizeof(M3AP_TransactionID_t));
// //*ie->value.choice.CriticalityDiagnostics.transactionID = 0;
// ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
// asn1cSeqAdd(&out->protocolIEs.list, ie);
// }
//
// /* encode */
@@ -858,7 +858,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
ie->criticality = M3AP_Criticality_reject;
ie->value.present = M3AP_MBMSSessionUpdateRequest_IEs__value_PR_MME_MBMS_M3AP_ID;
//ie->value.choice.MME_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c2. MCE_MBMS_M3AP_ID (integer value) */ //long
@@ -868,7 +868,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
ie->value.present = M3AP_MBMSSessionUpdateRequest_IEs__value_PR_MCE_MBMS_M3AP_ID;
//ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c2. TMGI */
@@ -882,7 +882,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
uint8_t TMGI[5] = {4,3,2,1,0};
OCTET_STRING_fromBuf(&tmgi->serviceID,(const char*)&TMGI[2],3);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
/* c2. MBMS_Session_ID */
if(0){
@@ -892,7 +892,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
ie->value.present = M3AP_MBMSSessionUpdateRequest_IEs__value_PR_MBMS_Session_ID;
//M3AP_MBMS_Session_ID_t * mbms_session_id = &ie->value.choice.MBMS_Session_ID;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* mandatory */
/* c2. MBMS_E_RAB_QoS_Parameters */
@@ -907,7 +907,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
//struct M3AP_GBR_QosInformation *gbrQosInformation; /* OPTIONAL */
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
/* c2. MBMS_Session_Duration */
ie = (M3AP_MBMSSessionUpdateRequest_IEs_t *)calloc(1, sizeof(M3AP_MBMSSessionUpdateRequest_IEs_t));
@@ -919,7 +919,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
uint8_t duration[5] = {4,3,2,1,0};
OCTET_STRING_fromBuf(mbms_session_duration,(const char*)&duration[2],3);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
/* c2 MBMS_Service_Area */
if(0){
@@ -929,7 +929,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
ie->value.present = M3AP_MBMSSessionUpdateRequest_IEs__value_PR_MBMS_Service_Area;
//M3AP_MBMS_Service_Area_t * mbms_service_area = &ie->value.choice.MBMS_Service_Area;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* mandatory */
/* c2 MinimumTimeToMBMSDataTransfer */
@@ -943,7 +943,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
OCTET_STRING_fromBuf(minimumtimetombmsdatatransfer,(const char*)&duration[2],1);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
/* c2 TNL_Information */
if(0){
@@ -957,7 +957,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
OCTET_STRING_fromBuf(&tnl_information->iPSourceAddress,"1204",strlen("1234"));
OCTET_STRING_fromBuf(&tnl_information->gTP_DLTEID,"1204",strlen("1234"));
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
/* c2 Time_ofMBMS_DataTransfer */
@@ -971,7 +971,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
//char duration[5] = {4,3,2,1,0};
//OCTET_STRING_fromBuf(absolute_time_ofmbms_data,(const char*)&duration[2],3);
//}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
/* c2 MBMS_Cell_List */
@@ -985,9 +985,9 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
{
//MCC_MNC_TO_PLMNID(0,0,3,ecgi->pLMN_Identity);
//MACRO_ENB_ID_TO_CELL_IDENTITY(1,0,ecgi->eUTRANcellIdentifier);
ASN_SEQUENCE_ADD(&mbms_cell_list->list,ecgi);
asn1cSeqAdd(&mbms_cell_list->list,ecgi);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* encode */
+1 -1
View File
@@ -20,7 +20,7 @@
*/
#ifndef M3AP_COMMON_H_
#define M3AP_COMMON_H_
#include "oai_asn1.h"
#include "M3AP_ProtocolIE-Field.h"
#include "M3AP_M3AP-PDU.h"
#include "M3AP_InitiatingMessage.h"
+1 -1
View File
@@ -30,7 +30,7 @@
#include "intertask_interface.h"
#include "asn1_conversions.h"
#include "oai_asn1.h"
#include "m3ap_common.h"
#include "m3ap_MCE_defs.h"
@@ -189,4 +189,4 @@ void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_
set_qfi_pduid(qos_rule.qfi, psea_msg.pdu_id);
return;
}
}
@@ -168,4 +168,4 @@ typedef struct security_protected_nas_5gs_msg_s {
void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_length);
#endif
#endif
+1
View File
@@ -38,6 +38,7 @@
#include "common/utils/LOG/log.h"
#include "oai_asn1.h"
#include "NGAP_ProtocolIE-Field.h"
#include "NGAP_NGAP-PDU.h"
+7 -7
View File
@@ -459,7 +459,7 @@ static int ngap_gNB_generate_ng_setup_request(
ie->value.choice.GlobalRANNodeID.choice.globalGNB_ID->gNB_ID.choice.gNB_ID.buf[1],
ie->value.choice.GlobalRANNodeID.choice.globalGNB_ID->gNB_ID.choice.gNB_ID.buf[2],
ie->value.choice.GlobalRANNodeID.choice.globalGNB_ID->gNB_ID.choice.gNB_ID.buf[3]);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (instance_p->gNB_name) {
@@ -469,7 +469,7 @@ static int ngap_gNB_generate_ng_setup_request(
ie->value.present = NGAP_NGSetupRequestIEs__value_PR_RANNodeName;
OCTET_STRING_fromBuf(&ie->value.choice.RANNodeName, instance_p->gNB_name,
strlen(instance_p->gNB_name));
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* mandatory */
@@ -502,15 +502,15 @@ static int ngap_gNB_generate_ng_setup_request(
}
ASN_SEQUENCE_ADD(&plmn->tAISliceSupportList.list, ssi);
asn1cSeqAdd(&plmn->tAISliceSupportList.list, ssi);
}
ASN_SEQUENCE_ADD(&ta->broadcastPLMNList.list, plmn);
asn1cSeqAdd(&ta->broadcastPLMNList.list, plmn);
}
}
ASN_SEQUENCE_ADD(&ie->value.choice.SupportedTAList.list, ta);
asn1cSeqAdd(&ie->value.choice.SupportedTAList.list, ta);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_NGSetupRequestIEs_t *)calloc(1, sizeof(NGAP_NGSetupRequestIEs_t));
@@ -518,7 +518,7 @@ static int ngap_gNB_generate_ng_setup_request(
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_NGSetupRequestIEs__value_PR_PagingDRX;
ie->value.choice.PagingDRX = instance_p->default_drx;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (ngap_gNB_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -98,7 +98,7 @@ int ngap_ue_context_release_complete(instance_t instance,
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_UEContextReleaseComplete_IEs__value_PR_AMF_UE_NGAP_ID;
asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(NGAP_UEContextReleaseComplete_IEs_t));
@@ -106,7 +106,7 @@ int ngap_ue_context_release_complete(instance_t instance,
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_UEContextReleaseComplete_IEs__value_PR_RAN_UE_NGAP_ID;
ie->value.choice.RAN_UE_NGAP_ID = ue_release_complete_p->gNB_ue_ngap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -183,7 +183,7 @@ int ngap_ue_context_release_req(instance_t instance,
ie->criticality = NGAP_Criticality_reject;
ie->value.present = NGAP_UEContextReleaseRequest_IEs__value_PR_AMF_UE_NGAP_ID;
asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(NGAP_UEContextReleaseRequest_IEs_t));
@@ -191,7 +191,7 @@ int ngap_ue_context_release_req(instance_t instance,
ie->criticality = NGAP_Criticality_reject;
ie->value.present = NGAP_UEContextReleaseRequest_IEs__value_PR_RAN_UE_NGAP_ID;
ie->value.choice.RAN_UE_NGAP_ID = ue_release_req_p->gNB_ue_ngap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (ue_release_req_p->nb_of_pdusessions > 0) {
@@ -203,9 +203,9 @@ int ngap_ue_context_release_req(instance_t instance,
NGAP_PDUSessionResourceItemCxtRelReq_t *item;
item = (NGAP_PDUSessionResourceItemCxtRelReq_t *)calloc(1,sizeof(NGAP_PDUSessionResourceItemCxtRelReq_t));
item->pDUSessionID = ue_release_req_p->pdusessions[i].pdusession_id;
ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceListCxtRelReq.list, item);
asn1cSeqAdd(&ie->value.choice.PDUSessionResourceListCxtRelReq.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* mandatory */
@@ -246,7 +246,7 @@ int ngap_ue_context_release_req(instance_t instance,
break;
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
-2
View File
@@ -31,8 +31,6 @@
#include "intertask_interface.h"
#include "asn1_conversions.h"
#include "ngap_common.h"
// #include "ngap_gNB.h"
#include "ngap_gNB_defs.h"
+45 -45
View File
@@ -199,7 +199,7 @@ int ngap_gNB_handle_nas_first_req(
ie->criticality = NGAP_Criticality_reject;
ie->value.present = NGAP_InitialUEMessage_IEs__value_PR_RAN_UE_NGAP_ID;
ie->value.choice.RAN_UE_NGAP_ID = ue_desc_p->gNB_ue_ngap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_InitialUEMessage_IEs_t *)calloc(1, sizeof(NGAP_InitialUEMessage_IEs_t));
ie->id = NGAP_ProtocolIE_ID_id_NAS_PDU;
@@ -214,7 +214,7 @@ int ngap_gNB_handle_nas_first_req(
ngap_nas_first_req_p->nas_pdu.length);
#endif
ie->value.choice.NAS_PDU.size = ngap_nas_first_req_p->nas_pdu.length;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_InitialUEMessage_IEs_t *)calloc(1, sizeof(NGAP_InitialUEMessage_IEs_t));
@@ -244,7 +244,7 @@ int ngap_gNB_handle_nas_first_req(
instance_p->mnc_digit_length[ue_desc_p->selected_plmn_identity],
&userinfo_nr_p->tAI.pLMNIdentity);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* Set the establishment cause according to those provided by RRC */
@@ -257,7 +257,7 @@ int ngap_gNB_handle_nas_first_req(
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_InitialUEMessage_IEs__value_PR_RRCEstablishmentCause;
ie->value.choice.RRCEstablishmentCause = ngap_nas_first_req_p->establishment_cause;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (ngap_nas_first_req_p->ue_identity.presenceMask & NGAP_UE_IDENTITIES_FiveG_s_tmsi) {
@@ -272,7 +272,7 @@ int ngap_gNB_handle_nas_first_req(
&ie->value.choice.FiveG_S_TMSI.aMFPointer);
M_TMSI_TO_OCTET_STRING(ngap_nas_first_req_p->ue_identity.s_tmsi.m_tmsi,
&ie->value.choice.FiveG_S_TMSI.fiveG_TMSI);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
@@ -282,7 +282,7 @@ int ngap_gNB_handle_nas_first_req(
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_InitialUEMessage_IEs__value_PR_UEContextRequest;
ie->value.choice.UEContextRequest = NGAP_UEContextRequest_requested;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -455,14 +455,14 @@ int ngap_gNB_nas_uplink(instance_t instance, ngap_uplink_nas_t *ngap_uplink_nas_
ie->value.present = NGAP_UplinkNASTransport_IEs__value_PR_AMF_UE_NGAP_ID;
//ie->value.choice.AMF_UE_NGAP_ID = ue_context_p->amf_ue_ngap_id;
asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(NGAP_UplinkNASTransport_IEs_t));
ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
ie->criticality = NGAP_Criticality_reject;
ie->value.present = NGAP_UplinkNASTransport_IEs__value_PR_RAN_UE_NGAP_ID;
ie->value.choice.RAN_UE_NGAP_ID = ue_context_p->gNB_ue_ngap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(NGAP_UplinkNASTransport_IEs_t));
ie->id = NGAP_ProtocolIE_ID_id_NAS_PDU;
@@ -470,7 +470,7 @@ int ngap_gNB_nas_uplink(instance_t instance, ngap_uplink_nas_t *ngap_uplink_nas_
ie->value.present = NGAP_UplinkNASTransport_IEs__value_PR_NAS_PDU;
ie->value.choice.NAS_PDU.buf = ngap_uplink_nas_p->nas_pdu.buffer;
ie->value.choice.NAS_PDU.size = ngap_uplink_nas_p->nas_pdu.length;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(NGAP_UplinkNASTransport_IEs_t));
ie->id = NGAP_ProtocolIE_ID_id_UserLocationInformation;
@@ -498,7 +498,7 @@ int ngap_gNB_nas_uplink(instance_t instance, ngap_uplink_nas_t *ngap_uplink_nas_
&userinfo_nr_p->tAI.pLMNIdentity);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
NGAP_ERROR("Failed to encode uplink NAS transport\n");
@@ -553,14 +553,14 @@ int ngap_gNB_nas_non_delivery_ind(instance_t instance,
ie->criticality = NGAP_Criticality_reject;
ie->value.present = NGAP_NASNonDeliveryIndication_IEs__value_PR_AMF_UE_NGAP_ID;
asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(NGAP_NASNonDeliveryIndication_IEs_t));
ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
ie->criticality = NGAP_Criticality_reject;
ie->value.present = NGAP_NASNonDeliveryIndication_IEs__value_PR_RAN_UE_NGAP_ID;
ie->value.choice.RAN_UE_NGAP_ID = ue_context_p->gNB_ue_ngap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(NGAP_NASNonDeliveryIndication_IEs_t));
ie->id = NGAP_ProtocolIE_ID_id_NAS_PDU;
@@ -568,7 +568,7 @@ int ngap_gNB_nas_non_delivery_ind(instance_t instance,
ie->value.present = NGAP_NASNonDeliveryIndication_IEs__value_PR_NAS_PDU;
ie->value.choice.NAS_PDU.buf = ngap_nas_non_delivery_ind->nas_pdu.buffer;
ie->value.choice.NAS_PDU.size = ngap_nas_non_delivery_ind->nas_pdu.length;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(NGAP_NASNonDeliveryIndication_IEs_t));
ie->id = NGAP_ProtocolIE_ID_id_Cause;
@@ -577,7 +577,7 @@ int ngap_gNB_nas_non_delivery_ind(instance_t instance,
ie->value.present = NGAP_NASNonDeliveryIndication_IEs__value_PR_Cause;
ie->value.choice.Cause.present = NGAP_Cause_PR_radioNetwork;
ie->value.choice.Cause.choice.radioNetwork = NGAP_CauseRadioNetwork_radio_connection_with_ue_lost;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
NGAP_ERROR("Failed to encode NAS NON delivery indication\n");
@@ -650,14 +650,14 @@ int ngap_gNB_initial_ctxt_resp(
ie->value.present = NGAP_InitialContextSetupResponseIEs__value_PR_AMF_UE_NGAP_ID;
//ie->value.choice.AMF_UE_NGAP_ID = ue_context_p->amf_ue_ngap_id;
asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(NGAP_InitialContextSetupResponseIEs_t));
ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_InitialContextSetupResponseIEs__value_PR_RAN_UE_NGAP_ID;
ie->value.choice.RAN_UE_NGAP_ID = initial_ctxt_resp_p->gNB_ue_ngap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (initial_ctxt_resp_p->nb_of_pdusessions){
@@ -708,7 +708,7 @@ int ngap_gNB_initial_ctxt_resp(
// ass_qos_item_p->qosFlowMappingIndication = malloc(sizeof(*ass_qos_item_p->qosFlowMappingIndication));
// *ass_qos_item_p->qosFlowMappingIndication = initial_ctxt_resp_p->pdusessions[i].associated_qos_flows[j].qos_flow_mapping_ind;
// }
ASN_SEQUENCE_ADD(&pdusessionTransfer_p->dLQosFlowPerTNLInformation.associatedQosFlowList.list, ass_qos_item_p);
asn1cSeqAdd(&pdusessionTransfer_p->dLQosFlowPerTNLInformation.associatedQosFlowList.list, ass_qos_item_p);
}
//res = asn_encode_to_new_buffer(NULL, ATS_ALIGNED_CANONICAL_PER, &asn_DEF_NGAP_PDUSessionResourceSetupResponseTransfer, pdusessionTransfer_p);
@@ -730,10 +730,10 @@ int ngap_gNB_initial_ctxt_resp(
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceSetupResponseTransfer, pdusessionTransfer_p);
ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceSetupListCxtRes.list, item);
asn1cSeqAdd(&ie->value.choice.PDUSessionResourceSetupListCxtRes.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
if (initial_ctxt_resp_p->nb_of_pdusessions_failed) {
@@ -787,10 +787,10 @@ int ngap_gNB_initial_ctxt_resp(
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer, pdusessionUnTransfer_p);
ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceFailedToSetupListCxtRes.list, item);
asn1cSeqAdd(&ie->value.choice.PDUSessionResourceFailedToSetupListCxtRes.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -800,7 +800,7 @@ int ngap_gNB_initial_ctxt_resp(
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_InitialContextSetupResponseIEs__value_PR_CriticalityDiagnostics;
// ie->value.choice.CriticalityDiagnostics =;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
if (asn1_xer_print) {
@@ -873,14 +873,14 @@ int ngap_gNB_ue_capabilities(instance_t instance,
ie->value.present = NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_AMF_UE_NGAP_ID;
//ie->value.choice.AMF_UE_NGAP_ID = ue_context_p->amf_ue_ngap_id;
asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_UERadioCapabilityInfoIndicationIEs_t *)calloc(1, sizeof(NGAP_UERadioCapabilityInfoIndicationIEs_t));
ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
ie->criticality = NGAP_Criticality_reject;
ie->value.present = NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_RAN_UE_NGAP_ID;
ie->value.choice.RAN_UE_NGAP_ID = ue_cap_info_ind_p->gNB_ue_ngap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_UERadioCapabilityInfoIndicationIEs_t *)calloc(1, sizeof(NGAP_UERadioCapabilityInfoIndicationIEs_t));
ie->id = NGAP_ProtocolIE_ID_id_UERadioCapability;
@@ -888,7 +888,7 @@ int ngap_gNB_ue_capabilities(instance_t instance,
ie->value.present = NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_UERadioCapability;
ie->value.choice.UERadioCapability.buf = ue_cap_info_ind_p->ue_radio_cap.buffer;
ie->value.choice.UERadioCapability.size = ue_cap_info_ind_p->ue_radio_cap.length;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
//NGAP_UERadioCapabilityForPaging TBD
if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -955,14 +955,14 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_PDUSessionResourceSetupResponseIEs__value_PR_AMF_UE_NGAP_ID;
asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = calloc(1, sizeof *ie );
ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_PDUSessionResourceSetupResponseIEs__value_PR_RAN_UE_NGAP_ID;
ie->value.choice.RAN_UE_NGAP_ID = pdusession_setup_resp_p->gNB_ue_ngap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (pdusession_setup_resp_p->nb_of_pdusessions > 0) {
@@ -1015,7 +1015,7 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
// ass_qos_item_p->qosFlowMappingIndication = malloc(sizeof(*ass_qos_item_p->qosFlowMappingIndication));
// *ass_qos_item_p->qosFlowMappingIndication = pdusession_setup_resp_p->pdusessions[i].associated_qos_flows[j].qos_flow_mapping_ind;
//}
ASN_SEQUENCE_ADD(&pdusessionTransfer_p->dLQosFlowPerTNLInformation.associatedQosFlowList.list, ass_qos_item_p);
asn1cSeqAdd(&pdusessionTransfer_p->dLQosFlowPerTNLInformation.associatedQosFlowList.list, ass_qos_item_p);
}
asn_encode_to_new_buffer_result_t res = asn_encode_to_new_buffer(NULL, ATS_ALIGNED_CANONICAL_PER,
@@ -1026,9 +1026,9 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceSetupResponseTransfer, pdusessionTransfer_p);
ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceSetupListSURes.list, item);
asn1cSeqAdd(&ie->value.choice.PDUSessionResourceSetupListSURes.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -1084,10 +1084,10 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer, pdusessionUnTransfer_p);
ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceFailedToSetupListSURes.list, item);
asn1cSeqAdd(&ie->value.choice.PDUSessionResourceFailedToSetupListSURes.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -1097,7 +1097,7 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_PDUSessionResourceSetupResponseIEs__value_PR_CriticalityDiagnostics;
// ie->value.choice.CriticalityDiagnostics = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
@@ -1167,14 +1167,14 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_PDUSessionResourceModifyResponseIEs__value_PR_AMF_UE_NGAP_ID;
asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_PDUSessionResourceModifyResponseIEs_t *)calloc(1, sizeof(NGAP_PDUSessionResourceModifyResponseIEs_t));
ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_PDUSessionResourceModifyResponseIEs__value_PR_RAN_UE_NGAP_ID;
ie->value.choice.RAN_UE_NGAP_ID = pdusession_modify_resp_p->gNB_ue_ngap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* PDUSessionResourceModifyListModRes optional */
if (pdusession_modify_resp_p->nb_of_pdusessions > 0) {
@@ -1198,7 +1198,7 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
NGAP_QosFlowAddOrModifyResponseItem_t *qosFlowAddOrModifyResponseItem_p = calloc(1, sizeof(NGAP_QosFlowAddOrModifyResponseItem_t));
qosFlowAddOrModifyResponseItem_p->qosFlowIdentifier =
pdusession_modify_resp_p->pdusessions[i].qos[qos_flow_index].qfi;
ASN_SEQUENCE_ADD(&transfer_p->qosFlowAddOrModifyResponseList->list, qosFlowAddOrModifyResponseItem_p);
asn1cSeqAdd(&transfer_p->qosFlowAddOrModifyResponseList->list, qosFlowAddOrModifyResponseItem_p);
}
memset(&res, 0, sizeof(res));
@@ -1209,10 +1209,10 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceModifyResponseTransfer, transfer_p);
NGAP_DEBUG("pdusession_modify_resp: modified pdusession ID %ld\n", item->pDUSessionID);
ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceModifyListModRes.list, item);
asn1cSeqAdd(&ie->value.choice.PDUSessionResourceModifyListModRes.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -1267,10 +1267,10 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
NGAP_DEBUG("pdusession_modify_resp: failed pdusession ID %ld\n", item->pDUSessionID);
ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceFailedToModifyListModRes.list, item);
asn1cSeqAdd(&ie->value.choice.PDUSessionResourceFailedToModifyListModRes.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -1280,7 +1280,7 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_PDUSessionResourceModifyResponseIEs__value_PR_CriticalityDiagnostics;
// ie->value.choice.CriticalityDiagnostics = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
fprintf(stderr, "start encode\n");
@@ -1338,14 +1338,14 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_AMF_UE_NGAP_ID;
asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (NGAP_PDUSessionResourceReleaseResponseIEs_t *)calloc(1, sizeof(NGAP_PDUSessionResourceReleaseResponseIEs_t));
ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_RAN_UE_NGAP_ID;
ie->value.choice.RAN_UE_NGAP_ID = pdusession_release_resp_p->gNB_ue_ngap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (pdusession_release_resp_p->nb_of_pdusessions_released > 0) {
@@ -1371,10 +1371,10 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
NGAP_DEBUG("pdusession_release_resp: transfer_buffer is NULL!\n");
}
NGAP_DEBUG("pdusession_release_resp: pdusession ID %ld\n", item->pDUSessionID);
ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceReleasedListRelRes.list, item);
asn1cSeqAdd(&ie->value.choice.PDUSessionResourceReleasedListRelRes.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
+1
View File
@@ -27,6 +27,7 @@
#define S1AP_COMMON_H_
#include "common/utils/LOG/log.h"
#include "oai_asn1.h"
#include "S1AP_ProtocolIE-Field.h"
#include "S1AP_S1AP-PDU.h"
+6 -6
View File
@@ -698,7 +698,7 @@ static int s1ap_eNB_generate_s1_setup_request(
ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[0],
ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[1],
ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[2]);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (instance_p->eNB_name) {
@@ -708,7 +708,7 @@ static int s1ap_eNB_generate_s1_setup_request(
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_ENBname;
OCTET_STRING_fromBuf(&ie->value.choice.ENBname, instance_p->eNB_name,
strlen(instance_p->eNB_name));
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* mandatory */
@@ -726,19 +726,19 @@ static int s1ap_eNB_generate_s1_setup_request(
instance_p->mnc[s1ap_mme_data_p->broadcast_plmn_index[i]],
instance_p->mnc_digit_length[s1ap_mme_data_p->broadcast_plmn_index[i]],
plmn);
ASN_SEQUENCE_ADD(&ta->broadcastPLMNs.list, plmn);
asn1cSeqAdd(&ta->broadcastPLMNs.list, plmn);
}
}
ASN_SEQUENCE_ADD(&ie->value.choice.SupportedTAs.list, ta);
asn1cSeqAdd(&ie->value.choice.SupportedTAs.list, ta);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_DefaultPagingDRX;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_PagingDRX;
ie->value.choice.PagingDRX = instance_p->default_drx;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -93,7 +93,7 @@ int s1ap_ue_context_release_complete(instance_t instance,
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t));
@@ -101,7 +101,7 @@ int s1ap_ue_context_release_complete(instance_t instance,
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_release_complete_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -177,7 +177,7 @@ int s1ap_ue_context_release_req(instance_t instance,
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t));
@@ -185,7 +185,7 @@ int s1ap_ue_context_release_req(instance_t instance,
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_release_req_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t));
@@ -225,7 +225,7 @@ int s1ap_ue_context_release_req(instance_t instance,
break;
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
+9 -11
View File
@@ -31,8 +31,6 @@
#include "intertask_interface.h"
#include "asn1_conversions.h"
#include "s1ap_common.h"
// #include "s1ap_eNB.h"
#include "s1ap_eNB_defs.h"
@@ -1898,7 +1896,7 @@ static int s1ap_eNB_snd_s1_setup_request(
ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[0],
ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[1],
ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[2]);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (instance_p->eNB_name) {
@@ -1908,7 +1906,7 @@ static int s1ap_eNB_snd_s1_setup_request(
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_ENBname;
OCTET_STRING_fromBuf(&ie->value.choice.ENBname, instance_p->eNB_name,
strlen(instance_p->eNB_name));
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* mandatory */
@@ -1926,19 +1924,19 @@ static int s1ap_eNB_snd_s1_setup_request(
instance_p->mnc[s1ap_mme_data_p->broadcast_plmn_index[i]],
instance_p->mnc_digit_length[s1ap_mme_data_p->broadcast_plmn_index[i]],
plmn);
ASN_SEQUENCE_ADD(&ta->broadcastPLMNs.list, plmn);
asn1cSeqAdd(&ta->broadcastPLMNs.list, plmn);
}
}
ASN_SEQUENCE_ADD(&ie->value.choice.SupportedTAs.list, ta);
asn1cSeqAdd(&ie->value.choice.SupportedTAs.list, ta);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_DefaultPagingDRX;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_PagingDRX;
ie->value.choice.PagingDRX = instance_p->default_drx;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (0) {
@@ -1947,7 +1945,7 @@ static int s1ap_eNB_snd_s1_setup_request(
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_CSG_IdList;
// ie->value.choice.CSG_IdList = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -1959,7 +1957,7 @@ static int s1ap_eNB_snd_s1_setup_request(
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_UE_RetentionInformation;
// ie->value.choice.UE_RetentionInformation = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -1969,7 +1967,7 @@ static int s1ap_eNB_snd_s1_setup_request(
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_NB_IoT_DefaultPagingDRX;
// ie->value.choice.NB_IoT_DefaultPagingDRX = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */
+67 -67
View File
@@ -190,7 +190,7 @@ int s1ap_eNB_handle_nas_first_req(
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU;
@@ -205,7 +205,7 @@ int s1ap_eNB_handle_nas_first_req(
s1ap_nas_first_req_p->nas_pdu.length);
#endif
ie->value.choice.NAS_PDU.size = s1ap_nas_first_req_p->nas_pdu.length;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_TAI;
@@ -217,7 +217,7 @@ int s1ap_eNB_handle_nas_first_req(
instance_p->mnc[ue_desc_p->selected_plmn_identity],
instance_p->mnc_digit_length[ue_desc_p->selected_plmn_identity],
&ie->value.choice.TAI.pLMNidentity);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_EUTRAN_CGI;
@@ -235,7 +235,7 @@ int s1ap_eNB_handle_nas_first_req(
instance_p->mnc[ue_desc_p->selected_plmn_identity],
instance_p->mnc_digit_length[ue_desc_p->selected_plmn_identity],
&ie->value.choice.EUTRAN_CGI.pLMNidentity);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* Set the establishment cause according to those provided by RRC */
DevCheck(s1ap_nas_first_req_p->establishment_cause < RRC_CAUSE_LAST,
s1ap_nas_first_req_p->establishment_cause, RRC_CAUSE_LAST, 0);
@@ -245,7 +245,7 @@ int s1ap_eNB_handle_nas_first_req(
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_RRC_Establishment_Cause;
ie->value.choice.RRC_Establishment_Cause = s1ap_nas_first_req_p->establishment_cause;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (s1ap_nas_first_req_p->ue_identity.presenceMask & UE_IDENTITIES_s_tmsi) {
@@ -258,7 +258,7 @@ int s1ap_eNB_handle_nas_first_req(
&ie->value.choice.S_TMSI.mMEC);
M_TMSI_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.s_tmsi.m_tmsi,
&ie->value.choice.S_TMSI.m_TMSI);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
@@ -278,7 +278,7 @@ int s1ap_eNB_handle_nas_first_req(
&ie->value.choice.GUMMEI.mME_Group_ID);
MME_CODE_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.gummei.mme_code,
&ie->value.choice.GUMMEI.mME_Code);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
@@ -458,14 +458,14 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU;
@@ -473,7 +473,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_NAS_PDU;
ie->value.choice.NAS_PDU.buf = s1ap_uplink_nas_p->nas_pdu.buffer;
ie->value.choice.NAS_PDU.size = s1ap_uplink_nas_p->nas_pdu.length;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_EUTRAN_CGI;
@@ -488,7 +488,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
MACRO_ENB_ID_TO_CELL_IDENTITY(s1ap_eNB_instance_p->eNB_id,
0,
&ie->value.choice.EUTRAN_CGI.cell_ID);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_TAI;
@@ -500,7 +500,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
s1ap_eNB_instance_p->mnc_digit_length[ue_context_p->selected_plmn_identity],
&ie->value.choice.TAI.pLMNidentity);
TAC_TO_ASN1(s1ap_eNB_instance_p->tac, &ie->value.choice.TAI.tAC);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
@@ -555,14 +555,14 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU;
@@ -570,7 +570,7 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_NAS_PDU;
ie->value.choice.NAS_PDU.buf = s1ap_nas_non_delivery_ind->nas_pdu.buffer;
ie->value.choice.NAS_PDU.size = s1ap_nas_non_delivery_ind->nas_pdu.length;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_Cause;
@@ -579,7 +579,7 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_Cause;
ie->value.choice.Cause.present = S1AP_Cause_PR_radioNetwork;
ie->value.choice.Cause.choice.radioNetwork = S1AP_CauseRadioNetwork_radio_connection_with_ue_lost;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
S1AP_ERROR("Failed to encode NAS NON delivery indication\n");
@@ -644,14 +644,14 @@ int s1ap_eNB_initial_ctxt_resp(
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = initial_ctxt_resp_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_E_RABSetupListCtxtSURes;
@@ -680,10 +680,10 @@ int s1ap_eNB_initial_ctxt_resp(
item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf[2],
item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf[3],
item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.size);
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABSetupListCtxtSURes.list, item);
asn1cSeqAdd(&ie->value.choice.E_RABSetupListCtxtSURes.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (initial_ctxt_resp_p->nb_of_e_rabs_failed) {
@@ -729,10 +729,10 @@ int s1ap_eNB_initial_ctxt_resp(
}
S1AP_DEBUG("initial context setup response: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item);
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -742,7 +742,7 @@ int s1ap_eNB_initial_ctxt_resp(
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_CriticalityDiagnostics;
// ie->value.choice.CriticalityDiagnostics =;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -807,14 +807,14 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_cap_info_ind_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_UERadioCapability;
@@ -822,7 +822,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_UERadioCapability;
ie->value.choice.UERadioCapability.buf = ue_cap_info_ind_p->ue_radio_cap.buffer;
ie->value.choice.UERadioCapability.size = ue_cap_info_ind_p->ue_radio_cap.length;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -888,14 +888,14 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = e_rab_setup_resp_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (e_rab_setup_resp_p->nb_of_e_rabs > 0) {
@@ -927,10 +927,10 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf[2],
item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf[3],
item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.size);
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABSetupListBearerSURes.list, item);
asn1cSeqAdd(&ie->value.choice.E_RABSetupListBearerSURes.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -976,10 +976,10 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
}
S1AP_DEBUG("e_rab_setup_resp: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item);
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -989,7 +989,7 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_CriticalityDiagnostics;
// ie->value.choice.CriticalityDiagnostics = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* S1AP_E_RABSetupListBearerSURes_t e_RABSetupListBearerSURes;
@@ -1063,14 +1063,14 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = e_rab_modify_resp_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (e_rab_modify_resp_p->nb_of_e_rabs > 0) {
@@ -1087,10 +1087,10 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
item->value.present = S1AP_E_RABModifyItemBearerModResIEs__value_PR_E_RABModifyItemBearerModRes;
item->value.choice.E_RABModifyItemBearerModRes.e_RAB_ID = e_rab_modify_resp_p->e_rabs[i].e_rab_id;
S1AP_DEBUG("e_rab_modify_resp: modified e_rab ID %ld\n", item->value.choice.E_RABModifyItemBearerModRes.e_RAB_ID);
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABModifyListBearerModRes.list, item);
asn1cSeqAdd(&ie->value.choice.E_RABModifyListBearerModRes.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -1136,10 +1136,10 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
}
S1AP_DEBUG("e_rab_modify_resp: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item);
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -1149,7 +1149,7 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_CriticalityDiagnostics;
// ie->value.choice.CriticalityDiagnostics = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
fprintf(stderr, "start encode\n");
@@ -1205,14 +1205,14 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = e_rab_release_resp_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* optional */
if (e_rab_release_resp_p->nb_of_e_rabs_released > 0) {
@@ -1229,10 +1229,10 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
item->value.present = S1AP_E_RABReleaseItemBearerRelCompIEs__value_PR_E_RABReleaseItemBearerRelComp;
item->value.choice.E_RABReleaseItemBearerRelComp.e_RAB_ID = e_rab_release_resp_p->e_rab_release[i].e_rab_id;
S1AP_DEBUG("e_rab_release_resp: e_rab ID %ld\n", item->value.choice.E_RABReleaseItemBearerRelComp.e_RAB_ID);
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABReleaseListBearerRelComp.list, item);
asn1cSeqAdd(&ie->value.choice.E_RABReleaseListBearerRelComp.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* optional */
@@ -1277,10 +1277,10 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
break;
}
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item);
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
@@ -1401,7 +1401,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_PathSwitchRequestIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
if (path_switch_req_p->nb_of_e_rabs > 0) {
@@ -1438,10 +1438,10 @@ int s1ap_eNB_path_switch_req(instance_t instance,
e_RABToBeSwitchedDLItem->transportLayerAddress.buf[3],
e_RABToBeSwitchedDLItem->transportLayerAddress.size);
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABToBeSwitchedDLList.list, e_RABToBeSwitchedDLItemIEs);
asn1cSeqAdd(&ie->value.choice.E_RABToBeSwitchedDLList.list, e_RABToBeSwitchedDLItemIEs);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
}
/* mandatory */
@@ -1450,7 +1450,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_PathSwitchRequestIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = path_switch_req_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_PathSwitchRequestIEs_t *)calloc(1, sizeof(S1AP_PathSwitchRequestIEs_t));
@@ -1464,7 +1464,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
s1ap_eNB_instance_p->mnc[0],
s1ap_eNB_instance_p->mnc_digit_length[0],
&ie->value.choice.EUTRAN_CGI.pLMNidentity);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_PathSwitchRequestIEs_t *)calloc(1, sizeof(S1AP_PathSwitchRequestIEs_t));
@@ -1477,7 +1477,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
s1ap_eNB_instance_p->mnc[0],
s1ap_eNB_instance_p->mnc_digit_length[0],
&ie->value.choice.TAI.pLMNidentity);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_PathSwitchRequestIEs_t *)calloc(1, sizeof(S1AP_PathSwitchRequestIEs_t));
@@ -1488,7 +1488,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
&ie->value.choice.UESecurityCapabilities.encryptionAlgorithms);
INTPROTALG_TO_BIT_STRING(path_switch_req_p->security_capabilities.integrity_algorithms,
&ie->value.choice.UESecurityCapabilities.integrityProtectionAlgorithms);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
S1AP_ERROR("Failed to encode Path Switch Req \n");
@@ -1582,14 +1582,14 @@ int s1ap_eNB_path_switch_req(instance_t instance,
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_E_RABModificationIndicationIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = e_rab_modification_ind->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_E_RABModificationIndicationIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = e_rab_modification_ind->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
//E-RABs to be modified list
ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
@@ -1617,10 +1617,10 @@ int s1ap_eNB_path_switch_req(instance_t instance,
INT32_TO_OCTET_STRING(e_rab_modification_ind->e_rabs_tobemodified[i].gtp_teid, &E_RAB_ToBeModifiedItem_BearerModInd->dL_GTP_TEID);
}
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABToBeModifiedListBearerModInd.list, E_RAB_ToBeModifiedItem_BearerModInd_IEs);
asn1cSeqAdd(&ie->value.choice.E_RABToBeModifiedListBearerModInd.list, E_RAB_ToBeModifiedItem_BearerModInd_IEs);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
//E-RABs NOT to be modified list
ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
@@ -1649,7 +1649,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
INT32_TO_OCTET_STRING(e_rab_modification_ind->e_rabs_nottobemodified[i].gtp_teid, &E_RAB_NotToBeModifiedItem_BearerModInd->dL_GTP_TEID);
}
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABNotToBeModifiedListBearerModInd.list, E_RAB_NotToBeModifiedItem_BearerModInd_IEs);
asn1cSeqAdd(&ie->value.choice.E_RABNotToBeModifiedListBearerModInd.list, E_RAB_NotToBeModifiedItem_BearerModInd_IEs);
}
}
else{
@@ -1659,7 +1659,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_CSGMembershipInfo;
@@ -1667,7 +1667,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
ie->value.present = S1AP_E_RABModificationIndicationIEs__value_PR_CSGMembershipInfo;
ie->value.choice.CSGMembershipInfo.cSGMembershipStatus = S1AP_CSGMembershipStatus_member;
INT32_TO_BIT_STRING(CSG_id, &ie->value.choice.CSGMembershipInfo.cSG_Id);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -1736,14 +1736,14 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_E_RABModificationIndicationIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = e_rab_modification_ind->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_E_RABModificationIndicationIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = e_rab_modification_ind->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
//E-RABs to be modified list
ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
@@ -1771,10 +1771,10 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
INT32_TO_OCTET_STRING(e_rab_modification_ind->e_rabs_tobemodified[i].gtp_teid, &E_RAB_ToBeModifiedItem_BearerModInd->dL_GTP_TEID);
}
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABToBeModifiedListBearerModInd.list, E_RAB_ToBeModifiedItem_BearerModInd_IEs);
asn1cSeqAdd(&ie->value.choice.E_RABToBeModifiedListBearerModInd.list, E_RAB_ToBeModifiedItem_BearerModInd_IEs);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
//E-RABs NOT to be modified list
/*ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
@@ -1804,7 +1804,7 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
INT32_TO_OCTET_STRING(pseudo_gtp_teid, &E_RAB_NotToBeModifiedItem_BearerModInd->dL_GTP_TEID);
}
ASN_SEQUENCE_ADD(&ie->value.choice.E_RABNotToBeModifiedListBearerModInd.list, E_RAB_NotToBeModifiedItem_BearerModInd_IEs);
asn1cSeqAdd(&ie->value.choice.E_RABNotToBeModifiedListBearerModInd.list, E_RAB_NotToBeModifiedItem_BearerModInd_IEs);
}
// }
//else{
@@ -1814,7 +1814,7 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);*/
asn1cSeqAdd(&out->protocolIEs.list, ie);*/
/*ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_CSGMembershipInfo;
@@ -1824,7 +1824,7 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
INT32_TO_BIT_STRING(CSG_id, &ie->value.choice.CSGMembershipInfo.cSG_Id);
ie->value.choice.CSGMembershipInfo.cSG_Id.bits_unused=5;
ie->value.choice.CSGMembershipInfo.cellAccessMode = S1AP_CellAccessMode_hybrid;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);*/
asn1cSeqAdd(&out->protocolIEs.list, ie);*/
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
S1AP_ERROR("Failed to encode S1 E-RAB modification indication \n");
+4 -4
View File
@@ -66,7 +66,7 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_desc_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
@@ -74,7 +74,7 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
@@ -82,7 +82,7 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_E_UTRAN_Trace_ID;
memcpy(&ie->value.choice.E_UTRAN_Trace_ID, trace_id, sizeof(S1AP_E_UTRAN_Trace_ID_t));
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
@@ -90,7 +90,7 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_Cause;
memcpy(&ie->value.choice.Cause, cause_p, sizeof(S1AP_Cause_t));
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
asn1cSeqAdd(&out->protocolIEs.list, ie);
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
return;