From 103471e9cce9898071865b19e326d24ff8d15171 Mon Sep 17 00:00:00 2001 From: Raymond Knopp <raymond.knopp@eurecom.fr> Date: Fri, 2 Mar 2018 20:08:27 +0100 Subject: [PATCH] added "is_slave" flag parsing to RAU --- targets/RT/USER/lte-enb.c | 3 ++- targets/RT/USER/lte-ru.c | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c index 0ff9b34b9e..b300aac83e 100644 --- a/targets/RT/USER/lte-enb.c +++ b/targets/RT/USER/lte-enb.c @@ -249,7 +249,8 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam if (oai_exit) return(-1); - + + LOG_D(PHY,"Calling eNB_procedures_TX for SFN.SF %d.%d\n",proc->frame_tx,proc->subframe_tx); phy_procedures_eNB_TX(eNB, proc, no_relay, NULL, 1); stop_meas( &softmodem_stats_rxtx_sf ); diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index ce379495ba..38ede8340d 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -1241,7 +1241,7 @@ void wakeup_eNBs(RU_t *ru) { PHY_VARS_eNB *eNB=eNB_list[0]; eNB_proc_t *proc = &eNB->proc; - LOG_I(PHY,"wakeup_eNBs (num %d) for RU %d (state %s)ru->eNB_top:%p\n",ru->num_eNB,ru->idx, ru_states[ru->state],ru->eNB_top); + LOG_D(PHY,"wakeup_eNBs (num %d) for RU %d (state %s)ru->eNB_top:%p\n",ru->num_eNB,ru->idx, ru_states[ru->state],ru->eNB_top); if (ru->num_eNB==1 && ru->eNB_top!=0) { // call eNB function directly @@ -1252,6 +1252,7 @@ void wakeup_eNBs(RU_t *ru) { pthread_mutex_lock(&proc->mutex_RU); for (i=0;i<eNB->num_RU;i++) { + LOG_D(PHY,"RU %d state %s\n",eNB->RU_list[i]->idx,ru_states[eNB->RU_list[i]->state]); if (ru == eNB->RU_list[i]) { // AssertFatal((proc->RU_mask&(1<<i)) == 0, "eNB %d frame %d, subframe %d : previous information from RU %d (num_RU %d,mask %x) has not been served yet!\n",eNB->Mod_id,ru->proc.frame_rx,ru->proc.subframe_rx,ru->idx,eNB->num_RU,proc->RU_mask); proc->RU_mask |= (1<<i); @@ -1259,6 +1260,7 @@ void wakeup_eNBs(RU_t *ru) { proc->RU_mask |= (1<<i); } } + LOG_D(PHY,"RU mask is now %x\n",proc->RU_mask); if (proc->RU_mask != (1<<eNB->num_RU)-1) { // not all RUs have provided their information so return pthread_mutex_unlock(&proc->mutex_RU); return(0); @@ -1646,7 +1648,7 @@ static void* ru_thread_control( void* param ) { ru->state = (ru->is_slave == 1) ? RU_SYNC : RU_RUN ; - LOG_I(PHY, "Signaling main thread that RU %d is ready\n",ru->idx); + 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]); pthread_mutex_lock(&RC.ru_mutex); RC.ru_mask &= ~(1<<ru->idx); pthread_cond_signal(&RC.ru_cond); @@ -1657,6 +1659,7 @@ static void* ru_thread_control( void* param ) { // send start rru_config_msg.type = RRU_start; rru_config_msg.len = sizeof(RRU_CONFIG_msg_t); // TODO: set to correct msg len + LOG_I(PHY,"Sending Start to RRU %d\n", ru->idx); AssertFatal((ru->ifdevice.trx_ctlsend_func(&ru->ifdevice,&rru_config_msg,rru_config_msg.len)!=-1),"Failed to send msg to RU %d\n",ru->idx); @@ -2743,6 +2746,7 @@ void RCconfig_RU(void) { RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF4p5_MODE; printf("Setting function for RU %d to NGFI_RRU_IF4p5 (raw)\n",j); } + printf("RU %d is_slave=%s\n",j,*(RUParamList.paramarray[j][RU_IS_SLAVE_IDX].strptr)); if (strcmp(*(RUParamList.paramarray[j][RU_IS_SLAVE_IDX].strptr), "yes") == 0) RC.ru[j]->is_slave=1; else RC.ru[j]->is_slave=0; } @@ -2783,6 +2787,8 @@ void RCconfig_RU(void) { RC.ru[j]->if_timing = synch_to_other; RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF5_MOBIPASS; } + if (strcmp(*(RUParamList.paramarray[j][RU_IS_SLAVE_IDX].strptr), "yes") == 0) RC.ru[j]->is_slave=1; + else RC.ru[j]->is_slave=0; } /* strcmp(local_rf, "yes") != 0 */ RC.ru[j]->nb_tx = *(RUParamList.paramarray[j][RU_NB_TX_IDX].uptr); -- 2.26.2