diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index 6719a53ec023658631b1b0fb34705443b37232d3..929831fc23e6ce45bf956c5a64193a2c3615b69f 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -953,20 +953,20 @@ <pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec> <pre_exec_args></pre_exec_args> <main_exec> $OPENAIR_DIR/targets/bin/dlsim.Rel15</main_exec> - <main_exec_args> -m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O60 - -m4 -gF -s0 -w1.0 -f.2 -n500 -B6 -c4 -z2 -O60 - -m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O60 - -m15 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c2 -z2 -O60 - -m15 -gG -s1.4 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O25 - -m15 -gG -s1.4 -w1.0 -f.2 -n500 -B25 -c2 -z2 -O25 - -m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O60 - -m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O60 - -m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O60 - -m26 -gF -s17.6 -w1.0 -f.2 -n500 -B100 -c2 -z2 -O60 - -m26 -gF -s17.3 -w1.0 -f.2 -n500 -B100 -c2 -z2 -r1600 -O60 - -m26 -gF -s16.6 -w1.0 -f.2 -n500 -B100 -c2 -z2 -r1899 -O60 - -m14 -gF -s6.8 -w1.0 -f.2 -n500 -B50 -c2 -x2 -y2 -z2 -O60 - -m13 -gF -s5.9 -w1.0 -f.2 -n500 -B25 -c3 -x2 -y2 -z2 -O60</main_exec_args> + <main_exec_args> -m=5 -g=F -s=-1 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -z=2 -O=60 + -m=4 -g=F -s=0 -w=1.0 -f=.2 -n=500 -B=6 -c=4 -z=2 -O=60 + -m=15 -g=F -s=6.7 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -z=2 -O=60 + -m=15 -g=F -s=6.7 -w=1.0 -f=.2 -n=500 -B=25 -c=2 -z=2 -O=60 + -m=15 -g=G -s=1.4 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -z=2 -O=25 + -m=15 -g=G -s=1.4 -w=1.0 -f=.2 -n=500 -B=25 -c=2 -z=2 -O=25 + -m=25 -g=F -s=17.4 -w=1.0 -f=.2 -n=500 -B=25 -c=3 -z=2 -O=60 + -m=25 -g=F -s=17.5 -w=1.0 -f=.2 -n=500 -B=25 -c=3 -z=2 -r=1022 -O=60 + -m=26 -g=F -s=17.7 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -z=2 -O=60 + -m=26 -g=F -s=17.6 -w=1.0 -f=.2 -n=500 -B=100 -c=2 -z=2 -O=60 + -m=26 -g=F -s=17.3 -w=1.0 -f=.2 -n=500 -B=100 -c=2 -z=2 -r=1600 -O=60 + -m=26 -g=F -s=16.6 -w=1.0 -f=.2 -n=500 -B=100 -c=2 -z=2 -r=1899 -O=60 + -m=14 -g=F -s=6.8 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -x=2 -y=2 -z=2 -O=60 + -m=13 -g=F -s=5.9 -w=1.0 -f=.2 -n=500 -B=25 -c=3 -x=2 -y=2 -z=2 -O=60</main_exec_args> <tags>dlsim.test1 dlsim.test5 dlsim.test6 dlsim.test6b dlsim.test7 dlsim.test7b dlsim.test10 dlsim.test10b dlsim.test11 dlsim.test11a dlsim.test11b dlsim.test11c dlsim.TM2_test1 dlsim.TM2_test1b</tags> <search_expr_true>"passed"</search_expr_true> <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index 779a5a122feb7387ac9ed5def81e74e246caaca2..875da6bebf3e07e83ec2ce643516fb407912bb2d 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -574,6 +574,22 @@ function main() { compilations \ $build_dir $exec \ $exec $dbin/$exec.$REL + +# if --eNB --UE are both provided together as build options + if [ "$eNB" = "1" -a "$UE" = "1" ] ; then + echo_info "Compiling lte-uesoftmodem" + compilations \ + $build_dir lte-uesoftmodem \ + lte-uesoftmodem $dbin/lte-uesoftmodem.$REL + fi + +# if --gNB --nrUE are both provided together as build options + if [ "$gNB" = "1" -a "$nrUE" = "1" ] ; then + echo_info "Compiling nr-uesoftmodem" + compilations \ + $build_dir nr-uesoftmodem \ + nr-uesoftmodem $dbin/nr-uesoftmodem.$REL + fi # mandatory shared lib compilations \ diff --git a/cmake_targets/lte_noS1_build_oai/CMakeLists.template b/cmake_targets/lte_noS1_build_oai/CMakeLists.template deleted file mode 100644 index c8fc68da529fa4db87461e2b27cfeab044165061..0000000000000000000000000000000000000000 --- a/cmake_targets/lte_noS1_build_oai/CMakeLists.template +++ /dev/null @@ -1,9 +0,0 @@ -set(ENABLE_ITTI True) -set(ENABLE_USE_MME False) -set(PDCP_USE_NETLINK True) -set(LINK_ENB_PDCP_TO_IP_DRIVER True) -set(LINK_ENB_PDCP_TO_GTPV1U False) -set(PDCP_USE_NETLINK_QUEUES False) -set(LINUX True) -set(SECU False) -set(NAS_UE False) diff --git a/executables/nr-ru.c b/executables/nr-ru.c index 1645f12ca7bdd8c48c6e8252c9ae315bb59b8aab..63ecee3bf7171eea29dc98050046977390be0998 100644 --- a/executables/nr-ru.c +++ b/executables/nr-ru.c @@ -88,8 +88,8 @@ 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}; +//static int DEFBANDS[] = {7}; +//static int DEFENBS[] = {0}; static int DEFNRBANDS[] = {7}; static int DEFGNBS[] = {0}; diff --git a/executables/nr-softmodem-common.h b/executables/nr-softmodem-common.h index 82e303faae24cd87c9a2333824a0854efb72c06c..5b6e44d48696fe418120f5b0c5cf305bb4c25976 100644 --- a/executables/nr-softmodem-common.h +++ b/executables/nr-softmodem-common.h @@ -93,20 +93,24 @@ #define CONFIG_HLP_USRP_CLK_SRC "USRP clock source: 'internal' or 'external'\n" #define CONFIG_HLP_FLOG "Enable online log \n" -#define CONFIG_HLP_LOGL "Set the global log level, valide options: (9:trace, 8/7:debug, 6:info, 4:warn, 3:error)\n" +#define CONFIG_HLP_LOGL "Set the global log level, valid options: (4:trace, 3:debug, 2:info, 1:warn, (0:error))\n" #define CONFIG_HLP_LOGV "Set the global log verbosity \n" #define CONFIG_HLP_TELN "Start embedded telnet server \n" +#define CONFIG_HLP_MSC "Enable the MSC tracing utility \n" #define CONFIG_HLP_SNR "Set average SNR in dB (for --siml1 option)\n" -/*------------------------------------------------------------------------------------------------------------------------------*/ -/* command line parameters for LOG utility */ -/* optname helpstr paramflags XXXptr defXXXval type numelt */ -/*------------------------------------------------------------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------------------------------------------------------------*/ +/* command line parameters for LOG utility */ +/* optname helpstr paramflags XXXptr defXXXval type numelt */ +/*--------------------------------------------------------------------------------------------------------------------------------*/ +#define START_MSC softmodem_params.start_msc #define CMDLINE_LOGPARAMS_DESC { \ - {"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \ - {"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \ - {"G" , CONFIG_HLP_LOGV, 0, uptr:&glog_verbosity, defintval:0, TYPE_UINT16, 0}, \ - {"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \ + {"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \ + {"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \ + {"G" , CONFIG_HLP_LOGV, 0, uptr:&glog_verbosity, defintval:0, TYPE_UINT16, 0}, \ + {"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \ + {"msc", CONFIG_HLP_MSC, PARAMFLAG_BOOL, uptr:&START_MSC, defintval:0, TYPE_UINT, 0}, \ } + #define CMDLINE_ONLINELOG_IDX 0 #define CMDLINE_GLOGLEVEL_IDX 1 #define CMDLINE_GLOGVERBO_IDX 2 @@ -114,6 +118,7 @@ /***************************************************************************************************************************************/ + extern pthread_cond_t sync_cond; extern pthread_mutex_t sync_mutex; extern int sync_var; diff --git a/executables/nr-softmodem.c b/executables/nr-softmodem.c index 69bc0102087533a1dba124ef3455c0e45f379733..da559079fe37be0942b9788bcee9d686e6b22380 100644 --- a/executables/nr-softmodem.c +++ b/executables/nr-softmodem.c @@ -189,6 +189,23 @@ int transmission_mode=1; int emulate_rf = 0; int numerology = 0; +typedef struct { + uint64_t optmask; + THREAD_STRUCT thread_struct; + char rf_config_file[1024]; + int phy_test; + uint8_t usim_test; + int emulate_rf; + int wait_for_sync; //eNodeB only + int single_thread_flag; //eNodeB only + int chain_offset; + int numerology; + unsigned int start_msc; + uint32_t clock_source; + int hw_timing_advance; +} softmodem_params_t; +static softmodem_params_t softmodem_params; + static char *parallel_config = NULL; static char *worker_config = NULL; static THREAD_STRUCT thread_struct; @@ -492,7 +509,8 @@ static void get_options(void) { uint32_t online_log_messages; uint32_t glog_level, glog_verbosity; uint32_t start_telnetsrv; - paramdef_t cmdline_params[] = CMDLINE_PARAMS_DESC ; + char *in_ip=NULL, *in_path=NULL; + paramdef_t cmdline_params[] = CMDLINE_PARAMS_DESC_GNB ; paramdef_t cmdline_logparams[] = CMDLINE_LOGPARAMS_DESC ; config_process_cmdline( cmdline_params,sizeof(cmdline_params)/sizeof(paramdef_t),NULL); @@ -550,10 +568,10 @@ static void get_options(void) { -void set_default_frame_parms(nfapi_nr_config_request_t *config[MAX_NUM_CCs], NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]) { - int CC_id; - - for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { +void set_default_frame_parms(nfapi_nr_config_request_t *config[MAX_NUM_CCs], + NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]) +{ + for (int CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { frame_parms[CC_id] = (NR_DL_FRAME_PARMS *) malloc(sizeof(NR_DL_FRAME_PARMS)); config[CC_id] = (nfapi_nr_config_request_t *) malloc(sizeof(nfapi_nr_config_request_t)); config[CC_id]->subframe_config.numerology_index_mu.value =1; @@ -861,7 +879,7 @@ static void wait_nfapi_init(char *thread_name) { int main( int argc, char **argv ) { - int i, CC_id, ru_id; + int i, ru_id, CC_id = 0; start_background_system(); ///static configuration for NR at the moment diff --git a/executables/nr-softmodem.h b/executables/nr-softmodem.h index f0f9e0f48d5fe79f3a0d8e097a5289f5e0f73306..a11502ca656f381ecf513d718df866d153cc8401 100644 --- a/executables/nr-softmodem.h +++ b/executables/nr-softmodem.h @@ -17,7 +17,7 @@ /* command line parameters common to eNodeB and UE */ /* optname helpstr paramflags XXXptr defXXXval type numelt */ /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ -#define CMDLINE_PARAMS_DESC { \ +#define CMDLINE_PARAMS_DESC_GNB { \ {"rf-config-file", CONFIG_HLP_RFCFGF, 0, strptr:(char **)&rf_config_file, defstrval:NULL, TYPE_STRING, sizeof(rf_config_file)},\ {"ulsch-max-errors", CONFIG_HLP_ULMAXE, 0, uptr:&ULSCH_max_consecutive_errors, defuintval:0, TYPE_UINT, 0}, \ {"phy-test", CONFIG_HLP_PHYTST, PARAMFLAG_BOOL, iptr:&phy_test, defintval:0, TYPE_INT, 0}, \ diff --git a/executables/nr-uesoftmodem.c b/executables/nr-uesoftmodem.c index 3b334660d5ab3b22d465d68bd4600302dace8747..7791751193d6fefa426fa0b899bd4966ddeb7cce 100644 --- a/executables/nr-uesoftmodem.c +++ b/executables/nr-uesoftmodem.c @@ -161,6 +161,23 @@ uint8_t nb_antenna_rx = 1; char ref[128] = "internal"; char channels[128] = "0"; +typedef struct { + uint64_t optmask; + THREAD_STRUCT thread_struct; + char rf_config_file[1024]; + int phy_test; + uint8_t usim_test; + int emulate_rf; + int wait_for_sync; //eNodeB only + int single_thread_flag; //eNodeB only + int chain_offset; + int numerology; + unsigned int start_msc; + uint32_t clock_source; + int hw_timing_advance; +} softmodem_params_t; +static softmodem_params_t softmodem_params; + static char *parallel_config = NULL; static char *worker_config = NULL; static THREAD_STRUCT thread_struct; @@ -386,7 +403,7 @@ int16_t dlsch_demod_shift; static void get_options(void) { int CC_id; int tddflag=0, nonbiotflag; - char *loopfile=NULL; + char *loopfile=NULL, *in_ip=NULL, *in_path=NULL; int dumpframe=0; uint32_t online_log_messages; uint32_t glog_level, glog_verbosity; diff --git a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h index 3e0891e4d90a5dd37a27a667c28a8bea0f573ebf..d299cbdbaf887a1511898e2405bff97c4bbceea2 100644 --- a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h +++ b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h @@ -525,10 +525,10 @@ typedef struct{ uint8_t css_format_2_2; uint8_t css_format_2_3; uint8_t uss_dci_formats; - uint16_t srs_monitoring_periodicity; - uint16_t slot_monitoring_periodicity; - uint16_t slot_monitoring_offset; - uint16_t monitoring_symbols_in_slot; + uint16_t srs_monitoring_periodicity; + uint16_t slot_monitoring_periodicity; + uint16_t slot_monitoring_offset; + uint32_t monitoring_symbols_in_slot; uint16_t number_of_candidates[NFAPI_NR_MAX_NB_CCE_AGGREGATION_LEVELS]; } nfapi_nr_search_space_t; diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c index 67ddffcfcb8b30fdfd07c638b4ed04fb5ed30761..45e7cfd4f831b0b142f69d2e7c3e90866f67715c 100644 --- a/openair1/PHY/INIT/nr_init.c +++ b/openair1/PHY/INIT/nr_init.c @@ -279,11 +279,12 @@ void phy_config_request(PHY_Config_t *phy_config) { }*/ -void phy_free_nr_gNB(PHY_VARS_gNB *gNB) { +void phy_free_nr_gNB(PHY_VARS_gNB *gNB) +{ //NR_DL_FRAME_PARMS* const fp = &gNB->frame_parms; //nfapi_nr_config_request_t *cfg = &gNB->gNB_config; NR_gNB_COMMON *const common_vars = &gNB->common_vars; - NR_gNB_PUSCH **const pusch_vars = gNB->pusch_vars; + //NR_gNB_PUSCH **const pusch_vars = gNB->pusch_vars; /*LTE_eNB_SRS *const srs_vars = gNB->srs_vars; LTE_eNB_PRACH *const prach_vars = &gNB->prach_vars;*/ uint32_t ***pdcch_dmrs = gNB->nr_gold_pdcch_dmrs; diff --git a/openair1/PHY/INIT/nr_init_ue.c b/openair1/PHY/INIT/nr_init_ue.c index ba8a89ee73ac8d4e9b98b743a2d8c78b2267ca5f..c90ed01eae38a00b0b3cb33ff1af4464c6aad7da 100644 --- a/openair1/PHY/INIT/nr_init_ue.c +++ b/openair1/PHY/INIT/nr_init_ue.c @@ -678,13 +678,13 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, - int i,j,k,l,slot,symb,q,layer; + int i,j,k,l,slot,symb,q; int eNB_id; int th_id; int n_ssb_crb=(fp->N_RB_DL-20); int k_ssb=0; uint32_t ****pusch_dmrs; - int N_n_scid[2] = {0,1}; // [HOTFIX] This is a temporary implementation of scramblingID0 and scramblingID1 which are given by DMRS-UplinkConfig + uint16_t N_n_scid[2] = {0,1}; // [HOTFIX] This is a temporary implementation of scramblingID0 and scramblingID1 which are given by DMRS-UplinkConfig int n_scid; abstraction_flag = 0; fp->nb_antennas_tx = 1; diff --git a/openair1/PHY/MODULATION/nr_modulation.c b/openair1/PHY/MODULATION/nr_modulation.c index 74f09d9fae0054651f34a599dc00436bdfceb512..40099f4739d1b05f9e950ee44154fcc9b279e2ed 100644 --- a/openair1/PHY/MODULATION/nr_modulation.c +++ b/openair1/PHY/MODULATION/nr_modulation.c @@ -26,20 +26,19 @@ extern short nr_mod_table[NR_MOD_TABLE_SIZE_SHORT]; void nr_modulation(uint32_t *in, uint16_t length, uint16_t mod_order, - int16_t *out) { - + int16_t *out) +{ uint16_t offset; - uint16_t order; - int i,j; uint8_t idx, b_idx; offset = (mod_order==2)? NR_MOD_TABLE_QPSK_OFFSET : (mod_order==4)? NR_MOD_TABLE_QAM16_OFFSET : \ (mod_order==6)? NR_MOD_TABLE_QAM64_OFFSET: (mod_order==8)? NR_MOD_TABLE_QAM256_OFFSET : 0; - for (i=0; i<length/mod_order; i++) { + for (int i=0; i<length/mod_order; i++) + { idx = 0; - - for (j=0; j<mod_order; j++) { + for (int j=0; j<mod_order; j++) + { b_idx = (i*mod_order+j)&0x1f; if (i && (!b_idx)) in++; diff --git a/openair1/PHY/NR_REFSIG/nr_gold_ue.c b/openair1/PHY/NR_REFSIG/nr_gold_ue.c index 098931430eb887d733bccdf6a81f9d0c375c5a97..949fbbff432685a67748b222e5edcacb249f5fc4 100644 --- a/openair1/PHY/NR_REFSIG/nr_gold_ue.c +++ b/openair1/PHY/NR_REFSIG/nr_gold_ue.c @@ -23,7 +23,6 @@ void nr_gold_pbch(PHY_VARS_NR_UE* ue) { - unsigned int n, x1, x2; unsigned int Nid, i_ssb, i_ssb2; unsigned char Lmax, l, n_hf, N_hf; @@ -63,9 +62,10 @@ void nr_gold_pbch(PHY_VARS_NR_UE* ue) } -void nr_gold_pdcch(PHY_VARS_NR_UE* ue,unsigned short n_idDMRS, unsigned short length_dmrs) +void nr_gold_pdcch(PHY_VARS_NR_UE* ue, + unsigned short n_idDMRS, + unsigned short length_dmrs) { - unsigned char ns,l; unsigned int n,x1,x2,x2tmp0; unsigned int nid; @@ -106,9 +106,11 @@ void nr_gold_pdcch(PHY_VARS_NR_UE* ue,unsigned short n_idDMRS, unsigned short le } } -void nr_gold_pdsch(PHY_VARS_NR_UE* ue,unsigned short lbar,unsigned short *n_idDMRS, unsigned short length_dmrs) +void nr_gold_pdsch(PHY_VARS_NR_UE* ue, + unsigned short lbar, + unsigned short *n_idDMRS, + unsigned short length_dmrs) { - unsigned char ns,l; unsigned int n,x1,x2,x2tmp0; int nscid; @@ -161,9 +163,10 @@ void nr_gold_pdsch(PHY_VARS_NR_UE* ue,unsigned short lbar,unsigned short *n_idDM } } -void nr_init_pusch_dmrs(PHY_VARS_NR_UE* ue, uint16_t *N_n_scid, uint8_t n_scid) +void nr_init_pusch_dmrs(PHY_VARS_NR_UE* ue, + uint16_t *N_n_scid, + uint8_t n_scid) { - uint32_t x1, x2, n; uint8_t reset, slot, symb, q; NR_DL_FRAME_PARMS *fp = &ue->frame_parms; diff --git a/openair1/PHY/NR_REFSIG/refsig_defs_ue.h b/openair1/PHY/NR_REFSIG/refsig_defs_ue.h index d1a72dd2fc1c40a056ce80da069b00acca13c4ca..57b585e960b5c4b0c11040db5b19def955558b48 100644 --- a/openair1/PHY/NR_REFSIG/refsig_defs_ue.h +++ b/openair1/PHY/NR_REFSIG/refsig_defs_ue.h @@ -31,38 +31,42 @@ /*!\brief This function generates the NR Gold sequence (38-211, Sec 5.2.1) for the PBCH DMRS. @param PHY_VARS_NR_UE* ue structure provides configuration, frame parameters and the pointers to the 32 bits sequence storage tables */ -int nr_pbch_dmrs_rx(int dmrss,unsigned int *nr_gold_pbch, int32_t *output ); +int nr_pbch_dmrs_rx(int dmrss, + unsigned int *nr_gold_pbch, + int32_t *output); /*!\brief This function generates the NR Gold sequence (38-211, Sec 5.2.1) for the PDCCH DMRS. @param PHY_VARS_NR_UE* ue structure provides configuration, frame parameters and the pointers to the 32 bits sequence storage tables */ int nr_pdcch_dmrs_rx(PHY_VARS_NR_UE *ue, - uint8_t eNB_offset, - unsigned int Ns, - unsigned int *nr_gold_pdcch, - int32_t *output, - unsigned short p, - unsigned short nb_rb_corset); + uint8_t eNB_offset, + unsigned int Ns, + unsigned int *nr_gold_pdcch, + int32_t *output, + unsigned short p, + unsigned short nb_rb_corset); int nr_pdsch_dmrs_rx(PHY_VARS_NR_UE *ue, - unsigned int Ns, - unsigned int *nr_gold_pdsch, - int32_t *output, - unsigned short p, - unsigned char lp, - unsigned short nb_pdsch_rb); + unsigned int Ns, + unsigned int *nr_gold_pdsch, + int32_t *output, + unsigned short p, + unsigned char lp, + unsigned short nb_pdsch_rb); void nr_gold_pbch(PHY_VARS_NR_UE* ue); void nr_gold_pdcch(PHY_VARS_NR_UE* ue, - unsigned short n_idDMRS, - unsigned short length_dmrs); + unsigned short n_idDMRS, + unsigned short length_dmrs); void nr_gold_pdsch(PHY_VARS_NR_UE* ue, - unsigned short lbar, - unsigned short *n_idDMRS, - unsigned short length_dmrs); + unsigned short lbar, + unsigned short *n_idDMRS, + unsigned short length_dmrs); -void nr_init_pusch_dmrs(PHY_VARS_NR_UE* ue, uint16_t *N_n_scid, uint8_t n_scid); +void nr_init_pusch_dmrs(PHY_VARS_NR_UE* ue, + uint16_t *N_n_scid, + uint8_t n_scid); #endif diff --git a/openair1/SCHED/ru_procedures.c b/openair1/SCHED/ru_procedures.c index 85aa1dbc7afcf7b7089b38f486e9712cdb4f02aa..1c0ea2493ad756258c5fbca5ca47ede37f5a2708 100644 --- a/openair1/SCHED/ru_procedures.c +++ b/openair1/SCHED/ru_procedures.c @@ -218,11 +218,11 @@ void feptx_ofdm_2thread(RU_t *ru,int frame,int subframe) { } -void feptx_ofdm(RU_t *ru,int frame,int subframe) { - +void feptx_ofdm(RU_t *ru, int frame, int subframe) +{ LTE_DL_FRAME_PARMS *fp=ru->frame_parms; - unsigned int aa,slot_offset, slot_offset_F; + unsigned int aa, slot_offset, slot_offset_F; int dummy_tx_b[7680*4] __attribute__((aligned(32))); int i,j, tx_offset; int slot_sizeF = (fp->ofdm_symbol_size)* diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c index fdd8baea92a5e81d0f51094388221166e40265e5..3cc71aad967dc4111b4bcd0bbb15b62b24219fb8 100644 --- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c +++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c @@ -206,31 +206,50 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB, } -void nr_ulsch_procedures(PHY_VARS_gNB *gNB, gNB_L1_rxtx_proc_t *proc, int UE_id, uint8_t harq_pid) { - - NR_DL_FRAME_PARMS *frame_parms = &gNB->frame_parms; +void nr_ulsch_procedures(PHY_VARS_gNB *gNB, + gNB_L1_rxtx_proc_t *proc, + int UE_id, + uint8_t harq_pid) +{ + NR_DL_FRAME_PARMS *frame_parms = &gNB->frame_parms; nfapi_nr_ul_config_ulsch_pdu *rel15_ul = &gNB->ulsch[UE_id+1][0]->harq_processes[harq_pid]->ulsch_pdu; nfapi_nr_ul_config_ulsch_pdu_rel15_t *nfapi_ulsch_pdu_rel15 = &rel15_ul->ulsch_pdu_rel15; - uint8_t ret; + //uint8_t ret; uint32_t G; int Nid_cell = 0; // [hna] shouldn't be a local variable (should be signaled) - G = nr_get_G(nfapi_ulsch_pdu_rel15->number_rbs, nfapi_ulsch_pdu_rel15->number_symbols, nfapi_ulsch_pdu_rel15->nb_re_dmrs, nfapi_ulsch_pdu_rel15->length_dmrs, nfapi_ulsch_pdu_rel15->Qm, nfapi_ulsch_pdu_rel15->n_layers); + G = nr_get_G(nfapi_ulsch_pdu_rel15->number_rbs, + nfapi_ulsch_pdu_rel15->number_symbols, + nfapi_ulsch_pdu_rel15->nb_re_dmrs, + nfapi_ulsch_pdu_rel15->length_dmrs, + nfapi_ulsch_pdu_rel15->Qm, + nfapi_ulsch_pdu_rel15->n_layers); //---------------------------------------------------------- //------------------- ULSCH unscrambling ------------------- //---------------------------------------------------------- - nr_ulsch_unscrambling(gNB->pusch_vars[UE_id]->llr, G, 0, Nid_cell, rel15_ul->rnti); - + nr_ulsch_unscrambling(gNB->pusch_vars[UE_id]->llr, + G, + 0, + Nid_cell, + rel15_ul->rnti); //---------------------------------------------------------- //--------------------- ULSCH decoding --------------------- //---------------------------------------------------------- - ret = nr_ulsch_decoding(gNB, UE_id, gNB->pusch_vars[UE_id]->llr, frame_parms, proc->frame_rx, - nfapi_ulsch_pdu_rel15->number_symbols, proc->slot_rx, harq_pid, 0); + //ret = nr_ulsch_decoding(gNB, + nr_ulsch_decoding(gNB, + UE_id, + gNB->pusch_vars[UE_id]->llr, + frame_parms, + proc->frame_rx, + nfapi_ulsch_pdu_rel15->number_symbols, + proc->slot_rx, + harq_pid, + 0); // if (ret > ulsch_gNB->max_ldpc_iterations) // n_errors++; diff --git a/openair1/SCHED_NR_UE/fapi_nr_ue_l1.c b/openair1/SCHED_NR_UE/fapi_nr_ue_l1.c index 6ee8fbfaa6f8442003ecb81e55f053fdd14b74ea..b1d065ca77e94c55dd41b07ffd7227537ad6c90e 100644 --- a/openair1/SCHED_NR_UE/fapi_nr_ue_l1.c +++ b/openair1/SCHED_NR_UE/fapi_nr_ue_l1.c @@ -40,9 +40,8 @@ #include "PHY/impl_defs_nr.h" extern PHY_VARS_NR_UE ***PHY_vars_UE_g; -int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){ - - +int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response) +{ /// module id module_id_t module_id = scheduled_response->module_id; /// component carrier id diff --git a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c index 6b3bbb56c7ac9a88b6daa41ed55090b77d56ec80..5e7740c6e55da94dd12c4b2909cc72aebe6435af 100644 --- a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c +++ b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c @@ -2463,10 +2463,11 @@ void ue_pucch_procedures(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eNB_ #endif -void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t gNB_id, uint8_t thread_id) { - - - NR_DL_FRAME_PARMS *frame_parms=&ue->frame_parms; +void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue, + UE_nr_rxtx_proc_t *proc, + uint8_t gNB_id, + uint8_t thread_id) +{ fapi_nr_dci_pdu_rel15_t *ul_dci_pdu; NR_UE_ULSCH_t *ulsch_ue; NR_UL_UE_HARQ_t *harq_process_ul_ue; @@ -2487,7 +2488,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t g harq_pid = 0; //temporary implementation - generate_ue_ulsch_params(ue, 0, gNB_id, @@ -2496,7 +2496,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t g ulsch_ue = ue->ulsch[thread_id][gNB_id][0]; // cwd_index = 0 harq_process_ul_ue = ulsch_ue->harq_processes[harq_pid]; - TBS = nr_compute_tbs(ul_dci_pdu->mcs, harq_process_ul_ue->nb_rb, ulsch_ue->Nsymb_pusch, ulsch_ue->nb_re_dmrs, ulsch_ue->length_dmrs, ul_dci_pdu->precod_nbr_layers); //-----------------------------------------------------// @@ -2524,7 +2523,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t g */ - nr_ue_pusch_common_procedures(ue, slot_tx, ul_dci_pdu->precod_nbr_layers, diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c index 1e8d0c48719421a49a36f2c2a1396d983ff18ae6..b505da6c8a937b350e40750be1f1fbdc1117fda5 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim.c @@ -67,10 +67,9 @@ #include "common/config/config_load_configmodule.h" #include "PHY/INIT/phy_init.h" #include "nfapi/oai_integration/vendor_ext.h" -#include "targets/RT/USER/lte-softmodem.h" -void feptx_ofdm(RU_t *ru,int frame,int subframe); -void feptx_prec(RU_t *ru,int frame,int subframe); +void feptx_ofdm(RU_t *ru, int frame, int subframe); +void feptx_prec(RU_t *ru, int frame, int subframe); double cpuf; #define inMicroS(a) (((double)(a))/(cpu_freq_GHz*1000.0)) @@ -86,7 +85,29 @@ double t_rx_min = 1000000000; /*!< \brief initial min process time for rx */ int n_tx_dropped = 0; /*!< \brief initial max process time for tx */ int n_rx_dropped = 0; /*!< \brief initial max process time for rx */ -THREAD_STRUCT thread_struct; +//THREAD_STRUCT thread_struct; +static THREAD_STRUCT thread_struct; + +void set_parallel_conf(char *parallel_conf) { + if(strcmp(parallel_conf,"PARALLEL_SINGLE_THREAD")==0) thread_struct.parallel_conf = PARALLEL_SINGLE_THREAD; + else if(strcmp(parallel_conf,"PARALLEL_RU_L1_SPLIT")==0) thread_struct.parallel_conf = PARALLEL_RU_L1_SPLIT; + else if(strcmp(parallel_conf,"PARALLEL_RU_L1_TRX_SPLIT")==0) thread_struct.parallel_conf = PARALLEL_RU_L1_TRX_SPLIT; + + printf("[CONFIG] parallel conf is set to %d\n",thread_struct.parallel_conf); +} +void set_worker_conf(char *worker_conf) { + if(strcmp(worker_conf,"WORKER_DISABLE")==0) thread_struct.worker_conf = WORKER_DISABLE; + else if(strcmp(worker_conf,"WORKER_ENABLE")==0) thread_struct.worker_conf = WORKER_ENABLE; + + printf("[CONFIG] worker conf is set to %d\n",thread_struct.worker_conf); +} +PARALLEL_CONF_t get_thread_parallel_conf(void) { + return thread_struct.parallel_conf; +} +WORKER_CONF_t get_thread_worker_conf(void) { + return thread_struct.worker_conf; +} + int emulate_rf = 0; @@ -294,7 +315,7 @@ fill_dlsch_config(nfapi_dl_config_request_body_t *dl_req, uint8_t transmission_scheme, uint8_t number_of_layers, uint8_t number_of_subbands, - //uint8_t codebook_index, + // uint8_t codebook_index, uint8_t ue_category_capacity, uint8_t pa, uint8_t delta_power_offset_index, @@ -629,7 +650,7 @@ int main(int argc, char **argv) { snr0 = 0; // num_layers = 1; perfect_ce = 0; - /*static paramdef_t options[] = { + static paramdef_t options[] = { { "awgn", "Use AWGN channel and not multipath", PARAMFLAG_BOOL, strptr:NULL, defintval:0, TYPE_INT, 0, NULL, NULL }, { "Abstx", "Turns on calibration mode for abstraction.", PARAMFLAG_BOOL, iptr:&abstx, defintval:0, TYPE_INT, 0 }, { "bTDD", "Set the tdd configuration mode",0, iptr:&tdd_config, defintval:3, TYPE_INT, 0 }, @@ -892,371 +913,7 @@ int main(int argc, char **argv) { exit(0); if (thread_struct.parallel_conf != PARALLEL_SINGLE_THREAD) - set_worker_conf("WORKER_ENABLE");*/ - - - - int c; - while ((c = getopt (argc, argv, "ahdpZDe:Em:n:o:s:f:t:c:g:r:F:x:q:y:z:AM:N:I:i:O:R:S:C:T:b:u:v:w:B:Pl:WXYL:")) != -1) { - switch (c) { - case 'a': - awgn_flag = 1; - channel_model = AWGN; - break; - - case 'A': - abstx = 1; - break; - - case 'b': - tdd_config=atoi(optarg); - break; - - case 'B': - N_RB_DL=atoi(optarg); - break; - - case 'c': - num_pdcch_symbols=atoi(optarg); - break; - - case 'C': - Nid_cell = atoi(optarg); - break; - - case 'd': - dci_flag = 1; - break; - - case 'D': - frame_type=TDD; - break; - - case 'e': - num_rounds=1; - common_flag = 1; - TPC = atoi(optarg); - break; - - case 'E': - threequarter_fs=1; - break; - - case 'f': - input_snr_step= atof(optarg); - break; - - case 'F': - forgetting_factor = atof(optarg); - break; - - case 'i': - input_fd = fopen(optarg,"r"); - input_file=1; - dci_flag = 1; - break; - - case 'I': - input_trch_fd = fopen(optarg,"r"); - input_trch_file=1; - break; - - case 'W': - two_thread_flag = 1; - break; - case 'l': - offset_mumimo_llr_drange_fix=atoi(optarg); - break; - - case 'm': - mcs1 = atoi(optarg); - break; - - case 'M': - mcs2 = atoi(optarg); - break; - - case 'O': - test_perf=atoi(optarg); - //print_perf =1; - break; - - case 't': - mcs_i = atoi(optarg); - i_mod = get_Qm(mcs_i); - break; - - case 'n': - n_frames = atoi(optarg); - break; - - - case 'o': - rx_sample_offset = atoi(optarg); - break; - - case 'r': - DLSCH_RB_ALLOC = atoi(optarg); - rballocset = 1; - break; - - case 's': - snr0 = atof(optarg); - break; - - case 'w': - snr_int = atof(optarg); - break; - - - case 'N': - n_ch_rlz= atof(optarg); - break; - - case 'p': - extended_prefix_flag=1; - break; - - case 'g': - memcpy(channel_model_input,optarg,10); - - switch((char)*optarg) { - case 'A': - channel_model=SCM_A; - break; - - case 'B': - channel_model=SCM_B; - break; - - case 'C': - channel_model=SCM_C; - break; - - case 'D': - channel_model=SCM_D; - break; - - case 'E': - channel_model=EPA; - break; - - case 'F': - channel_model=EVA; - break; - - case 'G': - channel_model=ETU; - break; - - case 'H': - channel_model=Rayleigh8; - break; - - case 'I': - channel_model=Rayleigh1; - break; - - case 'J': - channel_model=Rayleigh1_corr; - break; - - case 'K': - channel_model=Rayleigh1_anticorr; - break; - - case 'L': - channel_model=Rice8; - break; - - case 'M': - channel_model=Rice1; - break; - - case 'N': - channel_model=AWGN; - break; - default: - printf("Unsupported channel model!\n"); - exit(-1); - } - - break; - case 'R': - num_rounds=atoi(optarg); - break; - - case 'S': - subframe=atoi(optarg); - break; - - case 'T': - n_rnti=atoi(optarg); - break; - - case 'u': - dual_stream_UE=1; - UE->use_ia_receiver = 1; - - if ((n_tx_port!=2) || (transmission_mode!=5)) { - printf("IA receiver only supported for TM5!"); - exit(-1); - } - - break; - - case 'v': - i_mod = atoi(optarg); - - if (i_mod!=2 && i_mod!=4 && i_mod!=6) { - printf("Wrong i_mod %d, should be 2,4 or 6\n",i_mod); - exit(-1); - } - - break; - - case 'P': - print_perf=1; - break; - - case 'q': - n_tx_port=atoi(optarg); - - if ((n_tx_port==0) || ((n_tx_port>2))) { - printf("Unsupported number of cell specific antennas ports %d\n",n_tx_port); - exit(-1); - } - - break; - - - case 'x': - transmission_mode=atoi(optarg); - - if ((transmission_mode!=1) && - (transmission_mode!=2) && - (transmission_mode!=3) && - (transmission_mode!=4) && - (transmission_mode!=5) && - (transmission_mode!=6) && - (transmission_mode!=7)) { - printf("Unsupported transmission mode %d\n",transmission_mode); - exit(-1); - } - - if (transmission_mode>1 && transmission_mode<7) { - n_tx_port = 2; - } - - break; - - case 'y': - n_tx_phy=atoi(optarg); - - if (n_tx_phy < n_tx_port) { - printf("n_tx_phy mush not be smaller than n_tx_port"); - exit(-1); - } - - if ((transmission_mode>1 && transmission_mode<7) && n_tx_port<2) { - printf("n_tx_port must be >1 for transmission_mode %d\n",transmission_mode); - exit(-1); - } - - if (transmission_mode==7 && (n_tx_phy!=1 && n_tx_phy!=2 && n_tx_phy!=4 && n_tx_phy!=8 && n_tx_phy!=16 && n_tx_phy!=64 && n_tx_phy!=128)) { - printf("Physical number of antennas not supported for TM7.\n"); - exit(-1); - } - - break; - break; - - case 'X': - xforms=1; - break; - - case 'Y': - perfect_ce=1; - break; - - case 'z': - n_rx=atoi(optarg); - - if ((n_rx==0) || (n_rx>2)) { - printf("Unsupported number of rx antennas %d\n",n_rx); - exit(-1); - } - - break; - - case 'Z': - dump_table=1; - break; - - case 'L': - loglvl = atoi(optarg); - break; - - case 'h': - default: - printf("%s -h(elp) -a(wgn on) -d(ci decoding on) -p(extended prefix on) -m mcs1 -M mcs2 -n n_frames -s snr0 -x transmission mode (1,2,5,6,7) -y TXant -z RXant -I trch_file\n",argv[0]); - printf("-h This message\n"); - printf("-a Use AWGN channel and not multipath\n"); - printf("-c Number of PDCCH symbols\n"); - printf("-m MCS1 for TB 1\n"); - printf("-M MCS2 for TB 2\n"); - printf("-d Transmit the DCI and compute its error statistics\n"); - printf("-p Use extended prefix mode\n"); - printf("-n Number of frames to simulate\n"); - printf("-o Sample offset for receiver\n"); - printf("-s Starting SNR, runs from SNR to SNR+%.1fdB in steps of %.1fdB. If n_frames is 1 then just SNR is simulated and MATLAB/OCTAVE output is generated\n", snr_int, snr_step); - printf("-f step size of SNR, default value is 1.\n"); - printf("-C cell id\n"); - printf("-S subframe\n"); - printf("-D use TDD mode\n"); - printf("-b TDD config\n"); - printf("-B bandwidth configuration (in number of ressource blocks): 6, 25, 50, 100\n"); - printf("-r ressource block allocation (see section 7.1.6.3 in 36.213\n"); - printf("-g [A:M] Use 3GPP 25.814 SCM-A/B/C/D('A','B','C','D') or 36-101 EPA('E'), EVA ('F'),ETU('G') models (ignores delay spread and Ricean factor), Rayghleigh8 ('H'), Rayleigh1('I'), Rayleigh1_corr('J'), Rayleigh1_anticorr ('K'), Rice8('L'), Rice1('M')\n"); - printf("-F forgetting factor (0 new channel every trial, 1 channel constant\n"); - printf("-x Transmission mode (1,2,6,7 for the moment)\n"); - printf("-q Number of TX antennas ports used in eNB\n"); - printf("-y Number of TX antennas used in eNB\n"); - printf("-z Number of RX antennas used in UE\n"); - printf("-t MCS of interfering UE\n"); - printf("-R Number of HARQ rounds (fixed)\n"); - printf("-A Turns on calibration mode for abstraction.\n"); - printf("-N Determines the number of Channel Realizations in Abstraction mode. Default value is 1. \n"); - printf("-O Set the percenatge of effective rate to testbench the modem performance (typically 30 and 70, range 1-100) \n"); - printf("-I Input filename for TrCH data (binary)\n"); - printf("-u Enables the Interference Aware Receiver for TM5 (default is normal receiver)\n"); - exit(1); - break; - } - } - set_parallel_conf("PARALLEL_RU_L1_TRX_SPLIT"); - set_worker_conf("WORKER_ENABLE"); - - - - - - - - - - - - - - - - - - - - - + set_worker_conf("WORKER_ENABLE"); if (transmission_mode>1) pa=dBm3; @@ -1272,6 +929,7 @@ int main(int argc, char **argv) { // however itti will catch all signals, so ctrl-c won't work anymore // alternatively you can disable ITTI completely in CMakeLists.txt //itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, NULL); + T_stdout = 1; if (common_flag == 0) { switch (N_RB_DL) { @@ -1355,8 +1013,8 @@ int main(int argc, char **argv) { if ((transmission_mode==1) || (transmission_mode==7)) { for (aa=0; aa<ru->nb_tx; aa++) - for (re=0; re<ru->frame_parms->ofdm_symbol_size; re++) - ru->beam_weights[0][0][aa][re] = 0x00007fff/eNB->frame_parms.nb_antennas_tx; + for (re=0; re<ru->frame_parms->ofdm_symbol_size; re++) + ru->beam_weights[0][0][aa][re] = 0x00007fff/eNB->frame_parms.nb_antennas_tx; } if (transmission_mode<7) @@ -1632,17 +1290,19 @@ int main(int argc, char **argv) { UE->dlsch_eNB[0] = new_eNB_dlsch(Kmimo,8,Nsoft,N_RB_DL,0,&eNB->frame_parms); if (DLSCH_alloc_pdu2_1E[0].tpmi == 5) { - eNB->UE_stats[0].DL_pmi_single = (unsigned short)(taus()&0xffff); + eNB->UE_stats[0].DL_pmi_single = (unsigned short)(taus()&0xffff); - if (n_users>1) eNB->UE_stats[1].DL_pmi_single = (eNB->UE_stats[0].DL_pmi_single ^ 0x1555); //opposite PMI + if (n_users>1) + eNB->UE_stats[1].DL_pmi_single = (eNB->UE_stats[0].DL_pmi_single ^ 0x1555); //opposite PMI } else { - eNB->UE_stats[0].DL_pmi_single = 0; + eNB->UE_stats[0].DL_pmi_single = 0; - if (n_users>1) eNB->UE_stats[1].DL_pmi_single = 0; + if (n_users>1) + eNB->UE_stats[1].DL_pmi_single = 0; } - L1_rxtx_proc_t *proc_eNB = &eNB->proc.L1_proc; //&eNB->proc.proc_rxtx[0]; //UE->current_thread_id[subframe]]; - proc_eNB->frame_tx = 0; + L1_rxtx_proc_t *proc_eNB = &eNB->proc.L1_proc; + proc_eNB->frame_tx=0; if (input_fd==NULL) { DL_req.dl_config_request_body.number_pdcch_ofdm_symbols = num_pdcch_symbols; @@ -1846,7 +1506,7 @@ int main(int argc, char **argv) { start_meas(&eNB->ofdm_mod_stats); ru->proc.tti_tx=subframe; - memcpy((void *)&ru->frame_parms,(void *)&eNB->frame_parms,sizeof(LTE_DL_FRAME_PARMS)); + memcpy((void *)ru->frame_parms,(void *)&eNB->frame_parms,sizeof(LTE_DL_FRAME_PARMS)); feptx_prec(ru,proc_eNB->frame_tx,subframe); feptx_ofdm(ru,proc_eNB->frame_tx,subframe); stop_meas(&eNB->ofdm_mod_stats); @@ -1859,8 +1519,8 @@ int main(int argc, char **argv) { schedule_response(&sched_resp); phy_procedures_eNB_TX(eNB,proc_eNB,0); ru->proc.tti_tx=(subframe+1)%10; - feptx_prec(ru,proc_eNB->frame_tx,subframe+1); - feptx_ofdm(ru,proc_eNB->frame_tx,subframe+1); + feptx_prec(ru,proc_eNB->frame_tx,subframe+1); + feptx_ofdm(ru,proc_eNB->frame_tx,subframe+1); proc_eNB->frame_tx++; tx_lev = 0; diff --git a/openair1/SIMULATION/NR_PHY/dlsim.c b/openair1/SIMULATION/NR_PHY/dlsim.c index db1cf41ab1926e7585630f0b207bbacb99bb85e2..34953f7626f3804ac9c0cb42687e055303994565 100644 --- a/openair1/SIMULATION/NR_PHY/dlsim.c +++ b/openair1/SIMULATION/NR_PHY/dlsim.c @@ -195,7 +195,7 @@ int main(int argc, char **argv) cpuf = get_cpu_freq_GHz(); - if ( load_configmodule(argc,argv,CONFIG_ENABLECMDLINEONLY) == 0 ) { + if ( load_configmodule(argc,argv,CONFIG_ENABLECMDLINEONLY) == 0) { exit_fun("[SOFTMODEM] Error, configuration module init failed\n"); } @@ -449,8 +449,8 @@ int main(int argc, char **argv) gNB2UE = new_channel_desc_scm(n_tx, n_rx, channel_model, - fs, - bw, + fs, + bw, 0, 0, 0); @@ -703,7 +703,7 @@ int main(int argc, char **argv) for (i=0; i<frame_length_complex_samples; i++) { for (aa=0; aa<frame_parms->nb_antennas_rx; aa++) { - + ((short*) UE->common_vars.rxdata[aa])[2*i] = (short) ((r_re[aa][i] + sqrt(sigma2/2)*gaussdouble(0.0,1.0))); ((short*) UE->common_vars.rxdata[aa])[2*i+1] = (short) ((r_im[aa][i] + sqrt(sigma2/2)*gaussdouble(0.0,1.0))); } @@ -726,7 +726,7 @@ int main(int argc, char **argv) UE_proc.frame_rx = frame; UE_proc.nr_tti_rx= slot; UE_proc.subframe_rx = slot; - + nr_ue_scheduled_response(&UE_mac->scheduled_response); printf("Running phy procedures UE RX %d.%d\n",frame,slot); @@ -743,7 +743,7 @@ int main(int argc, char **argv) if (UE->frame_parms.nb_antennas_rx>1) LOG_M("rxsigF1.m","rxsF1", UE->common_vars.common_vars_rx_data_per_thread[0].rxdataF[1],slot_length_complex_samples_no_prefix,1,1); } - + if (UE->dci_ind.number_of_dcis==0) n_errors++; } } //noise trials diff --git a/openair1/SIMULATION/NR_PHY/pucchsim.c b/openair1/SIMULATION/NR_PHY/pucchsim.c index c0e0eecc1d39e6695537fe654b9df8062010931e..2dea7c1deda3433909ce95dba5ec6c3c1640859c 100644 --- a/openair1/SIMULATION/NR_PHY/pucchsim.c +++ b/openair1/SIMULATION/NR_PHY/pucchsim.c @@ -94,7 +94,7 @@ int main(int argc, char **argv) // int sync_pos, sync_pos_slot; // FILE *rx_frame_file; FILE *output_fd = NULL; - uint8_t write_output_file=0; + //uint8_t write_output_file=0; //int result; //int freq_offset; //int subframe_offset; @@ -144,7 +144,7 @@ int main(int argc, char **argv) while ((c = getopt (argc, argv, "f:hA:f:g:n:o:s:S:t:x:y:z:N:F:GR:P:IL:")) != -1) { switch (c) { case 'f': - write_output_file=1; + //write_output_file=1; output_fd = fopen(optarg,"w"); if (output_fd==NULL) { diff --git a/openair1/SIMULATION/NR_PHY/ulschsim.c b/openair1/SIMULATION/NR_PHY/ulschsim.c index 22a4258f379937d59e7956dbaf73ee6bf4d4bb31..d80327e1bd813d8246ef10f04ff2f38495e483c3 100644 --- a/openair1/SIMULATION/NR_PHY/ulschsim.c +++ b/openair1/SIMULATION/NR_PHY/ulschsim.c @@ -104,7 +104,7 @@ int main(int argc, char **argv) { char c; int i,sf; - double SNR, SNR_lin, snr0 = -2.0, snr1 = 2.0; + double SNR, snr0 = -2.0, snr1 = 2.0; //, SNR_lin; double snr_step = 0.1; uint8_t snr1set = 0; FILE *output_fd = NULL; @@ -123,7 +123,7 @@ int main(int argc, char **argv) { //unsigned char pbch_phase = 0; int frame = 0, subframe = 0; NR_DL_FRAME_PARMS *frame_parms; - double sigma; + //double sigma; unsigned char qbits = 8; int ret; int loglvl = OAILOG_WARNING; @@ -531,15 +531,10 @@ int main(int argc, char **argv) { //if (i<16) printf("modulated_input[%d] = %d\n",i,modulated_input[i]); - SNR_lin = pow(10, SNR / 10.0); - sigma = 1.0 / sqrt(2 * SNR_lin); -#if 0 - channel_output_fixed[i] = (short) quantize(sigma / 4.0 / 4.0, - modulated_input[i] + sigma * gaussdouble(0.0, 1.0), - qbits); -#else + //SNR_lin = pow(10, SNR / 10.0); + //sigma = 1.0 / sqrt(2 * SNR_lin); channel_output_fixed[i] = (short) quantize(0.01, modulated_input[i], qbits); -#endif + //channel_output_fixed[i] = (short) quantize(sigma / 4.0 / 4.0, modulated_input[i] + sigma * gaussdouble(0.0, 1.0), qbits); //channel_output_fixed[i] = (char)quantize8bit(sigma/4.0,(2.0*modulated_input[i]) - 1.0 + sigma*gaussdouble(0.0,1.0)); //printf("channel_output_fixed[%d]: %d\n",i,channel_output_fixed[i]); diff --git a/openair1/SIMULATION/NR_PHY/ulsim.c b/openair1/SIMULATION/NR_PHY/ulsim.c index a792c94049a9046f3056ac26f48ac306baf8c606..e477f32d45a3aef4fd0a99f1ec92e6e4326a204c 100644 --- a/openair1/SIMULATION/NR_PHY/ulsim.c +++ b/openair1/SIMULATION/NR_PHY/ulsim.c @@ -453,7 +453,7 @@ int main(int argc, char **argv) { unsigned char harq_pid = 0; unsigned int TBS = 8424; unsigned int available_bits; - uint8_t nb_re_dmrs = UE->dmrs_UplinkConfig.pusch_maxLength*(UE->dmrs_UplinkConfig.pusch_dmrs_type == pusch_dmrs_type1)?6:4; + uint8_t nb_re_dmrs = UE->dmrs_UplinkConfig.pusch_maxLength*(UE->dmrs_UplinkConfig.pusch_dmrs_type == pusch_dmrs_type1)?6:4; uint8_t length_dmrs = 1; unsigned char mod_order; diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c index 1f88e2a03ca0d37c70c83240423b279c2946a79d..4d96693831af5070dccef7e3e0bd8fee59f4b8c3 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c @@ -400,7 +400,7 @@ void nr_configure_dci_from_pdcch_config(nfapi_nr_dl_config_pdcch_parameters_rel1 // first symbol //AssertFatal(pdcch_scs==kHz15, "PDCCH SCS above 15kHz not allowed if a symbol above 2 is monitored"); for (int i=0; i<get_symbolsperslot(&cfg); i++) - if ((search_space->monitoring_symbols_in_slot>>(15-i))&1) { + if ((search_space->monitoring_symbols_in_slot>>(31-i))&1) { pdcch_params->first_symbol=i; break; } diff --git a/openair2/LAYER2/NR_MAC_gNB/main.c b/openair2/LAYER2/NR_MAC_gNB/main.c index 7e6705d87f9c2ab161adf75c6c10fd207a4874f4..8e8a556febaed359a8d8c8886cf5aad4c4e7510c 100644 --- a/openair2/LAYER2/NR_MAC_gNB/main.c +++ b/openair2/LAYER2/NR_MAC_gNB/main.c @@ -57,8 +57,8 @@ void nr_init_coreset(nfapi_nr_coreset_t *coreset) { coreset->dmrs_scrambling_id = 0; } -void nr_init_search_space(nfapi_nr_search_space_t *search_space) { - +void nr_init_search_space(nfapi_nr_search_space_t *search_space) +{ search_space->search_space_id = 1; search_space->coreset_id = 1; search_space->search_space_type = NFAPI_NR_SEARCH_SPACE_TYPE_UE_SPECIFIC; diff --git a/openair2/NETWORK_DRIVER/MESH/local.h b/openair2/NETWORK_DRIVER/MESH/local.h index f3f30f92244148cc0ee8f571306e66e4b9f9cb2f..e0ffeb583d8a945d93b13149784af20284b774b2 100644 --- a/openair2/NETWORK_DRIVER/MESH/local.h +++ b/openair2/NETWORK_DRIVER/MESH/local.h @@ -64,7 +64,9 @@ #include "rrc_nas_primitives.h" #include "COMMON/platform_types.h" -#define MAKE_VERSION(a,b,c) ((a)*256+(b)*16+(c)) +#ifndef MAKE_VERSION + #define MAKE_VERSION(a,b,c) ((a)*256+(b)*16+(c)) +#endif struct rb_entity { nasRadioBearerId_t rab_id; diff --git a/openair2/UTIL/OPT/opt.h b/openair2/UTIL/OPT/opt.h index 5bd08a38985d2d4979ea8fbbfc78767f4413a4d1..e4ad6c227330a7d0f4f2ee837e4df27cc9ec17e0 100644 --- a/openair2/UTIL/OPT/opt.h +++ b/openair2/UTIL/OPT/opt.h @@ -68,14 +68,14 @@ typedef guint8 gboolean; #define CONFIG_HLP_TYPEMON "Type of L2 monitoring messages: none,pcap,wireshark \n" #define CONFIG_HLP_L2MONIP "ip address for wireshark messages \n" #define CONFIG_HLP_L2MONPATH "file path for pcap messages on localhost \n" -/*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ -/* command line parameters for LOG utility */ -/* optname helpstr paramflags XXXptr defXXXval type numelt */ -/*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ +/*---------------------------------------------------------------------------------------------------------------------------------------------*/ +/* command line parameters for LOG utility */ +/* optname helpstr paramflags XXXptr defXXXval type numelt */ +/*---------------------------------------------------------------------------------------------------------------------------------------------*/ #define OPT_PARAMS_DESC { \ - {"type" , CONFIG_HLP_TYPEMON, 0, strptr:&in_type, defstrval:"none", TYPE_STRING, 0}, \ - {"ip" , CONFIG_HLP_L2MONIP, 0, strptr:&in_ip, defstrval:"127.0.0.1", TYPE_STRING, 0}, \ - {"path" , CONFIG_HLP_L2MONPATH, 0, strptr:&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, 0}, \ + {"type" , CONFIG_HLP_TYPEMON, 0, strptr:&in_type, defstrval:"none", TYPE_STRING, 0}, \ + {"ip" , CONFIG_HLP_L2MONIP, 0, strptr:&in_ip, defstrval:"127.0.0.1", TYPE_STRING, 0}, \ + {"path" , CONFIG_HLP_L2MONPATH, 0, strptr:&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, 0}, \ } #define OPTTYPE_IDX 0 diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c index a3675be2797f90af0a94d0b8e5fa00e89a1ee780..ff34e4e52e512b908ff6045ccc82196884cb8fbc 100644 --- a/openair2/UTIL/OPT/probe.c +++ b/openair2/UTIL/OPT/probe.c @@ -99,8 +99,6 @@ int opt_enabled=0; //static unsigned char g_PDUBuffer[1600]; //static unsigned int g_PDUOffset; -char in_ip[40]; -char in_path[FILENAME_MAX]; FILE *file_fd = NULL; pcap_hdr_t file_header = { 0xa1b2c3d4, /* magic number */ @@ -334,7 +332,9 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType, /* Write an individual PDU (PCAP packet header + mac-context + mac-pdu) */ static int MAC_LTE_PCAP_WritePDU(MAC_Context_Info_t *context, - const uint8_t *PDU, unsigned int length) { + const uint8_t *PDU, + unsigned int length) +{ pcaprec_hdr_t packet_header; uint8_t context_header[256]; int offset = 0; @@ -379,6 +379,7 @@ static int MAC_LTE_PCAP_WritePDU(MAC_Context_Info_t *context, fwrite(PDU, 1, length, file_fd); return 1; } + #include <common/ran_context.h> extern RAN_CONTEXT_t RC; #include <openair1/PHY/phy_extern_ue.h> @@ -434,8 +435,11 @@ void trace_pdu(int direction, uint8_t *pdu_buffer, unsigned int pdu_buffer_size, } } /*---------------------------------------------------*/ -int init_opt(void) { +int init_opt(void) +{ char *in_type=NULL; + char *in_ip=NULL; + char *in_path=NULL; paramdef_t opt_params[] = OPT_PARAMS_DESC ; checkedparam_t opt_checkParams[] = OPTPARAMS_CHECK_DESC; uint16_t in_port; @@ -520,6 +524,7 @@ int init_opt(void) { // memset(mac_info, 0, sizeof(mac_lte_info)+pdu_buffer_size + 8); return (1); } + void terminate_opt(void) { /* Close local socket */ // free(mac_info); diff --git a/targets/ARCH/COMMON/common_lib.c b/targets/ARCH/COMMON/common_lib.c index 493e78a8ab85422dfec0e12649a5dde5a3ce1f77..c6c349272e86d84f9fdf9dc668815320096bf98a 100644 --- a/targets/ARCH/COMMON/common_lib.c +++ b/targets/ARCH/COMMON/common_lib.c @@ -153,8 +153,7 @@ void uhd_set_thread_prio(void) { } else { (set_prio_func_t)shlib_fdesc[0].fptr(); } - return ret; - + //return ret; } int openair0_device_load(openair0_device *device, diff --git a/targets/RT/USER/lte-softmodem-common.c b/targets/RT/USER/lte-softmodem-common.c index f152e7c83dc7ff44ded52925883a7ac686121c47..19c8e29d26035a2f1718e1e5ae5773591cab3200 100644 --- a/targets/RT/USER/lte-softmodem-common.c +++ b/targets/RT/USER/lte-softmodem-common.c @@ -54,6 +54,7 @@ softmodem_params_t *get_softmodem_params(void) { void get_common_options(void) { uint32_t online_log_messages; uint32_t glog_level ; + uint32_t glog_verbosity; uint32_t start_telnetsrv; uint32_t noS1; uint32_t nokrnmod; diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h index 715efe0bf36d997355e398909faeeed3292240ef..1be33d36752d48932f0308302b8c115e4df627d0 100644 --- a/targets/RT/USER/lte-softmodem.h +++ b/targets/RT/USER/lte-softmodem.h @@ -102,17 +102,17 @@ /*------------------------------------------------------------------------------------------------------------------------------------------*/ /* command line parameters defining UE running mode */ -/* optname helpstr paramflags XXXptr defXXXval type numelt */ +/* optname helpstr paramflags XXXptr defXXXval type numelt */ /*------------------------------------------------------------------------------------------------------------------------------------------*/ #define CMDLINE_UEMODEPARAMS_DESC { \ - {"calib-ue-rx", CONFIG_HLP_CALUER, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ - {"calib-ue-rx-med", CONFIG_HLP_CALUERM, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ - {"calib-ue-rx-byp", CONFIG_HLP_CALUERB, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ - {"debug-ue-prach", CONFIG_HLP_DBGUEPR, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ - {"no-L2-connect", CONFIG_HLP_NOL2CN, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ - {"calib-prach-tx", CONFIG_HLP_CALPRACH, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ - {"loop-memory", CONFIG_HLP_UELOOP, 0, strptr:&loopfile, defstrval:"iqs.in", TYPE_STRING,0}, \ - {"ue-dump-frame", CONFIG_HLP_DUMPFRAME, PARAMFLAG_BOOL, iptr:&dumpframe, defintval:0, TYPE_INT, 0}, \ + {"calib-ue-rx", CONFIG_HLP_CALUER, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ + {"calib-ue-rx-med", CONFIG_HLP_CALUERM, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ + {"calib-ue-rx-byp", CONFIG_HLP_CALUERB, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ + {"debug-ue-prach", CONFIG_HLP_DBGUEPR, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ + {"no-L2-connect", CONFIG_HLP_NOL2CN, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ + {"calib-prach-tx", CONFIG_HLP_CALPRACH, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ + {"loop-memory", CONFIG_HLP_UELOOP, 0, strptr:&loopfile, defstrval:"iqs.in", TYPE_STRING,0}, \ + {"ue-dump-frame", CONFIG_HLP_DUMPFRAME, PARAMFLAG_BOOL, iptr:&dumpframe, defintval:0, TYPE_INT, 0}, \ } #define CMDLINE_CALIBUERX_IDX 0 #define CMDLINE_CALIBUERXMED_IDX 1 @@ -166,7 +166,7 @@ {"threadSlot1ProcOne", NULL, 0, iptr:&(threads.slot1_proc_one), defintval:1, TYPE_INT, 0}, \ {"threadSlot1ProcTwo", NULL, 0, iptr:&(threads.slot1_proc_two), defintval:1, TYPE_INT, 0}, \ } -// {"threadIQ", NULL, 0, iptr:&(threads.iq), defintval:1, TYPE_INT, 0}, \ +// {"threadIQ", NULL, 0, iptr:&(threads.iq), defintval:1, TYPE_INT, 0}, #define DEFAULT_DLF 2680000000 @@ -188,7 +188,6 @@ {"ulsch-max-errors", CONFIG_HLP_ULMAXE, 0, uptr:&ULSCH_max_consecutive_errors, defuintval:0, TYPE_UINT, 0}, \ {"phy-test", CONFIG_HLP_PHYTST, PARAMFLAG_BOOL, iptr:&PHY_TEST, defintval:0, TYPE_INT, 0}, \ {"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&USIM_TEST, defintval:0, TYPE_UINT8, 0}, \ - {"emulate-rf" , CONFIG_HLP_EMULATE_RF, PARAMFLAG_BOOL, iptr:&EMULATE_RF, defintval:0, TYPE_INT, 0}, \ {"clock", CONFIG_HLP_CLK, 0, uptr:&CLOCK_SOURCE, defintval:0, TYPE_UINT, 0}, \ {"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&WAIT_FOR_SYNC, defintval:0, TYPE_INT, 0}, \ {"single-thread-enable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&SINGLE_THREAD_FLAG, defintval:0, TYPE_INT, 0}, \ @@ -198,6 +197,7 @@ {"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \ {"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \ {"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&NUMEROLOGY, defintval:0, TYPE_INT, 0}, \ + {"emulate-rf" , CONFIG_HLP_EMULATE_RF, PARAMFLAG_BOOL, iptr:&EMULATE_RF, defintval:0, TYPE_INT, 0}, \ {"parallel-config", CONFIG_HLP_PARALLEL_CMD,0, strptr:(char **)¶llel_config, defstrval:NULL, TYPE_STRING, 0}, \ {"worker-config", CONFIG_HLP_WORKER_CMD, 0, strptr:(char **)&worker_config, defstrval:NULL, TYPE_STRING, 0}, \ {"noS1", CONFIG_HLP_NOS1, PARAMFLAG_BOOL, uptr:&noS1, defintval:0, TYPE_INT, 0}, \ @@ -209,19 +209,22 @@ #define CONFIG_HLP_FLOG "Enable online log \n" #define CONFIG_HLP_LOGL "Set the global log level, valid options: (4:trace, 3:debug, 2:info, 1:warn, (0:error))\n" +#define CONFIG_HLP_LOGV "Set the global log verbosity \n" #define CONFIG_HLP_TELN "Start embedded telnet server \n" #define CONFIG_HLP_MSC "Enable the MSC tracing utility \n" /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* command line parameters for LOG utility */ /* optname helpstr paramflags XXXptr defXXXval type numelt */ /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ -#define START_MSC softmodem_params.start_msc +#define START_MSC softmodem_params.start_msc #define CMDLINE_LOGPARAMS_DESC { \ - {"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \ - {"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \ - {"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \ - {"msc", CONFIG_HLP_MSC, PARAMFLAG_BOOL, uptr:&START_MSC, defintval:0, TYPE_UINT, 0}, \ + {"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \ + {"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \ + {"G" , CONFIG_HLP_LOGV, 0, uptr:&glog_verbosity, defintval:0, TYPE_UINT16, 0}, \ + {"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \ + {"msc", CONFIG_HLP_MSC, PARAMFLAG_BOOL, uptr:&START_MSC, defintval:0, TYPE_UINT, 0}, \ } + #define CMDLINE_ONLINELOG_IDX 0 #define CMDLINE_GLOGLEVEL_IDX 1 #define CMDLINE_GLOGVERBO_IDX 2 @@ -229,10 +232,10 @@ /* check function for global log level */ #define CMDLINE_LOGPARAMS_CHECK_DESC { \ - { .s5= {NULL }} , \ - { .s2= { config_check_intrange, {0,4}}}, \ - { .s5= {NULL }} , \ - { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s2= { config_check_intrange, {0,4}}}, \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ } /***************************************************************************************************************************************/ @@ -282,8 +285,6 @@ void set_worker_conf(char *worker_conf); */ - - #define SOFTMODEM_NOS1_BIT (1<<0) #define SOFTMODEM_NOKRNMOD_BIT (1<<1) #define SOFTMODEM_NONBIOT_BIT (1<<2) @@ -324,9 +325,8 @@ extern pthread_cond_t sync_cond; extern pthread_mutex_t sync_mutex; extern int sync_var; - -extern uint32_t downlink_frequency[MAX_NUM_CCs][4]; -extern int32_t uplink_frequency_offset[MAX_NUM_CCs][4]; +extern uint32_t downlink_frequency[MAX_NUM_CCs][4]; +extern int32_t uplink_frequency_offset[MAX_NUM_CCs][4]; extern int rx_input_level_dBm; extern uint8_t exit_missed_slots; @@ -343,7 +343,8 @@ extern int transmission_mode; extern double cpuf; // In lte-enb.c -extern void init_eNB(int single_thread_flag,int wait_for_sync); +extern void init_eNB(int single_thread_flag, + int wait_for_sync); extern void stop_eNB(int); extern void kill_eNB_proc(int inst); @@ -357,7 +358,8 @@ extern void kill_RU_proc(RU_t *ru); extern void set_function_spec_param(RU_t *ru); // In lte-ue.c -extern int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg); +extern int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, + openair0_config_t *openair0_cfg); extern void fill_ue_band_info(void); extern void init_UE(int nb_inst, @@ -371,7 +373,11 @@ extern void init_UE(int nb_inst, int rxgain, int txpowermax, LTE_DL_FRAME_PARMS *fp); -extern void init_thread(int sched_runtime, int sched_deadline, int sched_fifo, cpu_set_t *cpuset, char *name); +extern void init_thread(int sched_runtime, + int sched_deadline, + int sched_fifo, + cpu_set_t *cpuset, + char *name); extern void reset_opp_meas(void); extern void print_opp_meas(void); @@ -394,7 +400,10 @@ extern int stop_L1L2(module_id_t enb_id); extern int restart_L1L2(module_id_t enb_id); -extern void init_UE_stub_single_thread(int nb_inst,int eMBMS_active, int uecap_xer_in, char *emul_iface); +extern void init_UE_stub_single_thread(int nb_inst, + int eMBMS_active, + int uecap_xer_in, + char *emul_iface); extern PHY_VARS_UE *init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, uint8_t UE_id,