manual merge because conflict
This commit is contained in:
@@ -169,6 +169,13 @@ void lte_param_init(PHY_VARS_eNB **eNBp,
|
||||
}
|
||||
else ru->N_TA_offset=0;
|
||||
|
||||
#if BASIC_SIMULATOR
|
||||
/* this is required for the basic simulator in TDD mode
|
||||
* TODO: find a proper cleaner solution
|
||||
*/
|
||||
UE->N_TA_offset = 0;
|
||||
#endif
|
||||
|
||||
printf("Done lte_param_init\n");
|
||||
|
||||
|
||||
|
||||
@@ -57,8 +57,8 @@
|
||||
uint64_t runtime,
|
||||
uint64_t deadline,
|
||||
uint64_t period);*/
|
||||
extern WORKER_CONF_t get_thread_worker_conf(void);
|
||||
|
||||
extern int codingw;
|
||||
|
||||
void free_eNB_dlsch(LTE_eNB_DLSCH_t *dlsch)
|
||||
{
|
||||
@@ -615,8 +615,10 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB,
|
||||
}
|
||||
}
|
||||
|
||||
if(C >= 8 && get_nprocs()>=16 && codingw)//one main three worker
|
||||
if(get_thread_worker_conf() == WORKER_ENABLE)
|
||||
{
|
||||
if(C >= 8)//one main three worker
|
||||
{
|
||||
encoding_return =
|
||||
dlsch_encoding_2threads(eNB,
|
||||
a,
|
||||
@@ -632,9 +634,9 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB,
|
||||
te_wakeup_stats1,
|
||||
i_stats,
|
||||
3);
|
||||
}
|
||||
else if(C >= 6 && get_nprocs()>=8 && codingw)//one main two worker
|
||||
{
|
||||
}
|
||||
else if(C >= 6)//one main two worker
|
||||
{
|
||||
encoding_return =
|
||||
dlsch_encoding_2threads(eNB,
|
||||
a,
|
||||
@@ -650,9 +652,9 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB,
|
||||
te_wakeup_stats1,
|
||||
i_stats,
|
||||
2);
|
||||
}
|
||||
else if(C >= 4 && get_nprocs()>=4 && codingw)//one main one worker
|
||||
{
|
||||
}
|
||||
else if(C >= 4)//one main one worker
|
||||
{
|
||||
encoding_return =
|
||||
dlsch_encoding_2threads(eNB,
|
||||
a,
|
||||
@@ -668,9 +670,9 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB,
|
||||
te_wakeup_stats1,
|
||||
i_stats,
|
||||
1);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
encoding_return =
|
||||
dlsch_encoding(eNB,
|
||||
a,
|
||||
@@ -681,7 +683,21 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB,
|
||||
rm_stats,
|
||||
te_stats,
|
||||
i_stats);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
encoding_return =
|
||||
dlsch_encoding(eNB,
|
||||
a,
|
||||
num_pdcch_symbols,
|
||||
dlsch,
|
||||
frame,
|
||||
subframe,
|
||||
rm_stats,
|
||||
te_stats,
|
||||
i_stats);
|
||||
}
|
||||
return encoding_return;
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
#include "targets/RT/USER/rt_wrapper.h"
|
||||
#include "transport_proto.h"
|
||||
|
||||
extern int codingw;
|
||||
extern WORKER_CONF_t get_thread_worker_conf(void);
|
||||
|
||||
void free_eNB_ulsch(LTE_eNB_ULSCH_t *ulsch)
|
||||
{
|
||||
@@ -723,7 +723,7 @@ int ulsch_decoding_data(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag)
|
||||
int ulsch_decoding_data_all(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag)
|
||||
{
|
||||
int ret = 0;
|
||||
/*if(codingw)
|
||||
/*if(get_thread_worker_conf() == WORKER_ENABLE)
|
||||
{
|
||||
ret = ulsch_decoding_data_2thread(eNB,UE_id,harq_pid,llr8_flag);
|
||||
}
|
||||
|
||||
@@ -862,7 +862,22 @@ typedef enum {
|
||||
RESYNCH=4
|
||||
} UE_MODE_t;
|
||||
|
||||
/// Threading Parameter
|
||||
typedef enum {
|
||||
PARALLEL_SINGLE_THREAD =0,
|
||||
PARALLEL_RU_L1_SPLIT =1,
|
||||
PARALLEL_RU_L1_TRX_SPLIT =2
|
||||
}PARALLEL_CONF_t;
|
||||
|
||||
typedef enum {
|
||||
WORKER_DISABLE =0,
|
||||
WORKER_ENABLE =1
|
||||
}WORKER_CONF_t;
|
||||
|
||||
typedef struct THREAD_STRUCT_s {
|
||||
PARALLEL_CONF_t parallel_conf;
|
||||
WORKER_CONF_t worker_conf;
|
||||
} THREAD_STRUCT;
|
||||
|
||||
typedef enum {SF_DL, SF_UL, SF_S} lte_subframe_t;
|
||||
|
||||
|
||||
@@ -270,7 +270,6 @@ typedef enum {
|
||||
REMOTE_IF4p5 =3,
|
||||
REMOTE_IF1pp =4,
|
||||
MAX_RU_IF_TYPES =5
|
||||
//EMULATE_RF =6
|
||||
} RU_if_south_t;
|
||||
|
||||
typedef struct RU_t_s{
|
||||
|
||||
@@ -82,7 +82,30 @@ 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 */
|
||||
|
||||
int codingw = 0;
|
||||
char *parallel_config = NULL;
|
||||
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 emulate_rf = 0;
|
||||
|
||||
@@ -1041,6 +1064,8 @@ int main(int argc, char **argv)
|
||||
break;
|
||||
}
|
||||
}
|
||||
set_parallel_conf("PARALLEL_RU_L1_TRX_SPLIT");
|
||||
set_worker_conf("WORKER_ENABLE");
|
||||
|
||||
if (transmission_mode>1) pa=dBm3;
|
||||
printf("dlsim: tmode %d, pa %d\n",transmission_mode,pa);
|
||||
|
||||
@@ -121,7 +121,30 @@ nfapi_tx_request_pdu_t tx_pdu_list[MAX_NUM_TX_REQUEST_PDU];
|
||||
nfapi_tx_request_t TX_req;
|
||||
Sched_Rsp_t sched_resp;
|
||||
|
||||
int codingw = 0;
|
||||
char *parallel_config = NULL;
|
||||
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;
|
||||
}
|
||||
|
||||
void
|
||||
fill_nfapi_ulsch_config_request(nfapi_ul_config_request_pdu_t *ul_config_pdu,
|
||||
@@ -699,7 +722,8 @@ int main(int argc, char **argv) {
|
||||
if (verbose)
|
||||
printf("%s\n",ptr->helpstr);
|
||||
}
|
||||
|
||||
set_parallel_conf("PARALLEL_RU_L1_TRX_SPLIT");
|
||||
set_worker_conf("WORKER_ENABLE");
|
||||
RC.nb_L1_inst = 1;
|
||||
RC.nb_RU = 1;
|
||||
lte_param_init(&eNB,&UE,&ru,
|
||||
|
||||
Reference in New Issue
Block a user