Commit 8354cfc6 authored by lfarizav's avatar lfarizav

asking all is_prach_subframe for all UE_id to trigger the do_UL_prach function

parent 25fbe844
...@@ -1106,7 +1106,7 @@ int phy_init_lte_ue(PHY_VARS_UE *ue, ...@@ -1106,7 +1106,7 @@ int phy_init_lte_ue(PHY_VARS_UE *ue,
LOG_D(PHY,"[MSC_NEW][FRAME 00000][PHY_UE][MOD %02u][]\n", ue->Mod_id+NB_eNB_INST); LOG_D(PHY,"[MSC_NEW][FRAME 00000][PHY_UE][MOD %02u][]\n", ue->Mod_id+NB_eNB_INST);
// many memory allocation sizes are hard coded // many memory allocation sizes are hard coded
AssertFatal( fp->nb_antennas_rx <= 2, "hard coded allocation for ue_common_vars->dl_ch_estimates[eNB_id]" ); AssertFatal( fp->nb_antennas_rx <= 2, "hard coded allocation for ue_common_vars->dl_ch_estimates[eNB_id]");
AssertFatal( ue->n_connected_eNB <= NUMBER_OF_CONNECTED_eNB_MAX, "n_connected_eNB is too large" ); AssertFatal( ue->n_connected_eNB <= NUMBER_OF_CONNECTED_eNB_MAX, "n_connected_eNB is too large" );
// do_ofdm_mod for frequency analysis // do_ofdm_mod for frequency analysis
......
...@@ -862,9 +862,9 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode) ...@@ -862,9 +862,9 @@ int initial_sync(PHY_VARS_UE *ue, runmode_t mode)
int initial_sync_freq(PHY_VARS_UE *ue, runmode_t mode) int initial_sync_freq(PHY_VARS_UE *ue, runmode_t mode)
{ {
//int32_t sync_pos,sync_pos2,sync_pos_slot; //int32_t sync_pos,sync_pos2,sync_pos_slot;
int32_t metric_fdd_ncp=0,metric_fdd_ecp=0,metric_tdd_ncp=0,metric_tdd_ecp=0; //int32_t metric_fdd_ncp=0,metric_fdd_ecp=0,metric_tdd_ncp=0,metric_tdd_ecp=0;
uint8_t phase_fdd_ncp,phase_fdd_ecp,phase_tdd_ncp,phase_tdd_ecp; //uint8_t phase_fdd_ncp,phase_fdd_ecp,phase_tdd_ncp,phase_tdd_ecp;
uint8_t flip_fdd_ncp,flip_fdd_ecp,flip_tdd_ncp,flip_tdd_ecp; //uint8_t flip_fdd_ncp,flip_fdd_ecp,flip_tdd_ncp,flip_tdd_ecp;
// uint16_t Nid_cell_fdd_ncp=0,Nid_cell_fdd_ecp=0,Nid_cell_tdd_ncp=0,Nid_cell_tdd_ecp=0; // uint16_t Nid_cell_fdd_ncp=0,Nid_cell_fdd_ecp=0,Nid_cell_tdd_ncp=0,Nid_cell_tdd_ecp=0;
LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
int ret=-1; int ret=-1;
...@@ -890,14 +890,13 @@ int initial_sync_freq(PHY_VARS_UE *ue, runmode_t mode) ...@@ -890,14 +890,13 @@ int initial_sync_freq(PHY_VARS_UE *ue, runmode_t mode)
lte_gold(frame_parms,ue->lte_gold_table[0],frame_parms->Nid_cell); lte_gold(frame_parms,ue->lte_gold_table[0],frame_parms->Nid_cell);
ret=pbch_detection_freq(ue,mode); ret=pbch_detection_freq(ue,mode);
init_frame_parms(frame_parms,1); init_frame_parms(frame_parms,1);
printf("dumping enb frame params\n"); //printf("dumping enb frame params\n");
dump_frame_parms(&PHY_vars_eNB_g[0][0]->frame_parms); //dump_frame_parms(&PHY_vars_eNB_g[0][0]->frame_parms);
printf("dumping ue frame params\n"); //printf("dumping ue frame params\n");
dump_frame_parms(frame_parms); //dump_frame_parms(frame_parms);
//dump_frame_parms(&ue->frame_parms);
if (ret==0) { // fake first PBCH found so indicate sync to higher layers and configure frame parameters if (ret==0) { // fake first PBCH found so indicate sync to higher layers and configure frame parameters
printf("[UE%d] frame_type is %c\n",ue->Mod_id, ue->rx_offset); //printf("[UE%d] frame_type is %c\n",ue->Mod_id, ue->rx_offset);
//#ifdef DEBUG_INITIAL_SYNCH //#ifdef DEBUG_INITIAL_SYNCH
LOG_I(PHY,"[UE%d] In synch, rx_offset %d samples\n",ue->Mod_id, ue->rx_offset); LOG_I(PHY,"[UE%d] In synch, rx_offset %d samples\n",ue->Mod_id, ue->rx_offset);
//#endif //#endif
......
This diff is collapsed.
...@@ -51,10 +51,6 @@ void do_UL_sig_freq(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][ ...@@ -51,10 +51,6 @@ void do_UL_sig_freq(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][
node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX], node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],
uint16_t subframe,uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, uint16_t subframe,uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms,
uint32_t frame,int eNB_id,uint8_t CC_id); uint32_t frame,int eNB_id,uint8_t CC_id);
void do_UL_sig_freq_prach(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_NUM_CCs],
node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],
uint16_t subframe,uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms,
uint32_t frame,int eNB_id,uint8_t CC_id);
void do_UL_prach(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_NUM_CCs], void do_UL_prach(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_NUM_CCs],
node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX], node_desc_t *enb_data[NUMBER_OF_eNB_MAX],node_desc_t *ue_data[NUMBER_OF_UE_MAX],
uint16_t subframe,uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms, uint16_t subframe,uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms,
......
...@@ -1044,6 +1044,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void * ...@@ -1044,6 +1044,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
int ret = nsamps; int ret = nsamps;
int eNB_id = device->Mod_id; int eNB_id = device->Mod_id;
int CC_id = device->CC_id; int CC_id = device->CC_id;
int UE_id = 0;
int subframe; int subframe;
int read_samples, max_samples; int read_samples, max_samples;
...@@ -1052,10 +1053,9 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void * ...@@ -1052,10 +1053,9 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
*ptimestamp = last_eNB_rx_timestamp[eNB_id][CC_id]; *ptimestamp = last_eNB_rx_timestamp[eNB_id][CC_id];
int do_ofdm_mod = PHY_vars_UE_g[0][CC_id]->do_ofdm_mod; int do_ofdm_mod = PHY_vars_UE_g[0][CC_id]->do_ofdm_mod;
LTE_DL_FRAME_PARMS *frame_parms=&PHY_vars_UE_g[0][CC_id]->frame_parms;
uint32_t frame; uint32_t frame;
int n_ra_prb; //int n_ra_prb;
//uint8_t tdd_mapindex = PHY_vars_UE_g[0][0]->prach_resources[eNB_id]->ra_TDD_map_index; //uint8_t tdd_mapindex = PHY_vars_UE_g[0][0]->prach_resources[eNB_id]->ra_TDD_map_index;
if (do_ofdm_mod) if (do_ofdm_mod)
...@@ -1105,20 +1105,23 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void * ...@@ -1105,20 +1105,23 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
//printf("is Prach generated? %d, is prach_subframe? %d, frame %d, subframe %d, mode %d\n",PHY_vars_UE_g[0][CC_id]->generate_prach,is_prach_subframe(frame_parms,frame,subframe),frame,subframe,PHY_vars_UE_g[0][CC_id]->UE_mode[eNB_id]); //printf("is Prach generated? %d, is prach_subframe? %d, frame %d, subframe %d, mode %d\n",PHY_vars_UE_g[0][CC_id]->generate_prach,is_prach_subframe(frame_parms,frame,subframe),frame,subframe,PHY_vars_UE_g[0][CC_id]->UE_mode[eNB_id]);
if (do_ofdm_mod) if (do_ofdm_mod)
{ {
if (is_prach_subframe(frame_parms,frame,subframe) && PHY_vars_UE_g[0][CC_id]->generate_prach) for (UE_id=0; UE_id<NB_UE_INST; UE_id++){
{ if (is_prach_subframe(&PHY_vars_UE_g[UE_id][CC_id]->frame_parms,frame,subframe) && PHY_vars_UE_g[UE_id][CC_id]->generate_prach)
do_UL_prach(UE2eNB, {
enb_data, do_UL_prach(UE2eNB,
ue_data, enb_data,
subframe, ue_data,
0, // abstraction_flag subframe,
&PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms, 0, // abstraction_flag
0, // frame is only used for abstraction &PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms,
eNB_id, 0, // frame is only used for abstraction
CC_id); eNB_id,
//write_output("txprachF.m","prach_txF", PHY_vars_UE_g[0][CC_id]->prach_vars[0]->prachF,12*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16); CC_id);
//generate_prach(PHY_vars_UE_g[0][0],eNB_id,subframe,frame); //write_output("txprachF.m","prach_txF", PHY_vars_UE_g[0][CC_id]->prach_vars[0]->prachF,12*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16);
//PHY_vars_UE_g[0][0]->generate_prach=1; //generate_prach(PHY_vars_UE_g[0][0],eNB_id,subframe,frame);
//PHY_vars_UE_g[0][0]->generate_prach=1;
break;
}
} }
do_UL_sig_freq(UE2eNB, do_UL_sig_freq(UE2eNB,
...@@ -1160,13 +1163,14 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** ...@@ -1160,13 +1163,14 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
int ret = nsamps; int ret = nsamps;
int UE_id = device->Mod_id; int UE_id = device->Mod_id;
int CC_id = device->CC_id; int CC_id = device->CC_id;
int subframe, frame; int subframe;
//int frame=0;
int read_samples, max_samples; int read_samples, max_samples;
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];
int do_ofdm_mod = PHY_vars_UE_g[0][0]->do_ofdm_mod; int do_ofdm_mod = PHY_vars_UE_g[UE_id][CC_id]->do_ofdm_mod;
LOG_D(EMU,"UE_trx_read nsamps %d TS(%llu,%llu) antenna %d\n",nsamps, LOG_D(EMU,"UE_trx_read nsamps %d TS(%llu,%llu) antenna %d\n",nsamps,
(unsigned long long)current_UE_rx_timestamp[UE_id][CC_id], (unsigned long long)current_UE_rx_timestamp[UE_id][CC_id],
...@@ -1206,12 +1210,12 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** ...@@ -1206,12 +1210,12 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
if (do_ofdm_mod) if (do_ofdm_mod)
{ {
subframe = (last/(PHY_vars_UE_g[UE_id][CC_id]->frame_parms.ofdm_symbol_size*PHY_vars_UE_g[UE_id][CC_id]->frame_parms.symbols_per_tti))%10; subframe = (last/(PHY_vars_UE_g[UE_id][CC_id]->frame_parms.ofdm_symbol_size*PHY_vars_UE_g[UE_id][CC_id]->frame_parms.symbols_per_tti))%10;
frame = (last/(10*PHY_vars_UE_g[UE_id][CC_id]->frame_parms.ofdm_symbol_size*PHY_vars_UE_g[UE_id][CC_id]->frame_parms.symbols_per_tti))%1023; //frame = (last/(10*PHY_vars_UE_g[UE_id][CC_id]->frame_parms.ofdm_symbol_size*PHY_vars_UE_g[UE_id][CC_id]->frame_parms.symbols_per_tti))%1023;
} }
else else
{ {
subframe = (last/PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti)%10; subframe = (last/PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti)%10;
frame = (last/(10*PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti))%1023; //frame = (last/(10*PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti))%1023;
} }
//printf("[oaisim_functs]UE_trx_read DL subframe %d, frame %d\n",subframe,frame); //printf("[oaisim_functs]UE_trx_read DL subframe %d, frame %d\n",subframe,frame);
//subframe = (subframe+9) % 10; //subframe = (subframe+9) % 10;
......
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