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]);
// 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);
if(ru->is_slave==0&&((proc->RU_mask[ru->proc.subframe_rx]&(1<<i))==1)&&eNB->RU_list[i]->state==RU_RUN){// This is master & the RRU has already been received
LOG_E(PHY,"RU %d is not SYNC, subframe %d, time %f this is master\n",eNB->RU_list[i]->idx,ru->proc.subframe_rx,fabs(eNB->RU_list[i]->proc.t[ru->proc.subframe_rx].tv_nsec-eNB->RU_list[0]->proc.t[ru->proc.subframe_rx].tv_nsec));
...
...
@@ -1208,6 +1221,7 @@ void wakeup_L1s(RU_t *ru) {
LOG_D(PHY,"ru->proc.subframe_rx is %d \n",ru->proc.subframe_rx);
LOG_D(PHY,"Reseting mask frame %d, subframe %d, this is RU %d\n",ru->proc.frame_rx,ru->proc.subframe_rx,ru->idx);
if(eNB_proc->RU_mask_tx!=(1<<eNB->num_RU)-1){// not all RUs have provided their information so return
LOG_I(PHY,"Not all RUs have provided their info (mask = %d)\n",eNB_proc->RU_mask_tx);
//printf("Not all RUs have provided their info (mask = %d), RU %d, num_RUs %d\n", eNB_proc->RU_mask_tx,ru->idx,eNB->num_RU);
pthread_mutex_unlock(&eNB_proc->mutex_RU_tx);
}
else{// all RUs TX are finished so send the ready signal to eNB processing
LOG_I(PHY,"All RUs TX are finished. Ready to send wakeup signal to eNB processing\n");
//printf("All RUs TX are finished. Ready to send wakeup signal to eNB processing, num_RUs %d, RU %d, mask %d\n", eNB->num_RU,ru->idx,eNB_proc->RU_mask_tx);