diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c index 277e1918f21dbb79ba3870c0d88ee9efffe0b30d..89cb3756c46c862b08d7bb774b72a70c0e458c09 100644 --- a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c +++ b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c @@ -207,20 +207,6 @@ uint8_t extract_cqi_crc(uint8_t *cqi,uint8_t CQI_LENGTH) -/*int ulsch_decoding_data_all(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) -{ - int value = 0; - if() - { - value = ulsch_decoding_data_2thread(eNB,UE_id,harq_pid,llr8_flag); - } - else - { - value = ulsch_decoding_data(eNB,UE_id,harq_pid,llr8_flag); - } - return value; -}*/ - int ulsch_decoding_data_2thread0(td_params* tdp) { @@ -429,6 +415,9 @@ void *td_thread(void *param) { pthread_setname_np( pthread_self(), "td processing"); PHY_VARS_eNB *eNB = ((td_params*)param)->eNB; eNB_proc_t *proc = &eNB->proc; + + pthread_setname_np( pthread_self(),"td processing"); + LOG_I(PHY,"thread td created id=%ld\n", syscall(__NR_gettid)); while (!oai_exit) { @@ -820,6 +809,22 @@ int ulsch_decoding_data(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) return(ret); } +int ulsch_decoding_data_all(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) +{ + int ret = 0; + LTE_eNB_ULSCH_t *ulsch = eNB->ulsch[UE_id]; + LTE_UL_eNB_HARQ_t *ulsch_harq = ulsch->harq_processes[harq_pid]; + if(ulsch_harq->C>3) + { + ret = ulsch_decoding_data_2thread(eNB,UE_id,harq_pid,llr8_flag); + } + else + { + ret = ulsch_decoding_data(eNB,UE_id,harq_pid,llr8_flag); + } + return ret; +} + static inline unsigned int lte_gold_unscram(unsigned int *x1, unsigned int *x2, unsigned char reset) __attribute__((always_inline)); static inline unsigned int lte_gold_unscram(unsigned int *x1, unsigned int *x2, unsigned char reset) { diff --git a/openair2/LAYER2/MAC/eNB_scheduler_phytest.c b/openair2/LAYER2/MAC/eNB_scheduler_phytest.c index 348fb2be4609c045abf22dbe34782f07cf5af167..203358e0e18c7e152d72f68586f27e57aba43505 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_phytest.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_phytest.c @@ -71,7 +71,7 @@ schedule_ue_spec_phy_test( uint16_t rnti = 0x1235; uint32_t rb_alloc = 0x1FFFFFFF; int32_t tpc = 1; - int32_t mcs = 22; + int32_t mcs = 28; int32_t cqi = 15; int32_t ndi = subframeP/5; int32_t dai = 0; diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c index 1bd4f751f979a96e522b9774a15466c1514fe254..636fa9d9cf8fe9de81cf6e136cd95f6a3539769b 100644 --- a/targets/RT/USER/lte-enb.c +++ b/targets/RT/USER/lte-enb.c @@ -719,7 +719,7 @@ void init_eNB_proc(int inst) { PHY_VARS_eNB *eNB; eNB_proc_t *proc; eNB_rxtx_proc_t *proc_rxtx; - pthread_attr_t *attr0=NULL,*attr1=NULL,*attr_prach=NULL,*attr_te=NULL,*attr_te1=NULL;//*attr_td=NULL; + pthread_attr_t *attr0=NULL,*attr1=NULL,*attr_prach=NULL,*attr_te=NULL,*attr_te1=NULL,*attr_td=NULL; #ifdef Rel14 pthread_attr_t *attr_prach_br=NULL; #endif @@ -783,7 +783,7 @@ void init_eNB_proc(int inst) { // attr_td = &proc->attr_td; // attr_te = &proc->attr_te; #endif - //attr_td = &proc->attr_td; + attr_td = &proc->attr_td; attr_te = &proc->attr_te[0]; attr_te1 = &proc->attr_te[1]; pthread_create( &proc_rxtx[0].pthread_rxtx, attr0, eNB_thread_rxtx, proc ); @@ -809,7 +809,7 @@ void init_eNB_proc(int inst) { //////////////////////////////////////need to modified////////////////***** init_te_thread(eNB,attr_te,attr_te1); - //init_td_thread(eNB,attr_td); + init_td_thread(eNB,attr_td); if (opp_enabled == 1) pthread_create(&proc->process_stats_thread,NULL,process_stats_thread,(void*)eNB); @@ -1070,7 +1070,7 @@ void init_eNB(int single_thread_flag,int wait_for_sync) { #endif - eNB->td = ulsch_decoding_data;//(get_nprocs()<=4) ? ulsch_decoding_data : ulsch_decoding_data_2thread; + eNB->td = ulsch_decoding_data_all;//(get_nprocs()<=4) ? ulsch_decoding_data : ulsch_decoding_data_2thread; eNB->te = dlsch_encoding_all;//(get_nprocs()<=4) ? dlsch_encoding : dlsch_encoding_2threads; diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index fd59e1ae6f8285673cdd41a24420515c4ea750bd..8533b0500156e6a9cd07bf2d712963a57b8e878d 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -689,7 +689,7 @@ static void* emulatedRF_thread(void* param) { int microsec = 500; // length of time to sleep, in miliseconds struct timespec req = {0}; req.tv_sec = 0; - req.tv_nsec = microsec * 1000L; + req.tv_nsec = ((microsec * 1000L)/numerology); cpu_set_t cpuset; CPU_SET(1,&cpuset); pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index e21fd12428560c6ff8d603930abe1e2f0b116929..cb2aee9df4ed9c05e8683895fcb5c507c4c368f9 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -206,7 +206,7 @@ extern void reset_opp_meas(void); extern void print_opp_meas(void); int transmission_mode=1; -int numerology = 0; +int numerology = 2; int fh_two_thread = 1;