Creating Emulated FH

This commit is contained in:
Wang Tsu-Han
2017-11-17 11:11:24 +01:00
parent 81177a8a73
commit 69e90fa6cb
7 changed files with 56 additions and 15 deletions
+16 -3
View File
@@ -52,7 +52,11 @@
((pilots==1)&&(first_pilot==0)&&(((re<3))||((re>5)&&(re<9)))) \
*/
#define is_not_pilot(pilots,first_pilot,re) (1)
/*extern void thread_top_init(char *thread_name,
int affinity,
uint64_t runtime,
uint64_t deadline,
uint64_t period);*/
void free_eNB_dlsch(LTE_eNB_DLSCH_t *dlsch)
{
@@ -452,6 +456,7 @@ void *te_thread(void *param) {
cpu_set_t cpuset;
CPU_ZERO(&cpuset);
//thread_top_init("te_thread",1,870000,1000000,1000000);
pthread_setname_np( pthread_self(),"te processing");
LOG_I(PHY,"thread te created id=%ld\n", syscall(__NR_gettid));
@@ -482,6 +487,7 @@ void *te_thread1(void *param) {
cpu_set_t cpuset;
CPU_ZERO(&cpuset);
//thread_top_init("te_thread1",1,870000,1000000,1000000);
pthread_setname_np( pthread_self(),"te processing 1");
LOG_I(PHY,"thread te 1 created id=%ld\n", syscall(__NR_gettid));
@@ -517,6 +523,7 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
uint8_t subframe,
time_stats_t *rm_stats,
time_stats_t *te_stats,
time_stats_t *te_wait_stats,
time_stats_t *i_stats)
{
@@ -714,9 +721,14 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
}
// wait for worker to finish
start_meas(te_wait_stats);
wait_on_busy_condition(&proc->mutex_te[0],&proc->cond_te[0],&proc->instance_cnt_te[0],"te thread");
wait_on_busy_condition(&proc->mutex_te[1],&proc->cond_te[1],&proc->instance_cnt_te[1],"te thread1");
stop_meas(te_wait_stats);
if(opp_enabled == 1 && te_wait_stats->diff_now>50*3000){
print_meas_now(te_wait_stats,"coding_wait",stderr);
printf("frame_rx: %d subframe_rx: %d \n",proc->frame_rx,proc->subframe_rx);
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_OUT);
@@ -731,6 +743,7 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB,
uint8_t subframe,
time_stats_t *rm_stats,
time_stats_t *te_stats,
time_stats_t *te_wait_stats,
time_stats_t *i_stats)
{
int encoding_return = 0;
@@ -763,8 +776,8 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB,
subframe,
rm_stats,
te_stats,
te_wait_stats,
i_stats);
//printf("having more then 5 segmentation\n");///////////*******
}
else
{
+2
View File
@@ -130,6 +130,7 @@ int32_t dlsch_encoding_all(PHY_VARS_eNB *eNB,
uint8_t subframe,
time_stats_t *rm_stats,
time_stats_t *te_stats,
time_stats_t *te_wait_stats,
time_stats_t *i_stats);
int32_t dlsch_encoding_SIC(PHY_VARS_UE *ue,
@@ -175,6 +176,7 @@ int32_t dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
uint8_t subframe,
time_stats_t *rm_stats,
time_stats_t *te_stats,
time_stats_t *te_wait_stats,
time_stats_t *i_stats);
void dlsch_encoding_emul(PHY_VARS_eNB *phy_vars_eNB,
+1 -1
View File
@@ -53,7 +53,7 @@ void print_meas_now(time_stats_t *ts, const char* name, FILE* file_name){
if (ts->trials>0) {
//fprintf(file_name,"Name %25s: Processing %15.3f ms for SF %d, diff_now %15.3f \n", name,(ts->diff_now/(cpu_freq_GHz*1000000.0)),subframe,ts->diff_now);
fprintf(file_name,"%15.3f ms, diff_now %15.3f \n",(ts->diff_now/(cpu_freq_GHz*1000000.0)),(double)ts->diff_now);
fprintf(file_name,"%15.3f us, diff_now %15.3f \n",(ts->diff_now/(cpu_freq_GHz*1000.0)),(double)ts->diff_now);
}
}
+4 -2
View File
@@ -666,7 +666,8 @@ typedef enum {
REMOTE_MBP_IF5 =2,
REMOTE_IF4p5 =3,
REMOTE_IF1pp =4,
MAX_RU_IF_TYPES =5
MAX_RU_IF_TYPES =5,
EMULATE_RF =6
} RU_if_south_t;
typedef struct RU_t_s{
@@ -946,7 +947,7 @@ typedef struct PHY_VARS_eNB_s {
eth_params_t eth_params;
int rx_total_gain_dB;
int (*td)(struct PHY_VARS_eNB_s *eNB,int UE_id,int harq_pid,int llr8_flag);
int (*te)(struct PHY_VARS_eNB_s *,uint8_t *,uint8_t,LTE_eNB_DLSCH_t *,int,uint8_t,time_stats_t *,time_stats_t *,time_stats_t *);
int (*te)(struct PHY_VARS_eNB_s *,uint8_t *,uint8_t,LTE_eNB_DLSCH_t *,int,uint8_t,time_stats_t *,time_stats_t *,time_stats_t *,time_stats_t *);
int (*start_if)(struct RU_t_s *ru,struct PHY_VARS_eNB_s *eNB);
uint8_t local_flag;
LTE_DL_FRAME_PARMS frame_parms;
@@ -1125,6 +1126,7 @@ typedef struct PHY_VARS_eNB_s {
time_stats_t dlsch_scrambling_stats;
time_stats_t dlsch_rate_matching_stats;
time_stats_t dlsch_turbo_encoding_stats;
time_stats_t dlsch_turbo_encoding_waiting_stats;
time_stats_t dlsch_interleaving_stats;
time_stats_t rx_dft_stats;
+3 -1
View File
@@ -341,9 +341,11 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
dlsch_harq->pdu,
dlsch_harq->pdsch_start,
dlsch,
frame,subframe,
frame,
subframe,
&eNB->dlsch_rate_matching_stats,
&eNB->dlsch_turbo_encoding_stats,
&eNB->dlsch_turbo_encoding_waiting_stats,
&eNB->dlsch_interleaving_stats);
stop_meas(&eNB->dlsch_encoding_stats);
// 36-211