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
No related merge requests found
......@@ -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++) {
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++) {
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
} else if (packet_type == IF4p5_PRACH) {
// FIX: hard coded prach samples length
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;
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
uint16_t db_fulllength, db_halflength;
int slotoffsetF=0, blockoffsetF=0;
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]);
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) {
db_fulllength = (12*fp->N_RB_DL);
......@@ -292,11 +293,11 @@ for (int idx=0;idx<10;idx++)
} else if (*packet_type == IF4p5_PULFFT) {
*symbol_number = ((packet_header->frame_status)>>26)&0x000f;
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);
blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength;
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++) {
i = (uint16_t*) &rxdataF[0][blockoffsetF+element_id];
*i = alaw2lin_if4p5[ (data_block[element_id] & 0xff) ];
......@@ -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 );
} else if (*packet_type == IF4p5_PRACH) {
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
db_fulllength = PRACH_HARD_CODED_NUM_SAMPLES;
......@@ -331,7 +333,7 @@ for (int idx=0;idx<10;idx++)
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;
}
......
......@@ -883,7 +883,7 @@ void pbch_unscrambling(LTE_DL_FRAME_PARMS *frame_parms,
// 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
// msg("pbch_unscrambling: Nid_cell = %d\n",x2);
//printf("pbch_unscrambling: Nid_cell = %d\n",x2);
for (i=0; i<length; i++) {
if (i%32==0) {
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
}
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 subframe_tx = proc->subframe_tx;
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
for (pbch_trials=0; pbch_trials<4; pbch_trials++) {
//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) {
pbch_tx_ant = rx_pbch(&ue->common_vars,
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
//emos_dump_UE.mimo_mode = ue->pbch_vars[eNB_id]->decoded_output[1];
#endif
if (first_run<=ue->Mod_id) {
if (first_run</*=ue->Mod_id*/NB_UE_INST) {
first_run++;
proc->frame_rx = (proc->frame_rx & 0xFFFFFC00) | (frame_tx & 0x000003FF);
......
......@@ -20,7 +20,7 @@
*/
/*! \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
* \date 2011
* \version 1.0
......@@ -85,7 +85,7 @@ int netlink_init(void)
nas_src_addr.nl_pid = 1;//getpid(); /* self pid */
nas_src_addr.nl_groups = 0; /* not in mcast groups */
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));
......
......@@ -76,13 +76,13 @@ void dl_phy_sync_success(module_id_t module_idP,
#else
int mme_enabled=0;
#endif
//printf("mme_enabled? %d\n",mme_enabled);
if (first_sync==1 && !(mme_enabled==1 && abstraction_flag==0)) {
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
{
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,
frameP,
CCCH,1,
&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);
Size16 = (uint16_t)Size;
//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,
} 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)
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,
6);
......@@ -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);
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,
6, //not used
(char *)&ulsch_buff[0]);
......
......@@ -460,7 +460,7 @@ ue_send_sdu(
(uint8_t*)payload_ptr,
rx_lengths[i],
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);
//printf("1\n");
......@@ -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]);
mac_rlc_data_ind(module_idP,
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,
ENB_FLAG_NO,
MBMS_FLAG_NO,
......@@ -490,7 +490,7 @@ ue_send_sdu(
#endif
mac_rlc_data_ind(module_idP,
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,
ENB_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
(uint8_t *)pdu,
len,
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);
//printf("2\n");
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
(uint8_t *)pdu,
len,
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);
//printf("3\n");
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
is_lcid_processed = FALSE;
lcid_buffer_occupancy_old = mac_rlc_get_buffer_occupancy_ind(module_idP,
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,
subframe,
ENB_FLAG_NO,
......@@ -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,
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,
ENB_FLAG_NO,
MBMS_FLAG_NO,
......@@ -1519,7 +1519,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid
/* Get updated BO after multiplexing this PDU */
lcid_buffer_occupancy_new = mac_rlc_get_buffer_occupancy_ind(module_idP,
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,
subframe,
ENB_FLAG_NO,
......@@ -1857,7 +1857,7 @@ ue_scheduler(
#endif
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)
do {
......@@ -1904,11 +1904,11 @@ ue_scheduler(
UE_mac_inst[module_idP].rxSubframe = rxSubframeP;
#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
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)) {
case RRC_OK:
break;
......@@ -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];
}
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,
0xFFFF); //TBS is not used in RLC at this step, set a special value for debug
......
......@@ -264,10 +264,10 @@ rlc_am_receive_routing (
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);
// Test if remaining bytes not processed (up to know, highest probability is bug in MAC)
AssertFatal( tb_size_in_bytes == 0,
"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);
//AssertFatal( tb_size_in_bytes == 0,
// "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",
......
......@@ -652,7 +652,7 @@ rrc_data_ind(
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)
{
MessageDef *message_p;
......@@ -671,20 +671,27 @@ printf("rrc_in_sync_ind:eNB_index %d\n",eNB_index);//enb_id=ue->common_vars.enb_
}
#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)
{
//-------------------------------------------------------------------------------------------//
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)
LOG_I(RRC,"[UE %d] Frame %d: OUT OF 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].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);
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)
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*/,
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);
#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
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).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);
}
#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
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
if (rrc_get_state(ue_mod_id) == RRC_STATE_INACTIVE) {
// have a look at MAC/main.c void dl_phy_sync_success(...)
//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 */
......@@ -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);
//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;
switch (rrc_get_state(ue_mod_id)) {
case RRC_STATE_IDLE: {
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");
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
length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data);
/* 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)
//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,
DCCH,
......@@ -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)) {
case RRC_STATE_IDLE: {
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);
rrc_ue_generate_RRCConnectionRequest(&ctxt, 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, 0/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/);
LOG_D(RRC, "not sending connection request\n");
rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_CONNECTING);
}
......
......@@ -46,6 +46,7 @@
#include <sys/types.h>
#include <sys/socket.h> // socket, setsockopt, connect, bind, recv, send
#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 ****************/
/****************************************************************************/
......@@ -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_addr, *sp; /* endpoint address */
int sfd; /* socket file descriptor */
printf("socket_udp_open: port %s, host %s, type %d\n",port, host,type);
/*
* Parameters sanity check
* -----------------------
......@@ -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) {
/* Create the socket endpoint for communication */
sfd = socket (sp->ai_family, sp->ai_socktype, sp->ai_protocol);
printf("sfd0 %d, sfp %x\n",sfd,socket_addr);
if (sfd < 0) {
continue;
}
......@@ -222,7 +223,7 @@ void* socket_udp_open(int type, const char* host, const char* port)
sid->port = atoi (port);
sid->fd = sfd;
}
printf("sfd %d\n",sfd);
return sid;
}
......
......@@ -132,6 +132,7 @@ int user_api_initialize(user_api_id_t *user_api_id, const char* host, const char
/* Initialize communication channel */
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) {
const char* error = ( (errno < 0) ?
......
......@@ -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",
_emm_fsm_event_str[primitive - _EMMREG_START - 1], primitive,
_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 */
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
int exit_loop = FALSE;
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++) {
if (events[event].events != 0) {
/* 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);
//printf("[UE] ueid %d\n", user->ueid);
if ( user != NULL ) {
exit_loop = nas_user_receive_and_process(user, NULL);
} else {
......@@ -93,11 +94,15 @@ void *nas_ue_task(void *args_p)
instance_t instance;
unsigned int Mod_id;
int result;
//NB_eNB_INST=NB_eNB_INST-1;
nas_user_container_t *users=args_p;
itti_mark_task_ready (TASK_NAS_UE);
MSC_START_USE();
/* 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++)
{
nas_user_t *user = &users->item[i];
......@@ -302,6 +307,7 @@ char *make_port_str_from_ueid(const char *base_port_str, int ueid) {
}
port = base_port + ueid;
//printf("make_port_str_from_ueid: port %d\n",port);
if ( port<1 || port > 65535 ) {
return NULL;
}
......
......@@ -47,6 +47,9 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
LOG_E(PDCP, "Create task for L2L1 failed\n");
return -1;
}
else{
printf("Create task for L2L1 succeeded\n");
}
if (enb_nb > 0) {
/* 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)
LOG_E(ENB_APP, "Create task for eNB APP failed\n");
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)
# if defined(ENABLE_USE_MME)
{
if (enb_nb > 0) {
printf("ENABLE_USE_MME\n");
if (itti_create_task (TASK_SCTP, sctp_eNB_task, NULL) < 0) {
LOG_E(SCTP, "Create task for SCTP failed\n");
return -1;
}
else
printf("Create task for SCTP succeeded\n");
if (itti_create_task (TASK_S1AP, s1ap_eNB_task, NULL) < 0) {
LOG_E(S1AP, "Create task for S1AP failed\n");
return -1;
}
else
printf("Create task for S1AP succeeded\n");
if (itti_create_task (TASK_UDP, udp_eNB_task, NULL) < 0) {
LOG_E(UDP_, "Create task for UDP failed\n");
return -1;
}
else
printf("Create task for UDP succeeded\n");
if (itti_create_task (TASK_GTPV1_U, &gtpv1u_eNB_task, NULL) < 0) {
LOG_E(GTPU, "Create task for GTPV1U failed\n");
return -1;
}
else
printf("Create task for GTPV1U succeeded\n");
}
# if defined(NAS_BUILT_IN_UE)
......@@ -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");
return -1;
}
else
printf("Create task for NAS UE succeeded:ue_nb %d\n",ue_nb);
}
# endif
}
......@@ -104,7 +122,6 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
}
# if ENABLE_RAL
if (itti_create_task (TASK_RAL_ENB, eRAL_task, NULL) < 0) {
LOG_E(RAL_ENB, "Create task for RAL eNB failed\n");
return -1;
......
......@@ -6,7 +6,7 @@ eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
eNB_ID = 0xe01;
cell_type = "CELL_MACRO_ENB";
......@@ -33,9 +33,9 @@ eNBs =
eutra_band = 7;
downlink_frequency = 2685000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
Nid_cell = 1;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
Nid_cell_mbsfn = 1;
nb_antenna_ports = 1;
nb_antennas_tx = 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 = "none";
......@@ -194,11 +194,11 @@ eNBs =
,
{
////////// Identification parameters:
eNB_ID = 0xe01;
eNB_ID = 0xe00;
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 = "1";
......
......@@ -588,9 +588,9 @@ static void *UE_thread_synch_freq(void *arg) {
case pbch:
#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
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
//Pushed N_RB_DL, PHICH_CONFIG, FRAME_NUMBER
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
frame_parms->samples_per_tti,
12);
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]);
#ifdef DEBUG_SIM
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][
//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);
//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);
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);
#ifdef DEBUG_SIM
......
......@@ -1331,12 +1331,13 @@ main (int argc, char **argv)
exit(-1); // need a softer mode
}
else {
//NB_eNB_INST=1;
if (create_tasks(0,
oai_emulation.info.nb_ue_local) < 0)
exit(-1); // need a softer mode
//NB_eNB_INST=2;
}
#endif
// wait for all threads to startup
sleep(3);
printf("Sending sync to all threads\n");
......
......@@ -848,6 +848,7 @@ void get_simulation_options(int argc, char *argv[])
}
free(conf_config_file_name);
conf_config_file_name = 0;
//NB_eNB_INST=NB_eNB_INST-1;
}
void check_and_adjust_params(void)
......@@ -1046,7 +1047,7 @@ int UE_trx_set_gains(openair0_device *device, openair0_config_t *openair0_cfg) {
extern pthread_mutex_t subframe_mutex;
extern int subframe_eNB_mask,subframe_UE_mask;
static int first_run=0;
//static int first_run=0;
//static int count=0;
//static int sum=0;
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 *
int CC_id = device->CC_id;
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 read_samples, max_samples;
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 *
{
//clock_t start=clock();
//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);
do_UL_sig_freq_prach(UE2eNB,
enb_data,
......@@ -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);
//clock_t start=clock();
do_UL_sig_freq(UE2eNB,
enb_data,
ue_data,
......@@ -1204,6 +1207,8 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
int subframe;
//int frame=0;
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];
*ptimestamp = last_UE_rx_timestamp[UE_id][CC_id];
......@@ -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);
//clock_t start=clock();
do_DL_sig_freq(eNB2UE,
do_DL_sig_freq(eNB2UE,
enb_data,
ue_data,
subframe,
......@@ -1452,8 +1457,8 @@ void init_openair1(void)
{
module_id_t UE_id;
uint8_t eNB_id = 0;
uint8_t RN_id = 0;
uint8_t CC_id;
//uint8_t RN_id = 0;
uint8_t CC_id = 0;
#if ENABLE_RAL
int list_index;
#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