diff --git a/cmake_targets/lte-simulators/CMakeLists.txt b/cmake_targets/lte-simulators/CMakeLists.txt
index 5ed4d93d800250f7ed1eae511e6615782e5cd46e..79ff0bfbd28a895e9c06dcbc6634b6c1b4a942fc 100644
--- a/cmake_targets/lte-simulators/CMakeLists.txt
+++ b/cmake_targets/lte-simulators/CMakeLists.txt
@@ -3,6 +3,7 @@ set(PACKAGE_NAME "unitary_tests_simulators")
set(PHYSIM True)
set(RF_BOARD None)
set(XFORMS True)
+set(ENABLE_ITTI False)
set(DEBUG_PHY False)
set(MU_RECIEVER False)
diff --git a/openair1/PHY/LTE_TRANSPORT/srs_modulation.c b/openair1/PHY/LTE_TRANSPORT/srs_modulation.c
index 97dd1c57455afa999976e3ce14535b5e190e27db..8381eca5e411c95d9130f93eb1e3206fa1401aa1 100644
--- a/openair1/PHY/LTE_TRANSPORT/srs_modulation.c
+++ b/openair1/PHY/LTE_TRANSPORT/srs_modulation.c
@@ -204,7 +204,7 @@ int32_t generate_srs(LTE_DL_FRAME_PARMS *frame_parms,
#endif
#ifdef DEBUG_SRS
- LOG_I(PHY,"generate_srs_tx: Msc_RS = %d, Msc_RS_idx = %d, k0 = %d\n",Msc_RS, Msc_RS_idx,k0);
+ LOG_D(PHY,"generate_srs_tx: Msc_RS = %d, Msc_RS_idx = %d, k0 = %d\n",Msc_RS, Msc_RS_idx,k0);
#endif
carrier_pos = (frame_parms->first_carrier_offset + k0);
diff --git a/openair1/SCHED/defs.h b/openair1/SCHED/defs.h
index f283014af7b188c03bb229415defd369e45179f2..4aad186f76768550a0f1425df04bccbd97d91ba7 100644
--- a/openair1/SCHED/defs.h
+++ b/openair1/SCHED/defs.h
@@ -379,7 +379,7 @@ void process_timing_advance_rar(PHY_VARS_UE *phy_vars_ue,UE_rxtx_proc_t *proc,ui
unsigned int get_tx_amp(int power_dBm, int power_max_dBm, int N_RB_UL, int nb_rb);
-void phy_reset_ue(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index);
+void phy_reset_ue( PHY_VARS_UE *ue );
/*! \brief This function retrives the resource (n1_pucch) corresponding to a PDSCH transmission in
subframe n-4 which is acknowledged in subframe n (for FDD) according to n1_pucch = Ncce + N1_pucch. For
diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index 95fa3d4715660800b7eaa8e8a96a7e509ddd77c5..f4cc7f8c415061b122411e111963c4a2b5b7b00b 100644
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -2916,15 +2916,17 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
eNB->cba_last_reception[i]=0;
}
+ is_srs_pos = is_srs_occasion_common(fp,frame,subframe);
+
for (i=0; i<NUMBER_OF_UE_MAX; i++) {
// Do SRS processing
// check if there is SRS and we have to use shortened format
// TODO: check for exceptions in transmission of SRS together with ACK/NACK
- is_srs_pos = is_srs_occasion_common(fp,pdcch_alloc2ul_frame(fp,frame,subframe),pdcch_alloc2ul_subframe(fp,subframe));
+ do_srs=0;
if (is_srs_pos && eNB->soundingrs_ul_config_dedicated[i].srsConfigDedicatedSetup ) {
compute_srs_pos(fp->frame_type, eNB->soundingrs_ul_config_dedicated[i].srs_ConfigIndex, &srsPeriodicity, &srsOffset);
- if ((((10*pdcch_alloc2ul_frame(fp,frame,subframe)+pdcch_alloc2ul_subframe(fp,subframe)) % srsPeriodicity) == srsOffset)) {
+ if (((10*frame+subframe) % srsPeriodicity) == srsOffset) {
do_srs = 1;
}
}
diff --git a/openair1/SCHED/phy_procedures_lte_ue.c b/openair1/SCHED/phy_procedures_lte_ue.c
index 43113744a294d8c62c99049162b83fa955cd9f6b..ca9ee8df7caaf8cf8e0eb13da4a26cfc4b85b782 100644
--- a/openair1/SCHED/phy_procedures_lte_ue.c
+++ b/openair1/SCHED/phy_procedures_lte_ue.c
@@ -259,14 +259,13 @@ void dump_dlsch_ra(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t s
}
-void phy_reset_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index)
+void phy_reset_ue(PHY_VARS_UE *ue)
{
// This flushes ALL DLSCH and ULSCH harq buffers of ALL connected eNBs...add the eNB_index later
// for more flexibility
uint8_t i,j,k,s;
- PHY_VARS_UE *ue = PHY_vars_UE_g[Mod_id][CC_id];
//[NUMBER_OF_CONNECTED_eNB_MAX][2];
for(i=0; i<NUMBER_OF_CONNECTED_eNB_MAX; i++) {
@@ -409,7 +408,9 @@ uint8_t is_cqi_TXOp(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id)
// cqirep->cqi_PMI_ConfigIndex,
// (((10*frame + subframe) % cqirep->Npd) == cqirep->N_OFFSET_CQI));
- if (((10*frame + subframe) % cqirep->Npd) == cqirep->N_OFFSET_CQI)
+ if (cqirep->cqi_PMI_ConfigIndex==-1)
+ return(0);
+ else if (((10*frame + subframe) % cqirep->Npd) == cqirep->N_OFFSET_CQI)
return(1);
else
return(0);
@@ -428,8 +429,9 @@ uint8_t is_ri_TXOp(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id)
// ue->Mod_id,ue->pdcch_vars[eNB_id]->crnti,frame,subframe,
// cqirep->ri_ConfigIndex,
// (((10*frame + subframe + cqirep->N_OFFSET_CQI - N_OFFSET_RI) % (cqirep->Npd<<log2Mri)) == 0));
-
- if (((10*frame + subframe + cqirep->N_OFFSET_CQI - N_OFFSET_RI) % (cqirep->Npd<<log2Mri)) == 0)
+ if (cqirep->ri_ConfigIndex==-1)
+ return(0);
+ else if (((10*frame + subframe + cqirep->N_OFFSET_CQI - N_OFFSET_RI) % (cqirep->Npd<<log2Mri)) == 0)
return(1);
else
return(0);
diff --git a/openair1/SIMULATION/LTE_PHY/ulsim.c b/openair1/SIMULATION/LTE_PHY/ulsim.c
index 543cc8023ef0baf55ea6551738fc5f6e0c4282d2..6b3c3c6bbc8bed8c88acb4920104b81d62d2af39 100644
--- a/openair1/SIMULATION/LTE_PHY/ulsim.c
+++ b/openair1/SIMULATION/LTE_PHY/ulsim.c
@@ -285,6 +285,9 @@ int main(int argc, char **argv)
logInit();
+ set_comp_log(PHY,LOG_DEBUG,LOG_MED,1);
+ set_glog(LOG_INFO,LOG_MED);
+
while ((c = getopt (argc, argv, "hapZEbm:n:Y:X:x:s:w:e:q:d:D:O:c:r:i:f:y:c:oA:C:R:g:N:l:S:T:QB:PI:LF")) != -1) {
switch (c) {
@@ -634,21 +637,27 @@ int main(int argc, char **argv)
UE->frame_parms.soundingrs_ul_config_common.enabled_flag = srs_flag;
UE->frame_parms.soundingrs_ul_config_common.srs_BandwidthConfig = 2;
- UE->frame_parms.soundingrs_ul_config_common.srs_SubframeConfig = 7;
+ UE->frame_parms.soundingrs_ul_config_common.srs_SubframeConfig = 3;
+ UE->soundingrs_ul_config_dedicated[eNB_id].srsConfigDedicatedSetup = srs_flag;
+ UE->soundingrs_ul_config_dedicated[eNB_id].duration = 1;
+ UE->soundingrs_ul_config_dedicated[eNB_id].srs_ConfigIndex = 2;
UE->soundingrs_ul_config_dedicated[eNB_id].srs_Bandwidth = 0;
UE->soundingrs_ul_config_dedicated[eNB_id].transmissionComb = 0;
UE->soundingrs_ul_config_dedicated[eNB_id].freqDomainPosition = 0;
+ UE->soundingrs_ul_config_dedicated[eNB_id].cyclicShift = 0;
eNB->frame_parms.soundingrs_ul_config_common.enabled_flag = srs_flag;
eNB->frame_parms.soundingrs_ul_config_common.srs_BandwidthConfig = 2;
- eNB->frame_parms.soundingrs_ul_config_common.srs_SubframeConfig = 7;
-
- eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex = 1;
+ eNB->frame_parms.soundingrs_ul_config_common.srs_SubframeConfig = 3;
+ eNB->soundingrs_ul_config_dedicated[UE_id].srsConfigDedicatedSetup = srs_flag;
+ eNB->soundingrs_ul_config_dedicated[UE_id].duration = 1;
+ eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex = 2;
eNB->soundingrs_ul_config_dedicated[UE_id].srs_Bandwidth = 0;
eNB->soundingrs_ul_config_dedicated[UE_id].transmissionComb = 0;
eNB->soundingrs_ul_config_dedicated[UE_id].freqDomainPosition = 0;
+ eNB->soundingrs_ul_config_dedicated[UE_id].cyclicShift = 0;
+
eNB->cooperation_flag = cooperation_flag;
- // eNB->eNB_UE_stats[0].SRS_parameters = UE->SRS_parameters;
eNB->pusch_config_dedicated[UE_id].betaOffset_ACK_Index = beta_ACK;
eNB->pusch_config_dedicated[UE_id].betaOffset_RI_Index = beta_RI;
@@ -659,6 +668,11 @@ int main(int argc, char **argv)
UE->ul_power_control_dedicated[eNB_id].deltaMCS_Enabled = 1;
+ // disable periodic cqi/ri reporting
+ UE->cqi_report_config[eNB_id].CQI_ReportPeriodic.ri_ConfigIndex = -1;
+ UE->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PMI_ConfigIndex = -1;
+
+
printf("PUSCH Beta : ACK %f, RI %f, CQI %f\n",(double)beta_ack[beta_ACK]/8,(double)beta_ri[beta_RI]/8,(double)beta_cqi[beta_CQI]/8);
UE2eNB = new_channel_desc_scm(eNB->frame_parms.nb_antennas_tx,
@@ -700,8 +714,8 @@ int main(int argc, char **argv)
}
-
-
+ UE->dlsch_SI[0] = new_ue_dlsch(1,1,1827072,MAX_TURBO_ITERATIONS,N_RB_DL,0);
+ UE->dlsch_ra[0] = new_ue_dlsch(1,1,1827072,MAX_TURBO_ITERATIONS,N_RB_DL,0);
UE->measurements.rank[0] = 0;
UE->transmission_mode[0] = 2;
@@ -917,6 +931,10 @@ int main(int argc, char **argv)
initialize(&time_vector_rx_dec);
ndi=0;
+
+ phy_reset_ue(UE);
+ UE->UE_mode[eNB_id]=PUSCH;
+
for (trials = 0; trials<n_frames; trials++) {
// printf("*");
// UE->frame++;