Merge remote-tracking branch 'origin/msc-removal' into integration_2022_wk08
@@ -39,7 +39,6 @@
|
||||
|
||||
#include "m2ap_itti_messaging.h"
|
||||
|
||||
#include "msc.h"
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
|
||||
@@ -169,14 +168,6 @@ int m2ap_eNB_generate_m2_setup_request(
|
||||
|
||||
|
||||
LOG_W(M2AP,"pdu.present %d\n",pdu.present);
|
||||
// MSC_LOG_TX_MESSAGE(
|
||||
// MSC_M2AP_eNB,
|
||||
// MSC_M2AP_MCE,
|
||||
// (const char *)buffer,
|
||||
// len,
|
||||
// MSC_AS_TIME_FMT" M2_SETUP_REQUEST initiatingMessage MCEname %s",
|
||||
// 0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
// m2ap_eNB_data_p->ENBname);
|
||||
|
||||
m2ap_eNB_itti_send_sctp_data_req(instance_p, m2ap_eNB_data_p->assoc_id, buffer, len, 0);
|
||||
|
||||
@@ -315,8 +306,6 @@ int m2ap_eNB_generate_m2_setup_request(
|
||||
//
|
||||
// m2ap_eNB_data_p->state = M2AP_ENB_STATE_READY;
|
||||
//
|
||||
// //MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_ENB, MSC_M2AP_TARGET_ENB, NULL, 0, "0 M2Setup/successfulOutcome assoc_id %u", m2ap_eNB_data_p->assoc_id);
|
||||
//
|
||||
// m2ap_eNB_itti_send_sctp_data_req(instance_p->instance, m2ap_eNB_data_p->assoc_id, buffer, len, 0);
|
||||
//
|
||||
// return ret;
|
||||
@@ -371,11 +360,6 @@ int m2ap_eNB_generate_m2_setup_request(
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// //MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_ENB,
|
||||
// // MSC_M2AP_TARGET_ENB, NULL, 0,
|
||||
// // "0 M2Setup/unsuccessfulOutcome assoc_id %u cause %u value %u",
|
||||
// // assoc_id, cause_type, cause_value);
|
||||
//
|
||||
// m2ap_eNB_itti_send_sctp_data_req(instance, assoc_id, buffer, len, 0);
|
||||
//
|
||||
// return ret;
|
||||
@@ -561,8 +545,6 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_ENB, MSC_M2AP_TARGET_ENB, NULL, 0, "0 X2Handover/initiatingMessage assoc_id %u", m2ap_eNB_data_p->assoc_id);
|
||||
//
|
||||
// m2ap_eNB_itti_send_sctp_data_req(instance_p->instance, m2ap_eNB_data_p->assoc_id, buffer, len, 1);
|
||||
//
|
||||
// return ret;
|
||||
@@ -654,8 +636,6 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_ENB, MSC_M2AP_TARGET_ENB, NULL, 0, "0 X2Handover/successfulOutcome assoc_id %u", m2ap_eNB_data_p->assoc_id);
|
||||
//
|
||||
// m2ap_eNB_itti_send_sctp_data_req(instance_p->instance, m2ap_eNB_data_p->assoc_id, buffer, len, 1);
|
||||
//
|
||||
// return ret;
|
||||
@@ -716,8 +696,6 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_ENB, MSC_M2AP_TARGET_ENB, NULL, 0, "0 X2UEContextRelease/initiatingMessage assoc_id %u", m2ap_eNB_data_p->assoc_id);
|
||||
//
|
||||
// m2ap_eNB_itti_send_sctp_data_req(instance_p->instance, m2ap_eNB_data_p->assoc_id, buffer, len, 1);
|
||||
//
|
||||
// return ret;
|
||||
@@ -800,8 +778,6 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_ENB, MSC_M2AP_TARGET_ENB, NULL, 0, "0 X2HandoverCancel/initiatingMessage assoc_id %u", m2ap_eNB_data_p->assoc_id);
|
||||
//
|
||||
// m2ap_eNB_itti_send_sctp_data_req(instance_p->instance, m2ap_eNB_data_p->assoc_id, buffer, len, 1);
|
||||
//
|
||||
// return ret;
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
//#include "m3ap_MME_interface_management.h"
|
||||
#include "m3ap_MCE_interface_management.h"
|
||||
|
||||
#include "msc.h"
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
|
||||
#include "m3ap_itti_messaging.h"
|
||||
|
||||
#include "msc.h"
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
|
||||
@@ -149,15 +148,7 @@ int MCE_send_MBMS_SESSION_START_RESPONSE(instance_t instance, m3ap_session_start
|
||||
//
|
||||
//
|
||||
// LOG_W(M3AP,"pdu.present %d\n",pdu.present);
|
||||
// // MSC_LOG_TX_MESSAGE(
|
||||
// // MSC_M3AP_MCE,
|
||||
// // MSC_M3AP_MCE,
|
||||
// // (const char *)buffer,
|
||||
// // len,
|
||||
// // MSC_AS_TIME_FMT" M3_SETUP_REQUEST initiatingMessage MCEname %s",
|
||||
// // 0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
// // m3ap_MCE_data_p->MCEname);
|
||||
//
|
||||
|
||||
m3ap_MCE_itti_send_sctp_data_req(instance, m3ap_mce_data_g->assoc_id, buffer, len, 0);
|
||||
return 0;
|
||||
}
|
||||
@@ -318,14 +309,6 @@ int MCE_send_MBMS_SESSION_STOP_RESPONSE(instance_t instance, m3ap_session_start_
|
||||
|
||||
|
||||
LOG_D(M3AP,"pdu.present %d\n",pdu.present);
|
||||
// MSC_LOG_TX_MESSAGE(
|
||||
// MSC_M3AP_MCE,
|
||||
// MSC_M3AP_MCE,
|
||||
// (const char *)buffer,
|
||||
// len,
|
||||
// MSC_AS_TIME_FMT" M3_SETUP_REQUEST initiatingMessage MCEname %s",
|
||||
// 0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
// m3ap_MCE_data_p->MCEname);
|
||||
|
||||
m3ap_MCE_itti_send_sctp_data_req(instance, m3ap_mce_data_g->assoc_id, buffer, len, 0);
|
||||
return 0;
|
||||
@@ -425,14 +408,6 @@ int MCE_send_MBMS_SESSION_UPDATE_RESPONSE(instance_t instance, m3ap_mbms_session
|
||||
|
||||
|
||||
LOG_D(M3AP,"pdu.present %d\n",pdu.present);
|
||||
// MSC_LOG_TX_MESSAGE(
|
||||
// MSC_M3AP_MCE,
|
||||
// MSC_M3AP_MCE,
|
||||
// (const char *)buffer,
|
||||
// len,
|
||||
// MSC_AS_TIME_FMT" M3_SETUP_REQUEST initiatingMessage MCEname %s",
|
||||
// 0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
// m3ap_MCE_data_p->MCEname);
|
||||
|
||||
m3ap_MCE_itti_send_sctp_data_req(instance, m3ap_mce_data_g->assoc_id, buffer, len, 0);
|
||||
return 0;
|
||||
@@ -646,14 +621,6 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
|
||||
//
|
||||
//
|
||||
// LOG_W(M3AP,"pdu.present %d\n",pdu.present);
|
||||
// // MSC_LOG_TX_MESSAGE(
|
||||
// // MSC_M3AP_MCE,
|
||||
// // MSC_M3AP_MCE,
|
||||
// // (const char *)buffer,
|
||||
// // len,
|
||||
// // MSC_AS_TIME_FMT" M3_SETUP_REQUEST initiatingMessage MCEname %s",
|
||||
// // 0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
// // m3ap_MCE_data_p->MCEname);
|
||||
//
|
||||
//
|
||||
//// buffer = &bytes[0];
|
||||
@@ -725,15 +692,6 @@ int MCE_handle_M3_SETUP_RESPONSE(instance_t instance,
|
||||
//for (int i=0;i<num_cells_to_activate;i++)
|
||||
// AssertFatal(M3AP_SETUP_RESP (msg_p).num_SI[i] > 0, "System Information %d is missing",i);
|
||||
|
||||
//MSC_LOG_RX_MESSAGE(
|
||||
// MSC_M3AP_MCE,
|
||||
// MSC_M3AP_CU,
|
||||
// 0,
|
||||
// 0,
|
||||
// MSC_AS_TIME_FMT" MCE_handle_M3_SETUP_RESPONSE successfulOutcome assoc_id %d",
|
||||
// 0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
// assoc_id);
|
||||
|
||||
//LOG_D(M3AP, "Sending M3AP_SETUP_RESP ITTI message to MCE_APP with assoc_id (%d->%d)\n",
|
||||
// assoc_id,MCE_MOMCELE_ID_TO_INSTANCE(assoc_id));
|
||||
itti_send_msg_to_task(TASK_MCE_APP, ENB_MODULE_ID_TO_INSTANCE(assoc_id), msg_p);
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
|
||||
#include "m2ap_itti_messaging.h"
|
||||
|
||||
#include "msc.h"
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
|
||||
@@ -174,8 +173,6 @@ int m2ap_MCE_generate_m2_setup_request(
|
||||
return -1;
|
||||
}
|
||||
|
||||
//MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_MCE, MSC_M2AP_TARGET_MCE, NULL, 0, "0 M2Setup/initiatingMessage assoc_id %u", m2ap_MCE_data_p->assoc_id);
|
||||
|
||||
m2ap_MCE_itti_send_sctp_data_req(instance_p->instance, m2ap_MCE_data_p->assoc_id, buffer, len, 0);
|
||||
|
||||
return ret;
|
||||
@@ -311,8 +308,6 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
|
||||
|
||||
m2ap_MCE_data_p->state = M2AP_MCE_STATE_READY;
|
||||
|
||||
//MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_MCE, MSC_M2AP_TARGET_MCE, NULL, 0, "0 M2Setup/successfulOutcome assoc_id %u", m2ap_MCE_data_p->assoc_id);
|
||||
|
||||
m2ap_MCE_itti_send_sctp_data_req(instance_p->instance, m2ap_MCE_data_p->assoc_id, buffer, len, 0);
|
||||
|
||||
return ret;
|
||||
@@ -367,11 +362,6 @@ int m2ap_MCE_generate_m2_setup_failure(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
//MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_MCE,
|
||||
// MSC_M2AP_TARGET_MCE, NULL, 0,
|
||||
// "0 M2Setup/unsuccessfulOutcome assoc_id %u cause %u value %u",
|
||||
// assoc_id, cause_type, cause_value);
|
||||
|
||||
m2ap_MCE_itti_send_sctp_data_req(instance, assoc_id, buffer, len, 0);
|
||||
|
||||
return ret;
|
||||
@@ -557,8 +547,6 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_MCE, MSC_M2AP_TARGET_MCE, NULL, 0, "0 X2Handover/initiatingMessage assoc_id %u", m2ap_MCE_data_p->assoc_id);
|
||||
//
|
||||
// m2ap_MCE_itti_send_sctp_data_req(instance_p->instance, m2ap_MCE_data_p->assoc_id, buffer, len, 1);
|
||||
//
|
||||
// return ret;
|
||||
@@ -650,8 +638,6 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_MCE, MSC_M2AP_TARGET_MCE, NULL, 0, "0 X2Handover/successfulOutcome assoc_id %u", m2ap_MCE_data_p->assoc_id);
|
||||
//
|
||||
// m2ap_MCE_itti_send_sctp_data_req(instance_p->instance, m2ap_MCE_data_p->assoc_id, buffer, len, 1);
|
||||
//
|
||||
// return ret;
|
||||
@@ -712,8 +698,6 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_MCE, MSC_M2AP_TARGET_MCE, NULL, 0, "0 X2UEContextRelease/initiatingMessage assoc_id %u", m2ap_MCE_data_p->assoc_id);
|
||||
//
|
||||
// m2ap_MCE_itti_send_sctp_data_req(instance_p->instance, m2ap_MCE_data_p->assoc_id, buffer, len, 1);
|
||||
//
|
||||
// return ret;
|
||||
@@ -796,8 +780,6 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// MSC_LOG_TX_MESSAGE (MSC_M2AP_SRC_MCE, MSC_M2AP_TARGET_MCE, NULL, 0, "0 X2HandoverCancel/initiatingMessage assoc_id %u", m2ap_MCE_data_p->assoc_id);
|
||||
//
|
||||
// m2ap_MCE_itti_send_sctp_data_req(instance_p->instance, m2ap_MCE_data_p->assoc_id, buffer, len, 1);
|
||||
//
|
||||
// return ret;
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
|
||||
#include "m3ap_MME_interface_management.h"
|
||||
|
||||
#include "msc.h"
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
|
||||
|
||||
@@ -296,16 +296,6 @@ int MME_handle_MBMS_SESSION_START_RESPONSE(instance_t instance,
|
||||
//AssertFatal(MME_MBMS_M3AP_ID!=-1,"MME_MBMS_M3AP_ID was not sent\n");
|
||||
//AssertFatal(MCE_MBMS_M3AP_ID!=-1,"MCE_MBMS_M3AP_ID was not sent\n");
|
||||
////M3AP_SESSION_START_RESP(msg_p).
|
||||
//// MSC_LOG_RX_MESSAGE(
|
||||
//// MSC_M3AP_MME,
|
||||
//// MSC_M3AP_MCE,
|
||||
// //return 0;
|
||||
//// 0,
|
||||
//// 0,
|
||||
//// MSC_AS_TIME_FMT" MME_handle_M2_SESSION_START_RESPONSE successfulOutcome assoc_id %d",
|
||||
//// 0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
//// assoc_id);
|
||||
////
|
||||
// LOG_W(M3AP, "Sending M3AP_SESSION_START_RESP ITTI message to MCE_APP with assoc_id (%d->%d)\n",
|
||||
// assoc_id,ENB_MODULE_ID_TO_INSTANCE(assoc_id));
|
||||
itti_send_msg_to_task(TASK_MME_APP, ENB_MODULE_ID_TO_INSTANCE(assoc_id), msg_g);
|
||||
@@ -434,14 +424,6 @@ int MME_handle_MBMS_SESSION_STOP_RESPONSE(instance_t instance,
|
||||
//AssertFatal(MME_MBMS_M3AP_ID!=-1,"MME_MBMS_M3AP_ID was not sent\n");
|
||||
//AssertFatal(MCE_MBMS_M3AP_ID!=-1,"MCE_MBMS_M3AP_ID was not sent\n");
|
||||
// M3AP_SESSION_STOP_RESP(msg_p).
|
||||
// MSC_LOG_RX_MESSAGE(
|
||||
// MSC_M3AP_MME,
|
||||
// MSC_M3AP_MCE,
|
||||
// 0,
|
||||
// 0,
|
||||
// MSC_AS_TIME_FMT" MME_handle_M2_SESSION_STOP_RESPONSE successfulOutcome assoc_id %d",
|
||||
// 0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
// assoc_id);
|
||||
|
||||
// LOG_D(M3AP, "Sending M3AP_SESSION_START_RESP ITTI message to MCE_APP with assoc_id (%d->%d)\n",
|
||||
// assoc_id,MCE_MODULE_ID_TO_INSTANCE(assoc_id));
|
||||
@@ -628,15 +610,6 @@ int MME_handle_M3_SETUP_REQUEST(instance_t instance,
|
||||
*m3ap_mme_data_from_mce = M3AP_SETUP_REQ(message_p);
|
||||
//printf("m3ap_mme_data_from_mce->assoc_id %d %d\n",m3ap_mme_data_from_mce->assoc_id,assoc_id);
|
||||
//
|
||||
//// MSC_LOG_TX_MESSAGE(
|
||||
//// MSC_M3AP_MME,
|
||||
//// MSC_RRC_MCE,
|
||||
//// 0,
|
||||
//// 0,
|
||||
//// MSC_AS_TIME_FMT" MME_handle_M3_SETUP_REQUEST",
|
||||
//// 0,0//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
//// );
|
||||
////
|
||||
itti_send_msg_to_task(TASK_MME_APP, ENB_MODULE_ID_TO_INSTANCE(instance), message_p);
|
||||
// if (num_mbms_available > 0) {
|
||||
// itti_send_msg_to_task(TASK_MME_APP, MCE_MODULE_ID_TO_INSTANCE(instance), message_p);
|
||||
@@ -1086,16 +1059,6 @@ int MME_handle_MBMS_SESSION_UPDATE_RESPONSE(instance_t instance,
|
||||
//AssertFatal(MME_MBMS_M3AP_ID!=-1,"MME_MBMS_M3AP_ID was not sent\n");
|
||||
//AssertFatal(MCE_MBMS_M3AP_ID!=-1,"MCE_MBMS_M3AP_ID was not sent\n");
|
||||
////M3AP_SESSION_START_RESP(msg_p).
|
||||
//// MSC_LOG_RX_MESSAGE(
|
||||
//// MSC_M3AP_MME,
|
||||
//// MSC_M3AP_MCE,
|
||||
// //return 0;
|
||||
//// 0,
|
||||
//// 0,
|
||||
//// MSC_AS_TIME_FMT" MME_handle_M2_SESSION_START_RESPONSE successfulOutcome assoc_id %d",
|
||||
//// 0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
//// assoc_id);
|
||||
////
|
||||
// LOG_W(M3AP, "Sending M3AP_SESSION_START_RESP ITTI message to MCE_APP with assoc_id (%d->%d)\n",
|
||||
// assoc_id,ENB_MODULE_ID_TO_INSTANCE(assoc_id));
|
||||
itti_send_msg_to_task(TASK_MME_APP, ENB_MODULE_ID_TO_INSTANCE(assoc_id), msg_g);
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
#include "m3ap_MME_interface_management.h"
|
||||
#include "m3ap_MCE_interface_management.h"
|
||||
|
||||
#include "msc.h"
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ Description Timer utilities
|
||||
#include "intertask_interface.h"
|
||||
#include "nas_timer.h"
|
||||
#include "commonDef.h"
|
||||
#include "msc.h"
|
||||
|
||||
/****************************************************************************/
|
||||
/**************** E X T E R N A L D E F I N I T I O N S ****************/
|
||||
|
||||
@@ -812,7 +812,6 @@ void *nas_nrue_task(void *args_p)
|
||||
|
||||
ue_security_key=(ue_sa_security_key_t **)calloc(1,sizeof(ue_sa_security_key_t*)*NB_UE_INST);
|
||||
itti_mark_task_ready (TASK_NAS_NRUE);
|
||||
MSC_START_USE();
|
||||
|
||||
while(1) {
|
||||
// Wait for a message or an event
|
||||
|
||||
@@ -47,14 +47,6 @@ Description Defines constants and functions used by the AS simulator
|
||||
/********************* G L O B A L C O N S T A N T S *******************/
|
||||
/****************************************************************************/
|
||||
|
||||
/*
|
||||
* Constansts used for MSCGEN (Message Sequence Chart Generator)
|
||||
*/
|
||||
#define MSCGEN(args...) fprintf(stderr, ##args);
|
||||
#define _ue_id "UE"
|
||||
#define _mme_id "MME"
|
||||
#define _as_id "AS"
|
||||
|
||||
/****************************************************************************/
|
||||
/************************ G L O B A L T Y P E S ************************/
|
||||
/****************************************************************************/
|
||||
|
||||
@@ -102,7 +102,7 @@ int process_cell_info_req(int msg_id, const cell_info_req_t* req,
|
||||
index += _process_plmn(_mscgen_buffer, &req->plmnID, MSCGEN_BUFFER_SIZE);
|
||||
snprintf(_mscgen_buffer + index, MSCGEN_BUFFER_SIZE - index,
|
||||
", rat = 0x%x%c", req->rat, '\0');
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- Cell Information Request (0x%.4x)\\n%s --->][%s]\n",
|
||||
printf("[%s][%s][--- Cell Information Request (0x%.4x)\\n%s --->][%s]\n",
|
||||
getTime(), _ue_id, msg_id, _mscgen_buffer, _as_id);
|
||||
|
||||
/* Setup cell information confirm message */
|
||||
@@ -116,7 +116,7 @@ int process_cell_info_req(int msg_id, const cell_info_req_t* req,
|
||||
snprintf(_mscgen_buffer, MSCGEN_BUFFER_SIZE,
|
||||
"tac = 0x%.4x, cellID = 0x%.8x, rat = 0x%x, RSRQ = %u, RSRP = %u%c",
|
||||
cnf->tac, cnf->cellID, cnf->rat, cnf->rsrq, cnf->rsrp, '\0');
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- Cell Information Confirm (0x%.4x)\\n%s --->][%s]\n",
|
||||
printf("[%s][%s][--- Cell Information Confirm (0x%.4x)\\n%s --->][%s]\n",
|
||||
getTime(), _as_id, AS_CELL_INFO_CNF, _mscgen_buffer, _ue_id);
|
||||
|
||||
printf("INFO\t: %s - Send cell informtion confirm\n", __FUNCTION__);
|
||||
@@ -146,13 +146,13 @@ int process_nas_establish_req(int msg_id, const nas_establish_req_t* req,
|
||||
"cause = %s, type = %s, tmsi = {MMEcode = %d, m_tmsi = %u}%c",
|
||||
rrcCause(req->cause), rrcType(req->type),
|
||||
req->s_tmsi.MMEcode, req->s_tmsi.m_tmsi, '\0');
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- NAS Signalling Connection Establishment Request "
|
||||
printf("[%s][%s][--- NAS Signalling Connection Establishment Request "
|
||||
"(0x%.4x)\\n%s --->][%s]\n",
|
||||
getTime(), _ue_id, msg_id, _mscgen_buffer, _as_id);
|
||||
|
||||
_process_dump(_mscgen_buffer, MSCGEN_BUFFER_SIZE,
|
||||
(char*)req->initialNasMsg.data, req->initialNasMsg.length);
|
||||
MSCGEN("[MSC_RBOX][%s][%s][%s]\n", _ue_id, _as_id, _mscgen_buffer);
|
||||
printf("[%s][%s][%s]\n", _ue_id, _as_id, _mscgen_buffer);
|
||||
|
||||
/* Process initial NAS message */
|
||||
bytes = nas_process(_mscgen_buffer, MSCGEN_BUFFER_SIZE,
|
||||
@@ -160,7 +160,7 @@ int process_nas_establish_req(int msg_id, const nas_establish_req_t* req,
|
||||
req->initialNasMsg.length);
|
||||
|
||||
if (bytes < 0) {
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- NAS Signalling Connection Establishment "
|
||||
printf("[%s][%s][--- NAS Signalling Connection Establishment "
|
||||
"Indication (0x%.4x)\\ntac = 0x%.4x\\n%s ---x][%s]\n", getTime(),
|
||||
_as_id, AS_NAS_ESTABLISH_IND, ind->tac, _mscgen_buffer, _mme_id);
|
||||
/* Setup NAS signalling connection establishment confirmation message */
|
||||
@@ -190,7 +190,7 @@ int process_nas_establish_req(int msg_id, const nas_establish_req_t* req,
|
||||
// Transmission failure of Attach Request message
|
||||
//cnf->errCode = AS_FAILURE; // UE DEBUG
|
||||
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- NAS Signalling Connection Establishment Indication "
|
||||
printf("[%s][%s][--- NAS Signalling Connection Establishment Indication "
|
||||
"(0x%.4x)\\nUEid = %u, tac = 0x%.4x\\n%s --->][%s]\n", getTime(),
|
||||
_as_id, AS_NAS_ESTABLISH_IND, ind->UEid, ind->tac, _mscgen_buffer, _mme_id);
|
||||
|
||||
@@ -224,13 +224,13 @@ int process_ul_info_transfer_req(int msg_id, const ul_info_transfer_req_t* req,
|
||||
snprintf(_mscgen_buffer, MSCGEN_BUFFER_SIZE,
|
||||
"tmsi = {MMEcode = %d, m_tmsi = %u}%c",
|
||||
req->s_tmsi.MMEcode, req->s_tmsi.m_tmsi, '\0');
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- Uplink Information Request "
|
||||
printf("[%s][%s][--- Uplink Information Request "
|
||||
"(0x%.4x)\\n%s --->][%s]\n",
|
||||
getTime(), _ue_id, msg_id, _mscgen_buffer, _as_id);
|
||||
|
||||
_process_dump(_mscgen_buffer, MSCGEN_BUFFER_SIZE,
|
||||
(char*)req->nasMsg.data, req->nasMsg.length);
|
||||
MSCGEN("[MSC_RBOX][%s][%s][%s]\n", _ue_id, _as_id, _mscgen_buffer);
|
||||
printf("[%s][%s][%s]\n", _ue_id, _as_id, _mscgen_buffer);
|
||||
|
||||
/* Process NAS message */
|
||||
bytes = nas_process(_mscgen_buffer, MSCGEN_BUFFER_SIZE,
|
||||
@@ -238,7 +238,7 @@ int process_ul_info_transfer_req(int msg_id, const ul_info_transfer_req_t* req,
|
||||
req->nasMsg.length);
|
||||
|
||||
if (bytes < 0) {
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- Uplink Information Indication "
|
||||
printf("[%s][%s][--- Uplink Information Indication "
|
||||
"(0x%.4x)\\n%s ---x][%s]\n", getTime(),
|
||||
_as_id, AS_UL_INFO_TRANSFER_IND, _mscgen_buffer, _mme_id);
|
||||
/* Setup uplink information confirmation message */
|
||||
@@ -279,7 +279,7 @@ int process_ul_info_transfer_req(int msg_id, const ul_info_transfer_req_t* req,
|
||||
// cnf->errCode = AS_FAILURE; // UE DEBUG
|
||||
//}
|
||||
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- Uplink Information Indication "
|
||||
printf("[%s][%s][--- Uplink Information Indication "
|
||||
"(0x%.4x), UEid = %u\\n%s --->][%s]\n", getTime(),
|
||||
_as_id, AS_UL_INFO_TRANSFER_IND, ind->UEid, _mscgen_buffer, _mme_id);
|
||||
|
||||
@@ -297,7 +297,7 @@ int process_nas_release_req(int msg_id, const nas_release_req_t* req)
|
||||
printf("INFO\t: %s - Process NAS signalling connection release request\n",
|
||||
__FUNCTION__);
|
||||
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- NAS Signalling Release Request "
|
||||
printf("[%s][%s][--- NAS Signalling Release Request "
|
||||
"(0x%.4x), tmsi = {MMEcode = %d, m_tmsi = %u}, "
|
||||
"cause = %s (%u) --->][%s]\n", getTime(), _ue_id, msg_id,
|
||||
req->s_tmsi.MMEcode, req->s_tmsi.m_tmsi,
|
||||
@@ -332,14 +332,14 @@ int process_nas_establish_rsp(int msg_id, const nas_establish_rsp_t* rsp,
|
||||
//rsp->nasMsg.data[21] = 0xc4; // MME DEBUG (Send ESM status)
|
||||
//}
|
||||
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- NAS Signalling Connection Establishment "
|
||||
printf("[%s][%s][--- NAS Signalling Connection Establishment "
|
||||
"Response (0x%.4x)\\nerrCode = %s, UEid = %u --->][%s]\n",
|
||||
getTime(), _mme_id, msg_id,
|
||||
rrcErrCode(rsp->errCode), rsp->UEid, _as_id);
|
||||
|
||||
_process_dump(_mscgen_buffer, MSCGEN_BUFFER_SIZE,
|
||||
(char*)rsp->nasMsg.data, rsp->nasMsg.length);
|
||||
MSCGEN("[MSC_RBOX][%s][%s][%s]\n", _mme_id, _as_id, _mscgen_buffer);
|
||||
printf("[%s][%s][%s]\n", _mme_id, _as_id, _mscgen_buffer);
|
||||
|
||||
// Discard Attach Accept message
|
||||
//return (0); // UE DEBUG
|
||||
@@ -350,7 +350,7 @@ int process_nas_establish_rsp(int msg_id, const nas_establish_rsp_t* rsp,
|
||||
rsp->nasMsg.length);
|
||||
|
||||
if (bytes < 0) {
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- NAS Signalling Connection Establishment "
|
||||
printf("[%s][%s][--- NAS Signalling Connection Establishment "
|
||||
"Confirm (0x%.4x)\\n%s ---x][%s]\n", getTime(),
|
||||
_as_id, AS_NAS_ESTABLISH_CNF, _mscgen_buffer, _ue_id);
|
||||
return (0);
|
||||
@@ -369,7 +369,7 @@ int process_nas_establish_rsp(int msg_id, const nas_establish_rsp_t* rsp,
|
||||
}
|
||||
}
|
||||
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- NAS Signalling Connection Establishment "
|
||||
printf("[%s][%s][--- NAS Signalling Connection Establishment "
|
||||
"Confirm (0x%.4x)\\n%s --->][%s]\n", getTime(),
|
||||
_as_id, AS_NAS_ESTABLISH_CNF, _mscgen_buffer, _ue_id);
|
||||
|
||||
@@ -401,13 +401,13 @@ int process_dl_info_transfer_req(int msg_id, const dl_info_transfer_req_t* req,
|
||||
// req->nasMsg.data[6] = 0x02; // UE DEBUG
|
||||
//}
|
||||
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- Downlink Information Request "
|
||||
printf("[%s][%s][--- Downlink Information Request "
|
||||
"(0x%.4x), UEid = %u --->][%s]\n",
|
||||
getTime(), _mme_id, msg_id, req->UEid, _as_id);
|
||||
|
||||
_process_dump(_mscgen_buffer, MSCGEN_BUFFER_SIZE,
|
||||
(char*)req->nasMsg.data, req->nasMsg.length);
|
||||
MSCGEN("[MSC_RBOX][%s][%s][%s]\n", _mme_id, _as_id, _mscgen_buffer);
|
||||
printf("[%s][%s][%s]\n", _mme_id, _as_id, _mscgen_buffer);
|
||||
|
||||
/* Process NAS message */
|
||||
bytes = nas_process(_mscgen_buffer, MSCGEN_BUFFER_SIZE,
|
||||
@@ -415,7 +415,7 @@ int process_dl_info_transfer_req(int msg_id, const dl_info_transfer_req_t* req,
|
||||
req->nasMsg.length);
|
||||
|
||||
if (bytes < 0) {
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- Downlink Information Indication "
|
||||
printf("[%s][%s][--- Downlink Information Indication "
|
||||
"(0x%.4x)\\n%s ---x][%s]\n", getTime(),
|
||||
_as_id, AS_DL_INFO_TRANSFER_IND, _mscgen_buffer, _ue_id);
|
||||
/* Setup downlink information confirmation message */
|
||||
@@ -445,7 +445,7 @@ int process_dl_info_transfer_req(int msg_id, const dl_info_transfer_req_t* req,
|
||||
// return (0); // MME DEBUG
|
||||
//}
|
||||
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- Downlink Information Indication "
|
||||
printf("[%s][%s][--- Downlink Information Indication "
|
||||
"(0x%.4x)\\n%s --->][%s]\n", getTime(),
|
||||
_as_id, AS_DL_INFO_TRANSFER_IND, _mscgen_buffer, _ue_id);
|
||||
|
||||
@@ -464,14 +464,14 @@ int process_nas_release_ind(int msg_id, const nas_release_req_t* req,
|
||||
printf("INFO\t: %s - Process NAS signalling connection release request\n",
|
||||
__FUNCTION__);
|
||||
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- NAS Signalling Connection Release Request "
|
||||
printf("[%s][%s][--- NAS Signalling Connection Release Request "
|
||||
"(0x%.4x), UEid = %u, cause = %s (%u) --->][%s]\n",
|
||||
getTime(), _mme_id, msg_id, req->UEid,
|
||||
rrcReleaseCause(req->cause), req->cause, _as_id);
|
||||
|
||||
/* Forward NAS release indication to the UE */
|
||||
ind->cause = req->cause;
|
||||
MSCGEN("[MSC_MSG][%s][%s][--- NAS Signalling Connection Release Indication "
|
||||
printf("[%s][%s][--- NAS Signalling Connection Release Indication "
|
||||
"(0x%.4x), cause = %s (%u) --->][%s]\n",
|
||||
getTime(), _as_id, msg_id, rrcReleaseCause(req->cause),
|
||||
ind->cause, _ue_id);
|
||||
|
||||
@@ -193,7 +193,7 @@ int main (int argc, const char* argv[])
|
||||
printf("INFO\t: %s - The RRC Simulator is now connected to %s/%s (%d)\n",
|
||||
__FUNCTION__, mhost, mport, socket_get_fd(_as_simulator_mme_sid));
|
||||
|
||||
MSCGEN("[MSC_NEW][%s][AS=%s]\n", getTime(), _as_id);
|
||||
printf("[%s][AS=%s]\n", getTime(), _as_id);
|
||||
|
||||
/*
|
||||
* Set up signal handler
|
||||
@@ -325,7 +325,7 @@ static void* _as_simulator_ue_mngr(void* args)
|
||||
|
||||
printf("INFO\t: %s - UE connection manager started\n", __FUNCTION__);
|
||||
|
||||
MSCGEN("[MSC_NEW][%s][NAS-UE=%s]\n", getTime(), _ue_id);
|
||||
printf("[%s][NAS-UE=%s]\n", getTime(), _ue_id);
|
||||
|
||||
/* Receiving loop */
|
||||
while (_as_simulator_ue_is_running) {
|
||||
@@ -407,7 +407,7 @@ static void* _as_simulator_mme_mngr(void* args)
|
||||
|
||||
printf("INFO\t: %s - MME connection manager started\n", __FUNCTION__);
|
||||
|
||||
MSCGEN("[MSC_NEW][%s][NAS-MME=%s]\n", getTime(), _mme_id);
|
||||
printf("[%s][NAS-MME=%s]\n", getTime(), _mme_id);
|
||||
|
||||
/* Receiving loop */
|
||||
while (_as_simulator_mme_is_running) {
|
||||
|
||||
|
Before Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
@@ -1,34 +0,0 @@
|
||||
================================================================================
|
||||
Message Sequence Chart generation
|
||||
================================================================================
|
||||
|
||||
Message Sequence Charts (MSCs) are a way of representing entities and
|
||||
interactions to demonstrate how protocols operate between network elements.
|
||||
|
||||
The Access Stratum simulator generates MSC description file that can be
|
||||
processed by the Python script msc_gen.py to generate a PNG (Portable
|
||||
Network Graphic) file.
|
||||
|
||||
msc_gen.py use mscgen utility that is fully discribed at
|
||||
http://www.mcternan.me.uk/mscgen/
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
How to generate MSC description file ?
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Redirect stderr stream to a file that will be used as input by the Python
|
||||
script msc_gen.py:
|
||||
|
||||
ASprocess 2> ASprocess.msc
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
How to generate PNG file ?
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Parse the MSC description file using the Python script msc_gen.py:
|
||||
|
||||
./msc_gen.py ASprocess.msc
|
||||
|
||||
Warning: msc_gen.py needs mscgen utility to be installed. mscgen is a C
|
||||
program that uses the GD graphics library for PNG output.
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB |
@@ -1,354 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# Lionel GAUTHIER
|
||||
# This script is a downgrade of a python script written for the openair stack, generating sequence diagrams charts, displaying
|
||||
# messages exchanged between LTE access stratum protocol entities.
|
||||
# This script needs mscgen tool (http://www.mcternan.me.uk/mscgen/).
|
||||
#
|
||||
# The aim of this script is to collect some traces from oaisim stack and generate a mscgen script, then generate a sequence diagram
|
||||
# image (png or jpeg) based on the scripts generated.
|
||||
# An example of how it can be invoqued: msc_gen.py /tmp/msc_log.txt /tmp/msc_log2.txt msc_logx.txt are input text files,
|
||||
# They/It are/is generated by the execution of executables in linux user space. May be it is better to operate on log files 'grepped' with MSC:
|
||||
# ./my_exe.exe | grep \[MSC > /tmp/msc_log1.txt
|
||||
|
||||
|
||||
# Now, examples of how to generate a mscgen trace in a C executable:
|
||||
# -First you have to declare the instance(s) of the protocol(s) that will send or receive messages.
|
||||
# This is done with the following line:
|
||||
# [MSC_NEW][system time][protocol_name=instance_name]
|
||||
# examples:
|
||||
# printf("[MSC_NEW][%s][MIH-F=%s]\n", getTimeStamp4Log(), g_mihf_id); for declaring a new instance of a protocol entity of type MIH-F
|
||||
# with an instance name g_mihf_id (of type char*)
|
||||
# printf("[MSC_NEW][%s][NAS=%s]\n", getTimeStamp4Log(), "nas"); other example.
|
||||
# This declaration of instances of protocols is mandatory to for this script to work.
|
||||
#
|
||||
# -Then for tracing a message you have to log a line following this format:
|
||||
# [MSC_MSG][system time][source instance_name][--- message_name --->][destination instance_name]
|
||||
# Note:
|
||||
# ---> means a message that has been received correctly by destination
|
||||
# ---x means a message lost by destination
|
||||
# example
|
||||
# NOTICE("[MSC_MSG][%s][%s][--- Link_Register.indication\\n%s ---x][%s]\n",getTimeStamp4Log(),g_link_id,g_msc_gen_buf,g_mihf_id);
|
||||
#
|
||||
|
||||
|
||||
|
||||
|
||||
import sys
|
||||
import subprocess
|
||||
import re
|
||||
import socket
|
||||
import datetime
|
||||
import os.path
|
||||
from datetime import date
|
||||
|
||||
MSCGEN_OUTPUT_TYPE = "png"
|
||||
MAX_MESSAGES_PER_PAGE = 36
|
||||
|
||||
SYSTEM_FRAME_NUMBER_STR = 'FRAME'
|
||||
MODULE_STR = 'MOD'
|
||||
RADIO_BEARER_STR = 'RB'
|
||||
MSC_NEW_STR = '[MSC_NEW]'
|
||||
MSC_MSG_STR = '[MSC_MSG]'
|
||||
MSC_NBOX_STR = '[MSC_NBOX]'
|
||||
MSC_BOX_STR = '[MSC_BOX]'
|
||||
MSC_ABOX_STR = '[MSC_ABOX]'
|
||||
MSC_RBOX_STR = '[MSC_RBOX]'
|
||||
|
||||
# This dic is filled as follow : g_entities_dic[protocol_instance_name].append(protocol_name)
|
||||
# where protocol_name can be any of the following MI-USER, MIH-F, RAL, LINK-SAP
|
||||
g_entities_dic = {}
|
||||
g_reverse_entities_dic = {}
|
||||
|
||||
|
||||
# g_messages is filled with dictionnaries:
|
||||
# message_dic['entity_src'] = protocol_entity_src
|
||||
# message_dic['entity_dst'] = protocol_entity_dest
|
||||
# message_dic['msg'] = message
|
||||
# message_dic['line_color'] = g_display_color[entity_name]
|
||||
# message_dic['text_color'] = g_display_color[entity_name]
|
||||
# message_dic['time'] = system_frame_number
|
||||
# message_dic['seq_no'] = sequence_number_generator()
|
||||
# g_messages.append(message_dic)
|
||||
g_messages = []
|
||||
g_messages_dic = {}
|
||||
|
||||
|
||||
# g_display_order_dic is a dictionnary where the order of the display of entities sharing the same module identifier is hardcoded
|
||||
#MAC and PHY valus have to be above num max radio bearer value
|
||||
#g_display_order_dic = {'MIH-USER': 0, 'MIH-F': 1, 'RAL': 3, 'NAS': 4}
|
||||
g_display_order_dic = {'NAS-UE': 0, 'AS': 1, 'NAS-MME': 3}
|
||||
|
||||
# Display color of messages of sending entities
|
||||
g_display_color = {'IP': '\"teal\"',
|
||||
'RRC_UE': '\"red\"',
|
||||
'MIH-USER': '\"black\"',
|
||||
'MIH-F': '\"black\"',
|
||||
'RAL': '\"black\"',
|
||||
'RAL_M': '\"black\"',
|
||||
'RLC_UM': '\"navy\"',
|
||||
'RLC_TM': '\"navy\"',
|
||||
'NAS': '\"black\"',
|
||||
'MAC_eNB': '\"indigo\"',
|
||||
'PHY': '\"purple\"',
|
||||
'NAS-UE': '\"black\"',
|
||||
'NAS-MME': '\"black\"',
|
||||
'AS': '\"black\"'}
|
||||
|
||||
|
||||
g_final_display_order_list = []
|
||||
g_sequence_generator = 0
|
||||
|
||||
def sequence_number_generator():
|
||||
global g_sequence_generator
|
||||
l_seq = g_sequence_generator
|
||||
g_sequence_generator = g_sequence_generator + 1
|
||||
return l_seq
|
||||
|
||||
def parse_log_file_for_discovering_protocol_entities(filename):
|
||||
global g_entities_dic
|
||||
global g_entities
|
||||
global g_messages
|
||||
global g_final_display_order_list
|
||||
#open TXT file that contain OAI filtered traces for mscgen
|
||||
|
||||
fhandle = open(filename, 'r')
|
||||
fcontent = fhandle.read()
|
||||
fhandle.close()
|
||||
|
||||
# split file content in lines
|
||||
lines = fcontent.splitlines()
|
||||
for line in lines:
|
||||
system_time = 'unknown'
|
||||
|
||||
# if line is a trace of the creation of a new protocol instance
|
||||
if MSC_NEW_STR in line:
|
||||
partition = line.rpartition(MSC_NEW_STR)
|
||||
msc_log_string = partition[2]
|
||||
#print (" %s " % msc_log_string)
|
||||
partition = msc_log_string.split('[')
|
||||
print ("\n\n %s \n" % partition)
|
||||
#if len(partition) == 2:
|
||||
|
||||
item = partition[1]
|
||||
item = item.strip()
|
||||
item = item.strip(']')
|
||||
system_time = item.split(' ')[-1]
|
||||
print ("NEW system_time %s " % system_time)
|
||||
|
||||
item = partition[2]
|
||||
item = item.strip()
|
||||
item = item.strip(']')
|
||||
protocol_entity_type = item.split('=')[0]
|
||||
protocol_entity_name = item.split('=')[-1]
|
||||
print ("NEW protocol_entity_type %s " % protocol_entity_type)
|
||||
print ("NEW protocol_entity_name %s " % protocol_entity_name)
|
||||
|
||||
if protocol_entity_name not in g_entities_dic:
|
||||
g_entities_dic[protocol_entity_name] = protocol_entity_type
|
||||
|
||||
if protocol_entity_type not in g_reverse_entities_dic:
|
||||
g_reverse_entities_dic[protocol_entity_type] = protocol_entity_name
|
||||
else:
|
||||
entity_name_list = g_reverse_entities_dic[protocol_entity_type]
|
||||
entity_name_list.append(protocol_entity_name)
|
||||
g_reverse_entities_dic[protocol_entity_type] = entity_name_list
|
||||
#print (" g_entities_dic[%d][%d].append(%s)" % (module_id_int, radio_bearer_id_int, entity_name_src))
|
||||
print (" g_entities_dic= %s\n\n" % (g_entities_dic))
|
||||
print (" g_reverse_entities_dic= %s\n\n" % (g_reverse_entities_dic))
|
||||
|
||||
#g_entities.append(protocol_entity_type)
|
||||
#print (" %s \n" % protocol_entity)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def parse_log_file(filename):
|
||||
global g_entities_dic
|
||||
global g_entities
|
||||
global g_messages
|
||||
global g_final_display_order_list
|
||||
#open TXT file that contain OAI filtered traces for mscgen
|
||||
fhandle = open(filename, 'r')
|
||||
fcontent = fhandle.read()
|
||||
fhandle.close()
|
||||
|
||||
# split file content in lines
|
||||
lines = fcontent.splitlines()
|
||||
for line in lines:
|
||||
system_time = 'unknown'
|
||||
message = 'unknown'
|
||||
entity_name_src = 'unknown'
|
||||
entity_name_dest = 'unknown'
|
||||
|
||||
|
||||
# if line is a trace of the creation of a new protocol instance
|
||||
if MSC_MSG_STR in line:
|
||||
partition = line.strip().rpartition(MSC_MSG_STR)
|
||||
msc_log_string = partition[2].strip()
|
||||
print (" ++++ %s " % msc_log_string)
|
||||
partition = msc_log_string.split('[')
|
||||
print (" ++++ %s " % partition)
|
||||
|
||||
#if len(partition) == 9:
|
||||
message_dic = {}
|
||||
|
||||
system_time = partition[1].strip().split(' ')[-1].strip(']')
|
||||
message_dic['display_time'] = system_time
|
||||
seconds_int = int(system_time.split(':')[0])
|
||||
micro_seconds_int = int(system_time.split(':')[-1])
|
||||
system_time_int = seconds_int*1000000 + micro_seconds_int
|
||||
system_time=str(system_time_int)
|
||||
print ('system_time %s' % system_time)
|
||||
|
||||
entity_name_src = partition[2].strip().split(' ')[-1].strip(']')
|
||||
print ('entity_name_src %s' % entity_name_src)
|
||||
|
||||
message = partition[3].strip().strip(']').strip()
|
||||
if (message[-1] == 'x') or (message[-1] == 'X'):
|
||||
message_dic['arc'] = '-x'
|
||||
elif message[-1] == '>':
|
||||
message_dic['arc'] = '=>'
|
||||
message = message.strip('<').strip('>').strip('x').strip('X').strip('-').strip('=').strip()
|
||||
print ('message %s' % message)
|
||||
|
||||
entity_name_dest = partition[4].strip().split(' ')[-1].strip(']')
|
||||
print ('entity_name_dest %s' % entity_name_dest)
|
||||
message_dic['entity_src'] = entity_name_src
|
||||
message_dic['entity_dst'] = entity_name_dest
|
||||
message_dic['msg'] = message
|
||||
message_dic['line_color'] = g_display_color[g_entities_dic[entity_name_src]]
|
||||
message_dic['text_color'] = g_display_color[g_entities_dic[entity_name_src]]
|
||||
message_dic['time'] = system_time
|
||||
#message_dic['seq_no'] = sequence_number_generator()
|
||||
print ('%s\n\n' % message_dic)
|
||||
g_messages_dic[system_time_int] = message_dic
|
||||
#g_messages.append(message_dic)
|
||||
|
||||
#TODO !!!
|
||||
if MSC_RBOX_STR in line:
|
||||
partition = line.strip().rpartition(MSC_RBOX_STR)
|
||||
msc_log_string = partition[2].strip()
|
||||
print (" ==== %s " % msc_log_string)
|
||||
partition = msc_log_string.split('[')
|
||||
print (" ==== %s " % partition)
|
||||
#TODO !!!
|
||||
|
||||
def generate_sorted_message_list():
|
||||
first_time_stamp = 0
|
||||
for system_time_int in sorted(g_messages_dic.iterkeys()):
|
||||
if first_time_stamp == 0:
|
||||
first_time_stamp = system_time_int
|
||||
message_dic = g_messages_dic[system_time_int]
|
||||
message_dic['seq_no'] = sequence_number_generator()
|
||||
message_dic['display_time'] = str(system_time_int - first_time_stamp)
|
||||
g_messages.append(message_dic)
|
||||
|
||||
def generate_sorted_entity_display_list():
|
||||
module_display_order_dic = {}
|
||||
for entity_name in sorted(g_entities_dic.iterkeys()):
|
||||
module_display_order_dic[g_display_order_dic[g_entities_dic[entity_name]]] = entity_name
|
||||
|
||||
|
||||
print("------------------------------------")
|
||||
print(" %s " % (module_display_order_dic))
|
||||
|
||||
for display_priority in sorted(module_display_order_dic.iterkeys()):
|
||||
g_final_display_order_list.append(module_display_order_dic[display_priority])
|
||||
|
||||
def msc_chart_write_header(fileP):
|
||||
global g_final_display_order_list
|
||||
fileP.write("msc {\n")
|
||||
fileP.write("width = \"2048\";\n")
|
||||
|
||||
entity_line_list_str = ''
|
||||
for entity in g_final_display_order_list:
|
||||
entity_line_list_str = entity_line_list_str + ' ' + entity + ','
|
||||
|
||||
entity_line_list_str = entity_line_list_str.rstrip().strip(',')
|
||||
fileP.write(" %s;" % (entity_line_list_str))
|
||||
|
||||
|
||||
def msc_chart_write_footer(fileP):
|
||||
fileP.write("\n}\n")
|
||||
|
||||
def msc_chart_generate(file_nameP):
|
||||
global MSCGEN_OUTPUT_TYPE
|
||||
command_line = "mscgen -T " + MSCGEN_OUTPUT_TYPE + " -i " + file_nameP + "; chmod 777 " +file_nameP + ";"
|
||||
|
||||
print("Command Line: %s " % (command_line))
|
||||
fi,fo,fe=os.popen3(command_line)
|
||||
for i in fe.readlines():
|
||||
print "error:",i
|
||||
|
||||
def get_nem_file_descriptor():
|
||||
global g_base_file_name
|
||||
global g_page_index
|
||||
l_file_name = g_base_file_name + str(g_page_index)+'.txt'
|
||||
l_file = open(l_file_name, "w", 0777)
|
||||
return l_file
|
||||
|
||||
|
||||
###### MAIN START HERE #################
|
||||
num_args = len(sys.argv)
|
||||
if num_args < 2: # the program name and the arguments
|
||||
# stop the program and print an error message
|
||||
sys.exit("Must provide at least one file to parse")
|
||||
|
||||
for i in range(1,num_args):
|
||||
print sys.argv[i]
|
||||
|
||||
for i in range(1,num_args):
|
||||
parse_log_file_for_discovering_protocol_entities(sys.argv[i])
|
||||
|
||||
for i in range(1,num_args):
|
||||
parse_log_file(sys.argv[i])
|
||||
|
||||
generate_sorted_message_list()
|
||||
generate_sorted_entity_display_list()
|
||||
|
||||
g_page_index = 0
|
||||
g_message_index = 0
|
||||
g_message_index_in_current_page = 0
|
||||
g_now = datetime.datetime.now()
|
||||
g_now_formated = g_now.strftime("%Y-%m-%d_%H.%M.%S")
|
||||
g_currentdir = os.curdir
|
||||
g_resultdir = os.path.join(g_currentdir, g_now_formated)
|
||||
os.mkdir(g_resultdir, 0777)
|
||||
os.chdir(g_resultdir)
|
||||
|
||||
g_base_file_name = 'mih_mscgen_page_'
|
||||
|
||||
g_file = get_nem_file_descriptor()
|
||||
msc_chart_write_header(g_file)
|
||||
|
||||
for message in g_messages:
|
||||
|
||||
if 'msg' in message:
|
||||
print ('message %s' % message)
|
||||
g_file.write(" %s%s%s [ label = \"(%d) T%s %s\", linecolour=%s , textcolour=%s ] ;\n" % (message['entity_src'], message['arc'], message['entity_dst'], message['seq_no'], message['display_time'], message['msg'], message['line_color'], message['text_color']))
|
||||
elif 'box' in message:
|
||||
g_file.write(" %s %s %s [ label = \"%s\", textbgcolour=%s , textcolour=%s ] ;\n" % (message['entity_src'], message['box_type'], message['entity_dst'], message['box'], message['textbg_color'], message['text_color']))
|
||||
|
||||
g_message_index = g_message_index + 1
|
||||
g_message_index_in_current_page = g_message_index_in_current_page + 1
|
||||
|
||||
if (g_message_index_in_current_page == MAX_MESSAGES_PER_PAGE):
|
||||
msc_chart_write_footer(g_file)
|
||||
g_file.close()
|
||||
msc_chart_generate(g_file.name)
|
||||
g_page_index = g_page_index + 1
|
||||
g_message_index_in_current_page = 0
|
||||
|
||||
g_file = get_nem_file_descriptor()
|
||||
msc_chart_write_header(g_file)
|
||||
|
||||
|
||||
msc_chart_write_footer(g_file)
|
||||
g_file.close()
|
||||
if g_message_index_in_current_page >= 1:
|
||||
msc_chart_generate(g_file.name)
|
||||
else:
|
||||
print("Removing empty seq diagram file: %s " % (g_file.name))
|
||||
os.remove(g_file.name)
|
||||
@@ -53,7 +53,6 @@ Description Defines the detach related EMM procedure executed by the
|
||||
|
||||
#include "emm_sap.h"
|
||||
#include "esm_sap.h"
|
||||
#include "msc.h"
|
||||
|
||||
#include <stdlib.h> // free
|
||||
|
||||
|
||||
@@ -48,7 +48,6 @@ Description Defines the identification EMM procedure executed by the
|
||||
#include "emmData.h"
|
||||
|
||||
#include "emm_sap.h"
|
||||
#include "msc.h"
|
||||
#include "user_defs.h"
|
||||
|
||||
#include <stdlib.h> // malloc, free
|
||||
|
||||
@@ -61,7 +61,6 @@ Description Defines the EMMAS Service Access Point that provides
|
||||
#if defined(NAS_BUILT_IN_UE)
|
||||
# include "nas_itti_messaging.h"
|
||||
#endif
|
||||
#include "msc.h"
|
||||
|
||||
/****************************************************************************/
|
||||
/**************** E X T E R N A L D E F I N I T I O N S ****************/
|
||||
|
||||
@@ -63,7 +63,6 @@ Description Defines the security mode control EMM procedure executed by the
|
||||
|
||||
# include "assertions.h"
|
||||
#include "secu_defs.h"
|
||||
#include "msc.h"
|
||||
#include "SecurityModeControl.h"
|
||||
|
||||
#if defined(NAS_BUILT_IN_UE)
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
|
||||
#include "intertask_interface.h"
|
||||
#include "nas_itti_messaging.h"
|
||||
#include "msc.h"
|
||||
|
||||
# define TASK_ORIGIN TASK_NAS_UE
|
||||
|
||||
@@ -104,27 +103,6 @@ int nas_itti_kenb_refresh_req(const Byte_t kenb[32], int user_id) {
|
||||
MessageDef *message_p;
|
||||
message_p = itti_alloc_new_message(TASK_NAS_UE, 0, NAS_KENB_REFRESH_REQ);
|
||||
memcpy(NAS_KENB_REFRESH_REQ(message_p).kenb, kenb, sizeof(NAS_KENB_REFRESH_REQ(message_p).kenb));
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NAS_UE,
|
||||
MSC_RRC_UE,
|
||||
NULL,0,
|
||||
"0 NAS_KENB_REFRESH_REQ KeNB "
|
||||
"%02x%02x%02x%02x"
|
||||
"%02x%02x%02x%02x"
|
||||
"%02x%02x%02x%02x"
|
||||
"%02x%02x%02x%02x"
|
||||
"%02x%02x%02x%02x"
|
||||
"%02x%02x%02x%02x"
|
||||
"%02x%02x%02x%02x"
|
||||
"%02x%02x%02x%02x",
|
||||
kenb[0], kenb[1], kenb[2], kenb[3],
|
||||
kenb[4], kenb[5], kenb[6], kenb[7],
|
||||
kenb[8], kenb[9], kenb[10], kenb[11],
|
||||
kenb[12], kenb[13], kenb[14], kenb[15],
|
||||
kenb[16], kenb[17], kenb[18], kenb[19],
|
||||
kenb[20], kenb[21], kenb[22], kenb[23],
|
||||
kenb[24], kenb[25], kenb[26], kenb[27],
|
||||
kenb[28], kenb[29], kenb[30], kenb[31]);
|
||||
return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p);
|
||||
}
|
||||
|
||||
@@ -133,13 +111,6 @@ int nas_itti_cell_info_req(const plmn_t plmnID, const Byte_t rat, int user_id) {
|
||||
message_p = itti_alloc_new_message(TASK_NAS_UE, 0, NAS_CELL_SELECTION_REQ);
|
||||
NAS_CELL_SELECTION_REQ(message_p).plmnID = plmnID;
|
||||
NAS_CELL_SELECTION_REQ(message_p).rat = rat;
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NAS_UE,
|
||||
MSC_RRC_UE,
|
||||
NULL,0,
|
||||
"0 NAS_CELL_SELECTION_REQ PLMN %X%X%X.%X%X%X",
|
||||
plmnID.MCCdigit1, plmnID.MCCdigit2, plmnID.MCCdigit3,
|
||||
plmnID.MNCdigit1, plmnID.MNCdigit2, plmnID.MNCdigit3);
|
||||
return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p);
|
||||
}
|
||||
|
||||
@@ -152,14 +123,6 @@ int nas_itti_nas_establish_req(as_cause_t cause, as_call_type_t type, as_stmsi_t
|
||||
NAS_CONN_ESTABLI_REQ(message_p).plmnID = plmnID;
|
||||
NAS_CONN_ESTABLI_REQ(message_p).initialNasMsg.data = data;
|
||||
NAS_CONN_ESTABLI_REQ(message_p).initialNasMsg.length = length;
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NAS_UE,
|
||||
MSC_RRC_UE,
|
||||
NULL,0,
|
||||
"0 NAS_CONN_ESTABLI_REQ MME code %u m-TMSI %u PLMN %X%X%X.%X%X%X",
|
||||
s_tmsi.MMEcode, s_tmsi.m_tmsi,
|
||||
plmnID.MCCdigit1, plmnID.MCCdigit2, plmnID.MCCdigit3,
|
||||
plmnID.MNCdigit1, plmnID.MNCdigit2, plmnID.MNCdigit3);
|
||||
return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p);
|
||||
}
|
||||
|
||||
@@ -178,11 +141,5 @@ int nas_itti_rab_establish_rsp(const as_stmsi_t s_tmsi, const as_rab_id_t rabID,
|
||||
NAS_RAB_ESTABLI_RSP(message_p).s_tmsi = s_tmsi;
|
||||
NAS_RAB_ESTABLI_RSP(message_p).rabID = rabID;
|
||||
NAS_RAB_ESTABLI_RSP(message_p).errCode = errCode;
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NAS_UE,
|
||||
MSC_RRC_UE,
|
||||
NULL,0,
|
||||
"0 NAS_RAB_ESTABLI_RSP MME code %u m-TMSI %u rb id %u status %u",
|
||||
s_tmsi.MMEcode, s_tmsi.m_tmsi,rabID, errCode );
|
||||
return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "assertions.h"
|
||||
#include "intertask_interface.h"
|
||||
#include "esm_proc.h"
|
||||
#include "msc.h"
|
||||
|
||||
#ifndef NAS_ITTI_MESSAGING_H_
|
||||
#define NAS_ITTI_MESSAGING_H_
|
||||
|
||||
@@ -46,7 +46,6 @@ Description NAS procedure call manager
|
||||
|
||||
#include "esm_main.h"
|
||||
#include "esm_sap.h"
|
||||
#include "msc.h"
|
||||
|
||||
#include <stdio.h> // sprintf
|
||||
|
||||
|
||||
@@ -29,12 +29,9 @@
|
||||
# include "user_api.h"
|
||||
# include "nas_parser.h"
|
||||
# include "nas_proc.h"
|
||||
# include "msc.h"
|
||||
# include "memory.h"
|
||||
|
||||
#include "nas_user.h"
|
||||
#include <common/utils/msc/msc.h>
|
||||
|
||||
// FIXME make command line option for NAS_UE_AUTOSTART
|
||||
# define NAS_UE_AUTOSTART 1
|
||||
|
||||
@@ -97,7 +94,6 @@ void *nas_ue_task(void *args_p)
|
||||
nas_user_container_t *users=args_p;
|
||||
|
||||
itti_mark_task_ready (TASK_NAS_UE);
|
||||
MSC_START_USE();
|
||||
LOG_I(NAS, "ue_idx_standalone val:: %u\n", ue_idx_standalone);
|
||||
/* Initialize UE NAS (EURECOM-NAS) */
|
||||
// Intead of for loop for standalone mode
|
||||
|
||||
@@ -57,7 +57,6 @@
|
||||
#include "ngap_gNB_itti_messaging.h"
|
||||
|
||||
#include "ngap_gNB_ue_context.h" // test, to be removed
|
||||
#include "msc.h"
|
||||
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
@@ -273,7 +272,6 @@ void ngap_gNB_init(void) {
|
||||
NGAP_DEBUG("Starting NGAP layer\n");
|
||||
ngap_gNB_prepare_internal_data();
|
||||
itti_mark_task_ready(TASK_NGAP);
|
||||
MSC_START_USE();
|
||||
}
|
||||
|
||||
void *ngap_gNB_process_itti_msg(void *notUsed) {
|
||||
|
||||
@@ -50,7 +50,6 @@
|
||||
#include "ngap_gNB_management_procedures.h"
|
||||
#include "ngap_gNB_context_management_procedures.h"
|
||||
#include "NGAP_PDUSessionResourceItemCxtRelReq.h"
|
||||
#include "msc.h"
|
||||
|
||||
|
||||
int ngap_ue_context_release_complete(instance_t instance,
|
||||
@@ -116,16 +115,6 @@ int ngap_ue_context_release_complete(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" UEContextRelease successfulOutcome gNB_ue_ngap_id %u amf_ue_ngap_id %lu",
|
||||
0,0, //MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_release_complete_p->gNB_ue_ngap_id,
|
||||
ue_context_p->amf_ue_ngap_id);
|
||||
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
ngap_gNB_itti_send_sctp_data_req(ngap_gNB_instance_p->instance,
|
||||
ue_context_p->amf_ref->assoc_id, buffer,
|
||||
@@ -267,16 +256,6 @@ int ngap_ue_context_release_req(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" UEContextReleaseRequest initiatingMessage gNB_ue_ngap_id %u amf_ue_ngap_id %lu",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_release_req_p->gNB_ue_ngap_id,
|
||||
ue_context_p->amf_ue_ngap_id);
|
||||
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
ngap_gNB_itti_send_sctp_data_req(ngap_gNB_instance_p->instance,
|
||||
ue_context_p->amf_ref->assoc_id, buffer,
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
#include "msc.h"
|
||||
#include "NGAP_NonDynamic5QIDescriptor.h"
|
||||
|
||||
static
|
||||
@@ -1208,14 +1207,6 @@ int ngap_gNB_handle_ue_context_release_command(uint32_t assoc_id,
|
||||
case NGAP_UE_NGAP_IDs_PR_uE_NGAP_ID_pair:
|
||||
gnb_ue_ngap_id = ie->value.choice.UE_NGAP_IDs.choice.uE_NGAP_ID_pair->rAN_UE_NGAP_ID;
|
||||
asn_INTEGER2ulong(&(ie->value.choice.UE_NGAP_IDs.choice.uE_NGAP_ID_pair->aMF_UE_NGAP_ID), &amf_ue_ngap_id);
|
||||
MSC_LOG_RX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
NULL,0,
|
||||
"0 UEContextRelease/%s gNB_ue_ngap_id "NGAP_UE_ID_FMT" amf_ue_ngap_id "NGAP_UE_ID_FMT" len %u",
|
||||
ngap_direction2String(pdu->present - 1),
|
||||
gnb_ue_ngap_id,
|
||||
amf_ue_ngap_id);
|
||||
|
||||
if ((ue_desc_p = ngap_gNB_get_ue_context(amf_desc_p->ngap_gNB_instance,
|
||||
gnb_ue_ngap_id)) == NULL) {
|
||||
@@ -1225,12 +1216,6 @@ int ngap_gNB_handle_ue_context_release_command(uint32_t assoc_id,
|
||||
gnb_ue_ngap_id);
|
||||
return -1;
|
||||
} else {
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_RRC_GNB,
|
||||
NULL,0,
|
||||
"0 NGAP_UE_CONTEXT_RELEASE_COMMAND/%d gNB_ue_ngap_id "NGAP_UE_ID_FMT" ",
|
||||
gnb_ue_ngap_id);
|
||||
message_p = itti_alloc_new_message(TASK_NGAP, 0, NGAP_UE_CONTEXT_RELEASE_COMMAND);
|
||||
|
||||
if (ue_desc_p->amf_ue_ngap_id == 0) { // case of Detach Request and switch off from RRC_IDLE mode
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
#include "ngap_gNB_ue_context.h"
|
||||
#include "ngap_gNB_nas_procedures.h"
|
||||
#include "ngap_gNB_management_procedures.h"
|
||||
#include "msc.h"
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
int ngap_gNB_handle_nas_first_req(
|
||||
@@ -312,14 +311,6 @@ int ngap_gNB_handle_nas_first_req(
|
||||
}
|
||||
|
||||
ue_desc_p->tx_stream = amf_desc_p->nextstream;
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
(const char *)NULL,
|
||||
0,
|
||||
MSC_AS_TIME_FMT" initialUEMessage initiatingMessage gNB_ue_ngap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_desc_p->gNB_ue_ngap_id);
|
||||
/* Send encoded message over sctp */
|
||||
ngap_gNB_itti_send_sctp_data_req(instance_p->instance, amf_desc_p->assoc_id,
|
||||
buffer, length, ue_desc_p->tx_stream);
|
||||
@@ -371,14 +362,6 @@ int ngap_gNB_handle_nas_downlink(uint32_t assoc_id,
|
||||
|
||||
if ((ue_desc_p = ngap_gNB_get_ue_context(ngap_gNB_instance,
|
||||
gnb_ue_ngap_id)) == NULL) {
|
||||
MSC_LOG_RX_DISCARDED_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
NULL,
|
||||
0,
|
||||
MSC_AS_TIME_FMT" downlinkNASTransport gNB_ue_ngap_id %u amf_ue_ngap_id %u",
|
||||
gnb_ue_ngap_id,
|
||||
amf_ue_ngap_id);
|
||||
NGAP_ERROR("[SCTP %d] Received NAS downlink message for non existing UE context gNB_UE_NGAP_ID: 0x%lx\n",
|
||||
assoc_id,
|
||||
gnb_ue_ngap_id);
|
||||
@@ -410,15 +393,6 @@ int ngap_gNB_handle_nas_downlink(uint32_t assoc_id,
|
||||
}
|
||||
}
|
||||
|
||||
MSC_LOG_RX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
NULL,
|
||||
0,
|
||||
MSC_AS_TIME_FMT" downlinkNASTransport gNB_ue_ngap_id %u amf_ue_ngap_id %u",
|
||||
assoc_id,
|
||||
amf_ue_ngap_id);
|
||||
|
||||
NGAP_FIND_PROTOCOLIE_BY_ID(NGAP_DownlinkNASTransport_IEs_t, ie, container,
|
||||
NGAP_ProtocolIE_ID_id_NAS_PDU, true);
|
||||
/* Forward the NAS PDU to NR-RRC */
|
||||
@@ -532,15 +506,6 @@ int ngap_gNB_nas_uplink(instance_t instance, ngap_uplink_nas_t *ngap_uplink_nas_
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
(const char *)NULL,
|
||||
0,
|
||||
MSC_AS_TIME_FMT" uplinkNASTransport initiatingMessage gNB_ue_ngap_id %u amf_ue_ngap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_context_p->gNB_ue_ngap_id,
|
||||
ue_context_p->amf_ue_ngap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
ngap_gNB_itti_send_sctp_data_req(ngap_gNB_instance_p->instance,
|
||||
ue_context_p->amf_ref->assoc_id, buffer,
|
||||
@@ -571,10 +536,6 @@ int ngap_gNB_nas_non_delivery_ind(instance_t instance,
|
||||
/* The context for this gNB ue ngap id doesn't exist in the map of gNB UEs */
|
||||
NGAP_WARN("Failed to find ue context associated with gNB ue ngap id: %08x\n",
|
||||
ngap_nas_non_delivery_ind->gNB_ue_ngap_id);
|
||||
MSC_LOG_EVENT(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_AS_TIME_FMT" Sent of NAS_NON_DELIVERY_IND to AMF failed, no context for gNB_ue_ngap_id %08x",
|
||||
ngap_nas_non_delivery_ind->gNB_ue_ngap_id);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -621,21 +582,9 @@ int ngap_gNB_nas_non_delivery_ind(instance_t instance,
|
||||
if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
|
||||
NGAP_ERROR("Failed to encode NAS NON delivery indication\n");
|
||||
/* Encode procedure has failed... */
|
||||
MSC_LOG_EVENT(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_AS_TIME_FMT" Sent of NAS_NON_DELIVERY_IND to AMF failed (encoding)");
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" NASNonDeliveryIndication initiatingMessage gNB_ue_ngap_id %u amf_ue_ngap_id %lu",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_context_p->gNB_ue_ngap_id,
|
||||
ue_context_p->amf_ue_ngap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
ngap_gNB_itti_send_sctp_data_req(ngap_gNB_instance_p->instance,
|
||||
ue_context_p->amf_ref->assoc_id, buffer,
|
||||
@@ -868,15 +817,6 @@ int ngap_gNB_initial_ctxt_resp(
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" InitialContextSetup successfulOutcome gNB_ue_ngap_id %u amf_ue_ngap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
initial_ctxt_resp_p->gNB_ue_ngap_id,
|
||||
ue_context_p->amf_ue_ngap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
LOG_I(NR_RRC,"Send message to sctp: NGAP_InitialContextSetupResponse\n");
|
||||
ngap_gNB_itti_send_sctp_data_req(ngap_gNB_instance_p->instance,
|
||||
@@ -961,15 +901,6 @@ int ngap_gNB_ue_capabilities(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" UECapabilityInfoIndication initiatingMessage gNB_ue_ngap_id %u amf_ue_ngap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_cap_info_ind_p->gNB_ue_ngap_id,
|
||||
ue_context_p->amf_ue_ngap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
ngap_gNB_itti_send_sctp_data_req(ngap_gNB_instance_p->instance,
|
||||
ue_context_p->amf_ref->assoc_id, buffer,
|
||||
@@ -1179,15 +1110,6 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" PduSession Setup successfulOutcome gNB_ue_ngap_id %u amf_ue_ngap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
pdusession_setup_resp_p->gNB_ue_ngap_id,
|
||||
ue_context_p->amf_ue_ngap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
ngap_gNB_itti_send_sctp_data_req(ngap_gNB_instance_p->instance,
|
||||
ue_context_p->amf_ref->assoc_id, buffer,
|
||||
@@ -1353,15 +1275,6 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" E_RAN Modify successful Outcome gNB_ue_ngap_id %u amf_ue_ngap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
pdusession_modify_resp_p->gNB_ue_ngap_id,
|
||||
ue_context_p->amf_ue_ngap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
ngap_gNB_itti_send_sctp_data_req(ngap_gNB_instance_p->instance,
|
||||
ue_context_p->amf_ref->assoc_id, buffer,
|
||||
@@ -1464,15 +1377,6 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_NGAP_GNB,
|
||||
MSC_NGAP_AMF,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" E_RAN Release successfulOutcome gNB_ue_ngap_id %u amf_ue_ngap_id %lu",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
pdusession_release_resp_p->gNB_ue_ngap_id,
|
||||
(uint64_t)ue_context_p->amf_ue_ngap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
ngap_gNB_itti_send_sctp_data_req(ngap_gNB_instance_p->instance,
|
||||
ue_context_p->amf_ref->assoc_id, buffer,
|
||||
|
||||
@@ -56,7 +56,6 @@
|
||||
#include "s1ap_eNB_itti_messaging.h"
|
||||
|
||||
#include "s1ap_eNB_ue_context.h" // test, to be removed
|
||||
#include "msc.h"
|
||||
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
@@ -507,7 +506,6 @@ void s1ap_eNB_init(void) {
|
||||
S1AP_DEBUG("Starting S1AP layer\n");
|
||||
s1ap_eNB_prepare_internal_data();
|
||||
itti_mark_task_ready(TASK_S1AP);
|
||||
MSC_START_USE();
|
||||
}
|
||||
|
||||
void *s1ap_eNB_process_itti_msg(void *notUsed) {
|
||||
|
||||
@@ -47,7 +47,6 @@
|
||||
#include "s1ap_eNB_nas_procedures.h"
|
||||
#include "s1ap_eNB_management_procedures.h"
|
||||
#include "s1ap_eNB_context_management_procedures.h"
|
||||
#include "msc.h"
|
||||
|
||||
|
||||
int s1ap_ue_context_release_complete(instance_t instance,
|
||||
@@ -111,16 +110,6 @@ int s1ap_ue_context_release_complete(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" UEContextRelease successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
0,0, //MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_release_complete_p->eNB_ue_s1ap_id,
|
||||
ue_context_p->mme_ue_s1ap_id);
|
||||
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
|
||||
ue_context_p->mme_ref->assoc_id, buffer,
|
||||
@@ -246,16 +235,6 @@ int s1ap_ue_context_release_req(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" UEContextReleaseRequest initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_release_req_p->eNB_ue_s1ap_id,
|
||||
ue_context_p->mme_ue_s1ap_id);
|
||||
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
|
||||
ue_context_p->mme_ref->assoc_id, buffer,
|
||||
|
||||
@@ -51,7 +51,6 @@
|
||||
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
#include "msc.h"
|
||||
|
||||
static
|
||||
int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id,
|
||||
@@ -1025,14 +1024,6 @@ int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id,
|
||||
case S1AP_UE_S1AP_IDs_PR_uE_S1AP_ID_pair:
|
||||
enb_ue_s1ap_id = ie->value.choice.UE_S1AP_IDs.choice.uE_S1AP_ID_pair.eNB_UE_S1AP_ID;
|
||||
mme_ue_s1ap_id = ie->value.choice.UE_S1AP_IDs.choice.uE_S1AP_ID_pair.mME_UE_S1AP_ID;
|
||||
MSC_LOG_RX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
NULL,0,
|
||||
"0 UEContextRelease/%s eNB_ue_s1ap_id "S1AP_UE_ID_FMT" mme_ue_s1ap_id "S1AP_UE_ID_FMT" len %u",
|
||||
s1ap_direction2String(pdu->present - 1),
|
||||
enb_ue_s1ap_id,
|
||||
mme_ue_s1ap_id);
|
||||
|
||||
if ((ue_desc_p = s1ap_eNB_get_ue_context(mme_desc_p->s1ap_eNB_instance,
|
||||
enb_ue_s1ap_id)) == NULL) {
|
||||
@@ -1042,12 +1033,6 @@ int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id,
|
||||
enb_ue_s1ap_id);
|
||||
return -1;
|
||||
} else {
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_RRC_ENB,
|
||||
NULL,0,
|
||||
"0 S1AP_UE_CONTEXT_RELEASE_COMMAND/%d eNB_ue_s1ap_id "S1AP_UE_ID_FMT" ",
|
||||
enb_ue_s1ap_id);
|
||||
message_p = itti_alloc_new_message(TASK_S1AP, 0, S1AP_UE_CONTEXT_RELEASE_COMMAND);
|
||||
|
||||
if (ue_desc_p->mme_ue_s1ap_id == 0) { // case of Detach Request and switch off from RRC_IDLE mode
|
||||
|
||||
@@ -46,7 +46,6 @@
|
||||
#include "s1ap_eNB_ue_context.h"
|
||||
#include "s1ap_eNB_nas_procedures.h"
|
||||
#include "s1ap_eNB_management_procedures.h"
|
||||
#include "msc.h"
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
int s1ap_eNB_handle_nas_first_req(
|
||||
@@ -310,14 +309,6 @@ int s1ap_eNB_handle_nas_first_req(
|
||||
}
|
||||
|
||||
ue_desc_p->tx_stream = mme_desc_p->nextstream;
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
(const char *)NULL,
|
||||
0,
|
||||
MSC_AS_TIME_FMT" initialUEMessage initiatingMessage eNB_ue_s1ap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_desc_p->eNB_ue_s1ap_id);
|
||||
/* Send encoded message over sctp */
|
||||
s1ap_eNB_itti_send_sctp_data_req(instance_p->instance, mme_desc_p->assoc_id,
|
||||
buffer, length, ue_desc_p->tx_stream);
|
||||
@@ -374,14 +365,6 @@ int s1ap_eNB_handle_nas_downlink(uint32_t assoc_id,
|
||||
|
||||
if ((ue_desc_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance,
|
||||
enb_ue_s1ap_id)) == NULL) {
|
||||
MSC_LOG_RX_DISCARDED_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
NULL,
|
||||
0,
|
||||
MSC_AS_TIME_FMT" downlinkNASTransport eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
enb_ue_s1ap_id,
|
||||
mme_ue_s1ap_id);
|
||||
S1AP_ERROR("[SCTP %d] Received NAS downlink message for non existing UE context eNB_UE_S1AP_ID: 0x%lx\n",
|
||||
assoc_id,
|
||||
enb_ue_s1ap_id);
|
||||
@@ -413,15 +396,6 @@ int s1ap_eNB_handle_nas_downlink(uint32_t assoc_id,
|
||||
}
|
||||
}
|
||||
|
||||
MSC_LOG_RX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
NULL,
|
||||
0,
|
||||
MSC_AS_TIME_FMT" downlinkNASTransport eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
assoc_id,
|
||||
mme_ue_s1ap_id);
|
||||
|
||||
S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_DownlinkNASTransport_IEs_t, ie, container,
|
||||
S1AP_ProtocolIE_ID_id_NAS_PDU, true);
|
||||
if(ie == NULL)
|
||||
@@ -536,15 +510,6 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
(const char *)NULL,
|
||||
0,
|
||||
MSC_AS_TIME_FMT" uplinkNASTransport initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_context_p->eNB_ue_s1ap_id,
|
||||
ue_context_p->mme_ue_s1ap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
|
||||
ue_context_p->mme_ref->assoc_id, buffer,
|
||||
@@ -574,10 +539,6 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
|
||||
/* The context for this eNB ue s1ap id doesn't exist in the map of eNB UEs */
|
||||
S1AP_WARN("Failed to find ue context associated with eNB ue s1ap id: %06x\n",
|
||||
s1ap_nas_non_delivery_ind->eNB_ue_s1ap_id);
|
||||
MSC_LOG_EVENT(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_AS_TIME_FMT" Sent of NAS_NON_DELIVERY_IND to MME failed, no context for eNB_ue_s1ap_id %06x",
|
||||
s1ap_nas_non_delivery_ind->eNB_ue_s1ap_id);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -623,21 +584,9 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
|
||||
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
|
||||
S1AP_ERROR("Failed to encode NAS NON delivery indication\n");
|
||||
/* Encode procedure has failed... */
|
||||
MSC_LOG_EVENT(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_AS_TIME_FMT" Sent of NAS_NON_DELIVERY_IND to MME failed (encoding)");
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" NASNonDeliveryIndication initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_context_p->eNB_ue_s1ap_id,
|
||||
ue_context_p->mme_ue_s1ap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
|
||||
ue_context_p->mme_ref->assoc_id, buffer,
|
||||
@@ -802,15 +751,6 @@ int s1ap_eNB_initial_ctxt_resp(
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" InitialContextSetup successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
initial_ctxt_resp_p->eNB_ue_s1ap_id,
|
||||
ue_context_p->mme_ue_s1ap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
|
||||
ue_context_p->mme_ref->assoc_id, buffer,
|
||||
@@ -891,15 +831,6 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" UECapabilityInfoIndication initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_cap_info_ind_p->eNB_ue_s1ap_id,
|
||||
ue_context_p->mme_ue_s1ap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
|
||||
ue_context_p->mme_ref->assoc_id, buffer,
|
||||
@@ -1075,15 +1006,6 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" E_RAN Setup successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
e_rab_setup_resp_p->eNB_ue_s1ap_id,
|
||||
ue_context_p->mme_ue_s1ap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
|
||||
ue_context_p->mme_ref->assoc_id, buffer,
|
||||
@@ -1238,15 +1160,6 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" E_RAN Modify successful Outcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
e_rab_modify_resp_p->eNB_ue_s1ap_id,
|
||||
ue_context_p->mme_ue_s1ap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
|
||||
ue_context_p->mme_ref->assoc_id, buffer,
|
||||
@@ -1378,15 +1291,6 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" E_RAN Release successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
e_rab_release_resp_p->eNB_ue_s1ap_id,
|
||||
ue_context_p->mme_ue_s1ap_id);
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
|
||||
ue_context_p->mme_ref->assoc_id, buffer,
|
||||
@@ -1615,16 +1519,6 @@ int s1ap_eNB_path_switch_req(instance_t instance,
|
||||
|
||||
ue_context_p->tx_stream = mme_desc_p->nextstream;
|
||||
|
||||
MSC_LOG_TX_MESSAGE(
|
||||
MSC_S1AP_ENB,
|
||||
MSC_S1AP_MME,
|
||||
(const char *)buffer,
|
||||
length,
|
||||
MSC_AS_TIME_FMT" E_RAN Setup successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
|
||||
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_context_p->eNB_ue_s1ap_id,
|
||||
path_switch_req_p->mme_ue_s1ap_id);
|
||||
|
||||
/* UE associated signalling -> use the allocated stream */
|
||||
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
|
||||
mme_desc_p->assoc_id, buffer,
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
#include "sctp_default_values.h"
|
||||
#include "sctp_common.h"
|
||||
#include "sctp_eNB_itti_messaging.h"
|
||||
#include "msc.h"
|
||||
|
||||
/* Used to format an uint32_t containing an ipv4 address */
|
||||
#define IPV4_ADDR "%u.%u.%u.%u"
|
||||
@@ -1097,8 +1096,6 @@ void sctp_eNB_init(void)
|
||||
STAILQ_INIT(&sctp_cnx_list);
|
||||
|
||||
itti_mark_task_ready(TASK_SCTP);
|
||||
MSC_START_USE();
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -148,23 +148,14 @@ eNBs =
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
gtpu_log_level ="info";
|
||||
gtpu_log_verbosity ="medium";
|
||||
udp_log_level ="info";
|
||||
udp_log_verbosity ="medium";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -148,19 +148,11 @@ eNBs =
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="debug";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
#include "s1ap_common.h"
|
||||
#include "play_scenario_s1ap_eNB_defs.h"
|
||||
#include "play_scenario.h"
|
||||
#include "msc.h"
|
||||
//------------------------------------------------------------------------------
|
||||
s1ap_eNB_internal_data_t s1ap_eNB_internal_data;
|
||||
RB_GENERATE(s1ap_mme_map, s1ap_eNB_mme_data_s, entry, et_s1ap_eNB_compare_assoc_id);
|
||||
@@ -1084,7 +1083,6 @@ void *et_s1ap_eNB_task(void *arg)
|
||||
et_s1ap_eNB_prepare_internal_data();
|
||||
|
||||
itti_mark_task_ready(TASK_S1AP);
|
||||
MSC_START_USE();
|
||||
|
||||
while (1) {
|
||||
itti_receive_msg(TASK_S1AP, &received_msg);
|
||||
|
||||
@@ -49,7 +49,6 @@
|
||||
#include "s1ap_common.h"
|
||||
#include "play_scenario_s1ap_eNB_defs.h"
|
||||
#include "play_scenario.h"
|
||||
#include "msc.h"
|
||||
//------------------------------------------------------------------------------
|
||||
extern et_scenario_t *g_scenario;
|
||||
extern uint32_t g_constraints;
|
||||
|
||||