From b3960e9ccc7457dec4ca4e67605893f4da2e67d0 Mon Sep 17 00:00:00 2001
From: winckel <winckel@eurecom.fr>
Date: Thu, 30 Jan 2014 07:46:50 +0000
Subject: [PATCH] Differentiated EMM and ESM RAW NAS messages. Added an ITTI
 filters example for UE and eNB.

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4990 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 common/utils/itti_analyzer/filters_ue_enb.xml | 168 ++++++++++++++++++
 openair-cn/COMMON/nas_messages_def.h          |   7 +-
 openair-cn/COMMON/nas_messages_types.h        |   7 +-
 openair-cn/NAS/nas_itti_messaging.c           |  69 +++----
 openair2/COMMON/nas_messages_def.h            |   7 +-
 openair2/COMMON/nas_messages_types.h          |   7 +-
 6 files changed, 225 insertions(+), 40 deletions(-)
 create mode 100644 common/utils/itti_analyzer/filters_ue_enb.xml

diff --git a/common/utils/itti_analyzer/filters_ue_enb.xml b/common/utils/itti_analyzer/filters_ue_enb.xml
new file mode 100644
index 0000000000..6d0ad073c9
--- /dev/null
+++ b/common/utils/itti_analyzer/filters_ue_enb.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<filters>
+  <messages>
+    <INITIALIZE_MESSAGE enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <ACTIVATE_MESSAGE enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <DEACTIVATE_MESSAGE enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <TERMINATE_MESSAGE enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <MESSAGE_TEST enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <ERROR_LOG enabled="1" foreground_color="#000000" background_color="#ff8080"/>
+    <WARNING_LOG enabled="1" foreground_color="#303030" background_color="#fff050"/>
+    <NOTICE_LOG enabled="0" foreground_color="#585858" background_color="#ffffa0"/>
+    <INFO_LOG enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <DEBUG_LOG enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <GENERIC_LOG enabled="1" foreground_color="#246b24" background_color="#ffffff"/>
+    <TIMER_HAS_EXPIRED enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <PHY_DEACTIVATE_REQ enabled="1" foreground_color="#000000" background_color="#bef2ff"/>
+    <PHY_FIND_CELL_REQ enabled="1" foreground_color="#000000" background_color="#bef2ff"/>
+    <PHY_FIND_NEXT_CELL_REQ enabled="1" foreground_color="#000000" background_color="#bef2ff"/>
+    <PHY_MEAS_THRESHOLD_REQ enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <PHY_FIND_CELL_IND enabled="1" foreground_color="#585858" background_color="#bef2ff"/>
+    <PHY_MEAS_THRESHOLD_CONF enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <PHY_MEAS_REPORT_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_MAC_IN_SYNC_IND enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_MAC_OUT_OF_SYNC_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_MAC_BCCH_DATA_REQ enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_MAC_BCCH_DATA_IND enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_MAC_CCCH_DATA_REQ enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_MAC_CCCH_DATA_CNF enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_MAC_CCCH_DATA_IND enabled="1" foreground_color="#585858" background_color="#dfb9fc"/>
+    <RRC_MAC_MCCH_DATA_REQ enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_MAC_MCCH_DATA_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RLC_AM_DATA_PDU_IND enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <RLC_AM_DATA_PDU_REQ enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <RLC_AM_STATUS_PDU_IND enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <RLC_AM_STATUS_PDU_REQ enabled="0" foreground_color="#585858" background_color="#ffffff"/>
+    <RLC_UM_DATA_PDU_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RLC_UM_DATA_PDU_REQ enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_DCCH_DATA_REQ enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_DCCH_DATA_IND enabled="1" foreground_color="#585858" background_color="#a7b1de"/>
+    <RRC_DL_BCCH enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_DL_CCCH enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_DL_DCCH enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_DL_MCCH enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_UE_EUTRA_CAPABILITY enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_UL_CCCH enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_UL_DCCH enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_STATE_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_CONFIGURATION_REQ enabled="1" foreground_color="#ffffff" background_color="#4d2a73"/>
+    <NAS_CELL_SELECTION_REQ enabled="1" foreground_color="#ffffff" background_color="#2d315c"/>
+    <NAS_CONN_ESTABLI_REQ enabled="1" foreground_color="#ffffff" background_color="#2d315c"/>
+    <NAS_UPLINK_DATA_REQ enabled="1" foreground_color="#ffffff" background_color="#2d315c"/>
+    <NAS_RAB_ESTABLI_RSP enabled="1" foreground_color="#ffffff" background_color="#2d315c"/>
+    <NAS_CELL_SELECTION_CNF enabled="1" foreground_color="#e0e0e0" background_color="#2d315c"/>
+    <NAS_CELL_SELECTION_IND enabled="1" foreground_color="#e0e0e0" background_color="#2d315c"/>
+    <NAS_PAGING_IND enabled="1" foreground_color="#e0e0e0" background_color="#2d315c"/>
+    <NAS_CONN_ESTABLI_CNF enabled="1" foreground_color="#e0e0e0" background_color="#2d315c"/>
+    <NAS_CONN_RELEASE_IND enabled="1" foreground_color="#e0e0e0" background_color="#2d315c"/>
+    <NAS_UPLINK_DATA_CNF enabled="1" foreground_color="#e0e0e0" background_color="#2d315c"/>
+    <NAS_DOWNLINK_DATA_IND enabled="1" foreground_color="#e0e0e0" background_color="#2d315c"/>
+    <NAS_DL_EMM_RAW_MSG enabled="1" foreground_color="#90ff40" background_color="#805000"/>
+    <NAS_UL_EMM_RAW_MSG enabled="1" foreground_color="#ff8080" background_color="#805000"/>
+    <NAS_DL_EMM_PLAIN_MSG enabled="1" foreground_color="#90ff40" background_color="#805000"/>
+    <NAS_UL_EMM_PLAIN_MSG enabled="1" foreground_color="#ff8080" background_color="#805000"/>
+    <NAS_DL_EMM_PROTECTED_MSG enabled="1" foreground_color="#90ff40" background_color="#805000"/>
+    <NAS_UL_EMM_PROTECTED_MSG enabled="1" foreground_color="#ff8080" background_color="#805000"/>
+    <NAS_DL_ESM_RAW_MSG enabled="1" foreground_color="#90ff40" background_color="#906010"/>
+    <NAS_UL_ESM_RAW_MSG enabled="1" foreground_color="#ff8080" background_color="#906010"/>
+    <NAS_DL_ESM_PLAIN_MSG enabled="1" foreground_color="#90ff40" background_color="#906010"/>
+    <NAS_UL_ESM_PLAIN_MSG enabled="1" foreground_color="#ff8080" background_color="#906010"/>
+    <NAS_DL_ESM_PROTECTED_MSG enabled="1" foreground_color="#90ff40" background_color="#906010"/>
+    <NAS_UL_ESM_PROTECTED_MSG enabled="1" foreground_color="#ff8080" background_color="#906010"/>
+    <RRC_RAL_SYSTEM_CONFIGURATION_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_SYSTEM_INFORMATION_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_SCAN_REQ enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_SCAN_CONF enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONFIGURE_THRESHOLD_REQ enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONFIGURE_THRESHOLD_CONF enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_MEASUREMENT_REPORT_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONNECTION_ESTABLISHMENT_REQ enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONNECTION_ESTABLISHMENT_CONF enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONNECTION_ESTABLISHMENT_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONNECTION_REESTABLISHMENT_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONNECTION_RECONFIGURATION_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONNECTION_RECONFIGURATION_HO_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONNECTION_RELEASE_REQ enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONNECTION_RELEASE_CONF enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <RRC_RAL_CONNECTION_RELEASE_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <S1AP_UPLINK_NAS_LOG enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <S1AP_UE_CAPABILITY_IND_LOG enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <S1AP_INITIAL_CONTEXT_SETUP_LOG enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <S1AP_NAS_NON_DELIVERY_IND_LOG enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <S1AP_DOWNLINK_NAS_LOG enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <S1AP_S1_SETUP_LOG enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <S1AP_INITIAL_UE_MESSAGE_LOG enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <S1AP_UE_CONTEXT_RELEASE_REQ_LOG enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <S1AP_UE_CONTEXT_RELEASE_LOG enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+    <S1AP_REGISTER_ENB_REQ enabled="1" foreground_color="#000000" background_color="#cbffb1"/>
+    <S1AP_REGISTER_ENB_CNF enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_DEREGISTERED_ENB_IND enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_NAS_FIRST_REQ enabled="1" foreground_color="#000000" background_color="#cbffb1"/>
+    <S1AP_UPLINK_NAS enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_UE_CAPABILITIES_IND enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_INITIAL_CONTEXT_SETUP_RESP enabled="1" foreground_color="#19431e" background_color="#cbffb1"/>
+    <S1AP_INITIAL_CONTEXT_SETUP_FAIL enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_NAS_NON_DELIVERY_IND enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_UE_CONTEXT_RELEASE_RESP enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_UE_CTXT_MODIFICATION_RESP enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_UE_CTXT_MODIFICATION_FAIL enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_DOWNLINK_NAS enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_INITIAL_CONTEXT_SETUP_REQ enabled="1" foreground_color="#000000" background_color="#cbffb1"/>
+    <S1AP_UE_CTXT_MODIFICATION_REQ enabled="1" foreground_color="#000000" background_color="#cbffb1"/>
+    <S1AP_PAGING_IND enabled="1" foreground_color="#585858" background_color="#cbffb1"/>
+    <S1AP_UE_CONTEXT_RELEASE_REQ enabled="1" foreground_color="#000000" background_color="#cbffb1"/>
+    <SCTP_NEW_ASSOCIATION_REQ enabled="0" foreground_color="#000000" background_color="#aefeff"/>
+    <SCTP_NEW_ASSOCIATION_RESP enabled="0" foreground_color="#585858" background_color="#aefeff"/>
+    <SCTP_NEW_ASSOCIATION_IND enabled="1" foreground_color="#585858" background_color="#aefeff"/>
+    <SCTP_REGISTER_UPPER_LAYER enabled="1" foreground_color="#585858" background_color="#aefeff"/>
+    <SCTP_DATA_REQ enabled="1" foreground_color="#000000" background_color="#aefeff"/>
+    <SCTP_DATA_IND enabled="1" foreground_color="#585858" background_color="#aefeff"/>
+    <NAS_UPLINK_DATA_IND enabled="1" foreground_color="#585858" background_color="#ffffff"/>
+  </messages>
+  <origin_tasks>
+    <TASK_UNKNOWN enabled="1"/>
+    <TASK_TIMER enabled="1"/>
+    <TASK_L2L1 enabled="1"/>
+    <TASK_BM enabled="1"/>
+    <TASK_PHY_ENB enabled="1"/>
+    <TASK_MAC_ENB enabled="1"/>
+    <TASK_RLC_ENB enabled="1"/>
+    <TASK_PDCP_ENB enabled="1"/>
+    <TASK_RRC_ENB enabled="1"/>
+    <TASK_RAL_ENB enabled="1"/>
+    <TASK_S1AP enabled="1"/>
+    <TASK_X2AP enabled="1"/>
+    <TASK_SCTP enabled="1"/>
+    <TASK_ENB_APP enabled="1"/>
+    <TASK_PHY_UE enabled="1"/>
+    <TASK_MAC_UE enabled="1"/>
+    <TASK_RLC_UE enabled="1"/>
+    <TASK_PDCP_UE enabled="1"/>
+    <TASK_RRC_UE enabled="1"/>
+    <TASK_NAS_UE enabled="1"/>
+    <TASK_RAL_UE enabled="1"/>
+  </origin_tasks>
+  <destination_tasks>
+    <TASK_UNKNOWN enabled="1"/>
+    <TASK_TIMER enabled="1"/>
+    <TASK_L2L1 enabled="1"/>
+    <TASK_BM enabled="1"/>
+    <TASK_PHY_ENB enabled="1"/>
+    <TASK_MAC_ENB enabled="1"/>
+    <TASK_RLC_ENB enabled="1"/>
+    <TASK_PDCP_ENB enabled="1"/>
+    <TASK_RRC_ENB enabled="1"/>
+    <TASK_RAL_ENB enabled="1"/>
+    <TASK_S1AP enabled="1"/>
+    <TASK_X2AP enabled="1"/>
+    <TASK_SCTP enabled="1"/>
+    <TASK_ENB_APP enabled="1"/>
+    <TASK_PHY_UE enabled="1"/>
+    <TASK_MAC_UE enabled="1"/>
+    <TASK_RLC_UE enabled="1"/>
+    <TASK_PDCP_UE enabled="1"/>
+    <TASK_RRC_UE enabled="1"/>
+    <TASK_NAS_UE enabled="1"/>
+    <TASK_RAL_UE enabled="1"/>
+  </destination_tasks>
+</filters>
diff --git a/openair-cn/COMMON/nas_messages_def.h b/openair-cn/COMMON/nas_messages_def.h
index e786d50700..0d1df2a3bd 100644
--- a/openair-cn/COMMON/nas_messages_def.h
+++ b/openair-cn/COMMON/nas_messages_def.h
@@ -1,14 +1,17 @@
 //WARNING: Do not include this header directly. Use intertask_interface.h instead.
 
 // Messages for NAS logging
-MESSAGE_DEF(NAS_DL_RAW_MSG,                     MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_dl_raw_msg)
-MESSAGE_DEF(NAS_UL_RAW_MSG,                     MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_ul_raw_msg)
+MESSAGE_DEF(NAS_DL_EMM_RAW_MSG,                 MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_dl_emm_raw_msg)
+MESSAGE_DEF(NAS_UL_EMM_RAW_MSG,                 MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_ul_emm_raw_msg)
 
 MESSAGE_DEF(NAS_DL_EMM_PLAIN_MSG,               MESSAGE_PRIORITY_MED,   nas_emm_plain_msg_t,        nas_dl_emm_plain_msg)
 MESSAGE_DEF(NAS_UL_EMM_PLAIN_MSG,               MESSAGE_PRIORITY_MED,   nas_emm_plain_msg_t,        nas_ul_emm_plain_msg)
 MESSAGE_DEF(NAS_DL_EMM_PROTECTED_MSG,           MESSAGE_PRIORITY_MED,   nas_emm_protected_msg_t,    nas_dl_emm_protected_msg)
 MESSAGE_DEF(NAS_UL_EMM_PROTECTED_MSG,           MESSAGE_PRIORITY_MED,   nas_emm_protected_msg_t,    nas_ul_emm_protected_msg)
 
+MESSAGE_DEF(NAS_DL_ESM_RAW_MSG,                 MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_dl_esm_raw_msg)
+MESSAGE_DEF(NAS_UL_ESM_RAW_MSG,                 MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_ul_esm_raw_msg)
+
 MESSAGE_DEF(NAS_DL_ESM_PLAIN_MSG,               MESSAGE_PRIORITY_MED,   nas_esm_plain_msg_t,        nas_dl_esm_plain_msg)
 MESSAGE_DEF(NAS_UL_ESM_PLAIN_MSG,               MESSAGE_PRIORITY_MED,   nas_esm_plain_msg_t,        nas_ul_esm_plain_msg)
 MESSAGE_DEF(NAS_DL_ESM_PROTECTED_MSG,           MESSAGE_PRIORITY_MED,   nas_esm_protected_msg_t,    nas_dl_esm_protected_msg)
diff --git a/openair-cn/COMMON/nas_messages_types.h b/openair-cn/COMMON/nas_messages_types.h
index 04b1a0324a..d0105cfa1d 100644
--- a/openair-cn/COMMON/nas_messages_types.h
+++ b/openair-cn/COMMON/nas_messages_types.h
@@ -4,14 +4,17 @@
 #ifndef NAS_MESSAGES_TYPES_H_
 #define NAS_MESSAGES_TYPES_H_
 
-#define NAS_DL_RAW_MSG(mSGpTR)                      (mSGpTR)->ittiMsg.nas_dl_raw_msg
-#define NAS_UL_RAW_MSG(mSGpTR)                      (mSGpTR)->ittiMsg.nas_ul_raw_msg
+#define NAS_DL_EMM_RAW_MSG(mSGpTR)                  (mSGpTR)->ittiMsg.nas_dl_emm_raw_msg
+#define NAS_UL_EMM_RAW_MSG(mSGpTR)                  (mSGpTR)->ittiMsg.nas_ul_emm_raw_msg
 
 #define NAS_DL_EMM_PROTECTED_MSG(mSGpTR)            (mSGpTR)->ittiMsg.nas_dl_emm_protected_msg
 #define NAS_UL_EMM_PROTECTED_MSG(mSGpTR)            (mSGpTR)->ittiMsg.nas_ul_emm_protected_msg
 #define NAS_DL_EMM_PLAIN_MSG(mSGpTR)                (mSGpTR)->ittiMsg.nas_dl_emm_plain_msg
 #define NAS_UL_EMM_PLAIN_MSG(mSGpTR)                (mSGpTR)->ittiMsg.nas_ul_emm_plain_msg
 
+#define NAS_DL_ESM_RAW_MSG(mSGpTR)                  (mSGpTR)->ittiMsg.nas_dl_esm_raw_msg
+#define NAS_UL_ESM_RAW_MSG(mSGpTR)                  (mSGpTR)->ittiMsg.nas_ul_esm_raw_msg
+
 #define NAS_DL_ESM_PROTECTED_MSG(mSGpTR)            (mSGpTR)->ittiMsg.nas_dl_esm_protected_msg
 #define NAS_UL_ESM_PROTECTED_MSG(mSGpTR)            (mSGpTR)->ittiMsg.nas_ul_esm_protected_msg
 #define NAS_DL_ESM_PLAIN_MSG(mSGpTR)                (mSGpTR)->ittiMsg.nas_dl_esm_plain_msg
diff --git a/openair-cn/NAS/nas_itti_messaging.c b/openair-cn/NAS/nas_itti_messaging.c
index e07e813d6b..ef87109034 100644
--- a/openair-cn/NAS/nas_itti_messaging.c
+++ b/openair-cn/NAS/nas_itti_messaging.c
@@ -120,36 +120,53 @@ int nas_itti_plain_msg(const char* buffer, const nas_message_t* msg, const int l
 {
     MessageDef *message_p;
     int data_length = length < NAS_DATA_LENGHT_MAX ? length : NAS_DATA_LENGHT_MAX;
+    int message_type = -1;
+    MessagesIds messageId_raw = -1;
+    MessagesIds messageId_plain = -1;
 
+    /* Define message ids */
+    if (msg->header.protocol_discriminator == EPS_MOBILITY_MANAGEMENT_MESSAGE)
     {
-        message_p = itti_alloc_new_message(TASK_ORIGIN, down_link ? NAS_DL_RAW_MSG : NAS_UL_RAW_MSG);
-
-        NAS_DL_RAW_MSG(message_p).lenght = length;
-        memset ((void *) &(NAS_DL_RAW_MSG(message_p).data), 0, NAS_DATA_LENGHT_MAX);
-        memcpy ((void *) &(NAS_DL_RAW_MSG(message_p).data), buffer, data_length);
-
-        itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
-        message_p = NULL;
+        message_type    = 0;
+        messageId_raw   = down_link ? NAS_DL_EMM_RAW_MSG : NAS_UL_EMM_RAW_MSG;
+        messageId_plain = down_link ? NAS_DL_EMM_PLAIN_MSG : NAS_UL_EMM_PLAIN_MSG;
+    }
+    else
+    {
+        if (msg->header.protocol_discriminator == EPS_SESSION_MANAGEMENT_MESSAGE)
+        {
+            message_type    = 1;
+            messageId_raw   = down_link ? NAS_DL_ESM_RAW_MSG : NAS_UL_ESM_RAW_MSG;
+            messageId_plain = down_link ? NAS_DL_ESM_PLAIN_MSG : NAS_UL_ESM_PLAIN_MSG;
+        }
     }
 
-    if (msg->header.protocol_discriminator == EPS_MOBILITY_MANAGEMENT_MESSAGE)
+    if (message_type >= 0)
     {
-        message_p = itti_alloc_new_message(TASK_ORIGIN, down_link ? NAS_DL_EMM_PLAIN_MSG : NAS_UL_EMM_PLAIN_MSG);
+        /* Create and send the RAW message */
+        message_p = itti_alloc_new_message(TASK_ORIGIN, messageId_raw);
 
-        NAS_DL_EMM_PLAIN_MSG(message_p).present = _nas_find_message_index(msg->plain.emm.header.message_type, emm_message_ids, sizeof(emm_message_ids) / sizeof(emm_message_ids[0]));
-        memcpy ((void *) &(NAS_DL_EMM_PLAIN_MSG(message_p).choice), &msg->plain.emm, sizeof (EMM_msg));
-    }
-    else {
-        if (msg->header.protocol_discriminator == EPS_SESSION_MANAGEMENT_MESSAGE)
+        NAS_DL_EMM_RAW_MSG(message_p).lenght = length;
+        memset ((void *) &(NAS_DL_EMM_RAW_MSG(message_p).data), 0, NAS_DATA_LENGHT_MAX);
+        memcpy ((void *) &(NAS_DL_EMM_RAW_MSG(message_p).data), buffer, data_length);
+
+        itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
+
+        /* Create and send the plain message */
+        if (message_type == 0)
         {
-            message_p = itti_alloc_new_message(TASK_ORIGIN, down_link ? NAS_DL_ESM_PLAIN_MSG : NAS_UL_ESM_PLAIN_MSG);
+            message_p = itti_alloc_new_message(TASK_ORIGIN, messageId_plain);
+
+            NAS_DL_EMM_PLAIN_MSG(message_p).present = _nas_find_message_index(msg->plain.emm.header.message_type, emm_message_ids, sizeof(emm_message_ids) / sizeof(emm_message_ids[0]));
+            memcpy ((void *) &(NAS_DL_EMM_PLAIN_MSG(message_p).choice), &msg->plain.emm, sizeof (EMM_msg));
+        }
+        else {
+            message_p = itti_alloc_new_message(TASK_ORIGIN, messageId_plain);
 
             NAS_DL_ESM_PLAIN_MSG(message_p).present = _nas_find_message_index(msg->plain.esm.header.message_type, esm_message_ids, sizeof(esm_message_ids) / sizeof(esm_message_ids[0]));
-            memcpy ((void *) &(NAS_DL_ESM_PLAIN_MSG(message_p).choice), &msg->plain.emm, sizeof (ESM_msg));
+            memcpy ((void *) &(NAS_DL_ESM_PLAIN_MSG(message_p).choice), &msg->plain.esm, sizeof (ESM_msg));
         }
-    }
 
-    if (message_p != NULL) {
         return itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
     }
 
@@ -158,19 +175,7 @@ int nas_itti_plain_msg(const char* buffer, const nas_message_t* msg, const int l
 
 int nas_itti_protected_msg(const char* buffer, const nas_message_t* msg, const int length, const int down_link)
 {
-    MessageDef *message_p;
-    int data_length = length < NAS_DATA_LENGHT_MAX ? length : NAS_DATA_LENGHT_MAX;
-
-    {
-        message_p = itti_alloc_new_message(TASK_ORIGIN, down_link ? NAS_DL_RAW_MSG : NAS_UL_RAW_MSG);
-
-        NAS_DL_RAW_MSG(message_p).lenght = length;
-        memset ((void *) &(NAS_DL_RAW_MSG(message_p).data), 0, NAS_DATA_LENGHT_MAX);
-        memcpy ((void *) &(NAS_DL_RAW_MSG(message_p).data), buffer, data_length);
-
-        itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
-        message_p = NULL;
-    }
+    MessageDef *message_p = NULL;
 
     if (msg->header.protocol_discriminator == EPS_MOBILITY_MANAGEMENT_MESSAGE)
     {
diff --git a/openair2/COMMON/nas_messages_def.h b/openair2/COMMON/nas_messages_def.h
index 0c07f2ea8b..20ea454427 100644
--- a/openair2/COMMON/nas_messages_def.h
+++ b/openair2/COMMON/nas_messages_def.h
@@ -8,14 +8,17 @@
 #if defined(ENABLE_USE_MME) && defined(ENABLE_NAS_UE_LOGGING)
 //-------------------------------------------------------------------------------------------//
 // Messages for NAS logging
-MESSAGE_DEF(NAS_DL_RAW_MSG,                     MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_dl_raw_msg)
-MESSAGE_DEF(NAS_UL_RAW_MSG,                     MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_ul_raw_msg)
+MESSAGE_DEF(NAS_DL_EMM_RAW_MSG,                 MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_dl_emm_raw_msg)
+MESSAGE_DEF(NAS_UL_EMM_RAW_MSG,                 MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_ul_emm_raw_msg)
 
 MESSAGE_DEF(NAS_DL_EMM_PLAIN_MSG,               MESSAGE_PRIORITY_MED,   nas_emm_plain_msg_t,        nas_dl_emm_plain_msg)
 MESSAGE_DEF(NAS_UL_EMM_PLAIN_MSG,               MESSAGE_PRIORITY_MED,   nas_emm_plain_msg_t,        nas_ul_emm_plain_msg)
 MESSAGE_DEF(NAS_DL_EMM_PROTECTED_MSG,           MESSAGE_PRIORITY_MED,   nas_emm_protected_msg_t,    nas_dl_emm_protected_msg)
 MESSAGE_DEF(NAS_UL_EMM_PROTECTED_MSG,           MESSAGE_PRIORITY_MED,   nas_emm_protected_msg_t,    nas_ul_emm_protected_msg)
 
+MESSAGE_DEF(NAS_DL_ESM_RAW_MSG,                 MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_dl_esm_raw_msg)
+MESSAGE_DEF(NAS_UL_ESM_RAW_MSG,                 MESSAGE_PRIORITY_MED,   nas_raw_msg_t,              nas_ul_esm_raw_msg)
+
 MESSAGE_DEF(NAS_DL_ESM_PLAIN_MSG,               MESSAGE_PRIORITY_MED,   nas_esm_plain_msg_t,        nas_dl_esm_plain_msg)
 MESSAGE_DEF(NAS_UL_ESM_PLAIN_MSG,               MESSAGE_PRIORITY_MED,   nas_esm_plain_msg_t,        nas_ul_esm_plain_msg)
 MESSAGE_DEF(NAS_DL_ESM_PROTECTED_MSG,           MESSAGE_PRIORITY_MED,   nas_esm_protected_msg_t,    nas_dl_esm_protected_msg)
diff --git a/openair2/COMMON/nas_messages_types.h b/openair2/COMMON/nas_messages_types.h
index ec6213ce5f..efb08ba831 100644
--- a/openair2/COMMON/nas_messages_types.h
+++ b/openair2/COMMON/nas_messages_types.h
@@ -14,14 +14,17 @@
 
 //-------------------------------------------------------------------------------------------//
 // Defines to access message fields.
-#define NAS_DL_RAW_MSG(mSGpTR)                      (mSGpTR)->ittiMsg.nas_dl_raw_msg
-#define NAS_UL_RAW_MSG(mSGpTR)                      (mSGpTR)->ittiMsg.nas_ul_raw_msg
+#define NAS_DL_EMM_RAW_MSG(mSGpTR)                  (mSGpTR)->ittiMsg.nas_dl_emm_raw_msg
+#define NAS_UL_EMM_RAW_MSG(mSGpTR)                  (mSGpTR)->ittiMsg.nas_ul_emm_raw_msg
 
 #define NAS_DL_EMM_PROTECTED_MSG(mSGpTR)            (mSGpTR)->ittiMsg.nas_dl_emm_protected_msg
 #define NAS_UL_EMM_PROTECTED_MSG(mSGpTR)            (mSGpTR)->ittiMsg.nas_ul_emm_protected_msg
 #define NAS_DL_EMM_PLAIN_MSG(mSGpTR)                (mSGpTR)->ittiMsg.nas_dl_emm_plain_msg
 #define NAS_UL_EMM_PLAIN_MSG(mSGpTR)                (mSGpTR)->ittiMsg.nas_ul_emm_plain_msg
 
+#define NAS_DL_ESM_RAW_MSG(mSGpTR)                  (mSGpTR)->ittiMsg.nas_dl_esm_raw_msg
+#define NAS_UL_ESM_RAW_MSG(mSGpTR)                  (mSGpTR)->ittiMsg.nas_ul_esm_raw_msg
+
 #define NAS_DL_ESM_PROTECTED_MSG(mSGpTR)            (mSGpTR)->ittiMsg.nas_dl_esm_protected_msg
 #define NAS_UL_ESM_PROTECTED_MSG(mSGpTR)            (mSGpTR)->ittiMsg.nas_ul_esm_protected_msg
 #define NAS_DL_ESM_PLAIN_MSG(mSGpTR)                (mSGpTR)->ittiMsg.nas_dl_esm_plain_msg
-- 
GitLab