From c2e44ad7c0baae30eeabf4098575ea0f3c59eec0 Mon Sep 17 00:00:00 2001 From: winckel <winckel@eurecom.fr> Date: Tue, 12 Nov 2013 15:59:43 +0000 Subject: [PATCH] Modified use of instance in ITTI messages to have a coherent use of it. It always refers to the same unit (eNB or UE) in all tasks or sub-tasks. This will allow filtering on instance number in itti_analyser. git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4371 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- openair1/PHY/TOOLS/dB_routines.h | 13 ++++++++++++ openair2/RRC/LITE/L2_interface.c | 21 ++++++++----------- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 4 +++- openair2/RRC/LITE/rrc_UE.c | 29 +++++++++++++++------------ openair2/RRC/LITE/rrc_eNB.c | 4 ++-- 5 files changed, 42 insertions(+), 29 deletions(-) create mode 100644 openair1/PHY/TOOLS/dB_routines.h diff --git a/openair1/PHY/TOOLS/dB_routines.h b/openair1/PHY/TOOLS/dB_routines.h new file mode 100644 index 000000000..94f99dc17 --- /dev/null +++ b/openair1/PHY/TOOLS/dB_routines.h @@ -0,0 +1,13 @@ +/* + * dB_routines.h + * + * Created on: Nov 12, 2013 + * Author: winckel + */ + +#ifndef DB_ROUTINES_H_ +#define DB_ROUTINES_H_ + +s16 dB_fixed_times10(u32 x); + +#endif /* DB_ROUTINES_H_ */ diff --git a/openair2/RRC/LITE/L2_interface.c b/openair2/RRC/LITE/L2_interface.c index e9b1e426d..515271cf9 100644 --- a/openair2/RRC/LITE/L2_interface.c +++ b/openair2/RRC/LITE/L2_interface.c @@ -273,7 +273,7 @@ s8 mac_rrc_lite_data_req(u8 Mod_id, u32 frame, u16 Srb_id, u8 Nb_tb, u8 *Buffer, memcpy (RRC_MAC_CCCH_DATA_REQ (message_p).sdu, UE_rrc_inst[Mod_id].Srb0[eNB_index].Tx_buffer.Payload, ccch_size); RRC_MAC_CCCH_DATA_REQ (message_p).enb_index = eNB_index; - itti_send_msg_to_task (TASK_MAC_UE, Mod_id, message_p); + itti_send_msg_to_task (TASK_MAC_UE, Mod_id + NB_eNB_INST, message_p); } #endif @@ -323,7 +323,7 @@ s8 mac_rrc_lite_data_ind(u8 Mod_id, u32 frame, u16 Srb_id, u8 *Sdu, u16 sdu_size memcpy (RRC_MAC_BCCH_DATA_IND (message_p).sdu, Sdu, sdu_size); RRC_MAC_BCCH_DATA_IND (message_p).enb_index = eNB_index; - itti_send_msg_to_task (TASK_RRC_UE, Mod_id, message_p); + itti_send_msg_to_task (TASK_RRC_UE, Mod_id + NB_eNB_INST, message_p); } #else decode_BCCH_DLSCH_Message(Mod_id,frame,eNB_index,Sdu,sdu_size); @@ -391,7 +391,7 @@ s8 mac_rrc_lite_data_ind(u8 Mod_id, u32 frame, u16 Srb_id, u8 *Sdu, u16 sdu_size memcpy (RRC_MAC_CCCH_DATA_IND (message_p).sdu, Sdu, sdu_size); RRC_MAC_CCCH_DATA_IND (message_p).enb_index = eNB_index; - itti_send_msg_to_task (TASK_RRC_UE, Mod_id, message_p); + itti_send_msg_to_task (TASK_RRC_UE, Mod_id + NB_eNB_INST, message_p); } #else Srb_info = &UE_rrc_inst[Mod_id].Srb0[eNB_index]; @@ -426,7 +426,7 @@ s8 mac_rrc_lite_data_ind(u8 Mod_id, u32 frame, u16 Srb_id, u8 *Sdu, u16 sdu_size RRC_MAC_MCCH_DATA_IND (message_p).enb_index = eNB_index; RRC_MAC_MCCH_DATA_IND (message_p).mbsfn_sync_area = mbsfn_sync_area; - itti_send_msg_to_task (TASK_RRC_UE, Mod_id, message_p); + itti_send_msg_to_task (TASK_RRC_UE, Mod_id + NB_eNB_INST, message_p); } #else decode_MCCH_Message(Mod_id, frame, eNB_index, Sdu, sdu_size, mbsfn_sync_area); @@ -534,12 +534,7 @@ void rrc_lite_data_ind( u8 Mod_id, u32 frame, u8 eNB_flag,u32 Srb_id, u32 sdu_si RRC_DCCH_DATA_IND (message_p).sdu_p = message_buffer; RRC_DCCH_DATA_IND (message_p).ue_index = UE_index; - if (eNB_flag == 1) { - itti_send_msg_to_task (TASK_RRC_ENB, Mod_id, message_p); - } - else { - itti_send_msg_to_task (TASK_RRC_UE, Mod_id - NB_eNB_INST, message_p); - } + itti_send_msg_to_task ((eNB_flag == 1) ? TASK_RRC_ENB : TASK_RRC_UE, Mod_id, message_p); } #else if (eNB_flag ==1) { @@ -562,7 +557,7 @@ void rrc_lite_in_sync_ind(u8 Mod_id, u32 frame, u16 eNB_index) { RRC_MAC_IN_SYNC_IND (message_p).frame = frame; RRC_MAC_IN_SYNC_IND (message_p).enb_index = eNB_index; - itti_send_msg_to_task (TASK_RRC_UE, Mod_id, message_p); + itti_send_msg_to_task (TASK_RRC_UE, Mod_id + NB_eNB_INST, message_p); } #else UE_rrc_inst[Mod_id].Info[eNB_index].N310_cnt=0; @@ -591,7 +586,7 @@ void rrc_lite_out_of_sync_ind(u8 Mod_id, u32 frame, u16 eNB_index){ RRC_MAC_OUT_OF_SYNC_IND (message_p).frame = frame; RRC_MAC_OUT_OF_SYNC_IND (message_p).enb_index = eNB_index; - itti_send_msg_to_task (TASK_RRC_UE, Mod_id, message_p); + itti_send_msg_to_task (TASK_RRC_UE, Mod_id + NB_eNB_INST, message_p); } #else UE_rrc_inst[Mod_id].Info[eNB_index].N310_cnt++; @@ -617,7 +612,7 @@ int mac_ue_ccch_success_ind(u8 Mod_id, u8 eNB_index) { message_p = itti_alloc_new_message (TASK_MAC_UE, RRC_MAC_CCCH_DATA_CNF); RRC_MAC_CCCH_DATA_CNF (message_p).enb_index = eNB_index; - itti_send_msg_to_task (TASK_RRC_UE, Mod_id - NB_eNB_INST, message_p); + itti_send_msg_to_task (TASK_RRC_UE, Mod_id + NB_eNB_INST, message_p); } #else // reset the tx buffer to indicate RRC that ccch was successfully transmitted (for example if contention resolution succeeds) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 6911fb15d..7d14002cb 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -103,6 +103,8 @@ int errno; #define msg printf #endif +extern unsigned char NB_eNB_INST; + uint16_t two_tier_hexagonal_cellIds[7] = {0,1,2,4,5,7,8}; uint16_t two_tier_hexagonal_adjacent_cellIds[7][6] = {{1,2,4,5,7,8}, // CellId 0 {11,18,2,0,8,15}, // CellId 1 @@ -1921,7 +1923,7 @@ OAI_UECapability_t *fill_ue_capability() { message_p = itti_alloc_new_message (TASK_RRC_UE, RRC_UE_EUTRA_CAPABILITY); memcpy (&message_p->msg, (void *) UE_EUTRA_Capability, sizeof(RrcUeEutraCapability)); - itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + itti_send_msg_to_task (TASK_UNKNOWN, NB_eNB_INST, message_p); } #endif diff --git a/openair2/RRC/LITE/rrc_UE.c b/openair2/RRC/LITE/rrc_UE.c index 5ba937a5e..2aebb96f2 100644 --- a/openair2/RRC/LITE/rrc_UE.c +++ b/openair2/RRC/LITE/rrc_UE.c @@ -37,6 +37,7 @@ #include "defs.h" +#include "PHY/TOOLS/dB_routines.h" #include "extern.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #include "LAYER2/RLC/rlc.h" @@ -307,7 +308,7 @@ int rrc_ue_decode_ccch(u8 Mod_id, u32 frame, SRB_INFO *Srb_info, u8 eNB_index){ message_p = itti_alloc_new_message (TASK_RRC_UE, RRC_DL_CCCH_MESSAGE); memcpy (&message_p->msg, (void *) dl_ccch_msg, sizeof(RrcDlCcchMessage)); - itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + itti_send_msg_to_task (TASK_UNKNOWN, Mod_id + NB_eNB_INST, message_p); } #endif @@ -1308,7 +1309,7 @@ void rrc_ue_decode_dcch(u8 Mod_id,u32 frame,u8 Srb_id, u8 *Buffer,u8 eNB_index) message_p = itti_alloc_new_message (TASK_RRC_UE, RRC_DL_DCCH_MESSAGE); memcpy (&message_p->msg, (void *) dl_dcch_msg, sizeof(RrcDlDcchMessage)); - itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + itti_send_msg_to_task (TASK_UNKNOWN, Mod_id + NB_eNB_INST, message_p); } #endif @@ -1449,7 +1450,7 @@ int decode_BCCH_DLSCH_Message(u8 Mod_id,u32 frame,u8 eNB_index,u8 *Sdu,u8 Sdu_le message_p = itti_alloc_new_message (TASK_RRC_UE, RRC_DL_BCCH_MESSAGE); memcpy (&message_p->msg, (void *) bcch_message, sizeof(RrcDlBcchMessage)); - itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + itti_send_msg_to_task (TASK_UNKNOWN, Mod_id + NB_eNB_INST, message_p); } #endif @@ -2194,6 +2195,7 @@ void *rrc_ue_task(void *args_p) { MessageDef *msg_p; const char *msg_name; instance_t instance; + unsigned int Mod_id; SRB_INFO *srb_info_p; itti_mark_task_ready (TASK_RRC_UE); @@ -2204,6 +2206,7 @@ void *rrc_ue_task(void *args_p) { msg_name = ITTI_MSG_NAME (msg_p); instance = ITTI_MSG_INSTANCE (msg_p); + Mod_id = instance - NB_eNB_INST; switch (msg_p->header.messageId) { case TERMINATE_MESSAGE: @@ -2218,23 +2221,23 @@ void *rrc_ue_task(void *args_p) { LOG_D(RRC, "Received %s: instance %d, frame %d, eNB %d\n", msg_name, instance, RRC_MAC_IN_SYNC_IND (msg_p).frame, RRC_MAC_IN_SYNC_IND (msg_p).enb_index); - UE_rrc_inst[instance].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N310_cnt = 0; - if (UE_rrc_inst[instance].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].T310_active == 1) - UE_rrc_inst[instance].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N311_cnt++; + UE_rrc_inst[Mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N310_cnt = 0; + if (UE_rrc_inst[Mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].T310_active == 1) + UE_rrc_inst[Mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N311_cnt++; break; case RRC_MAC_OUT_OF_SYNC_IND: LOG_D(RRC, "Received %s: instance %d, frame %d, eNB %d\n", msg_name, instance, RRC_MAC_OUT_OF_SYNC_IND (msg_p).frame, RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index); - UE_rrc_inst[instance].Info[RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index].N310_cnt ++; + UE_rrc_inst[Mod_id].Info[RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index].N310_cnt ++; break; case RRC_MAC_BCCH_DATA_IND: LOG_D(RRC, "Received %s: instance %d, frame %d, eNB %d\n", msg_name, instance, RRC_MAC_BCCH_DATA_IND (msg_p).frame, RRC_MAC_BCCH_DATA_IND (msg_p).enb_index); - decode_BCCH_DLSCH_Message (instance, RRC_MAC_BCCH_DATA_IND (msg_p).frame, + decode_BCCH_DLSCH_Message (Mod_id, RRC_MAC_BCCH_DATA_IND (msg_p).frame, RRC_MAC_BCCH_DATA_IND (msg_p).enb_index, RRC_MAC_BCCH_DATA_IND (msg_p).sdu, RRC_MAC_BCCH_DATA_IND (msg_p).sdu_size); break; @@ -2244,19 +2247,19 @@ void *rrc_ue_task(void *args_p) { RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index); // reset the tx buffer to indicate RRC that ccch was successfully transmitted (for example if contention resolution succeeds) - UE_rrc_inst[instance].Srb0[RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index].Tx_buffer.payload_size = 0; + UE_rrc_inst[Mod_id].Srb0[RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index].Tx_buffer.payload_size = 0; break; case RRC_MAC_CCCH_DATA_IND: LOG_D(RRC, "Received %s: instance %d, frame %d, eNB %d\n", msg_name, instance, RRC_MAC_CCCH_DATA_IND (msg_p).frame, RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); - srb_info_p = &UE_rrc_inst[instance].Srb0[RRC_MAC_CCCH_DATA_IND (msg_p).enb_index]; + srb_info_p = &UE_rrc_inst[Mod_id].Srb0[RRC_MAC_CCCH_DATA_IND (msg_p).enb_index]; memcpy (srb_info_p->Rx_buffer.Payload, RRC_MAC_CCCH_DATA_IND (msg_p).sdu, RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size); srb_info_p->Rx_buffer.payload_size = RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size; - rrc_ue_decode_ccch (instance, RRC_MAC_CCCH_DATA_IND (msg_p).frame, srb_info_p, + rrc_ue_decode_ccch (Mod_id, RRC_MAC_CCCH_DATA_IND (msg_p).frame, srb_info_p, RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); break; @@ -2265,7 +2268,7 @@ void *rrc_ue_task(void *args_p) { LOG_D(RRC, "Received %s: instance %d, frame %d, eNB %d, mbsfn SA %d\n", msg_name, instance, RRC_MAC_MCCH_DATA_IND (msg_p).frame, RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area); - decode_MCCH_Message (instance, RRC_MAC_MCCH_DATA_IND (msg_p).frame, RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, + decode_MCCH_Message (Mod_id, RRC_MAC_MCCH_DATA_IND (msg_p).frame, RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, RRC_MAC_MCCH_DATA_IND (msg_p).sdu, RRC_MAC_MCCH_DATA_IND (msg_p).sdu_size, RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area); break; @@ -2275,7 +2278,7 @@ void *rrc_ue_task(void *args_p) { LOG_D(RRC, "Received %s: instance %d, frame %d, DCCH %d, UE %d\n", msg_name, instance, RRC_DCCH_DATA_IND (msg_p).frame, RRC_DCCH_DATA_IND (msg_p).dcch_index, RRC_DCCH_DATA_IND (msg_p).ue_index); - rrc_ue_decode_dcch (instance, RRC_DCCH_DATA_IND (msg_p).frame, + rrc_ue_decode_dcch (Mod_id, RRC_DCCH_DATA_IND (msg_p).frame, RRC_DCCH_DATA_IND (msg_p).dcch_index, RRC_DCCH_DATA_IND (msg_p).sdu_p, RRC_DCCH_DATA_IND (msg_p).ue_index); diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index 3c6f6745b..1ba983346 100644 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -641,7 +641,7 @@ rrc_eNB_decode_dcch (u8 Mod_id, u32 frame, u8 Srb_id, u8 UE_index, message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_UL_DCCH_MESSAGE); memcpy (&message_p->msg, (void *) ul_dcch_msg, sizeof(RrcUlDcchMessage)); - itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + itti_send_msg_to_task (TASK_UNKNOWN, Mod_id, message_p); } #endif @@ -913,7 +913,7 @@ rrc_eNB_decode_ccch (u8 Mod_id, u32 frame, SRB_INFO * Srb_info) message_p = itti_alloc_new_message (TASK_RRC_ENB, RRC_UL_CCCH_MESSAGE); memcpy (&message_p->msg, (void *) ul_ccch_msg, sizeof(RrcUlCcchMessage)); - itti_send_msg_to_task (TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); + itti_send_msg_to_task (TASK_UNKNOWN, Mod_id, message_p); } #endif -- GitLab