diff --git a/common/utils/LOG/vcd_signal_dumper.c b/common/utils/LOG/vcd_signal_dumper.c index db7dc71774..ebdebe937d 100644 --- a/common/utils/LOG/vcd_signal_dumper.c +++ b/common/utils/LOG/vcd_signal_dumper.c @@ -86,26 +86,37 @@ const char* eurecomVariablesNames[] = { "frame_number_if4p5_north_asynch_in", "subframe_number_if4p5_south_out_ru", "subframe_number_if4p5_south_out_ru1", + "subframe_number_if4p5_south_out_ru2", "frame_number_if4p5_south_out_ru", "frame_number_if4p5_south_out_ru1", + "frame_number_if4p5_south_out_ru2", "subframe_number_if4p5_south_in_ru", "subframe_number_if4p5_south_in_ru1", + "subframe_number_if4p5_south_in_ru2", "frame_number_if4p5_south_in_ru", "frame_number_if4p5_south_in_ru1", + "frame_number_if4p5_south_in_ru2", "subframe_number_wakeup_l1s_ru", "subframe_number_wakeup_l1s_ru1", + "subframe_number_wakeup_l1s_ru2", "frame_number_wakeup_l1s_ru", "frame_number_wakeup_l1s_ru1", + "frame_number_wakeup_l1s_ru2", "subframe_number_wakeup_rxtx_rx_ru", "subframe_number_wakeup_rxtx_rx_ru1", + "subframe_number_wakeup_rxtx_rx_ru2", "frame_number_wakeup_rxtx_rx_ru", "frame_number_wakeup_rxtx_rx_ru1", + "frame_number_wakeup_rxtx_rx_ru2", "subframe_number_wakeup_rxtx_tx_ru", "subframe_number_wakeup_rxtx_tx_ru1", + "subframe_number_wakeup_rxtx_tx_ru2", "frame_number_wakeup_rxtx_tx_ru", "frame_number_wakeup_rxtx_tx_ru1", + "frame_number_wakeup_rxtx_tx_ru2", "ic_enb", "ic_enb1", + "ic_enb2", "l1_proc_ic", "l1_proc_tx_ic", "runtime_TX_eNB", @@ -252,6 +263,7 @@ const char* eurecomFunctionsNames[] = { "ue_lock_mutex_rxtx_for_cnt_increment1", "lock_mutex_ru", "lock_mutex_ru1", + "lock_mutex_ru2", /* simulation signals */ "do_DL_sig", "do_UL_sig", @@ -450,8 +462,10 @@ const char* eurecomFunctionsNames[] = { /* IF4/IF5 signals */ "send_if4_ru", "send_if4_ru1", + "send_if4_ru2", "recv_if4_ru", "recv_if4_ru1", + "recv_if4_ru2", "send_if5", "recv_if5", diff --git a/common/utils/LOG/vcd_signal_dumper.h b/common/utils/LOG/vcd_signal_dumper.h index 7c59cb849e..e3e7a6fe56 100644 --- a/common/utils/LOG/vcd_signal_dumper.h +++ b/common/utils/LOG/vcd_signal_dumper.h @@ -63,26 +63,37 @@ typedef enum { VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_NORTH_ASYNCH_IN, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU1, + VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU2, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU1, + VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU2, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU1, + VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU2, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_IN_RU, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_IN_RU1, + VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_IN_RU2, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_L1S_RU, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_L1S_RU1, + VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_L1S_RU2, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_L1S_RU, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_L1S_RU1, + VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_L1S_RU2, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU1, + VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU2, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_RX_RU, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_RX_RU1, + VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_RX_RU2, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU1, + VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU2, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_TX_RU, VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_TX_RU1, + VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_TX_RU2, VCD_SIGNAL_DUMPER_VARIABLES_IC_ENB, VCD_SIGNAL_DUMPER_VARIABLES_IC_ENB1, + VCD_SIGNAL_DUMPER_VARIABLES_IC_ENB2, VCD_SIGNAL_DUMPER_VARIABLES_L1_PROC_IC, VCD_SIGNAL_DUMPER_VARIABLES_L1_PROC_TX_IC, VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_TX_ENB, @@ -230,6 +241,7 @@ typedef enum { VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1, VCD_SIGNAL_DUMPER_FUNCTIONS_LOCK_MUTEX_RU, VCD_SIGNAL_DUMPER_FUNCTIONS_LOCK_MUTEX_RU1, + VCD_SIGNAL_DUMPER_FUNCTIONS_LOCK_MUTEX_RU2, /* SIMULATION signals */ VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_DL_SIGNAL, VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL, @@ -430,8 +442,10 @@ typedef enum { /* IF4/IF5 signals */ VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4_RU, VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4_RU1, + VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4_RU2, VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4_RU, VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4_RU1, + VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4_RU2, VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5, VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF5, diff --git a/common/utils/T/T_defs.h b/common/utils/T/T_defs.h index 23ce84594d..6bcf4c898b 100644 --- a/common/utils/T/T_defs.h +++ b/common/utils/T/T_defs.h @@ -41,10 +41,10 @@ typedef struct { } T_cache_t; /* number of VCD functions (to be kept up to date! see in T_messages.txt) */ -#define VCD_NUM_FUNCTIONS (220) +#define VCD_NUM_FUNCTIONS (223) /* number of VCD variables (to be kept up to date! see in T_messages.txt) */ -#define VCD_NUM_VARIABLES (158) +#define VCD_NUM_VARIABLES (169) /* first VCD function (to be kept up to date! see in T_messages.txt) */ #define VCD_FIRST_FUNCTION ((uintptr_t)T_VCD_FUNCTION_RT_SLEEP) diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt index b2865986b4..c0a07003b2 100644 --- a/common/utils/T/T_messages.txt +++ b/common/utils/T/T_messages.txt @@ -1070,6 +1070,11 @@ ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = subframe_number_if4p5_south_out_ru1 +ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU2 + DESC = VCD variable SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = subframe_number_if4p5_south_out_ru2 ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU DESC = VCD variable FRAME_NUMBER_IF4P5_SOUTH_OUT_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1080,6 +1085,11 @@ ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = frame_number_if4p5_south_out_ru1 +ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU2 + DESC = VCD variable FRAME_NUMBER_IF4P5_SOUTH_OUT_RU2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = frame_number_if4p5_south_out_ru2 ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU DESC = VCD variable SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1090,6 +1100,11 @@ ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = subframe_number_if4p5_south_in_ru1 +ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU2 + DESC = VCD variable SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = subframe_number_if4p5_south_in_ru2 ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_IN_RU DESC = VCD variable FRAME_NUMBER_IF4P5_SOUTH_IN_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1100,6 +1115,11 @@ ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_IN_RU1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = frame_number_if4p5_south_in_ru1 +ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_IN_RU2 + DESC = VCD variable FRAME_NUMBER_IF4P5_SOUTH_IN_RU2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = frame_number_if4p5_south_in_ru2 ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_L1S_RU DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_L1S_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1110,6 +1130,11 @@ ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_L1S_RU1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = subframe_number_wakeup_l1s_ru1 +ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_L1S_RU2 + DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_L1S_RU2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = subframe_number_wakeup_l1s_ru2 ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_L1S_RU DESC = VCD variable FRAME_NUMBER_WAKEUP_L1S_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1120,6 +1145,11 @@ ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_L1S_RU1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = frame_number_wakeup_l1s_ru1 +ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_L1S_RU2 + DESC = VCD variable FRAME_NUMBER_WAKEUP_L1S_RU2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = frame_number_wakeup_l1s_ru2 ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1130,6 +1160,11 @@ ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = subframe_number_wakeup_rxtx_rx_ru1 +ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU2 + DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = subframe_number_wakeup_rxtx_rx_ru2 ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_RX_RU DESC = VCD variable FRAME_NUMBER_WAKEUP_RXTX_RX_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1140,6 +1175,11 @@ ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_RX_RU1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = frame_number_wakeup_rxtx_rx_ru1 +ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_RX_RU2 + DESC = VCD variable FRAME_NUMBER_WAKEUP_RXTX_RX_RU2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = frame_number_wakeup_rxtx_rx_ru2 ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1150,6 +1190,11 @@ ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = subframe_number_wakeup_rxtx_tx_ru1 +ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU2 + DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = subframe_number_wakeup_rxtx_tx_ru2 ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_TX_RU DESC = VCD variable FRAME_NUMBER_WAKEUP_RXTX_TX_RU GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1160,6 +1205,11 @@ ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_TX_RU1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = frame_number_wakeup_rxtx_tx_ru1 +ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_TX_RU2 + DESC = VCD variable FRAME_NUMBER_WAKEUP_RXTX_TX_RU2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = frame_number_wakeup_rxtx_tx_ru2 ID = VCD_VARIABLE_IC_ENB DESC = VCD variable IC_ENB GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1170,6 +1220,11 @@ ID = VCD_VARIABLE_IC_ENB1 GROUP = ALL:VCD:ENB:VCD_VARIABLE FORMAT = ulong,value VCD_NAME = ic_enb1 +ID = VCD_VARIABLE_IC_ENB2 + DESC = VCD variable IC_ENB2 + GROUP = ALL:VCD:ENB:VCD_VARIABLE + FORMAT = ulong,value + VCD_NAME = ic_enb2 ID = VCD_VARIABLE_L1_PROC_IC DESC = VCD variable L1_PROC_IC GROUP = ALL:VCD:ENB:VCD_VARIABLE @@ -1883,6 +1938,11 @@ ID = VCD_FUNCTION_LOCK_MUTEX_RU1 GROUP = ALL:VCD:UE:VCD_FUNCTION FORMAT = int,value VCD_NAME = lock_mutex_ru1 +ID = VCD_FUNCTION_LOCK_MUTEX_RU2 + DESC = VCD function LOCK_MUTEX_RU2 + GROUP = ALL:VCD:UE:VCD_FUNCTION + FORMAT = int,value + VCD_NAME = lock_mutex_ru2 ID = VCD_FUNCTION_SIM_DO_DL_SIGNAL DESC = VCD function SIM_DO_DL_SIGNAL GROUP = ALL:VCD:ENB:VCD_FUNCTION @@ -2768,6 +2828,11 @@ ID = VCD_FUNCTION_SEND_IF4_RU1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value VCD_NAME = send_if4_ru1 +ID = VCD_FUNCTION_SEND_IF4_RU2 + DESC = VCD function SEND_IF4_RU2 + GROUP = ALL:VCD:ENB:VCD_FUNCTION + FORMAT = int,value + VCD_NAME = send_if4_ru2 ID = VCD_FUNCTION_RECV_IF4_RU DESC = VCD function RECV_IF4_RU GROUP = ALL:VCD:ENB:VCD_FUNCTION @@ -2778,6 +2843,11 @@ ID = VCD_FUNCTION_RECV_IF4_RU1 GROUP = ALL:VCD:ENB:VCD_FUNCTION FORMAT = int,value VCD_NAME = recv_if4_ru1 +ID = VCD_FUNCTION_RECV_IF4_RU2 + DESC = VCD function RECV_IF4_RU2 + GROUP = ALL:VCD:ENB:VCD_FUNCTION + FORMAT = int,value + VCD_NAME = recv_if4_ru2 ID = VCD_FUNCTION_SEND_IF5 DESC = VCD function SEND_IF5 GROUP = ALL:VCD:ENB:VCD_FUNCTION diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.c b/openair1/PHY/LTE_TRANSPORT/if4_tools.c index 494c3498c4..4ca522b605 100644 --- a/openair1/PHY/LTE_TRANSPORT/if4_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.c @@ -64,7 +64,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { eth_state_t *eth = (eth_state_t*) (ru->ifdevice.priv); int nsym = fp->symbols_per_tti; - if (ru->idx<=1) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4_RU+ru->idx,1); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4_RU+ru->idx,1); if (packet_type == IF4p5_PDLFFT) { LOG_D(PHY,"send DL_IF4p5: RU %d frame %d, subframe %d\n",ru->idx,frame,subframe); @@ -266,7 +266,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { AssertFatal(1==0, "send_IF4p5 - Unknown packet_type %x", packet_type); } - if (ru->idx<=1) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4_RU+ru->idx,0); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4_RU+ru->idx,0); return; } @@ -285,7 +285,7 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint int slotoffsetF=0, blockoffsetF=0; eth_state_t *eth = (eth_state_t*) (ru->ifdevice.priv); int idx; - if (ru->idx<=1) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4_RU+ru->idx,1); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4_RU+ru->idx,1); if (ru->function == NGFI_RRU_IF4p5) { db_fulllength = (12*fp->N_RB_DL)*ru->nb_tx; @@ -420,7 +420,7 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint AssertFatal(1==0, "recv_IF4p5 - Unknown packet_type %x", *packet_type); } - if (ru->idx<=1) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4_RU+ru->idx,0); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4_RU+ru->idx,0); return; } diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index da5ac448e6..479485fa3a 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -1189,19 +1189,20 @@ void wakeup_L1s(RU_t *ru) { //start_meas(&proc->ru_arrival_time); LOG_D(PHY,"RU %d starting timer for frame %d subframe %d\n",ru->idx, ru->proc.frame_rx,ru->proc.subframe_rx); } + for (i=0;inum_RU;i++) { if (eNB->RU_list[i]->wait_cnt==1 && ru->proc.subframe_rx!=9) eNB->RU_list[i]->wait_cnt=0; LOG_D(PHY,"RU %d has frame %d and subframe %d, state %s\n",eNB->RU_list[i]->idx,eNB->RU_list[i]->proc.frame_rx, eNB->RU_list[i]->proc.subframe_rx, ru_states[eNB->RU_list[i]->state]); - if (ru == eNB->RU_list[i] && eNB->RU_list[i]->wait_cnt == 0 /*|| eNB->RU_list[i]->is_slave==0*/) { + if (ru == eNB->RU_list[i] && eNB->RU_list[i]->wait_cnt == 0) { // AssertFatal((proc->RU_mask&(1<Mod_id,ru->proc.frame_rx,ru->proc.subframe_rx,ru->idx,eNB->num_RU,proc->RU_mask); proc->RU_mask[ru->proc.subframe_rx] |= (1<RU_list[i]->state == RU_SYNC || - (eNB->RU_list[i]->is_slave==1 && eNB->RU_list[i]->wait_cnt>0 && ru!=eNB->RU_list[i])){ + }else if (/*eNB->RU_list[i]->state == RU_SYNC || */ + (eNB->RU_list[i]->is_slave==1 && eNB->RU_list[i]->wait_cnt>0 && ru!=eNB->RU_list[i] && ru->is_slave==0)){ proc->RU_mask[ru->proc.subframe_rx] |= (1<idx,proc->RU_mask[ru->proc.subframe_rx],i); + //printf("RU %d, RU_mask[%d] %d, i %d, frame %d, slave %d, ru->cnt %d, i->cnt %d\n",ru->idx,ru->proc.subframe_rx,proc->RU_mask[ru->proc.subframe_rx],i,ru->proc.frame_rx,ru->is_slave,ru->wait_cnt,eNB->RU_list[i]->wait_cnt); VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_MASK_RU, proc->RU_mask[ru->proc.subframe_rx]); if (ru->is_slave == 0 && ( (proc->RU_mask[ru->proc.subframe_rx]&(1<RU_list[i]->state == RU_RUN) { // This is master & the RRU has already been received if (check_sync(eNB->RU_list[i],eNB->RU_list[0],ru->proc.subframe_rx) == 0) @@ -1590,8 +1591,7 @@ static void* ru_thread_tx( void* param ) { eNB_proc->RU_mask_tx |= (1<RU_list[j]->state==RU_SYNC || (eNB->RU_list[j]->is_slave==1 && eNB->RU_list[j]->wait_cnt>0 && ru != eNB->RU_list[j])){ - //else if (ru->state==RU_SYNC || (eNB->RU_list[j]->is_slave==1 && ru->state==RU_RUN && eNB->RU_list[j]->wait_cnt==0)){ + else if (/*eNB->RU_list[j]->state==RU_SYNC ||*/ (eNB->RU_list[j]->is_slave==1 && eNB->RU_list[j]->wait_cnt>0 && ru!=eNB->RU_list[j] && ru->is_slave==0)){ eNB_proc->RU_mask_tx |= (1<ifdevice.trx_ctlsend_func(&ru->ifdevice,&rru_config_msg,rru_config_msg.len)!=-1),"Failed to send msg to RAU\n"); resynch_done=1; } - /*if (ru->wait_cnt==0)*/ wakeup_L1s(ru); + wakeup_L1s(ru); } else {