From 21be856f58c218a79d1f8dee80e9eff0823b170b Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Tue, 28 Aug 2018 00:16:38 +0200 Subject: [PATCH] lte-softmodem-nos1 / lte-uesoftmodem-nos1 functional --- openair1/SCHED/phy_procedures_lte_common.c | 1 + openair2/LAYER2/MAC/eNB_scheduler.c | 3 ++- targets/RT/USER/lte-ru.c | 5 ++++- targets/RT/USER/lte-ue.c | 2 +- targets/RT/USER/rfsim.c | 6 +++--- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/openair1/SCHED/phy_procedures_lte_common.c b/openair1/SCHED/phy_procedures_lte_common.c index 4871499af8..5989a52507 100644 --- a/openair1/SCHED/phy_procedures_lte_common.c +++ b/openair1/SCHED/phy_procedures_lte_common.c @@ -820,6 +820,7 @@ lte_subframe_t subframe_select(LTE_DL_FRAME_PARMS *frame_parms,unsigned char sub break; default: + AssertFatal(1==0,"subframe %d Unsupported TDD configuration %d\n",subframe,frame_parms->tdd_config); return(255); diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c index c867736d95..1fb9eb16d7 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler.c +++ b/openair2/LAYER2/MAC/eNB_scheduler.c @@ -664,9 +664,10 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, schedule_mib(module_idP, frameP, subframeP); } + /* if((subframeP == 0) && (frameP & 7) == 0){ schedule_nr_mib(module_idP, frameP, subframeP); - } + }*/ if (phy_test == 0){ // This schedules SI for legacy LTE and eMTC starting in subframeP diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index 56c8955c79..2ffd7afe65 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -2454,7 +2454,10 @@ void configure_rru(int idx, ru->frame_parms->tdd_config = config->tdd_config[0]; ru->frame_parms->tdd_config_S = config->tdd_config_S[0]; } - else ru->frame_parms->frame_type = FDD; + else { + ru->frame_parms->frame_type = FDD; + ru->frame_parms->tdd_config = 1; + } ru->att_tx = config->att_tx[0]; ru->att_rx = config->att_rx[0]; ru->frame_parms->N_RB_DL = config->N_RB_DL[0]; diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c index e794b3ba6e..0538e222ed 100644 --- a/targets/RT/USER/lte-ue.c +++ b/targets/RT/USER/lte-ue.c @@ -259,7 +259,7 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correcti // needed for memcopy below. these are not used in the RU, but needed for UE RC.ru[0]->frame_parms->nb_antennas_rx = fp0->nb_antennas_rx; RC.ru[0]->frame_parms->nb_antennas_tx = fp0->nb_antennas_tx; - PHY_vars_UE_g[inst][0] = init_ue_vars(&RC.ru[0]->frame_parms,inst,0); + PHY_vars_UE_g[inst][0] = init_ue_vars(RC.ru[0]->frame_parms,inst,0); } // turn off timing control loop in UE PHY_vars_UE_g[inst][0]->no_timing_correction = timing_correction; diff --git a/targets/RT/USER/rfsim.c b/targets/RT/USER/rfsim.c index 2d9bc9907d..52d526a6bb 100644 --- a/targets/RT/USER/rfsim.c +++ b/targets/RT/USER/rfsim.c @@ -189,7 +189,7 @@ int ru_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** subframe = (sim.last_ru_rx_timestamp[ru_id][CC_id]/RC.ru[ru_id]->frame_parms->samples_per_tti)%10; - if (subframe_select(&RC.ru[ru_id]->frame_parms,subframe) != SF_DL || RC.ru[ru_id]->frame_parms->frame_type == FDD) { + if (subframe_select(RC.ru[ru_id]->frame_parms,subframe) != SF_DL || RC.ru[ru_id]->frame_parms->frame_type == FDD) { LOG_D(SIM,"RU_trx_read generating UL subframe %d (Ts %llu, current TS %llu)\n", subframe,(unsigned long long)*ptimestamp, (unsigned long long)sim.current_ru_rx_timestamp[ru_id][CC_id]); @@ -508,8 +508,8 @@ void *rfsim_top(void *n_frames) { pthread_mutex_lock(&sim.subframe_mutex); - int subframe_ru_mask_local = (subframe_select(&RC.ru[0]->frame_parms,(sf+4)%10)!=SF_UL) ? sim.subframe_ru_mask : ((1<frame_parms->frame_type == FDD || subframe_select(&RC.ru[0]->frame_parms,(sf+4)%10)!=SF_DL) ? sim.subframe_UE_mask : ((1<frame_parms,(sf+4)%10)!=SF_UL) ? sim.subframe_ru_mask : ((1<frame_parms->frame_type == FDD || subframe_select(RC.ru[0]->frame_parms,(sf+4)%10)!=SF_DL) ? sim.subframe_UE_mask : ((1<