diff --git a/openair-cn/NAS/EURECOM-NAS/src/api/network/nas_message.c b/openair-cn/NAS/EURECOM-NAS/src/api/network/nas_message.c index eacc63760d226998cd75c50d48b264c81c980158..5161a44dc013bd3bc822d64be562309f1757123c 100644 --- a/openair-cn/NAS/EURECOM-NAS/src/api/network/nas_message.c +++ b/openair-cn/NAS/EURECOM-NAS/src/api/network/nas_message.c @@ -252,21 +252,18 @@ int nas_message_decode(const char* const buffer, nas_message_t* msg, int length) LOG_FUNC_RETURN (TLV_DECODE_MAC_MISMATCH); } +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) + /* Log message header */ +#endif + /* Decode security protected NAS message */ bytes = _nas_message_protected_decode(buffer + size, &msg->header, &msg->plain, length - size); -#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) - /* Message has been decoded and security header removed, handle it has a plain message */ - nas_itti_plain_msg(buffer, msg, length, down_link); -#endif } else { /* Decode plain NAS message */ bytes = _nas_message_plain_decode(buffer, &msg->header, &msg->plain, length); -#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) - nas_itti_plain_msg(buffer, msg, length, down_link); -#endif } if (bytes < 0) { @@ -332,16 +329,13 @@ int nas_message_encode(char* buffer, const nas_message_t* const msg, int length) *(UInt32_t*)(buffer + sizeof(UInt8_t)) = mac; } #if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) - nas_itti_protected_msg(buffer, msg, length, down_link); + /* Log message header */ #endif } else { /* Encode plain NAS message */ bytes = _nas_message_plain_encode(buffer, &msg->header, &msg->plain, length); -#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) - nas_itti_plain_msg(buffer, msg, length, down_link); -#endif } if (bytes < 0) { diff --git a/openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_msg.c b/openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_msg.c index c7549521b6d5161d9afbab4b3bcbaa463ff0adf1..413efc8d317075d50807c7d62a02e876444edd6b 100644 --- a/openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_msg.c +++ b/openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_msg.c @@ -25,6 +25,10 @@ Description Defines EPS Mobility Management messages #include "TLVDecoder.h" #include "TLVEncoder.h" +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) +# include "nas_itti_messaging.h" +#endif + /****************************************************************************/ /**************** E X T E R N A L D E F I N I T I O N S ****************/ /****************************************************************************/ @@ -67,6 +71,18 @@ int emm_msg_decode(EMM_msg *msg, uint8_t *buffer, uint32_t len) int header_result; int decode_result; +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) + uint8_t *buffer_log = buffer; + uint32_t len_log = len; + int down_link; + +# if ((defined(EPC_BUILD) && defined(NAS_MME))) + down_link = 0; +# else + down_link = 1; +# endif +#endif + /* First decode the EMM message header */ header_result = _emm_msg_decode_header(&msg->header, buffer, len); if (header_result < 0) { @@ -193,6 +209,11 @@ int emm_msg_decode(EMM_msg *msg, uint8_t *buffer, uint32_t len) LOG_TRACE(ERROR, "EMM-MSG - Failed to decode L3 EMM message 0x%x " "(%d)", msg->header.message_type, decode_result); LOG_FUNC_RETURN (decode_result); + } else { +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) + /* Message has been decoded and security header removed, handle it has a plain message */ + nas_itti_plain_msg(buffer_log, msg, len_log, down_link); +#endif } LOG_FUNC_RETURN (header_result + decode_result); } @@ -221,6 +242,17 @@ int emm_msg_encode(EMM_msg *msg, uint8_t *buffer, uint32_t len) int header_result; int encode_result; +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) + uint8_t *buffer_log = buffer; + int down_link; + +# if ((defined(EPC_BUILD) && defined(NAS_MME))) + down_link = 1; +# else + down_link = 0; +# endif +#endif + /* First encode the EMM message header */ header_result = _emm_msg_encode_header(&msg->header, buffer, len); if (header_result < 0) { @@ -347,6 +379,10 @@ int emm_msg_encode(EMM_msg *msg, uint8_t *buffer, uint32_t len) if (encode_result < 0) { LOG_TRACE(ERROR, "EMM-MSG - Failed to encode L3 EMM message 0x%x " "(%d)", msg->header.message_type, encode_result); + } else { +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) + nas_itti_plain_msg(buffer_log, msg, header_result + encode_result, down_link); +#endif } LOG_FUNC_RETURN (header_result + encode_result); } diff --git a/openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_msg.c b/openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_msg.c index ce139e705c50c56180fe8d3f0c574e0cc159e819..fa36040e855e8c739ab65e8a9f7500aeb714f92d 100644 --- a/openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_msg.c +++ b/openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_msg.c @@ -25,6 +25,10 @@ Description Defines EPS Session Management messages #include "TLVDecoder.h" #include "TLVEncoder.h" +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) +# include "nas_itti_messaging.h" +#endif + /****************************************************************************/ /**************** E X T E R N A L D E F I N I T I O N S ****************/ /****************************************************************************/ @@ -63,6 +67,18 @@ int esm_msg_decode(ESM_msg *msg, uint8_t *buffer, uint32_t len) int header_result; int decode_result; +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) + uint8_t *buffer_log = buffer; + uint32_t len_log = len; + int down_link; + +# if ((defined(EPC_BUILD) && defined(NAS_MME))) + down_link = 0; +# else + down_link = 1; +# endif +#endif + LOG_FUNC_IN; /* First decode the ESM message header */ @@ -155,7 +171,13 @@ int esm_msg_decode(ESM_msg *msg, uint8_t *buffer, uint32_t len) LOG_TRACE(ERROR, "ESM-MSG - Failed to decode L3 ESM message 0x%x " "(%u)", msg->header.message_type, decode_result); LOG_FUNC_RETURN (decode_result); + } else { +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) + /* Message has been decoded and security header removed, handle it has a plain message */ + nas_itti_plain_msg(buffer_log, msg, len_log, down_link); +#endif } + LOG_FUNC_RETURN (header_result + decode_result); } @@ -183,6 +205,17 @@ int esm_msg_encode(ESM_msg *msg, uint8_t *buffer, uint32_t len) int header_result; int encode_result; +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) + uint8_t *buffer_log = buffer; + int down_link; + +# if ((defined(EPC_BUILD) && defined(NAS_MME))) + down_link = 1; +# else + down_link = 0; +# endif +#endif + /* First encode the ESM message header */ header_result = _esm_msg_encode_header(&msg->header, buffer, len); if (header_result < 0) { @@ -271,7 +304,12 @@ int esm_msg_encode(ESM_msg *msg, uint8_t *buffer, uint32_t len) if (encode_result < 0) { LOG_TRACE(ERROR, "ESM-MSG - Failed to encode L3 ESM message 0x%x " "(%d)", msg->header.message_type, encode_result); + } else { +#if ((defined(EPC_BUILD) && defined(NAS_MME)) || (defined(ENABLE_NAS_UE_LOGGING) && defined(UE_BUILD) && defined(NAS_UE))) + nas_itti_plain_msg(buffer_log, msg, header_result + encode_result, down_link); +#endif } + LOG_FUNC_RETURN (header_result + encode_result); }