Merge branch 'oairu' of https://gitlab.eurecom.fr/oai/openairinterface5g into oairu
This commit is contained in:
@@ -449,7 +449,7 @@ function main() {
|
||||
########################################################
|
||||
# to be discussed
|
||||
|
||||
if [ "$eNB" = "1" -o "$gNB" = "1" =o "$RU" = "1"] ; then
|
||||
if [ "$eNB" = "1" -o "$gNB" = "1" -o "$RU" = "1" ] ; then
|
||||
if [ "$HW" = "None" -a "$TP" = "None" ] ; then
|
||||
echo_info "No local radio head and no transport protocol selected"
|
||||
fi
|
||||
|
||||
+18
-13
@@ -76,8 +76,6 @@ uint16_t sf_ahead = 4;
|
||||
RU_t ru_m;
|
||||
|
||||
|
||||
static int DEFBANDS[] = {7};
|
||||
|
||||
void init_RU0(RU_t *ru,int ru_id,char *rf_config_file, int send_dmrssync);
|
||||
|
||||
void exit_function(const char *file, const char *function, const int line, const char *s) {
|
||||
@@ -163,16 +161,6 @@ int main ( int argc, char **argv )
|
||||
|
||||
|
||||
RU_t *ru=&ru_m;
|
||||
init_RU0(ru,0,get_softmodem_params()->rf_config_file,get_softmodem_params()->send_dmrs_sync);
|
||||
ru->rf_map.card=0;
|
||||
ru->rf_map.chain=(get_softmodem_params()->chain_offset);
|
||||
|
||||
LOG_I(PHY, "Initializing RRU descriptor %d : (%s,%s,%d)\n", ru_id, ru_if_types[ru->if_south], NB_timing[ru->if_timing], ru->function);
|
||||
set_function_spec_param(ru);
|
||||
LOG_I(PHY, "Starting ru_thread %d, is_slave %d, send_dmrs %d\n", ru_id, ru->is_slave, ru->generate_dmrs_sync);
|
||||
init_RU_proc(ru);
|
||||
|
||||
config_sync_var=0;
|
||||
|
||||
paramdef_t RUParams[] = RUPARAMS_DESC;
|
||||
paramlist_def_t RUParamList = {CONFIG_STRING_RU_LIST,NULL,0};
|
||||
@@ -323,7 +311,24 @@ int main ( int argc, char **argv )
|
||||
|
||||
|
||||
mlockall(MCL_CURRENT | MCL_FUTURE);
|
||||
|
||||
pthread_cond_init(&sync_cond,NULL);
|
||||
pthread_mutex_init(&sync_mutex, NULL);
|
||||
|
||||
init_RU0(ru,0,get_softmodem_params()->rf_config_file,get_softmodem_params()->send_dmrs_sync);
|
||||
ru->rf_map.card=0;
|
||||
ru->rf_map.chain=(get_softmodem_params()->chain_offset);
|
||||
|
||||
LOG_I(PHY, "Initializing RRU descriptor : (%s,%s,%d)\n", ru_if_types[ru->if_south], NB_timing[ru->if_timing], ru->function);
|
||||
set_function_spec_param(ru);
|
||||
LOG_I(PHY, "Starting ru_thread , is_slave %d, send_dmrs %d\n", ru->is_slave, ru->generate_dmrs_sync);
|
||||
init_RU_proc(ru);
|
||||
|
||||
config_sync_var=0;
|
||||
pthread_mutex_lock(&sync_mutex);
|
||||
sync_var=0;
|
||||
pthread_cond_broadcast(&sync_cond);
|
||||
pthread_mutex_unlock(&sync_mutex);
|
||||
|
||||
while (oai_exit==0) sleep(1);
|
||||
// stop threads
|
||||
|
||||
|
||||
@@ -533,7 +533,7 @@ void fh_if4p5_north_asynch_in(RU_t *ru,
|
||||
LOG_D(PHY,"RU %d/%d TST %llu, frame %d, subframe %d\n",ru->idx,0,(long long unsigned int)proc->timestamp_tx,frame_tx,tti_tx);
|
||||
|
||||
// dump VCD output for first RU in list
|
||||
if (ru == RC.ru[0]) {
|
||||
if (ru->idx == 0) {
|
||||
/*VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_RU, frame_tx );
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TTI_NUMBER_TX0_RU, tti_tx );*/
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_NORTH_ASYNCH_IN, frame_tx);
|
||||
@@ -729,7 +729,7 @@ void rx_rf(RU_t *ru,
|
||||
proc->tti_rx);
|
||||
|
||||
// dump VCD output for first RU in list
|
||||
if (ru == RC.ru[0]) {
|
||||
if (ru->idx == 0) {
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_RU, proc->frame_rx );
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TTI_NUMBER_RX0_RU, proc->tti_rx );
|
||||
|
||||
@@ -1730,8 +1730,10 @@ static void *ru_thread( void *param ) {
|
||||
|
||||
// wait to be woken up
|
||||
if (ru->function!=eNodeB_3GPP && ru->has_ctrl_prt == 1) {
|
||||
LOG_I(PHY,"Waiting for control thread to say go\n");
|
||||
if (wait_on_condition(&ru->proc.mutex_ru,&ru->proc.cond_ru_thread,&ru->proc.instance_cnt_ru,"ru_thread")<0) break;
|
||||
} else wait_sync("ru_thread");
|
||||
} else wait_sync("ru_thread");
|
||||
LOG_I(PHY,"Got start from control thread\n");
|
||||
|
||||
if(!(get_softmodem_params()->emulate_rf)) {
|
||||
if (ru->is_slave == 0) AssertFatal(ru->state == RU_RUN,"ru-%d state = %s != RU_RUN\n",ru->idx,ru_states[ru->state]);
|
||||
@@ -1759,7 +1761,7 @@ static void *ru_thread( void *param ) {
|
||||
// if this is a slave RRU, try to synchronize on the DL frequency
|
||||
if ((ru->is_slave == 1) && (ru->if_south == LOCAL_RF)) do_ru_synch(ru);
|
||||
|
||||
LOG_D(PHY,"Starting steady-state operation\n");
|
||||
LOG_I(PHY,"Starting steady-state operation\n");
|
||||
|
||||
// This is a forever while loop, it loops over subframes which are scheduled by incoming samples from HW devices
|
||||
while (ru->state == RU_RUN || ru->state == RU_CHECK_SYNC) {
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
|
||||
int attach_rru(RU_t *ru);
|
||||
void configure_ru(int idx, void *arg);
|
||||
void configure_rru(int idx, void *arg);
|
||||
void configure_rru(RU_t *ru, void *arg);
|
||||
void fill_rf_config(RU_t *ru, char *rf_config_file);
|
||||
void* ru_thread_control( void* param );
|
||||
|
||||
@@ -335,7 +335,7 @@ int connect_rau(RU_t *ru)
|
||||
((RRU_config_t *)&rru_config_msg.msg[0])->prach_FreqOffset[0],
|
||||
((RRU_config_t *)&rru_config_msg.msg[0])->prach_ConfigIndex[0]);
|
||||
|
||||
configure_rru(ru->idx,
|
||||
configure_rru(ru,
|
||||
(void*)&rru_config_msg.msg[0]);
|
||||
configuration_received = 1;
|
||||
}
|
||||
@@ -440,11 +440,10 @@ void configure_ru(int idx,
|
||||
phy_init_RU(ru);
|
||||
}
|
||||
|
||||
void configure_rru(int idx,
|
||||
void configure_rru(RU_t *ru,
|
||||
void *arg)
|
||||
{
|
||||
RRU_config_t *config = (RRU_config_t *)arg;
|
||||
RU_t *ru = RC.ru[idx];
|
||||
|
||||
ru->frame_parms->eutra_band = config->band_list[0];
|
||||
ru->frame_parms->dl_CarrierFreq = config->tx_freq[0];
|
||||
@@ -603,7 +602,7 @@ void* ru_thread_control( void* param )
|
||||
((RRU_config_t *)&rru_config_msg.msg[0])->prach_ConfigIndex[0]);
|
||||
|
||||
ru->frame_parms = calloc(1, sizeof(*ru->frame_parms));
|
||||
configure_rru(ru->idx, (void*)&rru_config_msg.msg[0]);
|
||||
configure_rru(ru, (void*)&rru_config_msg.msg[0]);
|
||||
|
||||
|
||||
fill_rf_config(ru,ru->rf_config_file);
|
||||
|
||||
Reference in New Issue
Block a user