Commit bcabf5fe authored by Raymond Knopp's avatar Raymond Knopp

tracing for if4p5 fronthaul

parent c3b93285
...@@ -307,10 +307,12 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint ...@@ -307,10 +307,12 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint
0) < 0) { 0) < 0) {
perror("ETHERNET read"); perror("ETHERNET read");
read_cnt++; read_cnt++;
/*
if (read_cnt == 2) { if (read_cnt == 2) {
ru->cmd = STOP_RU; ru->cmd = STOP_RU;
return; return;
} }*/
LOG_E(PHY,"if4p5 read_cnt %d\n",read_cnt);
} }
if (ru->idx<=1) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF0+ru->idx, 0 ); if (ru->idx<=1) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF0+ru->idx, 0 );
if (eth->flags == ETH_RAW_IF4p5_MODE) { if (eth->flags == ETH_RAW_IF4p5_MODE) {
......
...@@ -97,9 +97,10 @@ void feptx0(RU_t *ru,int slot) { ...@@ -97,9 +97,10 @@ void feptx0(RU_t *ru,int slot) {
fp->nb_prefix_samples, fp->nb_prefix_samples,
CYCLIC_PREFIX); CYCLIC_PREFIX);
else { else {
AssertFatal(ru->generate_dmrs_sync==1 && (fp->frame_type != TDD || ru->is_slave == 1), AssertFatal(ru->generate_dmrs_sync == 0 ||
"ru->generate_dmrs_sync should not be set, frame_type %d, is_slave %d\n", ru->generate_dmrs_sync==1 && (fp->frame_type != TDD || ru->is_slave == 1),
fp->frame_type,ru->is_slave); "ru->generate_dmrs_sync should not be set (%d), frame_type %s, is_slave %d\n",
ru->generate_dmrs_sync,(fp->frame_type==1)?"TDD":"FDD",ru->is_slave);
if (ru->generate_dmrs_sync == 1 && slot == 0 && subframe == 1 && aa==0) { if (ru->generate_dmrs_sync == 1 && slot == 0 && subframe == 1 && aa==0) {
generate_drs_pusch((PHY_VARS_UE *)NULL, generate_drs_pusch((PHY_VARS_UE *)NULL,
......
...@@ -2208,10 +2208,11 @@ void init_RU_proc(RU_t *ru) { ...@@ -2208,10 +2208,11 @@ void init_RU_proc(RU_t *ru) {
if ((ru->if_timing == synch_to_other) || if ((ru->if_timing == synch_to_other) ||
(ru->function == NGFI_RRU_IF5) || (ru->function == NGFI_RRU_IF5) ||
(ru->function == NGFI_RRU_IF4p5)) (ru->function == NGFI_RRU_IF4p5)) {
{ LOG_I(PHY,"Starting ru_thread_asynch_rxtx, ru->is_slave %d, ru->generate_dmrs_sync %d\n",
pthread_create( &proc->pthread_asynch_rxtx, attr_asynch, ru_thread_asynch_rxtx, (void*)ru ); ru->is_slave,ru->generate_dmrs_sync);
} pthread_create( &proc->pthread_asynch_rxtx, attr_asynch, ru_thread_asynch_rxtx, (void*)ru );
}
} }
...@@ -2243,7 +2244,7 @@ void init_RU_proc(RU_t *ru) { ...@@ -2243,7 +2244,7 @@ void init_RU_proc(RU_t *ru) {
if (ru->function == eNodeB_3GPP) { if (ru->function == eNodeB_3GPP) {
usleep(10000); usleep(10000);
LOG_I(PHY, "Signaling main thread that RU %d (is_slave %d) is ready in state %s\n",ru->idx,ru->is_slave,ru_states[ru->state]); LOG_I(PHY, "Signaling main thread that RU %d (is_slave %d,send_dmrs %d) is ready in state %s\n",ru->idx,ru->is_slave,ru->generate_dmrs_sync,ru_states[ru->state]);
pthread_mutex_lock(&RC.ru_mutex); pthread_mutex_lock(&RC.ru_mutex);
RC.ru_mask &= ~(1<<ru->idx); RC.ru_mask &= ~(1<<ru->idx);
pthread_cond_signal(&RC.ru_cond); pthread_cond_signal(&RC.ru_cond);
...@@ -2567,7 +2568,15 @@ void init_RU(char *rf_config_file, clock_source_t clock_source,clock_source_t ti ...@@ -2567,7 +2568,15 @@ void init_RU(char *rf_config_file, clock_source_t clock_source,clock_source_t ti
ru->rf_config_file = rf_config_file; ru->rf_config_file = rf_config_file;
ru->idx = ru_id; ru->idx = ru_id;
ru->ts_offset = 0; ru->ts_offset = 0;
ru->in_synch = (ru->is_slave == 1) ? 0 : 1; if (ru->is_slave == 1) {
ru->in_synch = 0;
ru->dmrssync = 0;
}
else {
ru->in_synch = 1;
ru->dmrssync = 0;
ru->generate_dmrs_sync=send_dmrssync;
}
ru->cmd = EMPTY; ru->cmd = EMPTY;
// use eNB_list[0] as a reference for RU frame parameters // use eNB_list[0] as a reference for RU frame parameters
// NOTE: multiple CC_id are not handled here yet! // NOTE: multiple CC_id are not handled here yet!
...@@ -2598,7 +2607,7 @@ void init_RU(char *rf_config_file, clock_source_t clock_source,clock_source_t ti ...@@ -2598,7 +2607,7 @@ void init_RU(char *rf_config_file, clock_source_t clock_source,clock_source_t ti
// LOG_I(PHY,"Initializing RRU descriptor %d : (%s,%s,%d)\n",ru_id,ru_if_types[ru->if_south],eNB_timing[ru->if_timing],ru->function); // LOG_I(PHY,"Initializing RRU descriptor %d : (%s,%s,%d)\n",ru_id,ru_if_types[ru->if_south],eNB_timing[ru->if_timing],ru->function);
set_function_spec_param(ru); set_function_spec_param(ru);
LOG_I(PHY,"Starting ru_thread %d\n",ru_id); LOG_I(PHY,"Starting ru_thread %d, is_slave %d, send_dmrs %d\n",ru_id,ru->is_slave,ru->dmrssync);
init_RU_proc(ru); init_RU_proc(ru);
......
[*] [*]
[*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI [*] GTKWave Analyzer v3.3.66 (w)1999-2015 BSI
[*] Tue Jun 5 09:36:17 2018 [*] Fri Aug 24 12:15:17 2018
[*] [*]
[dumpfile] "/tmp/openair_dump_UE.vcd" [dumpfile] "/tmp/openair_rru_dump.vcd"
[dumpfile_mtime] "Tue Jun 5 09:22:52 2018" [dumpfile_mtime] "Fri Aug 24 12:10:15 2018"
[dumpfile_size] 23057775 [dumpfile_size] 27839039
[savefile] "/home/knopp/oai/openairinterface5g/targets/RT/USER/rru_if4p5_usrp.gtkw" [savefile] "/home/libra/oai/openairinterface5g/targets/RT/USER/rru_if4p5_usrp.gtkw"
[timestart] 25050480000 [timestart] 10300310000
[size] 1301 716 [size] 1301 716
[pos] 309 0 [pos] 309 0
*-21.793451 29983948856 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 *-23.793451 29983948856 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
[sst_width] 312 [sst_width] 391
[signals_width] 262 [signals_width] 262
[sst_expanded] 1 [sst_expanded] 1
[sst_vpaned_height] 294 [sst_vpaned_height] 294
...@@ -20,9 +20,11 @@ functions.trx_write ...@@ -20,9 +20,11 @@ functions.trx_write
@24 @24
variables.trx_write_flags[63:0] variables.trx_write_flags[63:0]
@28 @28
functions.trx_write_if
functions.send_if4 functions.send_if4
functions.trx_read_if @29
functions.phy_procedures_ru_feprx0
@28
functions.phy_procedures_ru_feptx_ofdm0
functions.recv_if4 functions.recv_if4
@24 @24
variables.trx_ts[63:0] variables.trx_ts[63:0]
...@@ -30,7 +32,6 @@ variables.trx_tst[63:0] ...@@ -30,7 +32,6 @@ variables.trx_tst[63:0]
variables.frame_number_RX0_RU[63:0] variables.frame_number_RX0_RU[63:0]
variables.subframe_number_RX0_RU[63:0] variables.subframe_number_RX0_RU[63:0]
variables.frame_number_TX0_RU[63:0] variables.frame_number_TX0_RU[63:0]
@25
variables.subframe_number_TX0_RU[63:0] variables.subframe_number_TX0_RU[63:0]
[pattern_trace] 1 [pattern_trace] 1
[pattern_trace] 0 [pattern_trace] 0
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