Commit 86b0f4ce authored by lfarizav's avatar lfarizav

This version uses eNB_id=0 for rrc_ue, but it works for multiple RRUs

parent 2e577b91
...@@ -90,7 +90,7 @@ void send_IF4p5(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type ...@@ -90,7 +90,7 @@ void send_IF4p5(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type
for (symbol_id=0; symbol_id<nsym; symbol_id++) { for (symbol_id=0; symbol_id<nsym; symbol_id++) {
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_COMPR_IF, 1 ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_COMPR_IF, 1 );
if (eNB->CC_id==1) LOG_I(PHY,"DL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d\n",eNB->CC_id,frame,subframe,symbol_id); /*if (eNB->CC_id==1) */LOG_I(PHY,"DL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d\n",eNB->CC_id,frame,subframe,symbol_id);
for (element_id=0; element_id<db_halflength; element_id++) { for (element_id=0; element_id<db_halflength; element_id++) {
i = (uint16_t*) &txdataF[0][blockoffsetF+element_id]; i = (uint16_t*) &txdataF[0][blockoffsetF+element_id];
...@@ -182,6 +182,7 @@ void send_IF4p5(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type ...@@ -182,6 +182,7 @@ void send_IF4p5(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type
} else if (packet_type == IF4p5_PRACH) { } else if (packet_type == IF4p5_PRACH) {
// FIX: hard coded prach samples length // FIX: hard coded prach samples length
LOG_D(PHY,"IF4p5_PRACH: frame %d, subframe %d\n",frame,subframe); LOG_D(PHY,"IF4p5_PRACH: frame %d, subframe %d\n",frame,subframe);
//printf("IF4p5_PRACH_TX: eNB %d, CC %d, frame %d, subframe %d\n",eNB->Mod_id,eNB->CC_id,frame,subframe);
db_fulllength = PRACH_HARD_CODED_NUM_SAMPLES; db_fulllength = PRACH_HARD_CODED_NUM_SAMPLES;
if (eth->flags == ETH_RAW_IF4p5_MODE) { if (eth->flags == ETH_RAW_IF4p5_MODE) {
...@@ -232,9 +233,9 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t ...@@ -232,9 +233,9 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t
uint16_t db_fulllength, db_halflength; uint16_t db_fulllength, db_halflength;
int slotoffsetF=0, blockoffsetF=0; int slotoffsetF=0, blockoffsetF=0;
eth_state_t *eth = (eth_state_t*) (eNB->ifdevice.priv); eth_state_t *eth = (eth_state_t*) (eNB->ifdevice.priv);
for (int idx=0;idx<10;idx++) //for (int idx=0;idx<10;idx++)
// printf("dumping UL raw rx rvc_if4p5 subframe %d: rxdataF[%d] = (%d,%d)\n", *subframe, idx, ((short*)&rxdataF[0][idx])[0], ((short*)&rxdataF[0][idx])[1]); // printf("dumping UL raw rx rvc_if4p5 subframe %d: rxdataF[%d] = (%d,%d)\n", *subframe, idx, ((short*)&rxdataF[0][idx])[0], ((short*)&rxdataF[0][idx])[1]);
if (eNB->CC_id==0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 1 ); /*if (eNB->CC_id==0) */VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 1 );
if (eNB->node_function == NGFI_RRU_IF4p5) { if (eNB->node_function == NGFI_RRU_IF4p5) {
db_fulllength = (12*fp->N_RB_DL); db_fulllength = (12*fp->N_RB_DL);
...@@ -292,11 +293,11 @@ for (int idx=0;idx<10;idx++) ...@@ -292,11 +293,11 @@ for (int idx=0;idx<10;idx++)
} else if (*packet_type == IF4p5_PULFFT) { } else if (*packet_type == IF4p5_PULFFT) {
*symbol_number = ((packet_header->frame_status)>>26)&0x000f; *symbol_number = ((packet_header->frame_status)>>26)&0x000f;
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_RECV_IF4_SYMBOL, *symbol_number ); VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_RECV_IF4_SYMBOL, *symbol_number );
if (eNB->CC_id==0) LOG_D(PHY,"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d\n",eNB->CC_id,*frame,*subframe,*symbol_number); /*if (eNB->CC_id==0) */LOG_D(PHY,"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d\n",eNB->CC_id,*frame,*subframe,*symbol_number);
slotoffsetF = (*symbol_number)*(fp->ofdm_symbol_size); slotoffsetF = (*symbol_number)*(fp->ofdm_symbol_size);
blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength; blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_DECOMPR_IF, 1 ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_DECOMPR_IF, 1 );
if (eNB->CC_id==0) LOG_D(PHY,"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d\n",eNB->CC_id,*frame,*subframe,*symbol_number); /*if (eNB->CC_id==0) */LOG_D(PHY,"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d\n",eNB->CC_id,*frame,*subframe,*symbol_number);
for (element_id=0; element_id<db_halflength; element_id++) { for (element_id=0; element_id<db_halflength; element_id++) {
i = (uint16_t*) &rxdataF[0][blockoffsetF+element_id]; i = (uint16_t*) &rxdataF[0][blockoffsetF+element_id];
*i = alaw2lin_if4p5[ (data_block[element_id] & 0xff) ]; *i = alaw2lin_if4p5[ (data_block[element_id] & 0xff) ];
...@@ -311,7 +312,8 @@ for (int idx=0;idx<10;idx++) ...@@ -311,7 +312,8 @@ for (int idx=0;idx<10;idx++)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_DECOMPR_IF, 0 ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_DECOMPR_IF, 0 );
} else if (*packet_type == IF4p5_PRACH) { } else if (*packet_type == IF4p5_PRACH) {
LOG_D(PHY,"PRACH_IF4p5: CC_id %d : frame %d, subframe %d\n",eNB->CC_id,*frame,*subframe); LOG_D(PHY,"PRACH_IF4p5: CC_id %d : frame %d, subframe %d\n",eNB->CC_id,*frame,*subframe);
if (eNB->CC_id==1) LOG_I(PHY,"PRACH_IF4p5: CC_id %d : frame %d, subframe %d\n",eNB->CC_id,*frame,*subframe); /*if (eNB->CC_id==1) */LOG_I(PHY,"PRACH_IF4p5: CC_id %d : frame %d, subframe %d\n",eNB->CC_id,*frame,*subframe);
printf("PRACH_IF4p5_RX: eNB %d, CC_id %d : frame %d, subframe %d\n",eNB->Mod_id,eNB->CC_id,*frame,*subframe);
// FIX: hard coded prach samples length // FIX: hard coded prach samples length
db_fulllength = PRACH_HARD_CODED_NUM_SAMPLES; db_fulllength = PRACH_HARD_CODED_NUM_SAMPLES;
...@@ -331,7 +333,7 @@ for (int idx=0;idx<10;idx++) ...@@ -331,7 +333,7 @@ for (int idx=0;idx<10;idx++)
AssertFatal(1==0, "recv_IF4p5 - Unknown packet_type %x", *packet_type); AssertFatal(1==0, "recv_IF4p5 - Unknown packet_type %x", *packet_type);
} }
if (eNB->CC_id==0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 0 ); /*if (eNB->CC_id==0) */VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 0 );
return; return;
} }
......
...@@ -883,7 +883,7 @@ void pbch_unscrambling(LTE_DL_FRAME_PARMS *frame_parms, ...@@ -883,7 +883,7 @@ void pbch_unscrambling(LTE_DL_FRAME_PARMS *frame_parms,
// x1 is set in first call to lte_gold_generic // x1 is set in first call to lte_gold_generic
x2 = frame_parms->Nid_cell; //this is c_init in 36.211 Sec 6.6.1 x2 = frame_parms->Nid_cell; //this is c_init in 36.211 Sec 6.6.1
// msg("pbch_unscrambling: Nid_cell = %d\n",x2); // msg("pbch_unscrambling: Nid_cell = %d\n",x2);
//printf("pbch_unscrambling: Nid_cell = %d\n",x2);
for (i=0; i<length; i++) { for (i=0; i<length; i++) {
if (i%32==0) { if (i%32==0) {
s = lte_gold_generic(&x1, &x2, reset); s = lte_gold_generic(&x1, &x2, reset);
......
...@@ -1402,7 +1402,7 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt ...@@ -1402,7 +1402,7 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
} }
void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t abstraction_flag,runmode_t mode) { void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t abstraction_flag,runmode_t mode) {
//printf("ue_prach_procedures: UE %d, eNB_id %d, ue->common_vars.eNb.id %d, mac enabled %d\n",ue->Mod_id,eNB_id,ue->common_vars.eNb_id,ue->mac_enabled==1);=0 printf("ue_prach_procedures: UE %d, eNB_id %d, ue->common_vars.eNb.id %d, mac enabled %d\n",ue->Mod_id,eNB_id,ue->common_vars.eNb_id,ue->mac_enabled==1);
int frame_tx = proc->frame_tx; int frame_tx = proc->frame_tx;
int subframe_tx = proc->subframe_tx; int subframe_tx = proc->subframe_tx;
int prach_power; int prach_power;
...@@ -2926,7 +2926,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin ...@@ -2926,7 +2926,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
for (pbch_trials=0; pbch_trials<4; pbch_trials++) { for (pbch_trials=0; pbch_trials<4; pbch_trials++) {
//for (pbch_phase=0;pbch_phase<4;pbch_phase++) { //for (pbch_phase=0;pbch_phase<4;pbch_phase++) {
//printf("[UE %d] Frame %d, Trying PBCH %d (NidCell %d, eNB_id %d)\n",ue->Mod_id,frame_rx,pbch_phase,ue->frame_parms.Nid_cell,ue->common_vars.eNb_id); printf("[UE %d] Frame %d, Trying PBCH %d (NidCell %d, eNB_id %d)\n",ue->Mod_id,frame_rx,pbch_phase,ue->frame_parms.Nid_cell,ue->common_vars.eNb_id);
if (abstraction_flag == 0) { if (abstraction_flag == 0) {
pbch_tx_ant = rx_pbch(&ue->common_vars, pbch_tx_ant = rx_pbch(&ue->common_vars,
ue->pbch_vars[eNB_id], ue->pbch_vars[eNB_id],
...@@ -2997,7 +2997,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin ...@@ -2997,7 +2997,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
//emos_dump_UE.mimo_mode = ue->pbch_vars[eNB_id]->decoded_output[1]; //emos_dump_UE.mimo_mode = ue->pbch_vars[eNB_id]->decoded_output[1];
#endif #endif
if (first_run<=ue->Mod_id) { if (first_run</*=ue->Mod_id*/NB_UE_INST) {
first_run++; first_run++;
proc->frame_rx = (proc->frame_rx & 0xFFFFFC00) | (frame_tx & 0x000003FF); proc->frame_rx = (proc->frame_rx & 0xFFFFFC00) | (frame_tx & 0x000003FF);
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
*/ */
/*! \file netlink_init.c /*! \file netlink_init.c
* \brief initiate the netlink socket for communication with nas dirver * \brief initiate the netlink socket for communication with nas driver
* \author Navid Nikaein and Raymomd Knopp * \author Navid Nikaein and Raymomd Knopp
* \date 2011 * \date 2011
* \version 1.0 * \version 1.0
...@@ -85,7 +85,7 @@ int netlink_init(void) ...@@ -85,7 +85,7 @@ int netlink_init(void)
nas_src_addr.nl_pid = 1;//getpid(); /* self pid */ nas_src_addr.nl_pid = 1;//getpid(); /* self pid */
nas_src_addr.nl_groups = 0; /* not in mcast groups */ nas_src_addr.nl_groups = 0; /* not in mcast groups */
ret = bind(nas_sock_fd, (struct sockaddr*)&nas_src_addr, sizeof(nas_src_addr)); ret = bind(nas_sock_fd, (struct sockaddr*)&nas_src_addr, sizeof(nas_src_addr));
printf("[NETLINK]bind: fd %d, nas_src_addr %d, sizeof(nas_src_addr) %d\n",nas_sock_fd,nas_src_addr,sizeof(nas_src_addr));
memset(&nas_dest_addr, 0, sizeof(nas_dest_addr)); memset(&nas_dest_addr, 0, sizeof(nas_dest_addr));
......
...@@ -76,13 +76,13 @@ void dl_phy_sync_success(module_id_t module_idP, ...@@ -76,13 +76,13 @@ void dl_phy_sync_success(module_id_t module_idP,
#else #else
int mme_enabled=0; int mme_enabled=0;
#endif #endif
//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,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,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);
} }
} }
......
...@@ -342,7 +342,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP, ...@@ -342,7 +342,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP,
frameP, frameP,
CCCH,1, CCCH,1,
&UE_mac_inst[module_idP].CCCH_pdu.payload[sizeof(SCH_SUBHEADER_SHORT)+1],0, &UE_mac_inst[module_idP].CCCH_pdu.payload[sizeof(SCH_SUBHEADER_SHORT)+1],0,
PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id, eNB_indexP/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,
0); 0);
Size16 = (uint16_t)Size; Size16 = (uint16_t)Size;
//printf("ue_get_rach:Size16 %d\n",Size16); //printf("ue_get_rach:Size16 %d\n",Size16);
...@@ -394,7 +394,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP, ...@@ -394,7 +394,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP,
} else if (UE_mac_inst[module_idP].scheduling_info.BSR_bytes[UE_mac_inst[module_idP].scheduling_info.LCGID[DCCH]] > 0) { } else if (UE_mac_inst[module_idP].scheduling_info.BSR_bytes[UE_mac_inst[module_idP].scheduling_info.LCGID[DCCH]] > 0) {
// This is for triggering a transmission on DCCH using PRACH (during handover, or sending SR for example) // This is for triggering a transmission on DCCH using PRACH (during handover, or sending SR for example)
dcch_header_len = 2 + 2; /// SHORT Subheader + C-RNTI control element dcch_header_len = 2 + 2; /// SHORT Subheader + C-RNTI control element
rlc_status = mac_rlc_status_ind(module_idP,UE_mac_inst[module_idP].crnti, /*eNB_indexP*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO, rlc_status = mac_rlc_status_ind(module_idP,UE_mac_inst[module_idP].crnti, eNB_indexP/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO,
DCCH, DCCH,
6); 6);
...@@ -407,7 +407,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP, ...@@ -407,7 +407,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP,
module_idP,frameP, rlc_status.bytes_in_buffer,dcch_header_len); module_idP,frameP, rlc_status.bytes_in_buffer,dcch_header_len);
sdu_lengths[0] = mac_rlc_data_req(module_idP, UE_mac_inst[module_idP].crnti, sdu_lengths[0] = mac_rlc_data_req(module_idP, UE_mac_inst[module_idP].crnti,
/*eNB_indexP*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id, frameP,ENB_FLAG_NO, MBMS_FLAG_NO, eNB_indexP/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/, frameP,ENB_FLAG_NO, MBMS_FLAG_NO,
DCCH, DCCH,
6, //not used 6, //not used
(char *)&ulsch_buff[0]); (char *)&ulsch_buff[0]);
......
...@@ -460,7 +460,7 @@ ue_send_sdu( ...@@ -460,7 +460,7 @@ ue_send_sdu(
(uint8_t*)payload_ptr, (uint8_t*)payload_ptr,
rx_lengths[i], rx_lengths[i],
ENB_FLAG_NO, ENB_FLAG_NO,
/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id,//changed eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,//changed
0); 0);
//printf("1\n"); //printf("1\n");
...@@ -468,7 +468,7 @@ ue_send_sdu( ...@@ -468,7 +468,7 @@ ue_send_sdu(
LOG_D(MAC,"[UE %d] Frame %d : DLSCH -> DL-DCCH%d, RRC message (eNB %d, %d bytes)\n", module_idP, frameP, rx_lcids[i],/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id,rx_lengths[i]); LOG_D(MAC,"[UE %d] Frame %d : DLSCH -> DL-DCCH%d, RRC message (eNB %d, %d bytes)\n", module_idP, frameP, rx_lcids[i],/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id,rx_lengths[i]);
mac_rlc_data_ind(module_idP, mac_rlc_data_ind(module_idP,
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id,//changed eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,//changed
frameP, frameP,
ENB_FLAG_NO, ENB_FLAG_NO,
MBMS_FLAG_NO, MBMS_FLAG_NO,
...@@ -490,7 +490,7 @@ ue_send_sdu( ...@@ -490,7 +490,7 @@ ue_send_sdu(
#endif #endif
mac_rlc_data_ind(module_idP, mac_rlc_data_ind(module_idP,
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id,//changed eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,//changed
frameP, frameP,
ENB_FLAG_NO, ENB_FLAG_NO,
MBMS_FLAG_NO, MBMS_FLAG_NO,
...@@ -529,7 +529,7 @@ void ue_decode_si(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_i ...@@ -529,7 +529,7 @@ void ue_decode_si(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_i
(uint8_t *)pdu, (uint8_t *)pdu,
len, len,
ENB_FLAG_NO, ENB_FLAG_NO,
/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id, eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,
0); 0);
//printf("2\n"); //printf("2\n");
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_SI, VCD_FUNCTION_OUT); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_SI, VCD_FUNCTION_OUT);
...@@ -569,7 +569,7 @@ void ue_decode_p(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_in ...@@ -569,7 +569,7 @@ void ue_decode_p(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_in
(uint8_t *)pdu, (uint8_t *)pdu,
len, len,
ENB_FLAG_NO, ENB_FLAG_NO,
/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id, eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,
0); 0);
//printf("3\n"); //printf("3\n");
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_PCCH, VCD_FUNCTION_OUT); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_PCCH, VCD_FUNCTION_OUT);
...@@ -1429,7 +1429,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid ...@@ -1429,7 +1429,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid
is_lcid_processed = FALSE; is_lcid_processed = FALSE;
lcid_buffer_occupancy_old = mac_rlc_get_buffer_occupancy_ind(module_idP, lcid_buffer_occupancy_old = mac_rlc_get_buffer_occupancy_ind(module_idP,
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id, eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,
frameP, frameP,
subframe, subframe,
ENB_FLAG_NO, ENB_FLAG_NO,
...@@ -1465,7 +1465,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid ...@@ -1465,7 +1465,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid
sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP,
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id, eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,
frameP, frameP,
ENB_FLAG_NO, ENB_FLAG_NO,
MBMS_FLAG_NO, MBMS_FLAG_NO,
...@@ -1519,7 +1519,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid ...@@ -1519,7 +1519,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid
/* Get updated BO after multiplexing this PDU */ /* Get updated BO after multiplexing this PDU */
lcid_buffer_occupancy_new = mac_rlc_get_buffer_occupancy_ind(module_idP, lcid_buffer_occupancy_new = mac_rlc_get_buffer_occupancy_ind(module_idP,
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id, eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,
frameP, frameP,
subframe, subframe,
ENB_FLAG_NO, ENB_FLAG_NO,
...@@ -1857,7 +1857,7 @@ ue_scheduler( ...@@ -1857,7 +1857,7 @@ ue_scheduler(
#endif #endif
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SCHEDULER, VCD_FUNCTION_IN); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SCHEDULER, VCD_FUNCTION_IN);
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_NO, UE_mac_inst[module_idP].crnti, txFrameP, txSubframeP,/*eNB_indexP*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_NO, UE_mac_inst[module_idP].crnti, txFrameP, txSubframeP,eNB_indexP/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/);
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
do { do {
...@@ -1904,11 +1904,11 @@ ue_scheduler( ...@@ -1904,11 +1904,11 @@ ue_scheduler(
UE_mac_inst[module_idP].rxSubframe = rxSubframeP; UE_mac_inst[module_idP].rxSubframe = rxSubframeP;
#ifdef CELLULAR #ifdef CELLULAR
rrc_rx_tx(module_idP, txFrameP, 0, /*eNB_indexP*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id); rrc_rx_tx(module_idP, txFrameP, 0, eNB_indexP/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/);
#else #else
switch (rrc_rx_tx(&ctxt, switch (rrc_rx_tx(&ctxt,
/*eNB_indexP*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id, eNB_indexP/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,
CC_id)) { CC_id)) {
case RRC_OK: case RRC_OK:
break; break;
...@@ -2302,7 +2302,7 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subfra ...@@ -2302,7 +2302,7 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subfra
lcgid_buffer_remain[lcgid] += UE_mac_inst[module_idP].scheduling_info.LCID_buffer_remain[lcid]; lcgid_buffer_remain[lcgid] += UE_mac_inst[module_idP].scheduling_info.LCID_buffer_remain[lcid];
} }
rlc_status = mac_rlc_status_ind(module_idP, UE_mac_inst[module_idP].crnti,/*eNB_index*/PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO, rlc_status = mac_rlc_status_ind(module_idP, UE_mac_inst[module_idP].crnti,eNB_index/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO,
lcid, lcid,
0xFFFF); //TBS is not used in RLC at this step, set a special value for debug 0xFFFF); //TBS is not used in RLC at this step, set a special value for debug
......
...@@ -264,10 +264,10 @@ rlc_am_receive_routing ( ...@@ -264,10 +264,10 @@ rlc_am_receive_routing (
rlc_pP->stat_rx_control_pdu += 1; rlc_pP->stat_rx_control_pdu += 1;
rlc_am_receive_process_control_pdu (ctxt_pP, rlc_pP, tb_p, &first_byte_p, &tb_size_in_bytes); rlc_am_receive_process_control_pdu (ctxt_pP, rlc_pP, tb_p, &first_byte_p, &tb_size_in_bytes);
// Test if remaining bytes not processed (up to know, highest probability is bug in MAC) // Test if remaining bytes not processed (up to know, highest probability is bug in MAC)
AssertFatal( tb_size_in_bytes == 0, //AssertFatal( tb_size_in_bytes == 0,
"Remaining %d bytes following a control PDU", // "Remaining %d bytes following a control PDU",
tb_size_in_bytes); // tb_size_in_bytes);
//if (tb_size_in_bytes == 0) printf("Remaining %d bytes following a control PDU",tb_size_in_bytes); if (tb_size_in_bytes == 0) printf("Remaining %d bytes following a control PDU",tb_size_in_bytes);
} }
LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RX ROUTING] VR(R)=%03d VR(MR)=%03d\n", LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RX ROUTING] VR(R)=%03d VR(MR)=%03d\n",
......
...@@ -652,7 +652,7 @@ rrc_data_ind( ...@@ -652,7 +652,7 @@ rrc_data_ind(
void rrc_in_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index) void rrc_in_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index)
{ {
//-------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------//
printf("rrc_in_sync_ind:eNB_index %d\n",eNB_index);//enb_id=ue->common_vars.enb_id
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
{ {
MessageDef *message_p; MessageDef *message_p;
...@@ -671,20 +671,27 @@ printf("rrc_in_sync_ind:eNB_index %d\n",eNB_index);//enb_id=ue->common_vars.enb_ ...@@ -671,20 +671,27 @@ printf("rrc_in_sync_ind:eNB_index %d\n",eNB_index);//enb_id=ue->common_vars.enb_
} }
#endif #endif
printf("rrc_in_sync_ind:eNB_index %d\n",eNB_index);//enb_id=ue->common_vars.enb_id
printf("[UE %d] Frame %d: IN SYNC FROM eNB %d (T310 active %d : T310 %d, N310 %d, N311 %d)\n ",
Mod_idP,frameP,eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/,
UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].T310_active,
UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].T310_cnt,
UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].N310_cnt,
UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].N311_cnt);
} }
//-------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------//
void rrc_out_of_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index) void rrc_out_of_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index)
{ {
//-------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------//
printf("rrc_out_of_sync_ind:eNB_index %d\n",/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id); printf("rrc_out_of_sync_ind:eNB_index %d\n",eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/);
if (UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].N310_cnt>10) if (UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].N310_cnt>10)
LOG_I(RRC,"[UE %d] Frame %d: OUT OF SYNC FROM eNB %d (T310 active %d : T310 %d, N310 %d, N311 %d)\n ", LOG_I(RRC,"[UE %d] Frame %d: OUT OF SYNC FROM eNB %d (T300 active %d : T310 %d, N310 %d, N311 %d)\n ",
Mod_idP,frameP,/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id, Mod_idP,frameP,eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/,
UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].T300_active, UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].T300_active,
UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].T310_cnt, UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].T310_cnt,
UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].N310_cnt, UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].N310_cnt,
UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].N311_cnt); UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].N311_cnt);
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
{ {
...@@ -692,13 +699,19 @@ void rrc_out_of_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index ...@@ -692,13 +699,19 @@ void rrc_out_of_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index
message_p = itti_alloc_new_message (TASK_MAC_UE, RRC_MAC_OUT_OF_SYNC_IND); message_p = itti_alloc_new_message (TASK_MAC_UE, RRC_MAC_OUT_OF_SYNC_IND);
RRC_MAC_OUT_OF_SYNC_IND (message_p).frame = frameP; RRC_MAC_OUT_OF_SYNC_IND (message_p).frame = frameP;
RRC_MAC_OUT_OF_SYNC_IND (message_p).enb_index = /*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id; RRC_MAC_OUT_OF_SYNC_IND (message_p).enb_index = eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/;
itti_send_msg_to_task (TASK_RRC_UE, UE_MODULE_ID_TO_INSTANCE(Mod_idP), message_p); itti_send_msg_to_task (TASK_RRC_UE, UE_MODULE_ID_TO_INSTANCE(Mod_idP), message_p);
} }
#else #else
UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].N310_cnt++; UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].N310_cnt++;
#endif #endif
printf("[UE %d] Frame %d: OUT OF SYNC FROM eNB %d (T300 active %d : T310 %d, N310 %d, N311 %d)\n ",
Mod_idP,frameP,eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/,
UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].T300_active,
UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].T310_cnt,
UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].N310_cnt,
UE_rrc_inst[Mod_idP].Info[eNB_index/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/].N311_cnt);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
......
...@@ -4494,7 +4494,7 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR ...@@ -4494,7 +4494,7 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
if (rrc_get_state(ue_mod_id) == RRC_STATE_INACTIVE) { if (rrc_get_state(ue_mod_id) == RRC_STATE_INACTIVE) {
// have a look at MAC/main.c void dl_phy_sync_success(...) // have a look at MAC/main.c void dl_phy_sync_success(...)
//printf("openair_rrc_ue_init: UE %d\n",ue_mod_id); //printf("openair_rrc_ue_init: UE %d\n",ue_mod_id);
openair_rrc_ue_init(ue_mod_id,PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id); openair_rrc_ue_init(ue_mod_id,0/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/);
} }
/* Save cell selection criterion */ /* Save cell selection criterion */
...@@ -4576,14 +4576,14 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR ...@@ -4576,14 +4576,14 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit3); NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit3);
//PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, 0, 0); //PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, 0, 0);
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, 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, NOT_A_RNTI, 0, 0, 0/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/);
UE_rrc_inst[ue_mod_id].initialNasMsg = NAS_CONN_ESTABLI_REQ (msg_p).initialNasMsg; UE_rrc_inst[ue_mod_id].initialNasMsg = NAS_CONN_ESTABLI_REQ (msg_p).initialNasMsg;
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) {
rrc_ue_generate_RRCConnectionRequest(&ctxt, 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);
...@@ -4615,11 +4615,11 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR ...@@ -4615,11 +4615,11 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data); length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data);
/* Transfer data to PDCP */ /* Transfer data to PDCP */
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, UE_rrc_inst[ue_mod_id].Info[PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id].rnti, 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*/);
// check if SRB2 is created, if yes request data_req on DCCH1 (SRB2) // check if SRB2 is created, if yes request data_req on DCCH1 (SRB2)
//printf("check if SRB2 is created, if yes request data_req on DCCH1: eNB_index %d, rnti %d, UE_rrc_inst[ue_mod_id].SRB2_config[PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id] == NULL %d\n",ctxt.eNB_index, ctxt.rnti,UE_rrc_inst[ue_mod_id].SRB2_config[PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id] == NULL); //printf("check if SRB2 is created, if yes request data_req on DCCH1: eNB_index %d, rnti %d, UE_rrc_inst[ue_mod_id].SRB2_config[PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id] == NULL %d\n",ctxt.eNB_index, ctxt.rnti,UE_rrc_inst[ue_mod_id].SRB2_config[PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id] == NULL);
if(UE_rrc_inst[ue_mod_id].SRB2_config[PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id] == NULL) if(UE_rrc_inst[ue_mod_id].SRB2_config[0/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/] == NULL)
{ {
rrc_data_req (&ctxt, rrc_data_req (&ctxt,
DCCH, DCCH,
...@@ -4771,8 +4771,8 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR ...@@ -4771,8 +4771,8 @@ 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[ue_mod_id][0]->common_vars.eNb_id].rnti, 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[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*/);
rrc_ue_generate_RRCConnectionRequest(&ctxt, 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);
} }
......
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> // socket, setsockopt, connect, bind, recv, send #include <sys/socket.h> // socket, setsockopt, connect, bind, recv, send
#include <netdb.h> // getaddrinfo #include <netdb.h> // getaddrinfo
#include <stdio.h>
/****************************************************************************/ /****************************************************************************/
/**************** E X T E R N A L D E F I N I T I O N S ****************/ /**************** E X T E R N A L D E F I N I T I O N S ****************/
/****************************************************************************/ /****************************************************************************/
...@@ -108,7 +109,7 @@ void* socket_udp_open(int type, const char* host, const char* port) ...@@ -108,7 +109,7 @@ void* socket_udp_open(int type, const char* host, const char* port)
struct addrinfo socket_info; /* endpoint information */ struct addrinfo socket_info; /* endpoint information */
struct addrinfo *socket_addr, *sp; /* endpoint address */ struct addrinfo *socket_addr, *sp; /* endpoint address */
int sfd; /* socket file descriptor */ int sfd; /* socket file descriptor */
printf("socket_udp_open: port %s, host %s, type %d\n",port, host,type);
/* /*
* Parameters sanity check * Parameters sanity check
* ----------------------- * -----------------------
...@@ -171,7 +172,7 @@ void* socket_udp_open(int type, const char* host, const char* port) ...@@ -171,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);
if (sfd < 0) { if (sfd < 0) {
continue; continue;
} }
...@@ -222,7 +223,7 @@ void* socket_udp_open(int type, const char* host, const char* port) ...@@ -222,7 +223,7 @@ void* socket_udp_open(int type, const char* host, const char* port)
sid->port = atoi (port); sid->port = atoi (port);
sid->fd = sfd; sid->fd = sfd;
} }
printf("sfd %d\n",sfd);
return sid; return sid;
} }
......
...@@ -132,6 +132,7 @@ int user_api_initialize(user_api_id_t *user_api_id, const char* host, const char ...@@ -132,6 +132,7 @@ int user_api_initialize(user_api_id_t *user_api_id, const char* host, const char
/* Initialize communication channel */ /* Initialize communication channel */
user_api_id->endpoint = user_api_id->open(SOCKET_SERVER, host, port); user_api_id->endpoint = user_api_id->open(SOCKET_SERVER, host, port);
printf("open: SOCKET_SERVER %d, host %s, port %s\n",SOCKET_SERVER, host, port);
if (user_api_id->endpoint == NULL) { if (user_api_id->endpoint == NULL) {
const char* error = ( (errno < 0) ? const char* error = ( (errno < 0) ?
......
...@@ -291,7 +291,9 @@ int emm_fsm_process(nas_user_t *user, const emm_reg_t *evt) ...@@ -291,7 +291,9 @@ int emm_fsm_process(nas_user_t *user, const emm_reg_t *evt)
LOG_TRACE(INFO, "EMM-FSM - Received event %s (%d) in state %s", LOG_TRACE(INFO, "EMM-FSM - Received event %s (%d) in state %s",
_emm_fsm_event_str[primitive - _EMMREG_START - 1], primitive, _emm_fsm_event_str[primitive - _EMMREG_START - 1], primitive,
_emm_fsm_status_str[status]); _emm_fsm_status_str[status]);
printf("EMM-FSM - Received event %s (%d) in state %s",
_emm_fsm_event_str[primitive - _EMMREG_START - 1], primitive,
_emm_fsm_status_str[status]);
/* Execute the EMM state machine */ /* Execute the EMM state machine */
rc = (_emm_fsm_handlers[status])(user, evt); rc = (_emm_fsm_handlers[status])(user, evt);
......
...@@ -50,11 +50,12 @@ static int nas_ue_process_events(nas_user_container_t *users, struct epoll_event ...@@ -50,11 +50,12 @@ static int nas_ue_process_events(nas_user_container_t *users, struct epoll_event
int exit_loop = FALSE; int exit_loop = FALSE;
LOG_I(NAS, "[UE] Received %d events\n", nb_events); LOG_I(NAS, "[UE] Received %d events\n", nb_events);
printf("[UE] Received %d events\n", nb_events);
for (event = 0; event < nb_events; event++) { for (event = 0; event < nb_events; event++) {
if (events[event].events != 0) { if (events[event].events != 0) {
/* If the event has not been yet been processed (not an itti message) */ /* If the event has not been yet been processed (not an itti message) */
nas_user_t *user = find_user_from_fd(users, events[event].data.fd); nas_user_t *user = find_user_from_fd(users, events[event].data.fd);
//printf("[UE] ueid %d\n", user->ueid);
if ( user != NULL ) { if ( user != NULL ) {
exit_loop = nas_user_receive_and_process(user, NULL); exit_loop = nas_user_receive_and_process(user, NULL);
} else { } else {
...@@ -93,11 +94,15 @@ void *nas_ue_task(void *args_p) ...@@ -93,11 +94,15 @@ void *nas_ue_task(void *args_p)
instance_t instance; instance_t instance;
unsigned int Mod_id; unsigned int Mod_id;
int result; int result;
//NB_eNB_INST=NB_eNB_INST-1;
nas_user_container_t *users=args_p; nas_user_container_t *users=args_p;
itti_mark_task_ready (TASK_NAS_UE); itti_mark_task_ready (TASK_NAS_UE);
MSC_START_USE(); MSC_START_USE();
/* Initialize UE NAS (EURECOM-NAS) */ /* Initialize UE NAS (EURECOM-NAS) */
printf("nas_ue_task: # UEs = %d,NB_eNB_INST %d, NB_UE_INST %d\n",users->count,NB_eNB_INST,NB_UE_INST);
for (int i=0; i < users->count; i++) for (int i=0; i < users->count; i++)
{ {
nas_user_t *user = &users->item[i]; nas_user_t *user = &users->item[i];
...@@ -302,6 +307,7 @@ char *make_port_str_from_ueid(const char *base_port_str, int ueid) { ...@@ -302,6 +307,7 @@ char *make_port_str_from_ueid(const char *base_port_str, int ueid) {
} }
port = base_port + ueid; port = base_port + ueid;
//printf("make_port_str_from_ueid: port %d\n",port);
if ( port<1 || port > 65535 ) { if ( port<1 || port > 65535 ) {
return NULL; return NULL;
} }
......
...@@ -47,6 +47,9 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb) ...@@ -47,6 +47,9 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
LOG_E(PDCP, "Create task for L2L1 failed\n"); LOG_E(PDCP, "Create task for L2L1 failed\n");
return -1; return -1;
} }
else{
printf("Create task for L2L1 succeeded\n");
}
if (enb_nb > 0) { if (enb_nb > 0) {
/* Last task to create, others task must be ready before its start */ /* Last task to create, others task must be ready before its start */
...@@ -54,6 +57,9 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb) ...@@ -54,6 +57,9 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
LOG_E(ENB_APP, "Create task for eNB APP failed\n"); LOG_E(ENB_APP, "Create task for eNB APP failed\n");
return -1; return -1;
} }
else{
printf("Create task for eNB APP succeeded\n");
}
} }
...@@ -62,25 +68,35 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb) ...@@ -62,25 +68,35 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
# if defined(ENABLE_USE_MME) # if defined(ENABLE_USE_MME)
{ {
if (enb_nb > 0) { if (enb_nb > 0) {
printf("ENABLE_USE_MME\n");
if (itti_create_task (TASK_SCTP, sctp_eNB_task, NULL) < 0) { if (itti_create_task (TASK_SCTP, sctp_eNB_task, NULL) < 0) {
LOG_E(SCTP, "Create task for SCTP failed\n"); LOG_E(SCTP, "Create task for SCTP failed\n");
return -1; return -1;
} }
else
printf("Create task for SCTP succeeded\n");
if (itti_create_task (TASK_S1AP, s1ap_eNB_task, NULL) < 0) { if (itti_create_task (TASK_S1AP, s1ap_eNB_task, NULL) < 0) {
LOG_E(S1AP, "Create task for S1AP failed\n"); LOG_E(S1AP, "Create task for S1AP failed\n");
return -1; return -1;
} }
else
printf("Create task for S1AP succeeded\n");
if (itti_create_task (TASK_UDP, udp_eNB_task, NULL) < 0) { if (itti_create_task (TASK_UDP, udp_eNB_task, NULL) < 0) {
LOG_E(UDP_, "Create task for UDP failed\n"); LOG_E(UDP_, "Create task for UDP failed\n");
return -1; return -1;
} }
else
printf("Create task for UDP succeeded\n");
if (itti_create_task (TASK_GTPV1_U, &gtpv1u_eNB_task, NULL) < 0) { if (itti_create_task (TASK_GTPV1_U, &gtpv1u_eNB_task, NULL) < 0) {
LOG_E(GTPU, "Create task for GTPV1U failed\n"); LOG_E(GTPU, "Create task for GTPV1U failed\n");
return -1; return -1;
} }
else
printf("Create task for GTPV1U succeeded\n");
} }
# if defined(NAS_BUILT_IN_UE) # if defined(NAS_BUILT_IN_UE)
...@@ -92,6 +108,8 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb) ...@@ -92,6 +108,8 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
LOG_E(NAS, "Create task for NAS UE failed\n"); LOG_E(NAS, "Create task for NAS UE failed\n");
return -1; return -1;
} }
else
printf("Create task for NAS UE succeeded:ue_nb %d\n",ue_nb);
} }
# endif # endif
} }
...@@ -104,7 +122,6 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb) ...@@ -104,7 +122,6 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
} }
# if ENABLE_RAL # if ENABLE_RAL
if (itti_create_task (TASK_RAL_ENB, eRAL_task, NULL) < 0) { if (itti_create_task (TASK_RAL_ENB, eRAL_task, NULL) < 0) {
LOG_E(RAL_ENB, "Create task for RAL eNB failed\n"); LOG_E(RAL_ENB, "Create task for RAL eNB failed\n");
return -1; return -1;
......
...@@ -6,7 +6,7 @@ eNBs = ...@@ -6,7 +6,7 @@ eNBs =
( (
{ {
////////// Identification parameters: ////////// Identification parameters:
eNB_ID = 0xe00; eNB_ID = 0xe01;
cell_type = "CELL_MACRO_ENB"; cell_type = "CELL_MACRO_ENB";
...@@ -33,9 +33,9 @@ eNBs = ...@@ -33,9 +33,9 @@ eNBs =
eutra_band = 7; eutra_band = 7;
downlink_frequency = 2685000000L; downlink_frequency = 2685000000L;
uplink_frequency_offset = -120000000; uplink_frequency_offset = -120000000;
Nid_cell = 0; Nid_cell = 1;
N_RB_DL = 25; N_RB_DL = 25;
Nid_cell_mbsfn = 0; Nid_cell_mbsfn = 1;
nb_antenna_ports = 1; nb_antenna_ports = 1;
nb_antennas_tx = 1; nb_antennas_tx = 1;
nb_antennas_rx = 1; nb_antennas_rx = 1;
......
Active_eNBs = ("eNB_Eurecom_LTEBox","eNB_Eurecom_LTEBox1"); Active_eNBs = ("eNB_Eurecom_LTEBox","eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying # Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none"; Asn1_verbosity = "none";
...@@ -194,11 +194,11 @@ eNBs = ...@@ -194,11 +194,11 @@ eNBs =
, ,
{ {
////////// Identification parameters: ////////// Identification parameters:
eNB_ID = 0xe01; eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB"; cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox1"; eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values // Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1"; tracking_area_code = "1";
......
...@@ -588,9 +588,9 @@ static void *UE_thread_synch_freq(void *arg) { ...@@ -588,9 +588,9 @@ static void *UE_thread_synch_freq(void *arg) {
case pbch: case pbch:
#if DISABLE_LOG_X #if DISABLE_LOG_X
printf("[UE thread Synch] Running Initial Synch (mode %d)\n",UE->mode); printf("[UE thread Synch] Running Initial Synch in the Frequency domain (mode %d)\n",UE->mode);
#else #else
LOG_I(PHY, "[UE thread Synch] Running Initial Synch (mode %d)\n",UE->mode); LOG_I(PHY, "[UE thread Synch] Running Initial Synch in the Frequency domain (mode %d)\n",UE->mode);
#endif #endif
//Pushed N_RB_DL, PHICH_CONFIG, FRAME_NUMBER //Pushed N_RB_DL, PHICH_CONFIG, FRAME_NUMBER
if (initial_sync_freq( UE, UE->mode ) == 0) { if (initial_sync_freq( UE, UE->mode ) == 0) {
......
...@@ -374,6 +374,7 @@ void do_DL_sig(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][MAX_N ...@@ -374,6 +374,7 @@ void do_DL_sig(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][MAX_N
frame_parms->samples_per_tti, frame_parms->samples_per_tti,
12); 12);
stop_meas(&eNB2UE[eNB_id][UE_id][CC_id]->DL_adc); stop_meas(&eNB2UE[eNB_id][UE_id][CC_id]->DL_adc);
//write_output("chsim_rxsig_subframe.m","chsm_rxsF", PHY_vars_UE_g[UE_id][CC_id]->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,16);
//for (int idx=0;idx<10;idx++) printf("dumping DL raw subframe %d, eNB_id %d: rxdata[%d] = (%d,%d)\n", subframe,eNB_id, idx, ((short*)&rxdata[0][sf_offset+idx])[0], ((short*)&rxdata[0][sf_offset+idx])[1]); //for (int idx=0;idx<10;idx++) printf("dumping DL raw subframe %d, eNB_id %d: rxdata[%d] = (%d,%d)\n", subframe,eNB_id, idx, ((short*)&rxdata[0][sf_offset+idx])[0], ((short*)&rxdata[0][sf_offset+idx])[1]);
#ifdef DEBUG_SIM #ifdef DEBUG_SIM
rx_pwr2 = signal_energy(rxdata[0]+sf_offset,frame_parms->ofdm_symbol_size)/(12.0*frame_parms->N_RB_DL); rx_pwr2 = signal_energy(rxdata[0]+sf_offset,frame_parms->ofdm_symbol_size)/(12.0*frame_parms->N_RB_DL);
...@@ -752,10 +753,10 @@ void do_DL_sig_freq(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][ ...@@ -752,10 +753,10 @@ void do_DL_sig_freq(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][
//for (int idx=0;idx<10;idx++) printf("dumping DL raw subframe %d,UE %d, eNB_id %d: rxdataF0[%d] = (%d,%d)\n", subframe,UE_id,eNB_id, idx, ((short*)&rxdataF[0][sf_offset+idx])[0], ((short*)&rxdataF[0][sf_offset+idx])[1]); //for (int idx=0;idx<10;idx++) printf("dumping DL raw subframe %d,UE %d, eNB_id %d: rxdataF0[%d] = (%d,%d)\n", subframe,UE_id,eNB_id, idx, ((short*)&rxdataF[0][sf_offset+idx])[0], ((short*)&rxdataF[0][sf_offset+idx])[1]);
//print_meas (&eNB2UE[eNB_id][UE_id][CC_id]->DL_adc,"[DL][adc]", &eNB2UE[eNB_id][UE_id][CC_id]->DL_adc, &eNB2UE[eNB_id][UE_id][CC_id]->DL_adc); //print_meas (&eNB2UE[eNB_id][UE_id][CC_id]->DL_adc,"[DL][adc]", &eNB2UE[eNB_id][UE_id][CC_id]->DL_adc, &eNB2UE[eNB_id][UE_id][CC_id]->DL_adc);
//for (int idx=0;idx<10;idx++) printf("dumping DL raw rx subframe %d: rxdataF[%d] = (%d,%d)=====>%s,txdataF[%d] = (%d,%d), r_re_im_p_f(%e,%e)\n", subframe, idx, ((short*)&rxdataF[0][sf_offset+idx])[0], ((short*)&rxdataF[0][sf_offset+idx])[1],(((((r_re_p_f[0][idx]<0)&&(((short*)&rxdataF[0][sf_offset+idx])[0]<0))||((r_re_p_f[0][idx]>=0)&&(((short*)&rxdataF[0][sf_offset+idx])[0]>=0))))&&(((r_im_p_f[0][idx]<0)&&(((short*)&rxdataF[0][sf_offset+idx])[1]<0))||((r_im_p_f[0][idx]>=0)&&(((short*)&rxdataF[0][sf_offset+idx])[1]>=0))))?"OK":"ERROR",idx,((short*)&txdataF[0][sf_offset+idx])[0],((short*)&txdataF[0][sf_offset+idx])[1],r_re_p_f[0][idx],r_im_p_f[0][idx]); //for (int idx=0;idx<10;idx++) printf("dumping DL raw rx subframe %d: rxdataF[%d] = (%d,%d)=====>%s,txdataF[%d] = (%d,%d), r_re_im_p_f(%e,%e)\n", subframe, idx, ((short*)&rxdataF[0][sf_offset+idx])[0], ((short*)&rxdataF[0][sf_offset+idx])[1],(((((r_re_p_f[0][idx]<0)&&(((short*)&rxdataF[0][sf_offset+idx])[0]<0))||((r_re_p_f[0][idx]>=0)&&(((short*)&rxdataF[0][sf_offset+idx])[0]>=0))))&&(((r_im_p_f[0][idx]<0)&&(((short*)&rxdataF[0][sf_offset+idx])[1]<0))||((r_im_p_f[0][idx]>=0)&&(((short*)&rxdataF[0][sf_offset+idx])[1]>=0))))?"OK":"ERROR",idx,((short*)&txdataF[0][sf_offset+idx])[0],((short*)&txdataF[0][sf_offset+idx])[1],r_re_p_f[0][idx],r_im_p_f[0][idx]);
/*if (UE_id==0) /*if ((subframe&0x1)==0)
write_output("chsim0_rxsigF_subframe0.m","chsm0_rxsF0", PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[0].rxdataF[0],10*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16); write_output("chsim0_rxsigF_subframe0.m","chsm0_rxsF0", PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[0].rxdataF[0],10*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16);
else else
write_output("chsim1_rxsigF_subframe0.m","chsm1_rxsF0", PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[0].rxdataF[0],10*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16);*/ write_output("chsim1_rxsigF_subframe0.m","chsm1_rxsF0", PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[1].rxdataF[0],10*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16);*/
//write_output("chsim_rxsigF_subframe1.m","chsm_rxsF1", PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[1].rxdataF[0],10*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16); //write_output("chsim_rxsigF_subframe1.m","chsm_rxsF1", PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[1].rxdataF[0],10*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16);
#ifdef DEBUG_SIM #ifdef DEBUG_SIM
......
...@@ -1331,12 +1331,13 @@ main (int argc, char **argv) ...@@ -1331,12 +1331,13 @@ main (int argc, char **argv)
exit(-1); // need a softer mode exit(-1); // need a softer mode
} }
else { else {
//NB_eNB_INST=1;
if (create_tasks(0, if (create_tasks(0,
oai_emulation.info.nb_ue_local) < 0) oai_emulation.info.nb_ue_local) < 0)
exit(-1); // need a softer mode exit(-1); // need a softer mode
//NB_eNB_INST=2;
} }
#endif #endif
// wait for all threads to startup // wait for all threads to startup
sleep(3); sleep(3);
printf("Sending sync to all threads\n"); printf("Sending sync to all threads\n");
......
...@@ -848,6 +848,7 @@ void get_simulation_options(int argc, char *argv[]) ...@@ -848,6 +848,7 @@ void get_simulation_options(int argc, char *argv[])
} }
free(conf_config_file_name); free(conf_config_file_name);
conf_config_file_name = 0; conf_config_file_name = 0;
//NB_eNB_INST=NB_eNB_INST-1;
} }
void check_and_adjust_params(void) void check_and_adjust_params(void)
...@@ -1046,7 +1047,7 @@ int UE_trx_set_gains(openair0_device *device, openair0_config_t *openair0_cfg) { ...@@ -1046,7 +1047,7 @@ int UE_trx_set_gains(openair0_device *device, openair0_config_t *openair0_cfg) {
extern pthread_mutex_t subframe_mutex; extern pthread_mutex_t subframe_mutex;
extern int subframe_eNB_mask,subframe_UE_mask; extern int subframe_eNB_mask,subframe_UE_mask;
static int first_run=0; //static int first_run=0;
//static int count=0; //static int count=0;
//static int sum=0; //static int sum=0;
int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **buff, int nsamps, int cc) int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **buff, int nsamps, int cc)
...@@ -1070,6 +1071,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void * ...@@ -1070,6 +1071,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
int CC_id = device->CC_id; int CC_id = device->CC_id;
int UE_id = 0; int UE_id = 0;
//printf("eNB_trx_read: eNB %d, Type %s\n",eNB_id,(PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.frame_type==FDD)?"FDD":"TDD");
int subframe; int subframe;
int read_samples, max_samples; int read_samples, max_samples;
openair0_timestamp last = last_eNB_rx_timestamp[eNB_id][CC_id]; openair0_timestamp last = last_eNB_rx_timestamp[eNB_id][CC_id];
...@@ -1136,7 +1138,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void * ...@@ -1136,7 +1138,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
{ {
//clock_t start=clock(); //clock_t start=clock();
//printf("subframe UL PRACH: %d\n",subframe); //printf("subframe UL PRACH: %d\n",subframe);
printf("prach is generated for UE %d, eNB %d\n",UE_id,eNB_id); printf("prach is generated for UE %d, eNB %d, subframe %d\n",UE_id,eNB_id,subframe);
start_meas(&UE2eNB[UE_id][eNB_id][CC_id]->UL_PRACH_channel_freq); start_meas(&UE2eNB[UE_id][eNB_id][CC_id]->UL_PRACH_channel_freq);
do_UL_sig_freq_prach(UE2eNB, do_UL_sig_freq_prach(UE2eNB,
enb_data, enb_data,
...@@ -1158,6 +1160,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void * ...@@ -1158,6 +1160,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
} }
start_meas(&UE2eNB[0][eNB_id][CC_id]->UL_channel_freq); start_meas(&UE2eNB[0][eNB_id][CC_id]->UL_channel_freq);
//clock_t start=clock(); //clock_t start=clock();
do_UL_sig_freq(UE2eNB, do_UL_sig_freq(UE2eNB,
enb_data, enb_data,
ue_data, ue_data,
...@@ -1204,6 +1207,8 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** ...@@ -1204,6 +1207,8 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
int subframe; int subframe;
//int frame=0; //int frame=0;
int read_samples, max_samples; int read_samples, max_samples;
//printf("UE_trx_read: UE %d, Type %s\n",UE_id,(PHY_vars_UE_g[UE_id][CC_id]->frame_parms.frame_type==FDD)?"FDD":"TDD");
openair0_timestamp last = last_UE_rx_timestamp[UE_id][CC_id]; openair0_timestamp last = last_UE_rx_timestamp[UE_id][CC_id];
*ptimestamp = last_UE_rx_timestamp[UE_id][CC_id]; *ptimestamp = last_UE_rx_timestamp[UE_id][CC_id];
...@@ -1266,7 +1271,7 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** ...@@ -1266,7 +1271,7 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
{ {
start_meas(&eNB2UE[0][UE_id][CC_id]->DL_channel_freq); start_meas(&eNB2UE[0][UE_id][CC_id]->DL_channel_freq);
//clock_t start=clock(); //clock_t start=clock();
do_DL_sig_freq(eNB2UE, do_DL_sig_freq(eNB2UE,
enb_data, enb_data,
ue_data, ue_data,
subframe, subframe,
...@@ -1452,8 +1457,8 @@ void init_openair1(void) ...@@ -1452,8 +1457,8 @@ void init_openair1(void)
{ {
module_id_t UE_id; module_id_t UE_id;
uint8_t eNB_id = 0; uint8_t eNB_id = 0;
uint8_t RN_id = 0; //uint8_t RN_id = 0;
uint8_t CC_id; uint8_t CC_id = 0;
#if ENABLE_RAL #if ENABLE_RAL
int list_index; int list_index;
#endif #endif
......
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