diff --git a/executables/lte-ru.c b/executables/lte-ru.c index 2cee48ffbc..54747a9578 100644 --- a/executables/lte-ru.c +++ b/executables/lte-ru.c @@ -93,12 +93,6 @@ void stop_RU(RU_t **rup,int nb_ru); static void do_ru_synch(RU_t *ru); -void configure_ru(int idx, - void *arg); - -void configure_rru(int idx, - void *arg); - void reset_proc(RU_t *ru); int connect_rau(RU_t *ru); @@ -2183,8 +2177,6 @@ int stop_rf(RU_t *ru) { return 0; } - -extern void configure_ru(int idx, void *arg); extern void fep_full(RU_t *ru, int subframe); extern void feptx_ofdm(RU_t *ru, int frame_tx, int tti_tx); extern void feptx_ofdm_2thread(RU_t *ru, int frame_tx, int tti_tx); diff --git a/executables/lte-softmodem.h b/executables/lte-softmodem.h index 058018001b..643c8c6572 100644 --- a/executables/lte-softmodem.h +++ b/executables/lte-softmodem.h @@ -189,8 +189,6 @@ void kill_feptx_thread(RU_t *ru); void init_fep_thread(RU_t *ru, pthread_attr_t *attr_fep); void init_feptx_thread(RU_t *ru, pthread_attr_t *attr_feptx); void fep_full(RU_t *ru, int subframe); -void configure_ru(int, void *arg); -void configure_rru(int, void *arg); void ru_fep_full_2thread(RU_t *ru,int subframe); void feptx_ofdm(RU_t*ru, int frame_tx, int tti_tx); void feptx_prec(struct RU_t_s *ru, int frame_tx, int tti_tx); diff --git a/executables/nr-ru.c b/executables/nr-ru.c index 41adc59bf6..9777c956f6 100644 --- a/executables/nr-ru.c +++ b/executables/nr-ru.c @@ -53,14 +53,6 @@ #include "common/utils/LOG/vcd_signal_dumper.h" #include - -#ifdef SMBV -#include "PHY/TOOLS/smbv.h" -unsigned short config_frames[4] = {2,9,11,13}; -#endif - - - /* these variables have to be defined before including ENB_APP/enb_paramdef.h and GNB_APP/gnb_paramdef.h */ static int DEFBANDS[] = {7}; static int DEFENBS[] = {0}; @@ -81,35 +73,14 @@ static int DEFRUTPCORES[] = {-1,-1,-1,-1}; #include "T.h" #include "nfapi_interface.h" #include - -extern int oai_exit; +#include "executables/nr-softmodem-common.h" uint16_t sl_ahead; - -extern struct timespec timespec_sub(struct timespec lhs, struct timespec rhs); -extern struct timespec timespec_add(struct timespec lhs, struct timespec rhs); -extern void nr_phy_free_RU(RU_t *); -extern void nr_phy_config_request(NR_PHY_Config_t *gNB); -#include "executables/thread-common.h" -//extern PARALLEL_CONF_t get_thread_parallel_conf(void); -//extern WORKER_CONF_t get_thread_worker_conf(void); - -void stop_RU(int nb_ru); - -void configure_ru(int idx, void *arg); -void configure_rru(int idx, void *arg); -int attach_rru(RU_t *ru); -int connect_rau(RU_t *ru); static void NRRCconfig_RU(configmodule_interface_t *cfg); -extern int emulate_rf; -extern int numerology; - /*************************************************************/ /* Functions to attach and configure RRU */ -extern void wait_gNBs(void); - int attach_rru(RU_t *ru) { ssize_t msg_len,len; RRU_CONFIG_msg_t rru_config_msg; @@ -146,8 +117,7 @@ int attach_rru(RU_t *ru) { } } - configure_ru(ru->idx, - (RRU_capabilities_t *)&rru_config_msg.msg[0]); + configure_ru(ru, (RRU_capabilities_t *)&rru_config_msg.msg[0]); rru_config_msg.type = RRU_config; rru_config_msg.len = sizeof(RRU_CONFIG_msg_t)-MAX_RRU_CONFIG_SIZE+sizeof(RRU_config_t); LOG_I(PHY,"Sending Configuration to RRU %d (num_bands %d,band0 %d,txfreq %u,rxfreq %u,att_tx %d,att_rx %d,N_RB_DL %d,N_RB_UL %d,3/4FS %d, prach_FO %d, prach_CI %d)\n",ru->idx, @@ -263,8 +233,7 @@ int connect_rau(RU_t *ru) { ((RRU_config_t *)&rru_config_msg.msg[0])->threequarter_fs[0], ((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, - (void *)&rru_config_msg.msg[0]); + configure_rru(ru, (void *)&rru_config_msg.msg[0]); configuration_received = 1; } } @@ -1486,10 +1455,8 @@ void init_RU_proc(RU_t *ru) { if(emulate_rf) threadCreate( &proc->pthread_emulateRF, emulatedRF_thread, (void *)proc, "emulateRF", -1, OAI_PRIORITY_RT ); - if (opp_enabled == 1) - threadCreate( &ru->ru_stats_thread, ru_stats_thread, (void *)ru,"ru_stats", -1, OAI_PRIORITY_RT ); - if (get_thread_worker_conf() == WORKER_ENABLE) { - } + if (opp_enabled == 1) + threadCreate(&ru->ru_stats_thread, ru_stats_thread, (void *)ru, "ru_stats", -1, OAI_PRIORITY_RT); LOG_I(PHY, "Initialized RU proc %d (%s,%s),\n", ru->idx, NB_functions[ru->function], NB_timing[ru->if_timing]); } @@ -1585,19 +1552,19 @@ const char rru_format_options[4][20] = {"OAI_IF5_only", "OAI_IF4p5_only", "OAI_I const char rru_formats[3][20] = {"OAI_IF5", "MBP_IF5", "OAI_IF4p5"}; const char ru_if_formats[4][20] = {"LOCAL_RF", "REMOTE_OAI_IF5", "REMOTE_MBP_IF5", "REMOTE_OAI_IF4p5"}; -void configure_ru(int idx, - void *arg) { - RU_t *ru = RC.ru[idx]; +void configure_ru(void *ruu, void *arg) +{ + RU_t *ru = (RU_t *)ruu; RRU_config_t *config = (RRU_config_t *)arg; RRU_capabilities_t *capabilities = (RRU_capabilities_t *)arg; nfapi_nr_config_request_scf_t *cfg = &ru->config; int ret; - LOG_I(PHY, "Received capabilities from RRU %d\n",idx); + LOG_I(PHY, "Received capabilities from RRU %d\n", ru->idx); if (capabilities->FH_fmt < MAX_FH_FMTs) LOG_I(PHY, "RU FH options %s\n",rru_format_options[capabilities->FH_fmt]); ret = check_capabilities(ru,capabilities); - AssertFatal(ret == 0, "Cannot configure RRU %d, check_capabilities returned %d\n", idx, ret); + AssertFatal(ret == 0, "Cannot configure RRU %d, check_capabilities returned %d\n", ru->idx, ret); // take antenna capabilities of RRU ru->nb_tx = capabilities->nb_tx[0]; ru->nb_rx = capabilities->nb_rx[0]; @@ -1625,10 +1592,10 @@ void configure_ru(int idx, nr_phy_init_RU(ru); } -void configure_rru(int idx, - void *arg) { +void configure_rru(void *ruu, void *arg) +{ RRU_config_t *config = (RRU_config_t *)arg; - RU_t *ru = RC.ru[idx]; + RU_t *ru = (RU_t *)ruu; nfapi_nr_config_request_scf_t *cfg = &ru->config; ru->nr_frame_parms->nr_band = config->band_list[0]; ru->nr_frame_parms->dl_CarrierFreq = config->tx_freq[0]; diff --git a/executables/nr-softmodem-common.h b/executables/nr-softmodem-common.h index 46763d6995..5ff6a0b323 100644 --- a/executables/nr-softmodem-common.h +++ b/executables/nr-softmodem-common.h @@ -151,5 +151,5 @@ extern double cpuf; extern int emulate_rf; extern int numerology; extern int usrp_tx_thread; - +void wait_gNBs(void); #endif diff --git a/executables/ru_control.c b/executables/ru_control.c index b7d71be89f..2136e5ff53 100644 --- a/executables/ru_control.c +++ b/executables/ru_control.c @@ -62,13 +62,11 @@ #include "SCHED/sched_eNB.h" #include "PHY/LTE_ESTIMATION/lte_estimation.h" #include "PHY/INIT/phy_init.h" +#include "executables/softmodem-common.h" #include "common/utils/LOG/log.h" - int attach_rru(RU_t *ru); -void configure_ru(RU_t *ru, 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 ); @@ -372,9 +370,9 @@ int check_capabilities(RU_t *ru, return(-1); } -void configure_ru(RU_t *ru, - void *arg) +void configure_ru(void *ruu, void *arg) { + RU_t *ru = (RU_t *)ruu; RRU_config_t *config = (RRU_config_t *)arg; RRU_capabilities_t *capabilities = (RRU_capabilities_t*)arg; int ret; @@ -423,9 +421,9 @@ void configure_ru(RU_t *ru, phy_init_RU(ru); } -void configure_rru(RU_t *ru, - void *arg) +void configure_rru(void *ruu, void *arg) { + RU_t *ru = (RU_t *)ruu; RRU_config_t *config = (RRU_config_t *)arg; ru->frame_parms->eutra_band = config->band_list[0]; diff --git a/executables/softmodem-common.h b/executables/softmodem-common.h index 43c8b4625e..d49c56d11b 100644 --- a/executables/softmodem-common.h +++ b/executables/softmodem-common.h @@ -374,6 +374,10 @@ extern int oai_exit; void rx_func(void *param); void ru_tx_func(void *param); +void configure_ru(void *, void *arg); +void configure_rru(void *, void *arg); +struct timespec timespec_add(struct timespec lhs, struct timespec rhs); +struct timespec timespec_sub(struct timespec lhs, struct timespec rhs); extern uint8_t nfapi_mode; extern int16_t vnf_pnf_sfnslot_delta; #ifdef __cplusplus diff --git a/openair2/GNB_APP/gnb_config.h b/openair2/GNB_APP/gnb_config.h index 235a7582d5..e406a1ad7f 100644 --- a/openair2/GNB_APP/gnb_config.h +++ b/openair2/GNB_APP/gnb_config.h @@ -93,7 +93,6 @@ typedef struct ru_config_s { */ void RCconfig_verify(configmodule_interface_t *cfg, ngran_node_t node_type); -extern void NRRCconfig_RU(void); extern void RCconfig_nr_prs(void); extern void RCconfig_NR_L1(void); extern void RCconfig_nr_macrlc(configmodule_interface_t *cfg); diff --git a/radio/COMMON/common_lib.h b/radio/COMMON/common_lib.h index ee7a9543f6..074007dd10 100644 --- a/radio/COMMON/common_lib.h +++ b/radio/COMMON/common_lib.h @@ -567,12 +567,11 @@ struct openair0_device_t { * \param idx RU index * \param arg pointer to capabilities or configuration */ - void (*configure_rru)(int idx, void *arg); + void (*configure_rru)(void *, void *arg); -/*! \brief Pointer to generic RRU private information + /*! \brief Pointer to generic RRU private information */ - void *thirdparty_priv; /*! \brief Callback for Third-party RRU Initialization routine