final minor changes before the merge
This commit is contained in:
@@ -25,7 +25,6 @@
|
|||||||
* \date 2009 - 2014
|
* \date 2009 - 2014
|
||||||
* \version 0.5
|
* \version 0.5
|
||||||
* @ingroup util
|
* @ingroup util
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __LOG_H__
|
#ifndef __LOG_H__
|
||||||
@@ -297,7 +296,7 @@ extern "C" {
|
|||||||
# include "log_if.h"
|
# include "log_if.h"
|
||||||
/*----------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------*/
|
||||||
int logInit (void);
|
int logInit (void);
|
||||||
int isLogInitDone (void);
|
int isLogInitDone (void);
|
||||||
void logRecord_mt(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
|
void logRecord_mt(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
|
||||||
void vlogRecord_mt(const char *file, const char *func, int line, int comp, int level, const char *format, va_list args );
|
void vlogRecord_mt(const char *file, const char *func, int line, int comp, int level, const char *format, va_list args );
|
||||||
void log_dump(int component, void *buffer, int buffsize,int datatype, const char *format, ... );
|
void log_dump(int component, void *buffer, int buffsize,int datatype, const char *format, ... );
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ int rx_input_level_dBm;
|
|||||||
uint32_t do_forms=0;
|
uint32_t do_forms=0;
|
||||||
int otg_enabled;
|
int otg_enabled;
|
||||||
|
|
||||||
//int number_of_cards = 1;
|
//int number_of_cards = 1;
|
||||||
|
|
||||||
|
|
||||||
//static NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs];
|
//static NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs];
|
||||||
@@ -190,46 +190,10 @@ int transmission_mode=1;
|
|||||||
int emulate_rf = 0;
|
int emulate_rf = 0;
|
||||||
int numerology = 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 softmodem_params_t softmodem_params;
|
||||||
|
|
||||||
static char *parallel_config = NULL;
|
static char *parallel_config = NULL;
|
||||||
static char *worker_config = NULL;
|
static char *worker_config = NULL;
|
||||||
/*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;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/* struct for ethernet specific parameters given in eNB conf file */
|
/* struct for ethernet specific parameters given in eNB conf file */
|
||||||
eth_params_t *eth_params;
|
eth_params_t *eth_params;
|
||||||
|
|||||||
+30
-31
@@ -8,42 +8,41 @@
|
|||||||
|
|
||||||
#define DEFAULT_DLF 2680000000
|
#define DEFAULT_DLF 2680000000
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************************************************************************/
|
/***************************************************************************************************************************************/
|
||||||
/* command line options definitions, CMDLINE_XXXX_DESC macros are used to initialize paramdef_t arrays which are then used as argument
|
/* command line options definitions, CMDLINE_XXXX_DESC macros are used to initialize paramdef_t arrays which are then used as argument
|
||||||
when calling config_get or config_getlist functions */
|
when calling config_get or config_getlist functions */
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
/* command line parameters common to eNodeB and UE */
|
/* command line parameters common to eNodeB and UE */
|
||||||
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
||||||
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
#define CMDLINE_PARAMS_DESC_GNB { \
|
#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)},\
|
{"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}, \
|
{"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}, \
|
{"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}, \
|
{"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&usim_test, defintval:0, TYPE_UINT8, 0}, \
|
||||||
{"mmapped-dma", CONFIG_HLP_DMAMAP, PARAMFLAG_BOOL, uptr:&mmapped_dma, defintval:0, TYPE_INT, 0}, \
|
{"mmapped-dma", CONFIG_HLP_DMAMAP, PARAMFLAG_BOOL, uptr:&mmapped_dma, defintval:0, TYPE_INT, 0}, \
|
||||||
{"external-clock", CONFIG_HLP_EXCCLK, PARAMFLAG_BOOL, uptr:&clock_source, defintval:0, TYPE_INT, 0}, \
|
{"external-clock", CONFIG_HLP_EXCCLK, PARAMFLAG_BOOL, uptr:&clock_source, defintval:0, TYPE_INT, 0}, \
|
||||||
{"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&wait_for_sync, defintval:0, TYPE_INT, 0}, \
|
{"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&wait_for_sync, defintval:0, TYPE_INT, 0}, \
|
||||||
{"single-thread-disable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&single_thread_flag, defintval:1, TYPE_INT, 0}, \
|
{"single-thread-disable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&single_thread_flag, defintval:1, TYPE_INT, 0}, \
|
||||||
{"A" , CONFIG_HLP_TADV, 0, uptr:&timing_advance, defintval:0, TYPE_UINT, 0}, \
|
{"A" , CONFIG_HLP_TADV, 0, uptr:&timing_advance, defintval:0, TYPE_UINT, 0}, \
|
||||||
{"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:DEFAULT_DLF, TYPE_UINT, 0}, \
|
{"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:DEFAULT_DLF, TYPE_UINT, 0}, \
|
||||||
{"a" , CONFIG_HLP_CHOFF, 0, iptr:&chain_offset, defintval:0, TYPE_INT, 0}, \
|
{"a" , CONFIG_HLP_CHOFF, 0, iptr:&chain_offset, defintval:0, TYPE_INT, 0}, \
|
||||||
{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&do_forms, defintval:0, TYPE_INT8, 0}, \
|
{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&do_forms, defintval:0, TYPE_INT8, 0}, \
|
||||||
{"E" , CONFIG_HLP_TQFS, PARAMFLAG_BOOL, i8ptr:&threequarter_fs, defintval:0, TYPE_INT8, 0}, \
|
{"E" , CONFIG_HLP_TQFS, PARAMFLAG_BOOL, i8ptr:&threequarter_fs, defintval:0, TYPE_INT8, 0}, \
|
||||||
{"K" , CONFIG_HLP_ITTIL, PARAMFLAG_NOFREE, strptr:&itti_dump_file, defstrval:"/tmp/itti.dump", TYPE_STRING, 0}, \
|
{"K" , CONFIG_HLP_ITTIL, PARAMFLAG_NOFREE, strptr:&itti_dump_file, defstrval:"/tmp/itti.dump", TYPE_STRING, 0}, \
|
||||||
{"m" , CONFIG_HLP_DLMCS, 0, uptr:&target_dl_mcs, defintval:0, TYPE_UINT, 0}, \
|
{"m" , CONFIG_HLP_DLMCS, 0, uptr:&target_dl_mcs, defintval:0, TYPE_UINT, 0}, \
|
||||||
{"t" , CONFIG_HLP_ULMCS, 0, uptr:&target_ul_mcs, defintval:0, TYPE_UINT, 0}, \
|
{"t" , CONFIG_HLP_ULMCS, 0, uptr:&target_ul_mcs, defintval:0, TYPE_UINT, 0}, \
|
||||||
{"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \
|
{"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}, \
|
{"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \
|
||||||
{"T" , CONFIG_HLP_TDD, PARAMFLAG_BOOL, iptr:&tddflag, defintval:0, TYPE_INT, 0}, \
|
{"T" , CONFIG_HLP_TDD, PARAMFLAG_BOOL, iptr:&tddflag, defintval:0, TYPE_INT, 0}, \
|
||||||
{"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&numerology, defintval:0, TYPE_INT, 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}, \
|
{"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}, \
|
{"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}, \
|
{"worker-config", CONFIG_HLP_WORKER_CMD, 0, strptr:(char **)&worker_config, defstrval:NULL, TYPE_STRING, 0}, \
|
||||||
{"s" , CONFIG_HLP_SNR, 0, dblptr:&snr_dB, defdblval:25, TYPE_DOUBLE, 0}, \
|
{"s" , CONFIG_HLP_SNR, 0, dblptr:&snr_dB, defdblval:25, TYPE_DOUBLE, 0}, \
|
||||||
{"nbiot-disable", CONFIG_HLP_DISABLNBIOT, PARAMFLAG_BOOL, iptr:&nonbiotflag, defintval:0, TYPE_INT, 0} \
|
{"nbiot-disable", CONFIG_HLP_DISABLNBIOT, PARAMFLAG_BOOL, iptr:&nonbiotflag, defintval:0, TYPE_INT, 0} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ FD_phy_scope_nrue *form_nrue[NUMBER_OF_UE_MAX];
|
|||||||
//FD_lte_phy_scope_enb *form_enb[MAX_NUM_CCs][NUMBER_OF_UE_MAX];
|
//FD_lte_phy_scope_enb *form_enb[MAX_NUM_CCs][NUMBER_OF_UE_MAX];
|
||||||
//FD_stats_form *form_stats=NULL,*form_stats_l2=NULL;
|
//FD_stats_form *form_stats=NULL,*form_stats_l2=NULL;
|
||||||
char title[255];
|
char title[255];
|
||||||
static pthread_t forms_thread; //xforms
|
static pthread_t forms_thread; //xforms
|
||||||
|
|
||||||
#include <executables/nr-uesoftmodem.h>
|
#include <executables/nr-uesoftmodem.h>
|
||||||
#include "executables/softmodem-common.h"
|
#include "executables/softmodem-common.h"
|
||||||
@@ -149,7 +149,7 @@ double bw = 10.0e6;
|
|||||||
|
|
||||||
static int tx_max_power[MAX_NUM_CCs] = {0};
|
static int tx_max_power[MAX_NUM_CCs] = {0};
|
||||||
|
|
||||||
char rf_config_file[1024];
|
char rf_config_file[1024];
|
||||||
|
|
||||||
int chain_offset=0;
|
int chain_offset=0;
|
||||||
int phy_test = 0;
|
int phy_test = 0;
|
||||||
@@ -164,53 +164,18 @@ uint8_t nb_antenna_rx = 1;
|
|||||||
char ref[128] = "internal";
|
char ref[128] = "internal";
|
||||||
char channels[128] = "0";
|
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 softmodem_params_t softmodem_params;
|
||||||
|
|
||||||
static char *parallel_config = NULL;
|
static char *parallel_config = NULL;
|
||||||
static char *worker_config = NULL;
|
static char *worker_config = NULL;
|
||||||
//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 rx_input_level_dBm;
|
int rx_input_level_dBm;
|
||||||
|
|
||||||
//static int online_log_messages=0;
|
//static int online_log_messages=0;
|
||||||
|
|
||||||
uint32_t do_forms=0;
|
uint32_t do_forms=0;
|
||||||
int otg_enabled;
|
int otg_enabled;
|
||||||
//int number_of_cards = 1;
|
//int number_of_cards = 1;
|
||||||
|
|
||||||
static NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs];
|
static NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs];
|
||||||
int16_t node_synch_ref[MAX_NUM_CCs];
|
int16_t node_synch_ref[MAX_NUM_CCs];
|
||||||
|
|||||||
@@ -51,41 +51,41 @@
|
|||||||
{"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:90, TYPE_INT, 0}, \
|
{"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:90, TYPE_INT, 0}, \
|
||||||
{"r" , CONFIG_HLP_PRB, 0, iptr:&(frame_parms[0]->N_RB_DL), defintval:25, TYPE_UINT, 0}, \
|
{"r" , CONFIG_HLP_PRB, 0, iptr:&(frame_parms[0]->N_RB_DL), defintval:25, TYPE_UINT, 0}, \
|
||||||
{"dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \
|
{"dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \
|
||||||
{"usrp-args", CONFIG_HLP_USRP_ARGS, 0, strptr:(char **)&usrp_args, defstrval:"type=b200", TYPE_STRING, 0} \
|
{"usrp-args", CONFIG_HLP_USRP_ARGS, 0, strptr:(char **)&usrp_args, defstrval:"type=b200", TYPE_STRING, 0} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEFAULT_DLF 2680000000
|
#define DEFAULT_DLF 2680000000
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
/* command line parameters common to eNodeB and UE */
|
/* command line parameters common to eNodeB and UE */
|
||||||
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
||||||
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
#define CMDLINE_PARAMS_DESC_UE { \
|
#define CMDLINE_PARAMS_DESC_UE { \
|
||||||
{"rf-config-file", CONFIG_HLP_RFCFGF, 0, strptr:(char **)&rf_config_file, defstrval:NULL, TYPE_STRING, sizeof(rf_config_file)},\
|
{"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}, \
|
{"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}, \
|
{"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}, \
|
{"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&usim_test, defintval:0, TYPE_UINT8, 0}, \
|
||||||
{"external-clock", CONFIG_HLP_EXCCLK, PARAMFLAG_BOOL, uptr:&clock_source, defintval:0, TYPE_INT, 0}, \
|
{"external-clock", CONFIG_HLP_EXCCLK, PARAMFLAG_BOOL, uptr:&clock_source, defintval:0, TYPE_INT, 0}, \
|
||||||
{"single-thread-disable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&single_thread_flag, defintval:1, TYPE_INT, 0}, \
|
{"single-thread-disable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&single_thread_flag, defintval:1, TYPE_INT, 0}, \
|
||||||
{"nr-dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&nr_dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \
|
{"nr-dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&nr_dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \
|
||||||
{"A" , CONFIG_HLP_TADV, 0, uptr:&timing_advance, defintval:0, TYPE_UINT, 0}, \
|
{"A" , CONFIG_HLP_TADV, 0, uptr:&timing_advance, defintval:0, TYPE_UINT, 0}, \
|
||||||
{"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:2680000000, TYPE_UINT, 0}, \
|
{"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:2680000000, TYPE_UINT, 0}, \
|
||||||
{"a" , CONFIG_HLP_CHOFF, 0, iptr:&chain_offset, defintval:0, TYPE_INT, 0}, \
|
{"a" , CONFIG_HLP_CHOFF, 0, iptr:&chain_offset, defintval:0, TYPE_INT, 0}, \
|
||||||
{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:&do_forms, defintval:0, TYPE_INT, 0}, \
|
{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:&do_forms, defintval:0, TYPE_INT, 0}, \
|
||||||
{"E" , CONFIG_HLP_TQFS, PARAMFLAG_BOOL, iptr:&threequarter_fs, defintval:0, TYPE_INT, 0}, \
|
{"E" , CONFIG_HLP_TQFS, PARAMFLAG_BOOL, iptr:&threequarter_fs, defintval:0, TYPE_INT, 0}, \
|
||||||
{"m" , CONFIG_HLP_DLMCS, 0, uptr:&target_dl_mcs, defintval:0, TYPE_UINT, 0}, \
|
{"m" , CONFIG_HLP_DLMCS, 0, uptr:&target_dl_mcs, defintval:0, TYPE_UINT, 0}, \
|
||||||
{"t" , CONFIG_HLP_ULMCS, 0, uptr:&target_ul_mcs, defintval:0, TYPE_UINT, 0}, \
|
{"t" , CONFIG_HLP_ULMCS, 0, uptr:&target_ul_mcs, defintval:0, TYPE_UINT, 0}, \
|
||||||
{"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \
|
{"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}, \
|
{"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \
|
||||||
{"T" , CONFIG_HLP_TDD, PARAMFLAG_BOOL, iptr:&tddflag, defintval:0, TYPE_INT, 0}, \
|
{"T" , CONFIG_HLP_TDD, PARAMFLAG_BOOL, iptr:&tddflag, defintval:0, TYPE_INT, 0}, \
|
||||||
{"V" , CONFIG_HLP_VCD, PARAMFLAG_BOOL, iptr:&vcdflag, defintval:0, TYPE_INT, 0}, \
|
{"V" , CONFIG_HLP_VCD, PARAMFLAG_BOOL, iptr:&vcdflag, defintval:0, TYPE_INT, 0}, \
|
||||||
{"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&numerology, defintval:0, TYPE_INT, 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}, \
|
{"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}, \
|
{"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}, \
|
{"worker-config", CONFIG_HLP_WORKER_CMD, 0, strptr:(char **)&worker_config, defstrval:NULL, TYPE_STRING, 0}, \
|
||||||
{"s" , CONFIG_HLP_SNR, 0, dblptr:&snr_dB, defdblval:25, TYPE_DOUBLE, 0}, \
|
{"s" , CONFIG_HLP_SNR, 0, dblptr:&snr_dB, defdblval:25, TYPE_DOUBLE, 0}, \
|
||||||
{"nbiot-disable", CONFIG_HLP_DISABLNBIOT, PARAMFLAG_BOOL, iptr:&nonbiotflag, defintval:0, TYPE_INT, 0}, \
|
{"nbiot-disable", CONFIG_HLP_DISABLNBIOT, PARAMFLAG_BOOL, iptr:&nonbiotflag, defintval:0, TYPE_INT, 0}, \
|
||||||
{"ue-timing-correction-disable", CONFIG_HLP_DISABLETIMECORR, PARAMFLAG_BOOL, iptr:&UE_no_timing_correction, defintval:0, TYPE_INT, 0} \
|
{"ue-timing-correction-disable", CONFIG_HLP_DISABLETIMECORR, PARAMFLAG_BOOL, iptr:&UE_no_timing_correction, defintval:0, TYPE_INT, 0} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -95,15 +95,12 @@ extern int T_dont_fork;
|
|||||||
|
|
||||||
|
|
||||||
// In nr-ue.c
|
// In nr-ue.c
|
||||||
extern int setup_nr_ue_buffers(PHY_VARS_NR_UE **phy_vars_ue,
|
extern int setup_nr_ue_buffers(PHY_VARS_NR_UE **phy_vars_ue, openair0_config_t *openair0_cfg);
|
||||||
openair0_config_t *openair0_cfg);
|
|
||||||
extern void fill_ue_band_info(void);
|
extern void fill_ue_band_info(void);
|
||||||
extern void init_NR_UE(int);
|
extern void init_NR_UE(int);
|
||||||
extern void reset_opp_meas(void);
|
extern void reset_opp_meas(void);
|
||||||
extern void print_opp_meas(void);
|
extern void print_opp_meas(void);
|
||||||
void *UE_thread(void *arg);
|
void *UE_thread(void *arg);
|
||||||
PHY_VARS_NR_UE *init_nr_ue_vars(NR_DL_FRAME_PARMS *frame_parms,
|
PHY_VARS_NR_UE *init_nr_ue_vars(NR_DL_FRAME_PARMS *frame_parms, uint8_t UE_id, uint8_t abstraction_flag);
|
||||||
uint8_t UE_id,
|
|
||||||
uint8_t abstraction_flag);
|
|
||||||
extern tpool_t *Tpool;
|
extern tpool_t *Tpool;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
#include "common/utils/LOG/log.h"
|
#include "common/utils/LOG/log.h"
|
||||||
#include "targets/RT/USER/lte-softmodem.h"
|
#include "targets/RT/USER/lte-softmodem.h"
|
||||||
#include <syscall.h>
|
#include <syscall.h>
|
||||||
|
#include "executables/thread-common.h"
|
||||||
|
|
||||||
//#define DEBUG_DLSCH_CODING
|
//#define DEBUG_DLSCH_CODING
|
||||||
//#define DEBUG_DLSCH_FREE 1
|
//#define DEBUG_DLSCH_FREE 1
|
||||||
@@ -57,10 +58,8 @@
|
|||||||
uint64_t runtime,
|
uint64_t runtime,
|
||||||
uint64_t deadline,
|
uint64_t deadline,
|
||||||
uint64_t period);*/
|
uint64_t period);*/
|
||||||
//extern WORKER_CONF_t get_thread_worker_conf(void);
|
|
||||||
#include "executables/thread-common.h"
|
|
||||||
extern volatile int oai_exit;
|
|
||||||
|
|
||||||
|
extern volatile int oai_exit;
|
||||||
|
|
||||||
void free_eNB_dlsch(LTE_eNB_DLSCH_t *dlsch) {
|
void free_eNB_dlsch(LTE_eNB_DLSCH_t *dlsch) {
|
||||||
int i, r, aa, layer;
|
int i, r, aa, layer;
|
||||||
@@ -100,7 +99,14 @@ void free_eNB_dlsch(LTE_eNB_DLSCH_t *dlsch) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_t Nsoft,unsigned char N_RB_DL, uint8_t abstraction_flag, LTE_DL_FRAME_PARMS *frame_parms) {
|
|
||||||
|
LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,
|
||||||
|
unsigned char Mdlharq,
|
||||||
|
uint32_t Nsoft,
|
||||||
|
unsigned char N_RB_DL,
|
||||||
|
uint8_t abstraction_flag,
|
||||||
|
LTE_DL_FRAME_PARMS *frame_parms)
|
||||||
|
{
|
||||||
LTE_eNB_DLSCH_t *dlsch;
|
LTE_eNB_DLSCH_t *dlsch;
|
||||||
unsigned char exit_flag = 0,i,j,r,aa,layer;
|
unsigned char exit_flag = 0,i,j,r,aa,layer;
|
||||||
int re;
|
int re;
|
||||||
@@ -222,6 +228,7 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_
|
|||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch) {
|
void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch) {
|
||||||
unsigned char Mdlharq;
|
unsigned char Mdlharq;
|
||||||
unsigned char i,j,r;
|
unsigned char i,j,r;
|
||||||
@@ -258,8 +265,6 @@ void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int dlsch_encoding_2threads0(te_params *tep) {
|
int dlsch_encoding_2threads0(te_params *tep) {
|
||||||
LTE_eNB_DLSCH_t *dlsch = tep->dlsch;
|
LTE_eNB_DLSCH_t *dlsch = tep->dlsch;
|
||||||
unsigned int G = tep->G;
|
unsigned int G = tep->G;
|
||||||
@@ -359,7 +364,6 @@ void *te_thread(void *param) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
|
int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
|
||||||
unsigned char *a,
|
unsigned char *a,
|
||||||
uint8_t num_pdcch_symbols,
|
uint8_t num_pdcch_symbols,
|
||||||
@@ -549,6 +553,8 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
|
|||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_OUT);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_OUT);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int dlsch_encoding_all(PHY_VARS_eNB *eNB,
|
int dlsch_encoding_all(PHY_VARS_eNB *eNB,
|
||||||
unsigned char *a,
|
unsigned char *a,
|
||||||
uint8_t num_pdcch_symbols,
|
uint8_t num_pdcch_symbols,
|
||||||
@@ -813,10 +819,3 @@ int dlsch_encoding(PHY_VARS_eNB *eNB,
|
|||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_OUT);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_OUT);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -898,39 +898,6 @@ typedef struct THREAD_STRUCT_s {
|
|||||||
PARALLEL_CONF_t parallel_conf;
|
PARALLEL_CONF_t parallel_conf;
|
||||||
WORKER_CONF_t worker_conf;
|
WORKER_CONF_t worker_conf;
|
||||||
} THREAD_STRUCT;
|
} THREAD_STRUCT;
|
||||||
/*extern THREAD_STRUCT thread_struct;
|
|
||||||
|
|
||||||
static inline void set_parallel_conf(char *parallel_conf) {
|
|
||||||
mapping config[]= {
|
|
||||||
FOREACH_PARALLEL(GENERATE_ENUMTXT)
|
|
||||||
{NULL,-1}
|
|
||||||
};
|
|
||||||
thread_struct.parallel_conf = (PARALLEL_CONF_t)map_str_to_int(config, parallel_conf);
|
|
||||||
if (thread_struct.parallel_conf == -1 ) {
|
|
||||||
LOG_E(ENB_APP,"Impossible value: %s\n", parallel_conf);
|
|
||||||
thread_struct.parallel_conf = PARALLEL_SINGLE_THREAD;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void set_worker_conf(char *worker_conf) {
|
|
||||||
mapping config[]={
|
|
||||||
FOREACH_WORKER(GENERATE_ENUMTXT)
|
|
||||||
{NULL, -1}
|
|
||||||
};
|
|
||||||
thread_struct.worker_conf = (WORKER_CONF_t)map_str_to_int(config, worker_conf);
|
|
||||||
if (thread_struct.worker_conf == -1 ) {
|
|
||||||
LOG_E(ENB_APP,"Impossible value: %s\n", worker_conf);
|
|
||||||
thread_struct.worker_conf = WORKER_DISABLE ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline PARALLEL_CONF_t get_thread_parallel_conf(void) {
|
|
||||||
return thread_struct.parallel_conf;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline WORKER_CONF_t get_thread_worker_conf(void) {
|
|
||||||
return thread_struct.worker_conf;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
typedef enum {SF_DL, SF_UL, SF_S} lte_subframe_t;
|
typedef enum {SF_DL, SF_UL, SF_S} lte_subframe_t;
|
||||||
|
|
||||||
|
|||||||
@@ -35,38 +35,30 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <execinfo.h>
|
#include <execinfo.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include "common/config/config_load_configmodule.h"
|
||||||
#include "SIMULATION/TOOLS/sim.h"
|
#include "common/utils/LOG/log.h"
|
||||||
|
#include "LAYER2/MAC/mac_vars.h"
|
||||||
|
#include "nfapi/oai_integration/vendor_ext.h"
|
||||||
#include "PHY/types.h"
|
#include "PHY/types.h"
|
||||||
#include "PHY/defs_eNB.h"
|
#include "PHY/defs_eNB.h"
|
||||||
#include "PHY/defs_UE.h"
|
#include "PHY/defs_UE.h"
|
||||||
#include "PHY/phy_vars.h"
|
#include "PHY/phy_vars.h"
|
||||||
|
#include "PHY/INIT/phy_init.h"
|
||||||
#include "SCHED/sched_eNB.h"
|
#include "PHY/LTE_TRANSPORT/transport_proto.h"
|
||||||
#include "SCHED/sched_common_vars.h"
|
#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
|
||||||
#include "LAYER2/MAC/mac_vars.h"
|
|
||||||
|
|
||||||
#include "OCG_vars.h"
|
|
||||||
#include "common/utils/LOG/log.h"
|
|
||||||
#include "UTIL/LISTS/list.h"
|
|
||||||
|
|
||||||
#include "unitary_defs.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include "PHY/TOOLS/lte_phy_scope.h"
|
|
||||||
|
|
||||||
#include "dummy_functions.c"
|
|
||||||
|
|
||||||
#include "PHY/MODULATION/modulation_common.h"
|
#include "PHY/MODULATION/modulation_common.h"
|
||||||
#include "PHY/MODULATION/modulation_eNB.h"
|
#include "PHY/MODULATION/modulation_eNB.h"
|
||||||
#include "PHY/MODULATION/modulation_UE.h"
|
#include "PHY/MODULATION/modulation_UE.h"
|
||||||
#include "PHY/LTE_TRANSPORT/transport_proto.h"
|
#include "PHY/TOOLS/lte_phy_scope.h"
|
||||||
#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
|
|
||||||
#include "SCHED/sched_eNB.h"
|
#include "SCHED/sched_eNB.h"
|
||||||
|
#include "SCHED/sched_common_vars.h"
|
||||||
#include "SCHED_UE/sched_UE.h"
|
#include "SCHED_UE/sched_UE.h"
|
||||||
#include "common/config/config_load_configmodule.h"
|
#include "SIMULATION/TOOLS/sim.h"
|
||||||
#include "PHY/INIT/phy_init.h"
|
#include "UTIL/LISTS/list.h"
|
||||||
#include "nfapi/oai_integration/vendor_ext.h"
|
#include "OCG_vars.h"
|
||||||
|
#include "unitary_defs.h"
|
||||||
|
#include "dummy_functions.c"
|
||||||
|
#include "executables/thread-common.h"
|
||||||
|
|
||||||
void feptx_ofdm(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);
|
void feptx_prec(RU_t *ru, int frame, int subframe);
|
||||||
@@ -84,30 +76,6 @@ double t_tx_min = 1000000000; /*!< \brief initial min process time for tx */
|
|||||||
double t_rx_min = 1000000000; /*!< \brief initial min process time for rx */
|
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_tx_dropped = 0; /*!< \brief initial max process time for tx */
|
||||||
int n_rx_dropped = 0; /*!< \brief initial max process time for rx */
|
int n_rx_dropped = 0; /*!< \brief initial max process time for rx */
|
||||||
#include "executables/thread-common.h"
|
|
||||||
//THREAD_STRUCT thread_struct;
|
|
||||||
//static THREAD_STRUCT thread_struct;
|
|
||||||
|
|
||||||
/*void set_parallel_conf_dlsim(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_dlsim(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;
|
int emulate_rf = 0;
|
||||||
|
|
||||||
@@ -122,8 +90,6 @@ void handler(int sig) {
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//DCI2_5MHz_2A_M10PRB_TDD_t DLSCH_alloc_pdu2_2A[2];
|
//DCI2_5MHz_2A_M10PRB_TDD_t DLSCH_alloc_pdu2_2A[2];
|
||||||
|
|
||||||
DCI1E_5MHz_2A_M10PRB_TDD_t DLSCH_alloc_pdu2_1E[2];
|
DCI1E_5MHz_2A_M10PRB_TDD_t DLSCH_alloc_pdu2_1E[2];
|
||||||
|
|||||||
@@ -33,30 +33,28 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "SIMULATION/TOOLS/sim.h"
|
#include "LAYER2/MAC/mac_vars.h"
|
||||||
#include "PHY/types.h"
|
#include "PHY/types.h"
|
||||||
#include "PHY/defs_common.h"
|
#include "PHY/defs_common.h"
|
||||||
#include "PHY/defs_eNB.h"
|
#include "PHY/defs_eNB.h"
|
||||||
#include "PHY/defs_UE.h"
|
#include "PHY/defs_UE.h"
|
||||||
#include "PHY/phy_vars.h"
|
#include "PHY/phy_vars.h"
|
||||||
#include "targets/RT/USER/lte-softmodem.h"
|
#include "PHY/INIT/phy_init.h"
|
||||||
|
#include "PHY/LTE_TRANSPORT/transport_proto.h"
|
||||||
|
#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
|
||||||
|
#include "PHY/TOOLS/lte_phy_scope.h"
|
||||||
#include "SCHED/sched_common_vars.h"
|
#include "SCHED/sched_common_vars.h"
|
||||||
#include "SCHED/sched_eNB.h"
|
#include "SCHED/sched_eNB.h"
|
||||||
#include "SCHED_UE/sched_UE.h"
|
#include "SCHED_UE/sched_UE.h"
|
||||||
#include "LAYER2/MAC/mac_vars.h"
|
#include "SIMULATION/TOOLS/sim.h"
|
||||||
#include "OCG_vars.h"
|
#include "OCG_vars.h"
|
||||||
|
|
||||||
#include "PHY/LTE_TRANSPORT/transport_proto.h"
|
|
||||||
#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
|
|
||||||
#include "PHY/INIT/phy_init.h"
|
|
||||||
|
|
||||||
#include "unitary_defs.h"
|
#include "unitary_defs.h"
|
||||||
|
|
||||||
#include "PHY/TOOLS/lte_phy_scope.h"
|
|
||||||
#include "dummy_functions.c"
|
#include "dummy_functions.c"
|
||||||
#include "nfapi/oai_integration/vendor_ext.h"
|
#include "nfapi/oai_integration/vendor_ext.h"
|
||||||
#include "common/config/config_load_configmodule.h"
|
#include "common/config/config_load_configmodule.h"
|
||||||
|
#include "executables/thread-common.h"
|
||||||
|
#include "targets/RT/USER/lte-softmodem.h"
|
||||||
|
|
||||||
double cpuf;
|
double cpuf;
|
||||||
#define inMicroS(a) (((double)(a))/(cpu_freq_GHz*1000.0))
|
#define inMicroS(a) (((double)(a))/(cpu_freq_GHz*1000.0))
|
||||||
//#define MCS_COUNT 23//added for PHY abstraction
|
//#define MCS_COUNT 23//added for PHY abstraction
|
||||||
@@ -96,8 +94,6 @@ nfapi_tx_request_pdu_t tx_pdu_list[MAX_NUM_TX_REQUEST_PDU];
|
|||||||
nfapi_tx_request_t TX_req;
|
nfapi_tx_request_t TX_req;
|
||||||
Sched_Rsp_t sched_resp;
|
Sched_Rsp_t sched_resp;
|
||||||
|
|
||||||
#include "executables/thread-common.h"
|
|
||||||
//THREAD_STRUCT thread_struct;
|
|
||||||
|
|
||||||
void
|
void
|
||||||
fill_nfapi_ulsch_config_request(nfapi_ul_config_request_pdu_t *ul_config_pdu,
|
fill_nfapi_ulsch_config_request(nfapi_ul_config_request_pdu_t *ul_config_pdu,
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
char c;
|
char c;
|
||||||
int i,aa;//,l;
|
int i,aa;//,l;
|
||||||
double sigma2, sigma2_dB=10,SNR,snr0=-2.0,snr1=2.0;
|
double sigma2, sigma2_dB=10, SNR, snr0=-2.0, snr1=2.0;
|
||||||
uint8_t snr1set=0;
|
uint8_t snr1set=0;
|
||||||
int **txdata;
|
int **txdata;
|
||||||
double **s_re,**s_im,**r_re,**r_im;
|
double **s_re,**s_im,**r_re,**r_im;
|
||||||
@@ -735,7 +735,7 @@ int main(int argc, char **argv)
|
|||||||
available_bits = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, length_dmrs, mod_order, rel15.nb_layers);
|
available_bits = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, length_dmrs, mod_order, rel15.nb_layers);
|
||||||
|
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("available_bits = %d\n",available_bits);
|
printf("available_bits = %u\n", available_bits);
|
||||||
|
|
||||||
for (i = 0; i < available_bits; i++) {
|
for (i = 0; i < available_bits; i++) {
|
||||||
|
|
||||||
@@ -774,7 +774,7 @@ int main(int argc, char **argv)
|
|||||||
if (errors_bit > 0) {
|
if (errors_bit > 0) {
|
||||||
n_false_positive++;
|
n_false_positive++;
|
||||||
if (n_trials == 1)
|
if (n_trials == 1)
|
||||||
printf("errors_bit = %d (trial %d)\n", errors_bit, trial);
|
printf("errors_bit = %u (trial %d)\n", errors_bit, trial);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|||||||
@@ -56,10 +56,7 @@
|
|||||||
#include "enb_paramdef.h"
|
#include "enb_paramdef.h"
|
||||||
#include "proto_agent.h"
|
#include "proto_agent.h"
|
||||||
#include "executables/thread-common.h"
|
#include "executables/thread-common.h"
|
||||||
/*extern void set_parallel_conf(char *parallel_conf);
|
|
||||||
extern void set_worker_conf(char *worker_conf);
|
|
||||||
extern PARALLEL_CONF_t get_thread_parallel_conf(void);
|
|
||||||
extern WORKER_CONF_t get_thread_worker_conf(void);*/
|
|
||||||
extern uint32_t to_earfcn_DL(int eutra_bandP, uint32_t dl_CarrierFreq, uint32_t bw);
|
extern uint32_t to_earfcn_DL(int eutra_bandP, uint32_t dl_CarrierFreq, uint32_t bw);
|
||||||
extern uint32_t to_earfcn_UL(int eutra_bandP, uint32_t ul_CarrierFreq, uint32_t bw);
|
extern uint32_t to_earfcn_UL(int eutra_bandP, uint32_t ul_CarrierFreq, uint32_t bw);
|
||||||
extern char *parallel_config;
|
extern char *parallel_config;
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
//#include "RRC_config_tools.h"
|
//#include "RRC_config_tools.h"
|
||||||
#include "gnb_paramdef.h"
|
#include "gnb_paramdef.h"
|
||||||
#include "LAYER2/NR_MAC_gNB/mac_proto.h"
|
#include "LAYER2/NR_MAC_gNB/mac_proto.h"
|
||||||
|
#include "executables/thread-common.h"
|
||||||
#include "NR_SCS-SpecificCarrier.h"
|
#include "NR_SCS-SpecificCarrier.h"
|
||||||
#include "NR_TDD-UL-DL-ConfigCommon.h"
|
#include "NR_TDD-UL-DL-ConfigCommon.h"
|
||||||
#include "NR_FrequencyInfoUL.h"
|
#include "NR_FrequencyInfoUL.h"
|
||||||
@@ -77,11 +77,7 @@
|
|||||||
#include "NR_EUTRA-MBSFN-SubframeConfig.h"
|
#include "NR_EUTRA-MBSFN-SubframeConfig.h"
|
||||||
|
|
||||||
extern uint16_t sf_ahead;
|
extern uint16_t sf_ahead;
|
||||||
#include "executables/thread-common.h"
|
|
||||||
/*extern void set_parallel_conf(char *parallel_conf);
|
|
||||||
extern void set_worker_conf(char *worker_conf);
|
|
||||||
extern PARALLEL_CONF_t get_thread_parallel_conf(void);
|
|
||||||
extern WORKER_CONF_t get_thread_worker_conf(void);*/
|
|
||||||
extern int config_check_band_frequencies(int ind, int16_t band, uint32_t downlink_frequency,
|
extern int config_check_band_frequencies(int ind, int16_t band, uint32_t downlink_frequency,
|
||||||
int32_t uplink_frequency_offset, uint32_t frame_type);
|
int32_t uplink_frequency_offset, uint32_t frame_type);
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
* \version 1.0
|
* \version 1.0
|
||||||
* \email navid.nikaein@eurecom.fr
|
* \email navid.nikaein@eurecom.fr
|
||||||
* @ingroup _mac
|
* @ingroup _mac
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -102,7 +101,6 @@ MAC_RLC_XFACE *Mac_rlc_xface;
|
|||||||
int pCC_id[NUMBER_OF_eNB_MAX];
|
int pCC_id[NUMBER_OF_eNB_MAX];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
eNB_ULSCH_INFO eNB_ulsch_info[NUMBER_OF_eNB_MAX][MAX_NUM_CCs][MAX_MOBILES_PER_ENB]; // eNBxUE = 8x8
|
eNB_ULSCH_INFO eNB_ulsch_info[NUMBER_OF_eNB_MAX][MAX_NUM_CCs][MAX_MOBILES_PER_ENB]; // eNBxUE = 8x8
|
||||||
eNB_DLSCH_INFO eNB_dlsch_info[NUMBER_OF_eNB_MAX][MAX_NUM_CCs][MAX_MOBILES_PER_ENB]; // eNBxUE = 8x8
|
eNB_DLSCH_INFO eNB_dlsch_info[NUMBER_OF_eNB_MAX][MAX_NUM_CCs][MAX_MOBILES_PER_ENB]; // eNBxUE = 8x8
|
||||||
|
|
||||||
@@ -126,7 +124,6 @@ DCI1A_5MHz_TDD_1_6_t CCCH_alloc_pdu;
|
|||||||
DCI1_5MHz_TDD_t DLSCH_alloc_pdu;
|
DCI1_5MHz_TDD_t DLSCH_alloc_pdu;
|
||||||
DCI1C_5MHz_t MCCH_alloc_pdu;
|
DCI1C_5MHz_t MCCH_alloc_pdu;
|
||||||
|
|
||||||
|
|
||||||
DCI0_5MHz_FDD_t UL_alloc_pdu_fdd;
|
DCI0_5MHz_FDD_t UL_alloc_pdu_fdd;
|
||||||
|
|
||||||
DCI1A_5MHz_FDD_t DLSCH_alloc_pdu1A_fdd;
|
DCI1A_5MHz_FDD_t DLSCH_alloc_pdu1A_fdd;
|
||||||
|
|||||||
@@ -41,9 +41,9 @@
|
|||||||
/* name of shared library implementing the transport */
|
/* name of shared library implementing the transport */
|
||||||
#define OAI_TP_LIBNAME "oai_transpro"
|
#define OAI_TP_LIBNAME "oai_transpro"
|
||||||
/* name of shared library implementing the basic/rf simulator */
|
/* name of shared library implementing the basic/rf simulator */
|
||||||
#define OAI_RFSIM_LIBNAME "rfsimulator"
|
#define OAI_RFSIM_LIBNAME "rfsimulator"
|
||||||
/* name of shared library implementing the basic/rf simulator */
|
/* name of shared library implementing the basic/rf simulator */
|
||||||
#define OAI_BASICSIM_LIBNAME "tcp_bridge_oai"
|
#define OAI_BASICSIM_LIBNAME "tcp_bridge_oai"
|
||||||
/* flags for BBU to determine whether the attached radio head is local or remote */
|
/* flags for BBU to determine whether the attached radio head is local or remote */
|
||||||
#define RAU_LOCAL_RADIO_HEAD 0
|
#define RAU_LOCAL_RADIO_HEAD 0
|
||||||
#define RAU_REMOTE_RADIO_HEAD 1
|
#define RAU_REMOTE_RADIO_HEAD 1
|
||||||
|
|||||||
@@ -42,11 +42,11 @@
|
|||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
#include <netinet/ether.h>
|
#include <netinet/ether.h>
|
||||||
|
|
||||||
#define MAX_INST 4
|
#define MAX_INST 4
|
||||||
#define DEFAULT_IF "lo"
|
#define DEFAULT_IF "lo"
|
||||||
|
|
||||||
#define TX_FLAG 1
|
#define TX_FLAG 1
|
||||||
#define RX_FLAG 0
|
#define RX_FLAG 0
|
||||||
|
|
||||||
#include "if_defs.h"
|
#include "if_defs.h"
|
||||||
#define APP_HEADER_SIZE_BYTES (sizeof(int32_t) + sizeof(openair0_timestamp))
|
#define APP_HEADER_SIZE_BYTES (sizeof(int32_t) + sizeof(openair0_timestamp))
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
#undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all
|
#undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all
|
||||||
//#undef FRAME_LENGTH_COMPLEX_SAMPLES //there are two conflicting definitions, so we better make sure we don't use it at all
|
//#undef FRAME_LENGTH_COMPLEX_SAMPLES //there are two conflicting definitions, so we better make sure we don't use it at all
|
||||||
|
|
||||||
#include "../../ARCH/COMMON/common_lib.h"
|
#include "targets/ARCH/COMMON/common_lib.h"
|
||||||
|
|
||||||
//#undef FRAME_LENGTH_COMPLEX_SAMPLES //there are two conflicting definitions, so we better make sure we don't use it at all
|
//#undef FRAME_LENGTH_COMPLEX_SAMPLES //there are two conflicting definitions, so we better make sure we don't use it at all
|
||||||
|
|
||||||
@@ -73,7 +73,6 @@
|
|||||||
|
|
||||||
#include "PHY/phy_extern.h"
|
#include "PHY/phy_extern.h"
|
||||||
|
|
||||||
|
|
||||||
#include "LAYER2/MAC/mac.h"
|
#include "LAYER2/MAC/mac.h"
|
||||||
#include "LAYER2/MAC/mac_extern.h"
|
#include "LAYER2/MAC/mac_extern.h"
|
||||||
#include "LAYER2/MAC/mac_proto.h"
|
#include "LAYER2/MAC/mac_proto.h"
|
||||||
|
|||||||
@@ -50,10 +50,6 @@
|
|||||||
|
|
||||||
#include "assertions.h"
|
#include "assertions.h"
|
||||||
#include "msc.h"
|
#include "msc.h"
|
||||||
|
|
||||||
#include "../../ARCH/COMMON/common_lib.h"
|
|
||||||
#include "../../ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h"
|
|
||||||
|
|
||||||
#include "PHY/defs_common.h"
|
#include "PHY/defs_common.h"
|
||||||
#include "PHY/phy_extern.h"
|
#include "PHY/phy_extern.h"
|
||||||
#include "PHY/types.h"
|
#include "PHY/types.h"
|
||||||
@@ -64,7 +60,6 @@
|
|||||||
#include "PHY/LTE_TRANSPORT/if5_tools.h"
|
#include "PHY/LTE_TRANSPORT/if5_tools.h"
|
||||||
#include "PHY/LTE_TRANSPORT/transport_proto.h"
|
#include "PHY/LTE_TRANSPORT/transport_proto.h"
|
||||||
#include "PHY_INTERFACE/phy_interface.h"
|
#include "PHY_INTERFACE/phy_interface.h"
|
||||||
#include "LAYER2/MAC/mac_extern.h"
|
|
||||||
#include "LAYER2/MAC/mac.h"
|
#include "LAYER2/MAC/mac.h"
|
||||||
#include "LAYER2/MAC/mac_extern.h"
|
#include "LAYER2/MAC/mac_extern.h"
|
||||||
#include "LAYER2/MAC/mac_proto.h"
|
#include "LAYER2/MAC/mac_proto.h"
|
||||||
@@ -78,6 +73,8 @@
|
|||||||
#include "common/utils/LOG/vcd_signal_dumper.h"
|
#include "common/utils/LOG/vcd_signal_dumper.h"
|
||||||
#include "nfapi/oai_integration/vendor_ext.h"
|
#include "nfapi/oai_integration/vendor_ext.h"
|
||||||
#include "enb_config.h"
|
#include "enb_config.h"
|
||||||
|
#include "targets/ARCH/COMMON/common_lib.h"
|
||||||
|
#include "targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h"
|
||||||
#include "targets/RT/USER/lte-softmodem.h"
|
#include "targets/RT/USER/lte-softmodem.h"
|
||||||
//#include "PHY/TOOLS/time_meas.h"
|
//#include "PHY/TOOLS/time_meas.h"
|
||||||
|
|
||||||
@@ -95,7 +92,6 @@ static int DEFENBS[] = {0};
|
|||||||
#include "s1ap_eNB.h"
|
#include "s1ap_eNB.h"
|
||||||
#include "SIMULATION/ETH_TRANSPORT/proto.h"
|
#include "SIMULATION/ETH_TRANSPORT/proto.h"
|
||||||
|
|
||||||
|
|
||||||
#include "T.h"
|
#include "T.h"
|
||||||
|
|
||||||
#include "pdcp.h"
|
#include "pdcp.h"
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ static softmodem_params_t softmodem_params;
|
|||||||
char *parallel_config=NULL;
|
char *parallel_config=NULL;
|
||||||
char *worker_config=NULL;
|
char *worker_config=NULL;
|
||||||
|
|
||||||
|
|
||||||
uint64_t get_softmodem_optmask(void) {
|
uint64_t get_softmodem_optmask(void) {
|
||||||
return softmodem_params.optmask;
|
return softmodem_params.optmask;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -238,53 +238,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************************************************************************/
|
/***************************************************************************************************************************************/
|
||||||
/* */
|
|
||||||
//#include "threads_t.h"
|
|
||||||
//extern threads_t threads;
|
|
||||||
|
|
||||||
//extern THREAD_STRUCT thread_struct;
|
|
||||||
//THREAD_STRUCT thread_struct;
|
|
||||||
|
|
||||||
/*static inline void set_parallel_conf(char *parallel_conf) {
|
|
||||||
mapping config[]= {
|
|
||||||
FOREACH_PARALLEL(GENERATE_ENUMTXT)
|
|
||||||
{NULL,-1}
|
|
||||||
};
|
|
||||||
thread_struct.parallel_conf = (PARALLEL_CONF_t)map_str_to_int(config, parallel_conf);
|
|
||||||
if (thread_struct.parallel_conf == -1 ) {
|
|
||||||
LOG_E(ENB_APP,"Impossible value: %s\n", parallel_conf);
|
|
||||||
thread_struct.parallel_conf = PARALLEL_SINGLE_THREAD;
|
|
||||||
}
|
|
||||||
printf("[CONFIG] parallel_conf is set to %d\n", thread_struct.parallel_conf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void set_worker_conf(char *worker_conf) {
|
|
||||||
mapping config[]={
|
|
||||||
FOREACH_WORKER(GENERATE_ENUMTXT)
|
|
||||||
{NULL, -1}
|
|
||||||
};
|
|
||||||
thread_struct.worker_conf = (WORKER_CONF_t)map_str_to_int(config, worker_conf);
|
|
||||||
if (thread_struct.worker_conf == -1 ) {
|
|
||||||
LOG_E(ENB_APP,"Impossible value: %s\n", worker_conf);
|
|
||||||
thread_struct.worker_conf = WORKER_DISABLE ;
|
|
||||||
}
|
|
||||||
printf("[CONFIG] worker_conf is set to %d\n", thread_struct.worker_conf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline PARALLEL_CONF_t get_thread_parallel_conf(void) {
|
|
||||||
return thread_struct.parallel_conf;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline WORKER_CONF_t get_thread_worker_conf(void) {
|
|
||||||
return thread_struct.worker_conf;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*PARALLEL_CONF_t get_thread_parallel_conf(void);
|
|
||||||
WORKER_CONF_t get_thread_worker_conf(void);
|
|
||||||
void set_parallel_conf(char *parallel_conf);
|
|
||||||
void set_worker_conf(char *worker_conf);
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#define SOFTMODEM_NOS1_BIT (1<<0)
|
#define SOFTMODEM_NOS1_BIT (1<<0)
|
||||||
#define SOFTMODEM_NOKRNMOD_BIT (1<<1)
|
#define SOFTMODEM_NOKRNMOD_BIT (1<<1)
|
||||||
@@ -293,23 +246,6 @@ void set_worker_conf(char *worker_conf);
|
|||||||
#define SOFTMODEM_BASICSIM_BIT (1<<11)
|
#define SOFTMODEM_BASICSIM_BIT (1<<11)
|
||||||
#define SOFTMODEM_SIML1_BIT (1<<12)
|
#define SOFTMODEM_SIML1_BIT (1<<12)
|
||||||
#define SOFTMODEM_DOFORMS_BIT (1<<15)
|
#define SOFTMODEM_DOFORMS_BIT (1<<15)
|
||||||
/*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;
|
|
||||||
uint32_t timing_source;
|
|
||||||
int hw_timing_advance;
|
|
||||||
uint32_t send_dmrs_sync;
|
|
||||||
} softmodem_params_t;*/
|
|
||||||
|
|
||||||
#define IS_SOFTMODEM_NOS1 ( get_softmodem_optmask() & SOFTMODEM_NOS1_BIT)
|
#define IS_SOFTMODEM_NOS1 ( get_softmodem_optmask() & SOFTMODEM_NOS1_BIT)
|
||||||
#define IS_SOFTMODEM_NOKRNMOD ( get_softmodem_optmask() & SOFTMODEM_NOKRNMOD_BIT)
|
#define IS_SOFTMODEM_NOKRNMOD ( get_softmodem_optmask() & SOFTMODEM_NOKRNMOD_BIT)
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
* \date 2012
|
* \date 2012
|
||||||
* \version 0.1
|
* \version 0.1
|
||||||
* \company Eurecom
|
* \company Eurecom
|
||||||
* \email: knopp@eurecom.fr,florian.kaltenberger@eurecom.fr, navid.nikaein@eurecom.fr
|
* \email: {knopp, florian.kaltenberger, navid.nikaein}@eurecom.fr
|
||||||
* \note
|
* \note
|
||||||
* \warning
|
* \warning
|
||||||
*/
|
*/
|
||||||
@@ -172,14 +172,9 @@ static LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs];
|
|||||||
uint8_t exit_missed_slots=1;
|
uint8_t exit_missed_slots=1;
|
||||||
uint64_t num_missed_slots=0; // counter for the number of missed slots
|
uint64_t num_missed_slots=0; // counter for the number of missed slots
|
||||||
|
|
||||||
/* prototypes from function implemented in lte-ue.c, probably should be elsewhere in a include
|
// prototypes from function implemented in lte-ue.c, probably should be elsewhere in a include file.
|
||||||
file */
|
|
||||||
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, uint8_t abstraction_flag);
|
||||||
extern PHY_VARS_UE *init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms,
|
|
||||||
uint8_t UE_id,
|
|
||||||
uint8_t abstraction_flag);
|
|
||||||
|
|
||||||
extern void get_uethreads_params(void);
|
extern void get_uethreads_params(void);
|
||||||
|
|
||||||
int transmission_mode=1;
|
int transmission_mode=1;
|
||||||
|
|||||||
Reference in New Issue
Block a user