Commit 4480ed0f authored by lfarizav's avatar lfarizav

fixing some UL channel issues

parent 3f358655
...@@ -1782,7 +1782,6 @@ void rx_prach(PHY_VARS_eNB *eNB, ...@@ -1782,7 +1782,6 @@ void rx_prach(PHY_VARS_eNB *eNB,
break; break;
case 50: case 50:
printf("[prach.c] prach2 %x, +24576 %x\n",prach2,prach2+24576);
if (prach_fmt == 4) { if (prach_fmt == 4) {
dft2048(prach2,rxsigF[aa],1);//7.5Khz*2=15Khz-->2*1024=2048 PRACH subcarriers dft2048(prach2,rxsigF[aa],1);//7.5Khz*2=15Khz-->2*1024=2048 PRACH subcarriers
} else { } else {
......
...@@ -139,7 +139,7 @@ eNBs = ...@@ -139,7 +139,7 @@ eNBs =
////////// MME parameters: ////////// MME parameters:
mme_ip_address = ( { ipv4 = "172.24.10.179"; mme_ip_address = ( { ipv4 = "172.24.11.201";
ipv6 = "192:168:30::17"; ipv6 = "192:168:30::17";
active = "yes"; active = "yes";
preference = "ipv4"; preference = "ipv4";
......
...@@ -948,6 +948,7 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) { ...@@ -948,6 +948,7 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
lte_subframe_t SF_type = subframe_select(fp,(proc->subframe_rx+tx_sfoffset)%10); lte_subframe_t SF_type = subframe_select(fp,(proc->subframe_rx+tx_sfoffset)%10);
lte_subframe_t prevSF_type = subframe_select(fp,(proc->subframe_rx+tx_sfoffset+9)%10); lte_subframe_t prevSF_type = subframe_select(fp,(proc->subframe_rx+tx_sfoffset+9)%10);
lte_subframe_t nextSF_type = subframe_select(fp,(proc->subframe_rx+tx_sfoffset+1)%10); lte_subframe_t nextSF_type = subframe_select(fp,(proc->subframe_rx+tx_sfoffset+1)%10);
printf("[lte-enb_time]frame %d, subframe %d\n",*frame,*subframe);
if ((SF_type == SF_DL) || if ((SF_type == SF_DL) ||
(SF_type == SF_S)) { (SF_type == SF_S)) {
...@@ -1094,7 +1095,7 @@ void rx_rf_freq(PHY_VARS_eNB *eNB,int *frame,int *subframe) { ...@@ -1094,7 +1095,7 @@ void rx_rf_freq(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
lte_subframe_t SF_type = subframe_select(fp,(proc->subframe_rx%10)); lte_subframe_t SF_type = subframe_select(fp,(proc->subframe_rx%10));
lte_subframe_t prevSF_type = subframe_select(fp,(proc->subframe_rx+9)%10); lte_subframe_t prevSF_type = subframe_select(fp,(proc->subframe_rx+9)%10);
lte_subframe_t nextSF_type = subframe_select(fp,(proc->subframe_rx+1)%10); lte_subframe_t nextSF_type = subframe_select(fp,(proc->subframe_rx+1)%10);
printf("[lte-enb]frame %d, subframe %d\n",*frame,*subframe); printf("[lte-enb_freq]frame %d, subframe %d\n",*frame,*subframe);
if ((SF_type == SF_DL) || if ((SF_type == SF_DL) ||
(SF_type == SF_S)) { (SF_type == SF_S)) {
...@@ -1490,6 +1491,7 @@ void *eNB_thread_synch(void *arg) { ...@@ -1490,6 +1491,7 @@ void *eNB_thread_synch(void *arg) {
wait_sync("eNB_thread_synch"); wait_sync("eNB_thread_synch");
// initialize variables for PSS detection // initialize variables for PSS detection
if (!do_ofdm_mod)
lte_sync_time_init(&eNB->frame_parms); lte_sync_time_init(&eNB->frame_parms);
while (!oai_exit) { while (!oai_exit) {
...@@ -1727,8 +1729,7 @@ static void* eNB_thread_single( void* param ) { ...@@ -1727,8 +1729,7 @@ static void* eNB_thread_single( void* param ) {
int subframe=0, frame=0; int subframe=0, frame=0;
int32_t dummy_rx_freq[fp->nb_antennas_rx][fp->symbols_per_tti*fp->ofdm_symbol_size] __attribute__((aligned(32))); int32_t dummy_rx[fp->nb_antennas_rx][(do_ofdm_mod)?fp->symbols_per_tti*fp->ofdm_symbol_size:fp->samples_per_tti] __attribute__((aligned(32)));
int32_t dummy_rx[fp->nb_antennas_rx][fp->samples_per_tti] __attribute__((aligned(32)));
int ic; int ic;
...@@ -1824,7 +1825,7 @@ static void* eNB_thread_single( void* param ) { ...@@ -1824,7 +1825,7 @@ static void* eNB_thread_single( void* param ) {
// until we are done with the synchronization procedure // until we are done with the synchronization procedure
if (do_ofdm_mod){ if (do_ofdm_mod){
for (i=0; i<fp->nb_antennas_rx; i++) for (i=0; i<fp->nb_antennas_rx; i++)
rxp2_freq[i] = (void*)&dummy_rx_freq[i][0]; rxp2_freq[i] = (void*)&dummy_rx[i][0];
for (i=0;i<10;i++) for (i=0;i<10;i++)
rxs_freq = eNB->rfdevice.trx_read_func(&eNB->rfdevice, rxs_freq = eNB->rfdevice.trx_read_func(&eNB->rfdevice,
&(proc->timestamp_rx), &(proc->timestamp_rx),
...@@ -1854,6 +1855,7 @@ static void* eNB_thread_single( void* param ) { ...@@ -1854,6 +1855,7 @@ static void* eNB_thread_single( void* param ) {
} // ic>=0 } // ic>=0
} // in_synch==0 } // in_synch==0
// read in rx_offset samples // read in rx_offset samples
printf("[lte-enb] rx_offset %d/n",eNB->rx_offset);
LOG_I(PHY,"Resynchronizing by %d samples\n",eNB->rx_offset); LOG_I(PHY,"Resynchronizing by %d samples\n",eNB->rx_offset);
if (do_ofdm_mod){ if (do_ofdm_mod){
rxs_freq = eNB->rfdevice.trx_read_func(&eNB->rfdevice, rxs_freq = eNB->rfdevice.trx_read_func(&eNB->rfdevice,
...@@ -1913,7 +1915,7 @@ static void* eNB_thread_single( void* param ) { ...@@ -1913,7 +1915,7 @@ static void* eNB_thread_single( void* param ) {
proc_rxtx->timestamp_tx = proc->timestamp_tx; proc_rxtx->timestamp_tx = proc->timestamp_tx;
// adjust for timing offset between RRU // adjust for timing offset between RRU
if (eNB->CC_id!=0) proc_rxtx->frame_tx = (proc_rxtx->frame_tx+proc->frame_offset)&1023; if (eNB->CC_id!=0) proc_rxtx->frame_tx = (proc_rxtx->frame_tx+proc->frame_offset)&1023;
printf("[lte-enb] frame offset %d\n",proc->frame_offset);
// At this point, all information for subframe has been received on FH interface // At this point, all information for subframe has been received on FH interface
// If this proc is to provide synchronization, do so // If this proc is to provide synchronization, do so
wakeup_slaves(proc); wakeup_slaves(proc);
......
...@@ -1389,8 +1389,8 @@ void *UE_thread_freq(void *arg) { ...@@ -1389,8 +1389,8 @@ void *UE_thread_freq(void *arg) {
} }
if (sub_frame<10 && ((proc->frame_rx&0x1)==0)){ if (sub_frame<10 && ((proc->frame_rx&0x1)==0)){
write_output("lteue_rxsigF_frame0.m","lteue_rxsF0", UE->common_vars.common_vars_rx_data_per_thread[0].rxdataF[0],10*UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti,1,16); //write_output("lteue_rxsigF_frame0.m","lteue_rxsF0", UE->common_vars.common_vars_rx_data_per_thread[0].rxdataF[0],10*UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti,1,16);
write_output("lteue_rxsigF_frame1.m","lteue_rxsF1", UE->common_vars.common_vars_rx_data_per_thread[1].rxdataF[0],10*UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti,1,16); //write_output("lteue_rxsigF_frame1.m","lteue_rxsF1", UE->common_vars.common_vars_rx_data_per_thread[1].rxdataF[0],10*UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti,1,16);
//exit(-1); //exit(-1);
} }
//UE->proc.proc_rxtx[0].gotIQs=readTime(gotIQs); //UE->proc.proc_rxtx[0].gotIQs=readTime(gotIQs);
......
This diff is collapsed.
...@@ -51,6 +51,10 @@ void do_UL_sig_freq(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][ ...@@ -51,6 +51,10 @@ 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,
......
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