Commit 9c120ed2 authored by lfarizav's avatar lfarizav

Solving an initialization issue related to ctxt->instance numbering

parent 86b0f4ce
...@@ -5717,7 +5717,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u ...@@ -5717,7 +5717,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
if (msg_p != NULL) { if (msg_p != NULL) {
msg_name = ITTI_MSG_NAME (msg_p); msg_name = ITTI_MSG_NAME (msg_p);
instance = ITTI_MSG_INSTANCE (msg_p); instance = ITTI_MSG_INSTANCE (msg_p);
Mod_id = instance - NB_eNB_INST; Mod_id = instance - 1/*NB_eNB_INST*/;
switch (ITTI_MSG_ID(msg_p)) { switch (ITTI_MSG_ID(msg_p)) {
case PHY_FIND_CELL_REQ: case PHY_FIND_CELL_REQ:
......
...@@ -221,9 +221,11 @@ typedef struct protocol_ctxt_s { ...@@ -221,9 +221,11 @@ typedef struct protocol_ctxt_s {
// warning time hardcoded // warning time hardcoded
#define PROTOCOL_CTXT_TIME_MILLI_SECONDS(CtXt_h) ((CtXt_h)->frame*10+(CtXt_h)->subframe) #define PROTOCOL_CTXT_TIME_MILLI_SECONDS(CtXt_h) ((CtXt_h)->frame*10+(CtXt_h)->subframe)
#define UE_MODULE_ID_TO_INSTANCE( mODULE_iD ) mODULE_iD + NB_eNB_INST //#define UE_MODULE_ID_TO_INSTANCE( mODULE_iD ) mODULE_iD + NB_eNB_INST
#define UE_MODULE_ID_TO_INSTANCE( mODULE_iD ) mODULE_iD + 1
#define ENB_MODULE_ID_TO_INSTANCE( mODULE_iD ) mODULE_iD #define ENB_MODULE_ID_TO_INSTANCE( mODULE_iD ) mODULE_iD
#define UE_INSTANCE_TO_MODULE_ID( iNSTANCE ) iNSTANCE - NB_eNB_INST //#define UE_INSTANCE_TO_MODULE_ID( iNSTANCE ) iNSTANCE - NB_eNB_INST
#define UE_INSTANCE_TO_MODULE_ID( iNSTANCE ) iNSTANCE - 1
#define ENB_INSTANCE_TO_MODULE_ID( iNSTANCE )iNSTANCE #define ENB_INSTANCE_TO_MODULE_ID( iNSTANCE )iNSTANCE
......
...@@ -79,10 +79,10 @@ void dl_phy_sync_success(module_id_t module_idP, ...@@ -79,10 +79,10 @@ void dl_phy_sync_success(module_id_t module_idP,
//printf("mme_enabled? %d\n",mme_enabled); //printf("mme_enabled? %d\n",mme_enabled);
if (first_sync==1 && !(mme_enabled==1 && abstraction_flag==0)) { if (first_sync==1 && !(mme_enabled==1 && abstraction_flag==0)) {
layer2_init_UE(module_idP); layer2_init_UE(module_idP);
openair_rrc_ue_init(module_idP,/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id); openair_rrc_ue_init(module_idP,eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/);
} else } else
{ {
rrc_in_sync_ind(module_idP,frameP,/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id); rrc_in_sync_ind(module_idP,frameP,eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/);
} }
} }
......
...@@ -80,7 +80,7 @@ int openair2_stats_read(char *buffer, char **my_buffer, off_t off, int length) ...@@ -80,7 +80,7 @@ int openair2_stats_read(char *buffer, char **my_buffer, off_t off, int length)
// UE part // UE part
for (ue_id=0; ue_id<NUM_UE_INST; ue_id++) { for (ue_id=0; ue_id<NUM_UE_INST; ue_id++) {
// mod_id used for PDCP and RLC // mod_id used for PDCP and RLC
Mod_id = NB_eNB_INST + ue_id ; Mod_id = 1/*NB_eNB_INST*/ + ue_id ;
len+=sprintf(&buffer[len],"UE RX TTI: %d\n",UE_mac_inst[ue_id].rxFrame); len+=sprintf(&buffer[len],"UE RX TTI: %d\n",UE_mac_inst[ue_id].rxFrame);
......
...@@ -548,7 +548,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) ...@@ -548,7 +548,8 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP)
LOG_D(PDCP, "[PDCP][NETLINK] Something in socket, length %zu\n", LOG_D(PDCP, "[PDCP][NETLINK] Something in socket, length %zu\n",
nas_nlh_rx->nlmsg_len - sizeof(struct nlmsghdr)); nas_nlh_rx->nlmsg_len - sizeof(struct nlmsghdr));
#endif #endif
printf("[PDCP][NETLINK] Something in socket, length %zu\n",
nas_nlh_rx->nlmsg_len - sizeof(struct nlmsghdr));
#ifdef OAI_EMU #ifdef OAI_EMU
// overwrite function input parameters, because only one netlink socket for all instances // overwrite function input parameters, because only one netlink socket for all instances
......
...@@ -72,7 +72,7 @@ mac_rrc_data_req( ...@@ -72,7 +72,7 @@ mac_rrc_data_req(
) )
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
{ {
printf("mac_rrc_data_req:eNB_index %d\n",eNB_index);//eNB_index=ue->common_vars.enb_id printf("mac_rrc_data_req:eNB_index %d, eNB %d, CC_id %d\n",eNB_index,Mod_idP,CC_id);//eNB_index=ue->common_vars.enb_id
SRB_INFO *Srb_info; SRB_INFO *Srb_info;
uint8_t Sdu_size=0; uint8_t Sdu_size=0;
...@@ -348,7 +348,7 @@ mac_rrc_data_ind( ...@@ -348,7 +348,7 @@ mac_rrc_data_ind(
SRB_INFO *Srb_info; SRB_INFO *Srb_info;
protocol_ctxt_t ctxt; protocol_ctxt_t ctxt;
sdu_size_t sdu_size = 0; sdu_size_t sdu_size = 0;
printf("mac_rrc_data_ind: eNB_indexP %d\n",eNB_indexP);//eNB_index=ue->common_vars.enb_id printf("mac_rrc_data_ind: eNB_indexP %d, ctxt->instance %d, ctxt->module_id %d\n",eNB_indexP,ctxt.instance,ctxt.module_id);//eNB_index=ue->common_vars.enb_id
/* for no gcc warnings */ /* for no gcc warnings */
(void)sdu_size; (void)sdu_size;
...@@ -536,6 +536,7 @@ rrc_data_req( ...@@ -536,6 +536,7 @@ rrc_data_req(
sdu_sizeP); sdu_sizeP);
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
printf("ENABLE_ITTI is on\n");
{ {
MessageDef *message_p; MessageDef *message_p;
// Uses a new buffer to avoid issue with PDCP buffer content that could be changed by PDCP (asynchronous message handling). // Uses a new buffer to avoid issue with PDCP buffer content that could be changed by PDCP (asynchronous message handling).
...@@ -560,7 +561,7 @@ rrc_data_req( ...@@ -560,7 +561,7 @@ rrc_data_req(
RRC_DCCH_DATA_REQ (message_p).module_id = ctxt_pP->module_id; RRC_DCCH_DATA_REQ (message_p).module_id = ctxt_pP->module_id;
RRC_DCCH_DATA_REQ (message_p).rnti = ctxt_pP->rnti; RRC_DCCH_DATA_REQ (message_p).rnti = ctxt_pP->rnti;
RRC_DCCH_DATA_REQ (message_p).eNB_index = ctxt_pP->eNB_index; RRC_DCCH_DATA_REQ (message_p).eNB_index = ctxt_pP->eNB_index;
printf("RRC_DCCH_DATA_REQ (message_p): frame %d, enb_flag %d, rb_id %d, muip %d, confirmp %d, sdu_size %d, sdu_p %d, mode %d, module_id %d, rnti %x, eNB_index %d\n",ctxt_pP->frame,ctxt_pP->enb_flag,rb_idP,muiP,confirmP,sdu_sizeP,*message_buffer,modeP,ctxt_pP->module_id,ctxt_pP->rnti,ctxt_pP->eNB_index);
itti_send_msg_to_task ( itti_send_msg_to_task (
ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE, ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE,
ctxt_pP->instance, ctxt_pP->instance,
......
...@@ -313,8 +313,8 @@ char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_ ...@@ -313,8 +313,8 @@ char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_
protocol_ctxt_t ctxt;//eNb_id=0,1 protocol_ctxt_t ctxt;//eNb_id=0,1
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_idP, ENB_FLAG_NO, NOT_A_RNTI, 0, 0,eNB_index); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_idP, ENB_FLAG_NO, NOT_A_RNTI, 0, 0,eNB_index);
LOG_I(RRC, LOG_I(RRC,
PROTOCOL_RRC_CTXT_FMT" Init...\n", PROTOCOL_RRC_CTXT_FMT" Init..., eNB_index %d, ue_mod_ip %d, ctxt->instance %d , ctxt->module_id %d\n",
PROTOCOL_RRC_CTXT_ARGS(&ctxt)); PROTOCOL_RRC_CTXT_ARGS(&ctxt),eNB_index,ue_mod_idP,ctxt.instance,ctxt.module_id);
rrc_set_state (ue_mod_idP, RRC_STATE_INACTIVE); rrc_set_state (ue_mod_idP, RRC_STATE_INACTIVE);
rrc_set_sub_state (ue_mod_idP, RRC_SUB_STATE_INACTIVE); rrc_set_sub_state (ue_mod_idP, RRC_SUB_STATE_INACTIVE);
...@@ -469,6 +469,9 @@ static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t* c ...@@ -469,6 +469,9 @@ static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t* c
size, size,
buffer, buffer,
PDCP_TRANSMISSION_MODE_CONTROL); PDCP_TRANSMISSION_MODE_CONTROL);
printf("[FRAME %05d][RRC_UE][MOD %02d][][--- PDCP_DATA_REQ/%d Bytes (RRCConnectionSetupComplete to eNB %d MUI %d) --->][PDCP][MOD %02d][RB %02d]\n",
ctxt_pP->frame, ctxt_pP->module_id+NB_eNB_INST, size, eNB_index, rrc_mui, ctxt_pP->module_id+NB_eNB_INST, DCCH);
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
...@@ -489,6 +492,15 @@ static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol ...@@ -489,6 +492,15 @@ static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol
rrc_mui, rrc_mui,
UE_MODULE_ID_TO_INSTANCE(ctxt_pP->module_id), UE_MODULE_ID_TO_INSTANCE(ctxt_pP->module_id),
DCCH); DCCH);
printf("[FRAME %05d][RRC_UE][INST %02d][][--- PDCP_DATA_REQ/%d Bytes (RRCConnectionReconfigurationComplete to eNB %d MUI %d) --->][PDCP][INST %02d][RB %02d]\n",
ctxt_pP->frame,
UE_MODULE_ID_TO_INSTANCE(ctxt_pP->module_id),
size,
eNB_index,
rrc_mui,
UE_MODULE_ID_TO_INSTANCE(ctxt_pP->module_id),
DCCH);
rrc_data_req ( rrc_data_req (
ctxt_pP, ctxt_pP,
DCCH, DCCH,
...@@ -504,7 +516,7 @@ static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol ...@@ -504,7 +516,7 @@ static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol
// Called by L2 interface (MAC) // Called by L2 interface (MAC)
int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* const Srb_info, const uint8_t eNB_index ) int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* const Srb_info, const uint8_t eNB_index )
{ {
printf("rrc_ue_decode_ccch: eNB_index %d\n",eNB_index);//eNB_index=ue->common_vars.enb_id printf("rrc_ue_decode_ccch: eNB_index %d, ctxt_pP->instance %d, UE %d\n",eNB_index,ctxt_pP->instance,ctxt_pP->module_id);//eNB_index=ue->common_vars.enb_id
DL_CCCH_Message_t* dl_ccch_msg=NULL; DL_CCCH_Message_t* dl_ccch_msg=NULL;
asn_dec_rval_t dec_rval; asn_dec_rval_t dec_rval;
int rval=0; int rval=0;
...@@ -601,7 +613,7 @@ int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* co ...@@ -601,7 +613,7 @@ int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* co
ctxt_pP->frame, ctxt_pP->frame,
ctxt_pP->rnti); ctxt_pP->rnti);
// Get configuration // Get configuration
printf("T300 timer %d before release, rnti %x, eNB %d UE %d\n", UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T300_active,UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].rnti = ctxt_pP->rnti,eNB_index,ctxt_pP->module_id);
// Release T300 timer // Release T300 timer
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T300_active = 0; UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T300_active = 0;
rrc_ue_process_radioResourceConfigDedicated( rrc_ue_process_radioResourceConfigDedicated(
...@@ -714,9 +726,10 @@ rrc_ue_establish_drb( ...@@ -714,9 +726,10 @@ rrc_ue_establish_drb(
) )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{ {
printf("rrc_ue_establish_drb: eNB_index %d\n",eNB_index); printf("rrc_ue_establish_drb: eNB_index %d UE %d\n",eNB_index,ue_mod_idP);
// add descriptor from RRC PDU // add descriptor from RRC PDU
#ifdef PDCP_USE_NETLINK #ifdef PDCP_USE_NETLINK
printf("PDCP_USE_NETLINK\n");
int oip_ifup=0,ip_addr_offset3=0,ip_addr_offset4=0; int oip_ifup=0,ip_addr_offset3=0,ip_addr_offset4=0;
/* avoid gcc warnings */ /* avoid gcc warnings */
(void)oip_ifup; (void)oip_ifup;
...@@ -739,12 +752,16 @@ rrc_ue_establish_drb( ...@@ -739,12 +752,16 @@ rrc_ue_establish_drb(
# ifdef OAI_EMU # ifdef OAI_EMU
ip_addr_offset3 = oai_emulation.info.nb_enb_local; ip_addr_offset3 = oai_emulation.info.nb_enb_local;
ip_addr_offset4 = NB_eNB_INST; ip_addr_offset4 = NB_eNB_INST;
printf("OAI_EMU: ip_addr_offset4 %d\n",ip_addr_offset4);
# else # else
ip_addr_offset3 = 0; ip_addr_offset3 = 0;
ip_addr_offset4 = 8; ip_addr_offset4 = 8;
printf("else OAI_EMU: ip_addr_offset4 %d\n",ip_addr_offset4);
# endif # endif
LOG_I(OIP,"[UE %d] trying to bring up the OAI interface oai%d, IP 10.0.%d.%d\n", ue_mod_idP, ip_addr_offset3+ue_mod_idP, LOG_I(OIP,"[UE %d] trying to bring up the OAI interface oai%d, IP 10.0.%d.%d\n", ue_mod_idP, ip_addr_offset3+ue_mod_idP,
ip_addr_offset3+ue_mod_idP+1,ip_addr_offset4+ue_mod_idP+1); ip_addr_offset3+ue_mod_idP+1,ip_addr_offset4+ue_mod_idP+1);
printf("[UE %d] trying to bring up the OAI interface oai%d, IP 10.0.%d.%d\n", ue_mod_idP, ip_addr_offset3+ue_mod_idP,
ip_addr_offset3+ue_mod_idP+1,ip_addr_offset4+ue_mod_idP+1);
oip_ifup=nas_config(ip_addr_offset3+ue_mod_idP, // interface_id oip_ifup=nas_config(ip_addr_offset3+ue_mod_idP, // interface_id
ip_addr_offset3+ue_mod_idP+1, // third_octet ip_addr_offset3+ue_mod_idP+1, // third_octet
ip_addr_offset4+ue_mod_idP+1); // fourth_octet ip_addr_offset4+ue_mod_idP+1); // fourth_octet
...@@ -757,6 +774,10 @@ rrc_ue_establish_drb( ...@@ -757,6 +774,10 @@ rrc_ue_establish_drb(
ue_mod_idP, ue_mod_idP,
ip_addr_offset3+ue_mod_idP, ip_addr_offset3+ue_mod_idP,
(long int)((eNB_index * maxDRB) + DRB_config->drb_Identity)); (long int)((eNB_index * maxDRB) + DRB_config->drb_Identity));
printf("[UE %d] Config the oai%d to send/receive pkt on DRB %ld to/from the protocol stack\n",
ue_mod_idP,
ip_addr_offset3+ue_mod_idP,
(long int)((eNB_index * maxDRB) + DRB_config->drb_Identity));
rb_conf_ipv4(0,//add rb_conf_ipv4(0,//add
ue_mod_idP,//cx align with the UE index ue_mod_idP,//cx align with the UE index
...@@ -771,6 +792,7 @@ rrc_ue_establish_drb( ...@@ -771,6 +792,7 @@ rrc_ue_establish_drb(
# else # else
# ifdef OAI_EMU # ifdef OAI_EMU
oai_emulation.info.oai_ifup[ue_mod_idP]=1; oai_emulation.info.oai_ifup[ue_mod_idP]=1;
printf("OAI_EMU: ip_addr_offset4 %d, oip_ifup? %d\n",ip_addr_offset4,oip_ifup);
# endif # endif
# endif # endif
#endif #endif
...@@ -2816,7 +2838,7 @@ static int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ ...@@ -2816,7 +2838,7 @@ static int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index];
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SIB1, VCD_FUNCTION_IN ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SIB1, VCD_FUNCTION_IN );
printf("Dumping sib1: eNB_index %d\n",eNB_index); printf("Dumping sib1: eNB_index %d, ctxt_pP->instance %d\n",eNB_index,ctxt_pP->instance);
LOG_I( RRC, "[UE %d] : Dumping SIB 1\n", ctxt_pP->module_id ); LOG_I( RRC, "[UE %d] : Dumping SIB 1\n", ctxt_pP->module_id );
PLMN_Identity_t *PLMN_identity = &sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->plmn_Identity; PLMN_Identity_t *PLMN_identity = &sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->plmn_Identity;
...@@ -3536,7 +3558,7 @@ static void dump_sib13( SystemInformationBlockType13_r9_t *sib13 ) ...@@ -3536,7 +3558,7 @@ static void dump_sib13( SystemInformationBlockType13_r9_t *sib13 )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
static int decode_SI( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index ) static int decode_SI( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index )
{ {
printf("decode_SI: eNB_index %d\n",eNB_index); printf("decode_SI: eNB_index %d, ctxt_pP->instance %d\n",eNB_index,ctxt_pP->instance);
SystemInformation_t** si = &UE_rrc_inst[ctxt_pP->module_id].si[eNB_index]; SystemInformation_t** si = &UE_rrc_inst[ctxt_pP->module_id].si[eNB_index];
int new_sib = 0; int new_sib = 0;
SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index];
...@@ -4144,7 +4166,7 @@ static uint8_t check_trigger_meas_event( ...@@ -4144,7 +4166,7 @@ static uint8_t check_trigger_meas_event(
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t* const Sdu, const uint8_t Sdu_len, const uint8_t mbsfn_sync_area ) int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t* const Sdu, const uint8_t Sdu_len, const uint8_t mbsfn_sync_area )
{ {
printf("decode_MCCH_Message: eNB_index %d\n",eNB_index); printf("decode_MCCH_Message: eNB_index %d, ctxt_pP->instance %d\n",eNB_index, ctxt_pP->instance);
MCCH_Message_t *mcch=NULL; MCCH_Message_t *mcch=NULL;
MBSFNAreaConfiguration_r9_t** mcch_message=&UE_rrc_inst[ctxt_pP->module_id].mcch_message[eNB_index]; MBSFNAreaConfiguration_r9_t** mcch_message=&UE_rrc_inst[ctxt_pP->module_id].mcch_message[eNB_index];
...@@ -4303,9 +4325,10 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR ...@@ -4303,9 +4325,10 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
itti_receive_msg (TASK_RRC_UE, &msg_p); itti_receive_msg (TASK_RRC_UE, &msg_p);
msg_name = ITTI_MSG_NAME (msg_p); msg_name = ITTI_MSG_NAME (msg_p);
printf("rrc_ue_task... wait for a message. Case %d, id %d, instance %d\n",ITTI_MSG_ID(msg_p),ue_mod_id,instance);
instance = ITTI_MSG_INSTANCE (msg_p); instance = ITTI_MSG_INSTANCE (msg_p);
ue_mod_id = UE_INSTANCE_TO_MODULE_ID(instance); ue_mod_id = UE_INSTANCE_TO_MODULE_ID(instance);
//printf("rrc_ue_task... wait for a message. Case %d, id %d\n",ITTI_MSG_ID(msg_p),ue_mod_id); printf("rrc_ue_task... wait for a message. Case %d, id %d, instance %d\n",ITTI_MSG_ID(msg_p),ue_mod_id,instance);
switch (ITTI_MSG_ID(msg_p)) { switch (ITTI_MSG_ID(msg_p)) {
case TERMINATE_MESSAGE: case TERMINATE_MESSAGE:
itti_exit_task (); itti_exit_task ();
...@@ -4345,7 +4368,7 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR ...@@ -4345,7 +4368,7 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
// PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0); // PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0);
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0,RRC_MAC_BCCH_DATA_IND (msg_p).enb_index); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0,RRC_MAC_BCCH_DATA_IND (msg_p).enb_index);
printf("decode_BCCH_DLSCH_Message for ue %d, enb %d \n",ue_mod_id,RRC_MAC_BCCH_DATA_IND (msg_p).enb_index);//RRC_MAC_BCCH_DATA_IND (msg_p).enb_index=ue->common_vars.enb_id printf("decode_BCCH_DLSCH_Message for ue %d, enb %d , ctxt.intance %d\n",ue_mod_id,RRC_MAC_BCCH_DATA_IND (msg_p).enb_index,ctxt.instance);//RRC_MAC_BCCH_DATA_IND (msg_p).enb_index=ue->common_vars.enb_id
decode_BCCH_DLSCH_Message (&ctxt, decode_BCCH_DLSCH_Message (&ctxt,
RRC_MAC_BCCH_DATA_IND (msg_p).enb_index, 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,
...@@ -4378,6 +4401,7 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR ...@@ -4378,6 +4401,7 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); RRC_MAC_CCCH_DATA_IND (msg_p).enb_index);
srb_info_p = &UE_rrc_inst[ue_mod_id].Srb0[RRC_MAC_CCCH_DATA_IND (msg_p).enb_index]; srb_info_p = &UE_rrc_inst[ue_mod_id].Srb0[RRC_MAC_CCCH_DATA_IND (msg_p).enb_index];
printf("ctxt->instance %d\n",ctxt.instance);
memcpy (srb_info_p->Rx_buffer.Payload, RRC_MAC_CCCH_DATA_IND (msg_p).sdu, memcpy (srb_info_p->Rx_buffer.Payload, RRC_MAC_CCCH_DATA_IND (msg_p).sdu,
RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size); RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size);
...@@ -4430,11 +4454,13 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR ...@@ -4430,11 +4454,13 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
RRC_DCCH_DATA_IND (msg_p).dcch_index, RRC_DCCH_DATA_IND (msg_p).dcch_index,
RRC_DCCH_DATA_IND (msg_p).eNB_index); RRC_DCCH_DATA_IND (msg_p).eNB_index);
printf("Received %s DCCH %d, eNB %d\n", printf("rrc_ue_decode_dcch:Received %s DCCH %d, eNB %d, ctxt.instance %d, ctxt.module_id %d\n",
msg_name, msg_name,
RRC_DCCH_DATA_IND (msg_p).dcch_index, RRC_DCCH_DATA_IND (msg_p).dcch_index,
RRC_DCCH_DATA_IND (msg_p).eNB_index); RRC_DCCH_DATA_IND (msg_p).eNB_index,
ctxt.instance,
ctxt.module_id
);
rrc_ue_decode_dcch ( rrc_ue_decode_dcch (
&ctxt, &ctxt,
RRC_DCCH_DATA_IND (msg_p).dcch_index, RRC_DCCH_DATA_IND (msg_p).dcch_index,
...@@ -4771,7 +4797,7 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR ...@@ -4771,7 +4797,7 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
switch (rrc_get_state(ue_mod_id)) { switch (rrc_get_state(ue_mod_id)) {
case RRC_STATE_IDLE: { case RRC_STATE_IDLE: {
if (rrc_get_sub_state(ue_mod_id) == RRC_SUB_STATE_IDLE_SIB_COMPLETE) { if (rrc_get_sub_state(ue_mod_id) == RRC_SUB_STATE_IDLE_SIB_COMPLETE) {
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, UE_rrc_inst[ue_mod_id].Info[PHY_vars_UE_g[0/*ue_mod_id][0]->common_vars.eNb_id*/].rnti, 0, 0, 0/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, UE_rrc_inst[ue_mod_id].Info[0/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/].rnti, 0, 0, 0/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/);
rrc_ue_generate_RRCConnectionRequest(&ctxt, 0/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/); rrc_ue_generate_RRCConnectionRequest(&ctxt, 0/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/);
LOG_D(RRC, "not sending connection request\n"); LOG_D(RRC, "not sending connection request\n");
rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_CONNECTING); rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_CONNECTING);
......
...@@ -74,8 +74,8 @@ openair_rrc_on( ...@@ -74,8 +74,8 @@ openair_rrc_on(
eNB_rrc_inst[ctxt_pP->module_id].carrier[CC_id].Srb0.Active = 1; eNB_rrc_inst[ctxt_pP->module_id].carrier[CC_id].Srb0.Active = 1;
} }
} else { } else {
LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" OPENAIR RRC IN....\n", LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" OPENAIR RRC IN....UE %d \n",
PROTOCOL_RRC_CTXT_ARGS(ctxt_pP)); PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), ctxt_pP->module_id);
for (i = 0; i < NB_eNB_INST; i++) { for (i = 0; i < NB_eNB_INST; i++) {
LOG_D(RRC, PROTOCOL_RRC_CTXT_FMT" Activating CCCH (eNB %d)\n", LOG_D(RRC, PROTOCOL_RRC_CTXT_FMT" Activating CCCH (eNB %d)\n",
......
...@@ -124,7 +124,7 @@ int set_gateway(char *interfaceName, char *gateway) ...@@ -124,7 +124,7 @@ int set_gateway(char *interfaceName, char *gateway)
if(strstr(strerror(errno),"File exists") == NULL) { if(strstr(strerror(errno),"File exists") == NULL) {
LOG_E(OIP,"ioctl SIOCADDRT failed : %s\n",strerror(errno)); LOG_E(OIP,"ioctl SIOCADDRT failed : %s\n",strerror(errno));
return 2; return 2;
} else { /*if SIOCADDRT error is route exist, retrun success*/ } else { /*if SIOCADDRT error is route exist, return success*/
LOG_I(OIP,"File Exist ...\n"); LOG_I(OIP,"File Exist ...\n");
LOG_I(OIP,"set_gateway OK!\n"); LOG_I(OIP,"set_gateway OK!\n");
return 0; return 0;
......
...@@ -48,8 +48,10 @@ int decode_activate_default_eps_bearer_context_request(activate_default_eps_bear ...@@ -48,8 +48,10 @@ int decode_activate_default_eps_bearer_context_request(activate_default_eps_bear
else else
decoded += decoded_result; decoded += decoded_result;
if ((decoded_result = decode_pdn_address(&activate_default_eps_bearer_context_request->pdnaddress, 0, buffer + decoded, len - decoded)) < 0) if ((decoded_result = decode_pdn_address(&activate_default_eps_bearer_context_request->pdnaddress, 0, buffer + decoded, len - decoded)) < 0){
printf("decode_activate_default_eps_bearer_context_request: \n");
return decoded_result; return decoded_result;
}
else else
decoded += decoded_result; decoded += decoded_result;
......
...@@ -110,97 +110,120 @@ int esm_msg_decode(ESM_msg *msg, uint8_t *buffer, uint32_t len) ...@@ -110,97 +110,120 @@ int esm_msg_decode(ESM_msg *msg, uint8_t *buffer, uint32_t len)
buffer += header_result; buffer += header_result;
len -= header_result; len -= header_result;
printf("esm_msg_decode: ");
switch(msg->header.message_type) { switch(msg->header.message_type) {
case PDN_DISCONNECT_REQUEST: case PDN_DISCONNECT_REQUEST:
printf("1\n");
decode_result = decode_pdn_disconnect_request(&msg->pdn_disconnect_request, buffer, len); decode_result = decode_pdn_disconnect_request(&msg->pdn_disconnect_request, buffer, len);
break; break;
case DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT: case DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT:
printf("2\n");
decode_result = decode_deactivate_eps_bearer_context_accept(&msg->deactivate_eps_bearer_context_accept, buffer, len); decode_result = decode_deactivate_eps_bearer_context_accept(&msg->deactivate_eps_bearer_context_accept, buffer, len);
break; break;
case BEARER_RESOURCE_ALLOCATION_REQUEST: case BEARER_RESOURCE_ALLOCATION_REQUEST:
printf("3\n");
decode_result = decode_bearer_resource_allocation_request(&msg->bearer_resource_allocation_request, buffer, len); decode_result = decode_bearer_resource_allocation_request(&msg->bearer_resource_allocation_request, buffer, len);
break; break;
case ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT: case ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT:
printf("4\n");
decode_result = decode_activate_default_eps_bearer_context_accept(&msg->activate_default_eps_bearer_context_accept, buffer, len); decode_result = decode_activate_default_eps_bearer_context_accept(&msg->activate_default_eps_bearer_context_accept, buffer, len);
break; break;
case PDN_CONNECTIVITY_REJECT: case PDN_CONNECTIVITY_REJECT:
printf("5\n");
decode_result = decode_pdn_connectivity_reject(&msg->pdn_connectivity_reject, buffer, len); decode_result = decode_pdn_connectivity_reject(&msg->pdn_connectivity_reject, buffer, len);
break; break;
case MODIFY_EPS_BEARER_CONTEXT_REJECT: case MODIFY_EPS_BEARER_CONTEXT_REJECT:
printf("6\n");
decode_result = decode_modify_eps_bearer_context_reject(&msg->modify_eps_bearer_context_reject, buffer, len); decode_result = decode_modify_eps_bearer_context_reject(&msg->modify_eps_bearer_context_reject, buffer, len);
break; break;
case ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT: case ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT:
printf("7\n");
decode_result = decode_activate_dedicated_eps_bearer_context_reject(&msg->activate_dedicated_eps_bearer_context_reject, buffer, len); decode_result = decode_activate_dedicated_eps_bearer_context_reject(&msg->activate_dedicated_eps_bearer_context_reject, buffer, len);
break; break;
case MODIFY_EPS_BEARER_CONTEXT_ACCEPT: case MODIFY_EPS_BEARER_CONTEXT_ACCEPT:
printf("8\n");
decode_result = decode_modify_eps_bearer_context_accept(&msg->modify_eps_bearer_context_accept, buffer, len); decode_result = decode_modify_eps_bearer_context_accept(&msg->modify_eps_bearer_context_accept, buffer, len);
break; break;
case DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST: case DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST:
printf("9\n");
decode_result = decode_deactivate_eps_bearer_context_request(&msg->deactivate_eps_bearer_context_request, buffer, len); decode_result = decode_deactivate_eps_bearer_context_request(&msg->deactivate_eps_bearer_context_request, buffer, len);
break; break;
case ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT: case ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT:
printf("10\n");
decode_result = decode_activate_dedicated_eps_bearer_context_accept(&msg->activate_dedicated_eps_bearer_context_accept, buffer, len); decode_result = decode_activate_dedicated_eps_bearer_context_accept(&msg->activate_dedicated_eps_bearer_context_accept, buffer, len);
break; break;
case ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT: case ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT:
printf("11\n");
decode_result = decode_activate_default_eps_bearer_context_reject(&msg->activate_default_eps_bearer_context_reject, buffer, len); decode_result = decode_activate_default_eps_bearer_context_reject(&msg->activate_default_eps_bearer_context_reject, buffer, len);
break; break;
case MODIFY_EPS_BEARER_CONTEXT_REQUEST: case MODIFY_EPS_BEARER_CONTEXT_REQUEST:
printf("12\n");
decode_result = decode_modify_eps_bearer_context_request(&msg->modify_eps_bearer_context_request, buffer, len); decode_result = decode_modify_eps_bearer_context_request(&msg->modify_eps_bearer_context_request, buffer, len);
break; break;
case PDN_DISCONNECT_REJECT: case PDN_DISCONNECT_REJECT:
printf("13\n");
decode_result = decode_pdn_disconnect_reject(&msg->pdn_disconnect_reject, buffer, len); decode_result = decode_pdn_disconnect_reject(&msg->pdn_disconnect_reject, buffer, len);
break; break;
case ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST: case ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST:
printf("14\n");
decode_result = decode_activate_dedicated_eps_bearer_context_request(&msg->activate_dedicated_eps_bearer_context_request, buffer, len); decode_result = decode_activate_dedicated_eps_bearer_context_request(&msg->activate_dedicated_eps_bearer_context_request, buffer, len);
break; break;
case BEARER_RESOURCE_MODIFICATION_REJECT: case BEARER_RESOURCE_MODIFICATION_REJECT:
printf("15\n");
decode_result = decode_bearer_resource_modification_reject(&msg->bearer_resource_modification_reject, buffer, len); decode_result = decode_bearer_resource_modification_reject(&msg->bearer_resource_modification_reject, buffer, len);
break; break;
case BEARER_RESOURCE_ALLOCATION_REJECT: case BEARER_RESOURCE_ALLOCATION_REJECT:
printf("16\n");
decode_result = decode_bearer_resource_allocation_reject(&msg->bearer_resource_allocation_reject, buffer, len); decode_result = decode_bearer_resource_allocation_reject(&msg->bearer_resource_allocation_reject, buffer, len);
break; break;
case ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST: case ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST:
printf("17\n");
decode_result = decode_activate_default_eps_bearer_context_request(&msg->activate_default_eps_bearer_context_request, buffer, len); decode_result = decode_activate_default_eps_bearer_context_request(&msg->activate_default_eps_bearer_context_request, buffer, len);
break; break;
case PDN_CONNECTIVITY_REQUEST: case PDN_CONNECTIVITY_REQUEST:
printf("18\n");
decode_result = decode_pdn_connectivity_request(&msg->pdn_connectivity_request, buffer, len); decode_result = decode_pdn_connectivity_request(&msg->pdn_connectivity_request, buffer, len);
break; break;
case ESM_INFORMATION_RESPONSE: case ESM_INFORMATION_RESPONSE:
printf("19\n");
decode_result = decode_esm_information_response(&msg->esm_information_response, buffer, len); decode_result = decode_esm_information_response(&msg->esm_information_response, buffer, len);
break; break;
case BEARER_RESOURCE_MODIFICATION_REQUEST: case BEARER_RESOURCE_MODIFICATION_REQUEST:
printf("20\n");
decode_result = decode_bearer_resource_modification_request(&msg->bearer_resource_modification_request, buffer, len); decode_result = decode_bearer_resource_modification_request(&msg->bearer_resource_modification_request, buffer, len);
break; break;
case ESM_INFORMATION_REQUEST: case ESM_INFORMATION_REQUEST:
printf("21\n");
decode_result = decode_esm_information_request(&msg->esm_information_request, buffer, len); decode_result = decode_esm_information_request(&msg->esm_information_request, buffer, len);
break; break;
case ESM_STATUS: case ESM_STATUS:
printf("22\n");
decode_result = decode_esm_status(&msg->esm_status, buffer, len); decode_result = decode_esm_status(&msg->esm_status, buffer, len);
break; break;
default: default:
printf("default\n");
LOG_TRACE(ERROR, "ESM-MSG - Unexpected message type: 0x%x", LOG_TRACE(ERROR, "ESM-MSG - Unexpected message type: 0x%x",
msg->header.message_type); msg->header.message_type);
decode_result = TLV_DECODE_WRONG_MESSAGE_TYPE; decode_result = TLV_DECODE_WRONG_MESSAGE_TYPE;
......
...@@ -172,7 +172,7 @@ void* socket_udp_open(int type, const char* host, const char* port) ...@@ -172,7 +172,7 @@ void* socket_udp_open(int type, const char* host, const char* port)
for (sp = socket_addr; sp != NULL; sp = sp->ai_next) { for (sp = socket_addr; sp != NULL; sp = sp->ai_next) {
/* Create the socket endpoint for communication */ /* Create the socket endpoint for communication */
sfd = socket (sp->ai_family, sp->ai_socktype, sp->ai_protocol); sfd = socket (sp->ai_family, sp->ai_socktype, sp->ai_protocol);
printf("sfd0 %d, sfp %x\n",sfd,socket_addr); printf("sfd0 %d\n",sfd);
if (sfd < 0) { if (sfd < 0) {
continue; continue;
} }
......
...@@ -122,6 +122,8 @@ int user_api_initialize(user_api_id_t *user_api_id, const char* host, const char ...@@ -122,6 +122,8 @@ int user_api_initialize(user_api_id_t *user_api_id, const char* host, const char
LOG_TRACE(INFO, "USR-API - User's communication device %d is OPENED " LOG_TRACE(INFO, "USR-API - User's communication device %d is OPENED "
"on %s/%s", user_api_get_fd(user_api_id), user_api_id->send_buffer, devname); "on %s/%s", user_api_get_fd(user_api_id), user_api_id->send_buffer, devname);
printf("USR-API - User's communication device %d is OPENED "
"on %s/%s", user_api_get_fd(user_api_id), user_api_id->send_buffer, devname);
} else { } else {
/* Initialize network socket handlers */ /* Initialize network socket handlers */
user_api_id->open = socket_udp_open; user_api_id->open = socket_udp_open;
......
...@@ -208,7 +208,7 @@ int emm_recv_attach_accept(nas_user_t *user, attach_accept_msg *msg, int *emm_ca ...@@ -208,7 +208,7 @@ int emm_recv_attach_accept(nas_user_t *user, attach_accept_msg *msg, int *emm_ca
guti.gummei.MMEcode = msg->guti.guti.mmecode; guti.gummei.MMEcode = msg->guti.guti.mmecode;
guti.m_tmsi = msg->guti.guti.mtmsi; guti.m_tmsi = msg->guti.guti.mtmsi;
} }
printf("emm_recv_attach_accept: guti %d%d%d%d%d%d\n",guti.gummei.plmn.MCCdigit1,guti.gummei.plmn.MCCdigit2,guti.gummei.plmn.MCCdigit3,guti.gummei.plmn.MNCdigit1,guti.gummei.plmn.MNCdigit2,guti.gummei.plmn.MNCdigit3);
/* Get the list of equivalent PLMNs */ /* Get the list of equivalent PLMNs */
int n_eplmns = 0; int n_eplmns = 0;
plmn_t eplmn; plmn_t eplmn;
...@@ -222,7 +222,7 @@ int emm_recv_attach_accept(nas_user_t *user, attach_accept_msg *msg, int *emm_ca ...@@ -222,7 +222,7 @@ int emm_recv_attach_accept(nas_user_t *user, attach_accept_msg *msg, int *emm_ca
eplmn.MNCdigit2 = msg->equivalentplmns.mncdigit2; eplmn.MNCdigit2 = msg->equivalentplmns.mncdigit2;
eplmn.MNCdigit3 = msg->equivalentplmns.mncdigit3; eplmn.MNCdigit3 = msg->equivalentplmns.mncdigit3;
} }
printf("emm_recv_attach_accept: plmn %d%d%d%d%d%d\n",eplmn.MCCdigit1,eplmn.MCCdigit2,eplmn.MCCdigit3,eplmn.MNCdigit1,eplmn.MNCdigit2,eplmn.MNCdigit3);
/* Execute attach procedure accepted by the network */ /* Execute attach procedure accepted by the network */
rc = emm_proc_attach_accept(user, T3412, T3402, T3423, n_tais, tai, pguti, rc = emm_proc_attach_accept(user, T3412, T3402, T3423, n_tais, tai, pguti,
n_eplmns, &eplmn, n_eplmns, &eplmn,
......
...@@ -213,7 +213,7 @@ int emm_send_attach_request(const emm_as_establish_t *msg, ...@@ -213,7 +213,7 @@ int emm_send_attach_request(const emm_as_establish_t *msg,
guti->mncdigit2 = msg->UEid.guti->gummei.plmn.MNCdigit2; guti->mncdigit2 = msg->UEid.guti->gummei.plmn.MNCdigit2;
guti->mncdigit3 = msg->UEid.guti->gummei.plmn.MNCdigit3; guti->mncdigit3 = msg->UEid.guti->gummei.plmn.MNCdigit3;
} else if (msg->UEid.imsi) { } else if (msg->UEid.imsi) {
LOG_TRACE(INFO, "EMMAS-SAP - Send Attach Request message with IMSI"); //LOG_TRACE(INFO, "EMMAS-SAP - Send Attach Request message with IMSI");
/* Set IMSI mobile identity */ /* Set IMSI mobile identity */
ImsiEpsMobileIdentity_t *imsi = &emm_msg->oldgutiorimsi.imsi; ImsiEpsMobileIdentity_t *imsi = &emm_msg->oldgutiorimsi.imsi;
imsi->typeofidentity = EPS_MOBILE_IDENTITY_IMSI; imsi->typeofidentity = EPS_MOBILE_IDENTITY_IMSI;
...@@ -233,8 +233,9 @@ int emm_send_attach_request(const emm_as_establish_t *msg, ...@@ -233,8 +233,9 @@ int emm_send_attach_request(const emm_as_establish_t *msg,
imsi->digit13 = msg->UEid.imsi->u.num.digit13; imsi->digit13 = msg->UEid.imsi->u.num.digit13;
imsi->digit14 = msg->UEid.imsi->u.num.digit14; imsi->digit14 = msg->UEid.imsi->u.num.digit14;
imsi->digit15 = msg->UEid.imsi->u.num.digit15; imsi->digit15 = msg->UEid.imsi->u.num.digit15;
LOG_TRACE(INFO, "EMMAS-SAP - Send Attach Request message with IMSI %d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",imsi->digit1,imsi->digit2,imsi->digit3,imsi->digit4,imsi->digit5,imsi->digit6,imsi->digit7,imsi->digit8,imsi->digit9,imsi->digit10,imsi->digit11,imsi->digit12,imsi->digit13,imsi->digit14,imsi->digit15);
} else if (msg->UEid.imei) { } else if (msg->UEid.imei) {
LOG_TRACE(INFO, "EMMAS-SAP - Send Attach Request message with IMEI"); //LOG_TRACE(INFO, "EMMAS-SAP - Send Attach Request message with IMEI");
/* Set IMEI mobile identity */ /* Set IMEI mobile identity */
ImeiEpsMobileIdentity_t *imei = &emm_msg->oldgutiorimsi.imei; ImeiEpsMobileIdentity_t *imei = &emm_msg->oldgutiorimsi.imei;
imei->typeofidentity = EPS_MOBILE_IDENTITY_IMEI; imei->typeofidentity = EPS_MOBILE_IDENTITY_IMEI;
...@@ -254,6 +255,7 @@ int emm_send_attach_request(const emm_as_establish_t *msg, ...@@ -254,6 +255,7 @@ int emm_send_attach_request(const emm_as_establish_t *msg,
imei->digit13 = msg->UEid.imei->u.num.digit13; imei->digit13 = msg->UEid.imei->u.num.digit13;
imei->digit14 = msg->UEid.imei->u.num.digit14; imei->digit14 = msg->UEid.imei->u.num.digit14;
imei->digit15 = msg->UEid.imei->u.num.digit15; imei->digit15 = msg->UEid.imei->u.num.digit15;
LOG_TRACE(INFO, "EMMAS-SAP - Send Attach Request message with IMEI %d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",imei->digit1,imei->digit2,imei->digit3,imei->digit4,imei->digit5,imei->digit6,imei->digit7,imei->digit8,imei->digit9,imei->digit10,imei->digit11,imei->digit12,imei->digit13,imei->digit14,imei->digit15);
} }
/* Mandatory - UE network capability */ /* Mandatory - UE network capability */
......
...@@ -364,7 +364,6 @@ int esm_proc_pdn_connectivity_accept(nas_user_t *user, int pti, esm_proc_pdn_typ ...@@ -364,7 +364,6 @@ int esm_proc_pdn_connectivity_accept(nas_user_t *user, int pti, esm_proc_pdn_typ
} else { } else {
sprintf (apn_first_char, "%02X", apn->value[0]); sprintf (apn_first_char, "%02X", apn->value[0]);
} }
LOG_TRACE(INFO, "ESM-PROC - PDN connectivity accepted by the network " LOG_TRACE(INFO, "ESM-PROC - PDN connectivity accepted by the network "
"(pti=%d) APN = %s\"%s\", IP address = %s", pti, apn_first_char, isprint(apn->value[0]) ? &apn->value[0] : &apn->value[1], "(pti=%d) APN = %s\"%s\", IP address = %s", pti, apn_first_char, isprint(apn->value[0]) ? &apn->value[0] : &apn->value[1],
(pdn_type == ESM_PDN_TYPE_IPV4)? esm_data_get_ipv4_addr(pdn_addr, str) : (pdn_type == ESM_PDN_TYPE_IPV4)? esm_data_get_ipv4_addr(pdn_addr, str) :
......
...@@ -282,7 +282,7 @@ int esm_recv_activate_default_eps_bearer_context_request(nas_user_t *user, int p ...@@ -282,7 +282,7 @@ int esm_recv_activate_default_eps_bearer_context_request(nas_user_t *user, int p
const activate_default_eps_bearer_context_request_msg *msg) const activate_default_eps_bearer_context_request_msg *msg)
{ {
LOG_FUNC_IN; LOG_FUNC_IN;
char str[128];
int esm_cause = ESM_CAUSE_SUCCESS; int esm_cause = ESM_CAUSE_SUCCESS;
esm_pt_data_t *esm_pt_data = user->esm_pt_data; esm_pt_data_t *esm_pt_data = user->esm_pt_data;
...@@ -374,6 +374,7 @@ int esm_recv_activate_default_eps_bearer_context_request(nas_user_t *user, int p ...@@ -374,6 +374,7 @@ int esm_recv_activate_default_eps_bearer_context_request(nas_user_t *user, int p
&msg->pdnaddress.pdnaddressinformation, &msg->pdnaddress.pdnaddressinformation,
&msg->accesspointname.accesspointnamevalue, &msg->accesspointname.accesspointnamevalue,
&esm_cause); &esm_cause);
printf("esm_recv_activate_default_eps_bearer_context_request: %s\n", esm_data_get_ipv4_addr(&msg->pdnaddress.pdnaddressinformation, str));
if (pid != RETURNerror) { if (pid != RETURNerror) {
/* Create local default EPS bearer context */ /* Create local default EPS bearer context */
......
...@@ -364,7 +364,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone, ...@@ -364,7 +364,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
int esm_cause = ESM_CAUSE_SUCCESS; int esm_cause = ESM_CAUSE_SUCCESS;
int rc = RETURNerror; int rc = RETURNerror;
int decoder_rc; int decoder_rc;
char str[128];
ESM_msg esm_msg; ESM_msg esm_msg;
LOG_FUNC_IN; LOG_FUNC_IN;
...@@ -433,10 +433,11 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone, ...@@ -433,10 +433,11 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
* Process activate default EPS bearer context request message * Process activate default EPS bearer context request message
* received from the MME * received from the MME
*/ */
//esm_msg.activate_default_eps_bearer_context_request.pdnaddress.pdnaddressinformation.value[3]=esm_msg.activate_default_eps_bearer_context_request.pdnaddress.pdnaddressinformation.value[3]-2;
printf("_esm_sap_recv: ip_addr %s, ip_addr_offset4 %d\n", esm_data_get_ipv4_addr(&esm_msg.activate_default_eps_bearer_context_request.pdnaddress.pdnaddressinformation, str),esm_msg.activate_default_eps_bearer_context_request.pdnaddress.pdnaddressinformation.value[3]);
esm_cause = esm_recv_activate_default_eps_bearer_context_request( esm_cause = esm_recv_activate_default_eps_bearer_context_request(
user, pti, ebi, user, pti, ebi,
&esm_msg.activate_default_eps_bearer_context_request); &esm_msg.activate_default_eps_bearer_context_request);
if ( (esm_cause == ESM_CAUSE_SUCCESS) || if ( (esm_cause == ESM_CAUSE_SUCCESS) ||
(esm_cause == ESM_CAUSE_PTI_ALREADY_IN_USE) ) { (esm_cause == ESM_CAUSE_PTI_ALREADY_IN_USE) ) {
/* Return accept message */ /* Return accept message */
...@@ -643,7 +644,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone, ...@@ -643,7 +644,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
/* Complete the relevant ESM procedure */ /* Complete the relevant ESM procedure */
rc = (*esm_procedure)(user, is_standalone, ebi, rsp, triggered_by_ue); rc = (*esm_procedure)(user, is_standalone, ebi, rsp, triggered_by_ue);
printf("Encoded ESM %s, Encoded ESM response %s\n",esm_data_get_ipv4_addr(req, str),esm_data_get_ipv4_addr(rsp, str));
if (is_discarded) { if (is_discarded) {
/* Return indication that received message has been discarded */ /* Return indication that received message has been discarded */
*err = ESM_SAP_DISCARDED; *err = ESM_SAP_DISCARDED;
......
...@@ -173,7 +173,7 @@ int esm_send_pdn_connectivity_request(int pti, int is_emergency, int pdn_type, ...@@ -173,7 +173,7 @@ int esm_send_pdn_connectivity_request(int pti, int is_emergency, int pdn_type,
msg->accesspointname.accesspointnamevalue.value = (uint8_t *)apn; msg->accesspointname.accesspointnamevalue.value = (uint8_t *)apn;
} }
} }
printf("The PDN connectivity request message is sent by the UE to the network: apn %s, pdn_type %d\n",(uint8_t *)apn,pdn_type);
/* Add PCO */ /* Add PCO */
# define CONFIGURATION_PROTOCOL_PPP 0 # define CONFIGURATION_PROTOCOL_PPP 0
# define PROTOCOL_ID_IPCP 0x8021 # define PROTOCOL_ID_IPCP 0x8021
......
...@@ -221,8 +221,8 @@ int esm_ebr_context_create( ...@@ -221,8 +221,8 @@ int esm_ebr_context_create(
in_addr.s_addr = pdn->ip_addr[0] << 24 | in_addr.s_addr = pdn->ip_addr[0] << 24 |
((pdn->ip_addr[1] << 16) & 0x00FF0000) | ((pdn->ip_addr[1] << 16) & 0x00FF0000) |
((pdn->ip_addr[2] << 8) & 0x0000FF00) | ((pdn->ip_addr[2] << 8) & 0x0000FF00) |
( pdn->ip_addr[3] & 0x000000FF); ( (pdn->ip_addr[3]) & 0x000000FF);
printf("ip_addr %d\n",pdn->ip_addr[3]);
in_addr.s_addr = htonl(in_addr.s_addr); in_addr.s_addr = htonl(in_addr.s_addr);
tmp = inet_ntoa(in_addr); tmp = inet_ntoa(in_addr);
......
...@@ -210,7 +210,7 @@ int nas_itti_kenb_refresh_req(const Byte_t kenb[32]) ...@@ -210,7 +210,7 @@ int nas_itti_kenb_refresh_req(const Byte_t kenb[32])
kenb[24], kenb[25], kenb[26], kenb[27], kenb[24], kenb[25], kenb[26], kenb[27],
kenb[28], kenb[29], kenb[30], kenb[31]); kenb[28], kenb[29], kenb[30], kenb[31]);
return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + 0 /* TODO to be virtualized */, message_p); return itti_send_msg_to_task(TASK_RRC_UE, 1/*NB_eNB_INST*/ + 0 /* TODO to be virtualized */, message_p);
} }
int nas_itti_cell_info_req(const plmn_t plmnID, const Byte_t rat, int user_id) int nas_itti_cell_info_req(const plmn_t plmnID, const Byte_t rat, int user_id)
...@@ -230,7 +230,7 @@ int nas_itti_cell_info_req(const plmn_t plmnID, const Byte_t rat, int user_id) ...@@ -230,7 +230,7 @@ int nas_itti_cell_info_req(const plmn_t plmnID, const Byte_t rat, int user_id)
plmnID.MCCdigit1, plmnID.MCCdigit2, plmnID.MCCdigit3, plmnID.MCCdigit1, plmnID.MCCdigit2, plmnID.MCCdigit3,
plmnID.MNCdigit1, plmnID.MNCdigit2, plmnID.MNCdigit3); plmnID.MNCdigit1, plmnID.MNCdigit2, plmnID.MNCdigit3);
return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p); return itti_send_msg_to_task(TASK_RRC_UE, 1/*NB_eNB_INST*/ + user_id, message_p);
} }
int nas_itti_nas_establish_req(as_cause_t cause, as_call_type_t type, as_stmsi_t s_tmsi, plmn_t plmnID, Byte_t *data, uint32_t length, int user_id) int nas_itti_nas_establish_req(as_cause_t cause, as_call_type_t type, as_stmsi_t s_tmsi, plmn_t plmnID, Byte_t *data, uint32_t length, int user_id)
...@@ -255,7 +255,7 @@ int nas_itti_nas_establish_req(as_cause_t cause, as_call_type_t type, as_stmsi_t ...@@ -255,7 +255,7 @@ int nas_itti_nas_establish_req(as_cause_t cause, as_call_type_t type, as_stmsi_t
plmnID.MCCdigit1, plmnID.MCCdigit2, plmnID.MCCdigit3, plmnID.MCCdigit1, plmnID.MCCdigit2, plmnID.MCCdigit3,
plmnID.MNCdigit1, plmnID.MNCdigit2, plmnID.MNCdigit3); plmnID.MNCdigit1, plmnID.MNCdigit2, plmnID.MNCdigit3);
return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p); return itti_send_msg_to_task(TASK_RRC_UE, 1/*NB_eNB_INST*/ + user_id, message_p);
} }
int nas_itti_ul_data_req(const uint32_t ue_id, void *const data, const uint32_t length, int user_id) int nas_itti_ul_data_req(const uint32_t ue_id, void *const data, const uint32_t length, int user_id)
...@@ -268,7 +268,7 @@ int nas_itti_ul_data_req(const uint32_t ue_id, void *const data, const uint32_t ...@@ -268,7 +268,7 @@ int nas_itti_ul_data_req(const uint32_t ue_id, void *const data, const uint32_t
NAS_UPLINK_DATA_REQ(message_p).nasMsg.data = data; NAS_UPLINK_DATA_REQ(message_p).nasMsg.data = data;
NAS_UPLINK_DATA_REQ(message_p).nasMsg.length = length; NAS_UPLINK_DATA_REQ(message_p).nasMsg.length = length;
return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p); return itti_send_msg_to_task(TASK_RRC_UE, 1/*NB_eNB_INST*/ + user_id, message_p);
} }
int nas_itti_rab_establish_rsp(const as_stmsi_t s_tmsi, const as_rab_id_t rabID, const nas_error_code_t errCode, int user_id) int nas_itti_rab_establish_rsp(const as_stmsi_t s_tmsi, const as_rab_id_t rabID, const nas_error_code_t errCode, int user_id)
...@@ -287,5 +287,5 @@ int nas_itti_rab_establish_rsp(const as_stmsi_t s_tmsi, const as_rab_id_t rabID, ...@@ -287,5 +287,5 @@ int nas_itti_rab_establish_rsp(const as_stmsi_t s_tmsi, const as_rab_id_t rabID,
NULL,0, NULL,0,
"0 NAS_RAB_ESTABLI_RSP MME code %u m-TMSI %u rb id %u status %u", "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 ); 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); return itti_send_msg_to_task(TASK_RRC_UE, 1/*NB_eNB_INST*/ + user_id, message_p);
} }
...@@ -95,7 +95,7 @@ void *nas_ue_task(void *args_p) ...@@ -95,7 +95,7 @@ void *nas_ue_task(void *args_p)
unsigned int Mod_id; unsigned int Mod_id;
int result; int result;
//NB_eNB_INST=NB_eNB_INST-1; //NB_eNB_INST=1;
nas_user_container_t *users=args_p; nas_user_container_t *users=args_p;
...@@ -140,7 +140,7 @@ void *nas_ue_task(void *args_p) ...@@ -140,7 +140,7 @@ void *nas_ue_task(void *args_p)
} }
/* Set UE activation state */ /* Set UE activation state */
for (instance = NB_eNB_INST; instance < (NB_eNB_INST + NB_UE_INST); instance++) { for (instance = 1/*NB_eNB_INST*/; instance < (1/*NB_eNB_INST*/ + NB_UE_INST); instance++) {
MessageDef *message_p; MessageDef *message_p;
message_p = itti_alloc_new_message(TASK_NAS_UE, DEACTIVATE_MESSAGE); message_p = itti_alloc_new_message(TASK_NAS_UE, DEACTIVATE_MESSAGE);
...@@ -154,7 +154,8 @@ void *nas_ue_task(void *args_p) ...@@ -154,7 +154,8 @@ void *nas_ue_task(void *args_p)
if (msg_p != NULL) { if (msg_p != NULL) {
msg_name = ITTI_MSG_NAME (msg_p); msg_name = ITTI_MSG_NAME (msg_p);
instance = ITTI_MSG_INSTANCE (msg_p); instance = ITTI_MSG_INSTANCE (msg_p);
Mod_id = instance - NB_eNB_INST; Mod_id = instance - 1/*NB_eNB_INST*/;
printf("nas_ue_task: instance %d, INSTANCE_DEFAULT %d\n",instance,INSTANCE_DEFAULT);
if (instance == INSTANCE_DEFAULT) { if (instance == INSTANCE_DEFAULT) {
printf("%s:%d: FATAL: instance is INSTANCE_DEFAULT, should not happen.\n", printf("%s:%d: FATAL: instance is INSTANCE_DEFAULT, should not happen.\n",
__FILE__, __LINE__); __FILE__, __LINE__);
...@@ -283,6 +284,7 @@ void *nas_ue_task(void *args_p) ...@@ -283,6 +284,7 @@ void *nas_ue_task(void *args_p)
} }
free(users); free(users);
//NB_eNB_INST-2;
return NULL; return NULL;
} }
......
...@@ -941,9 +941,10 @@ void *UE_thread(void *arg) { ...@@ -941,9 +941,10 @@ void *UE_thread(void *arg) {
init_UE_threads(UE); init_UE_threads(UE);
#ifdef NAS_UE #ifdef NAS_UE
printf("UE_thread: NAS_UE\n");
MessageDef *message_p; MessageDef *message_p;
message_p = itti_alloc_new_message(TASK_NAS_UE, INITIALIZE_MESSAGE); message_p = itti_alloc_new_message(TASK_NAS_UE, INITIALIZE_MESSAGE);
itti_send_msg_to_task (TASK_NAS_UE, UE->Mod_id + NB_eNB_INST, message_p); itti_send_msg_to_task (TASK_NAS_UE, UE->Mod_id + 1/*NB_eNB_INST*/, message_p);
#endif #endif
int sub_frame=-1; int sub_frame=-1;
...@@ -1206,7 +1207,7 @@ void *UE_thread_freq(void *arg) { ...@@ -1206,7 +1207,7 @@ void *UE_thread_freq(void *arg) {
#ifdef NAS_UE #ifdef NAS_UE
MessageDef *message_p; MessageDef *message_p;
message_p = itti_alloc_new_message(TASK_NAS_UE, INITIALIZE_MESSAGE); message_p = itti_alloc_new_message(TASK_NAS_UE, INITIALIZE_MESSAGE);
itti_send_msg_to_task (TASK_NAS_UE, UE->Mod_id + NB_eNB_INST, message_p); itti_send_msg_to_task (TASK_NAS_UE, UE->Mod_id + 1/*NB_eNB_INST*/, message_p);
#endif #endif
int sub_frame=-1; int sub_frame=-1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment