Commit 3dc1963a authored by hbilel's avatar hbilel

[OAI-UE] MIMO fixes + disabling MIB/SIB decoding on connected mode

parent 42b834d6
...@@ -948,6 +948,11 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, ...@@ -948,6 +948,11 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
// fill cqi parameters for periodic CQI reporting // fill cqi parameters for periodic CQI reporting
get_cqipmiri_params(phy_vars_ue,eNB_id); get_cqipmiri_params(phy_vars_ue,eNB_id);
// disable MIB SIB decoding once we are on connected mode
LOG_I(PHY,"Disabling SIB MIB decoding \n");
phy_vars_ue->decode_SIB = 0;
phy_vars_ue->decode_MIB = 0;
} }
void phy_config_cba_rnti (module_id_t Mod_id,int CC_id,eNB_flag_t eNB_flag, uint8_t index, rnti_t cba_rnti, uint8_t cba_group_id, uint8_t num_active_cba_groups) void phy_config_cba_rnti (module_id_t Mod_id,int CC_id,eNB_flag_t eNB_flag, uint8_t index, rnti_t cba_rnti, uint8_t cba_group_id, uint8_t num_active_cba_groups)
...@@ -1306,6 +1311,10 @@ int phy_init_lte_ue(PHY_VARS_UE *ue, ...@@ -1306,6 +1311,10 @@ int phy_init_lte_ue(PHY_VARS_UE *ue,
ue->high_speed_flag = 1; ue->high_speed_flag = 1;
ue->ch_est_alpha = 24576; ue->ch_est_alpha = 24576;
// enable MIB/SIB decoding by default
ue->decode_MIB = 1;
ue->decode_SIB = 1;
init_prach_tables(839); init_prach_tables(839);
......
...@@ -3149,7 +3149,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3149,7 +3149,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0) ,
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
2, 2,
...@@ -3177,7 +3177,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3177,7 +3177,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
2, 2,
...@@ -3209,7 +3209,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3209,7 +3209,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
P_RNTI, P_RNTI,
ra_rnti, ra_rnti,
3, 3,
...@@ -3237,7 +3237,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3237,7 +3237,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
3, 3,
...@@ -3271,7 +3271,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3271,7 +3271,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
0, 0,
...@@ -3300,7 +3300,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3300,7 +3300,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
1, 1,
...@@ -3333,7 +3333,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3333,7 +3333,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
2, 2,
...@@ -3362,7 +3362,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3362,7 +3362,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
3, 3,
...@@ -3395,7 +3395,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3395,7 +3395,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
0, 0,
...@@ -3426,7 +3426,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3426,7 +3426,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
1, 1,
...@@ -3458,7 +3458,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3458,7 +3458,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
2, 2,
...@@ -3490,7 +3490,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3490,7 +3490,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
3, 3,
...@@ -3527,7 +3527,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3527,7 +3527,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
0, 0,
...@@ -3562,7 +3562,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3562,7 +3562,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
1, 1,
...@@ -3596,7 +3596,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3596,7 +3596,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
2, 2,
...@@ -3631,7 +3631,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3631,7 +3631,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
3, 3,
...@@ -3665,7 +3665,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3665,7 +3665,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
0, 0,
...@@ -3697,7 +3697,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3697,7 +3697,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
1, 1,
...@@ -3729,7 +3729,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3729,7 +3729,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
2, 2,
...@@ -3762,7 +3762,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3762,7 +3762,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
3, 3,
...@@ -3792,7 +3792,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3792,7 +3792,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
0, 0,
...@@ -3825,7 +3825,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3825,7 +3825,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
1, 1,
...@@ -3857,7 +3857,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3857,7 +3857,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
2, 2,
...@@ -3891,7 +3891,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ...@@ -3891,7 +3891,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
eNB_id, eNB_id,
frame_parms, frame_parms,
mi, mi,
SI_RNTI, ((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti, ra_rnti,
P_RNTI, P_RNTI,
3, 3,
......
...@@ -4763,6 +4763,8 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format, ...@@ -4763,6 +4763,8 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format,
uint16_t si_rnti, uint16_t si_rnti,
uint16_t ra_rnti, uint16_t ra_rnti,
uint16_t p_rnti, uint16_t p_rnti,
uint32_t frame,
uint8_t subframe,
DCI_INFO_EXTRACTED_t *pdci_info_extarcted, DCI_INFO_EXTRACTED_t *pdci_info_extarcted,
LTE_DL_UE_HARQ_t *pdlsch0_harq) LTE_DL_UE_HARQ_t *pdlsch0_harq)
{ {
...@@ -4779,17 +4781,17 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format, ...@@ -4779,17 +4781,17 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format,
uint8_t NPRB = 0; uint8_t NPRB = 0;
long long int RIV_max = 0; long long int RIV_max = 0;
#ifdef DEBUG_DCI //#ifdef DEBUG_DCI
LOG_I(PHY,"[DCI-FORMAT-1-1A] dci_format %d\n", dci_format); LOG_I(PHY,"[DCI-FORMAT-1-1A] AbsSubframe %d.%d dci_format %d\n", frame, subframe, dci_format);
LOG_I(PHY,"[DCI-FORMAT-1-1A] rnti %x\n", rnti); LOG_I(PHY,"[DCI-FORMAT-1-1A] rnti %x\n", rnti);
LOG_I(PHY,"[DCI-FORMAT-1-1A] harq_pid %d\n", harq_pid); LOG_I(PHY,"[DCI-FORMAT-1-1A] harq_pid %d\n", harq_pid);
LOG_I(PHY,"[DCI-FORMAT-1-1A] rah %d\n", rah); // LOG_I(PHY,"[DCI-FORMAT-1-1A] rah %d\n", rah);
LOG_I(PHY,"[DCI-FORMAT-1-1A] rballoc %x\n", rballoc); // LOG_I(PHY,"[DCI-FORMAT-1-1A] rballoc %x\n", rballoc);
LOG_I(PHY,"[DCI-FORMAT-1-1A] mcs1 %d\n", mcs1); // LOG_I(PHY,"[DCI-FORMAT-1-1A] mcs1 %d\n", mcs1);
LOG_I(PHY,"[DCI-FORMAT-1-1A] rv1 %d\n", rv1); // LOG_I(PHY,"[DCI-FORMAT-1-1A] rv1 %d\n", rv1);
LOG_I(PHY,"[DCI-FORMAT-1-1A] ndi1 %d\n", ndi1); // LOG_I(PHY,"[DCI-FORMAT-1-1A] ndi1 %d\n", ndi1);
LOG_I(PHY,"[DCI-FORMAT-1-1A] TPC %d\n", TPC); // LOG_I(PHY,"[DCI-FORMAT-1-1A] TPC %d\n", TPC);
#endif //#endif
// I- check dci content minimum coherency // I- check dci content minimum coherency
if( ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) && harq_pid > 0) if( ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) && harq_pid > 0)
...@@ -5002,10 +5004,10 @@ int check_dci_format2_2a_coherency(DCI_format_t dci_format, ...@@ -5002,10 +5004,10 @@ int check_dci_format2_2a_coherency(DCI_format_t dci_format,
LOG_I(PHY, "extarcted dci - mcs2 %d \n", mcs2); LOG_I(PHY, "extarcted dci - mcs2 %d \n", mcs2);
LOG_I(PHY, "extarcted dci - rv1 %d \n", rv1); LOG_I(PHY, "extarcted dci - rv1 %d \n", rv1);
LOG_I(PHY, "extarcted dci - rv2 %d \n", rv2); LOG_I(PHY, "extarcted dci - rv2 %d \n", rv2);
LOG_I(PHY, "extarcted dci - ndi1 %d \n", ndi1); //LOG_I(PHY, "extarcted dci - ndi1 %d \n", ndi1);
LOG_I(PHY, "extarcted dci - ndi2 %d \n", ndi2); //LOG_I(PHY, "extarcted dci - ndi2 %d \n", ndi2);
LOG_I(PHY, "extarcted dci - rballoc %x \n", rballoc); LOG_I(PHY, "extarcted dci - rballoc %x \n", rballoc);
LOG_I(PHY, "extarcted dci - harq pif %d \n", harq_pid); LOG_I(PHY, "extarcted dci - harq pid %d \n", harq_pid);
LOG_I(PHY, "extarcted dci - round0 %d \n", pdlsch0_harq->round); LOG_I(PHY, "extarcted dci - round0 %d \n", pdlsch0_harq->round);
LOG_I(PHY, "extarcted dci - round1 %d \n", pdlsch1_harq->round); LOG_I(PHY, "extarcted dci - round1 %d \n", pdlsch1_harq->round);
#endif #endif
...@@ -5818,7 +5820,19 @@ void prepare_dl_decoding_format2_2A(DCI_format_t dci_format, ...@@ -5818,7 +5820,19 @@ void prepare_dl_decoding_format2_2A(DCI_format_t dci_format,
} }
} }
// if Imcs in [29..31] TBS is assumed to be as determined from DCI transported in the latest
// PDCCH for the same trasport block using Imcs in [0 .. 28]
if(dlsch0_harq->mcs <= 28)
{
dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1];
LOG_D(PHY,"[UE] DLSCH: New TBS CW0 subframe %d (pid %d, round %d) TBS %d \n",
subframe,harq_pid,dlsch0_harq->round, dlsch0_harq->TBS);
}
else
{
LOG_D(PHY,"[UE] DLSCH: Keep the same TBS CW0 subframe %d (pid %d, round %d) TBS %d \n",
subframe,harq_pid,dlsch0_harq->round, dlsch0_harq->TBS);
}
//if(dlsch0_harq->Nl == 2) //if(dlsch0_harq->Nl == 2)
//dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][(dlsch0_harq->nb_rb<<1)-1]; //dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][(dlsch0_harq->nb_rb<<1)-1];
if (mcs1 <= 28) if (mcs1 <= 28)
...@@ -5849,10 +5863,19 @@ void prepare_dl_decoding_format2_2A(DCI_format_t dci_format, ...@@ -5849,10 +5863,19 @@ void prepare_dl_decoding_format2_2A(DCI_format_t dci_format,
#endif #endif
} }
// if Imcs in [29..31] TBS is assumed to be as determined from DCI transported in the latest
// PDCCH for the same trasport block using Imcs in [0 .. 28]
if(dlsch1_harq->mcs <= 28)
{
dlsch1_harq->TBS = TBStable[get_I_TBS(dlsch1_harq->mcs)][dlsch1_harq->nb_rb-1]; dlsch1_harq->TBS = TBStable[get_I_TBS(dlsch1_harq->mcs)][dlsch1_harq->nb_rb-1];
//if(dlsch0_harq->Nl == 2) LOG_D(PHY,"[UE] DLSCH: New TBS CW1 subframe %d (pid %d, round %d) TBS %d \n",
//dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][(dlsch0_harq->nb_rb<<1)-1]; subframe,harq_pid,dlsch1_harq->round, dlsch1_harq->TBS);
}
else
{
LOG_D(PHY,"[UE] DLSCH: Keep the same TBS CW1 subframe %d (pid %d, round %d) TBS %d \n",
subframe,harq_pid,dlsch1_harq->round, dlsch1_harq->TBS);
}
if (mcs2 <= 28) if (mcs2 <= 28)
dlsch1_harq->Qm = get_Qm(mcs2); dlsch1_harq->Qm = get_Qm(mcs2);
else if (mcs1<=31) else if (mcs1<=31)
...@@ -5953,7 +5976,7 @@ int generate_ue_dlsch_params_from_dci(int frame, ...@@ -5953,7 +5976,7 @@ int generate_ue_dlsch_params_from_dci(int frame,
tc_rnti, tc_rnti,
si_rnti, si_rnti,
ra_rnti, ra_rnti,
p_rnti, p_rnti,frame,subframe,
&dci_info_extarcted, &dci_info_extarcted,
dlsch0_harq); dlsch0_harq);
if(status == 0) if(status == 0)
...@@ -6053,7 +6076,7 @@ int generate_ue_dlsch_params_from_dci(int frame, ...@@ -6053,7 +6076,7 @@ int generate_ue_dlsch_params_from_dci(int frame,
tc_rnti, tc_rnti,
si_rnti, si_rnti,
ra_rnti, ra_rnti,
p_rnti, p_rnti,frame,subframe,
&dci_info_extarcted, &dci_info_extarcted,
dlsch0_harq); dlsch0_harq);
if(status == 0) if(status == 0)
......
...@@ -364,12 +364,18 @@ int rx_pdsch(PHY_VARS_UE *ue, ...@@ -364,12 +364,18 @@ int rx_pdsch(PHY_VARS_UE *ue,
symbol, symbol,
nb_rb); nb_rb);
if ((dlsch0_harq->mimo_mode<DUALSTREAM_UNIFORM_PRECODING1) && (rx_type==rx_IC_single_stream) && (eNB_id_i==ue->n_connected_eNB) && (dlsch0_harq->dl_power_off==0)) // TM5 two-user if ((dlsch0_harq->mimo_mode<DUALSTREAM_UNIFORM_PRECODING1) &&
(rx_type==rx_IC_single_stream) &&
(eNB_id_i==ue->n_connected_eNB) &&
(dlsch0_harq->dl_power_off==0)
) // TM5 two-user
{
dlsch_scale_channel(pdsch_vars[eNB_id_i]->dl_ch_estimates_ext, dlsch_scale_channel(pdsch_vars[eNB_id_i]->dl_ch_estimates_ext,
frame_parms, frame_parms,
dlsch, dlsch,
symbol, symbol,
nb_rb); nb_rb);
}
if (first_symbol_flag==1) { if (first_symbol_flag==1) {
if (beamforming_mode==0){ if (beamforming_mode==0){
......
...@@ -8846,7 +8846,8 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, ...@@ -8846,7 +8846,8 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
memcpy(ch_mag_256i, ch_mag, len*4); memcpy(ch_mag_256i, ch_mag, len*4);
memcpy(ch_mag_i_256i, ch_mag_i, len*4); memcpy(ch_mag_i_256i, ch_mag_i, len*4);
memcpy(rho_256i, rho, len*4); memcpy(rho_256i, rho, len*4);
/*
qam64_qam64_avx2((int32_t *)rxF_256i, qam64_qam64_avx2((int32_t *)rxF_256i,
(int32_t *)rxF_i_256i, (int32_t *)rxF_i_256i,
(int32_t *)ch_mag_256i, (int32_t *)ch_mag_256i,
...@@ -8854,7 +8855,8 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, ...@@ -8854,7 +8855,8 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
(int16_t *)llr16, (int16_t *)llr16,
(int32_t *) rho_256i, (int32_t *) rho_256i,
len); len);
*/
/*
qam64_qam16_avx2((short *)rxF_256i, qam64_qam16_avx2((short *)rxF_256i,
(short *)rxF_i_256i, (short *)rxF_i_256i,
(short *)ch_mag_256i, (short *)ch_mag_256i,
...@@ -8862,7 +8864,7 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, ...@@ -8862,7 +8864,7 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
(short *)llr16, (short *)llr16,
(short *)rho_256i, (short *)rho_256i,
len); len);
*/
free16(rxF_256i, sizeof(rxF_256i)); free16(rxF_256i, sizeof(rxF_256i));
free16(rxF_i_256i, sizeof(rxF_i_256i)); free16(rxF_i_256i, sizeof(rxF_i_256i));
free16(ch_mag_256i, sizeof(ch_mag_256i)); free16(ch_mag_256i, sizeof(ch_mag_256i));
......
...@@ -802,6 +802,8 @@ typedef struct { ...@@ -802,6 +802,8 @@ typedef struct {
uint8_t prach_cnt; uint8_t prach_cnt;
uint8_t prach_PreambleIndex; uint8_t prach_PreambleIndex;
// uint8_t prach_timer; // uint8_t prach_timer;
uint8_t decode_SIB;
uint8_t decode_MIB;
int rx_offset; /// Timing offset int rx_offset; /// Timing offset
int rx_offset_diff; /// Timing adjustment for ofdm symbol0 on HW USRP int rx_offset_diff; /// Timing adjustment for ofdm symbol0 on HW USRP
int timing_advance; ///timing advance signalled from eNB int timing_advance; ///timing advance signalled from eNB
......
...@@ -2082,7 +2082,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin ...@@ -2082,7 +2082,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
T_INT(tx_amp),T_INT(ue->dlsch[proc->subframe_rx&0x1][eNB_id][0]->g_pucch),T_INT(get_PL(ue->Mod_id,ue->CC_id,eNB_id))); T_INT(tx_amp),T_INT(ue->dlsch[proc->subframe_rx&0x1][eNB_id][0]->g_pucch),T_INT(get_PL(ue->Mod_id,ue->CC_id,eNB_id)));
#endif #endif
LOG_I(PHY,"[UE %d][RNTI %x] AbsSubFrame %d.%d Generating PUCCH 2 (RI or CQI), n2_pucch %d, Po_PUCCH %d, isShortenPucch %d, amp %d\n", LOG_D(PHY,"[UE %d][RNTI %x] AbsSubFrame %d.%d Generating PUCCH 2 (RI or CQI), n2_pucch %d, Po_PUCCH %d, isShortenPucch %d, amp %d\n",
Mod_id, Mod_id,
ue->dlsch[proc->subframe_rx&0x1][eNB_id][0]->rnti, ue->dlsch[proc->subframe_rx&0x1][eNB_id][0]->rnti,
frame_tx%1024, subframe_tx, frame_tx%1024, subframe_tx,
...@@ -3520,10 +3520,10 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, ...@@ -3520,10 +3520,10 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
dlsch0->harq_processes[harq_pid]->TBS>256?1:0); dlsch0->harq_processes[harq_pid]->TBS>256?1:0);
stop_meas(&ue->dlsch_decoding_stats); stop_meas(&ue->dlsch_decoding_stats);
printf(" --> Unscrambling for CW0 %5.3f\n", //printf(" --> Unscrambling for CW0 %5.3f\n",
(ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0)); // (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
printf(" --> Turbo Decoding for CW0 %5.3f\n", //printf(" --> Turbo Decoding for CW0 %5.3f\n",
(ue->dlsch_decoding_stats.p_time)/(cpuf*1000.0)); // (ue->dlsch_decoding_stats.p_time)/(cpuf*1000.0));
if(is_cw1_active) if(is_cw1_active)
{ {
...@@ -3568,10 +3568,10 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, ...@@ -3568,10 +3568,10 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
dlsch1->harq_processes[harq_pid]->TBS>256?1:0); dlsch1->harq_processes[harq_pid]->TBS>256?1:0);
stop_meas(&ue->dlsch_decoding_stats); stop_meas(&ue->dlsch_decoding_stats);
printf(" --> Unscrambling for CW1 %5.3f\n", //printf(" --> Unscrambling for CW1 %5.3f\n",
(ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0)); // (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
printf(" --> Turbo Decoding for CW1 %5.3f\n", //printf(" --> Turbo Decoding for CW1 %5.3f\n",
(ue->dlsch_decoding_stats.p_time)/(cpuf*1000.0)); // (ue->dlsch_decoding_stats.p_time)/(cpuf*1000.0));
} }
} }
...@@ -3591,7 +3591,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, ...@@ -3591,7 +3591,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
if(dlsch0->rnti != 0xffff) if(dlsch0->rnti != 0xffff)
{ {
LOG_I(PHY,"[UE %d][PDSCH %x/%d] Frame %d subframe %d DLSCH CW0 in error (rv %d,mcs %d,TBS %d)\n", LOG_I(PHY,"[UE %d][PDSCH %x/%d] AbsSubframe %d.%d : DLSCH CW0 in error (rv %d,mcs %d,TBS %d)\n",
ue->Mod_id,dlsch0->rnti, ue->Mod_id,dlsch0->rnti,
harq_pid,frame_rx,subframe_rx, harq_pid,frame_rx,subframe_rx,
dlsch0->harq_processes[harq_pid]->rvidx, dlsch0->harq_processes[harq_pid]->rvidx,
...@@ -3603,7 +3603,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue, ...@@ -3603,7 +3603,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
} else { } else {
if(dlsch0->rnti != 0xffff) if(dlsch0->rnti != 0xffff)
{ {
LOG_I(PHY,"[UE %d][PDSCH %x/%d] Frame %d subframe %d: Received DLSCH CW0 (rv %d,mcs %d,TBS %d)\n", LOG_I(PHY,"[UE %d][PDSCH %x/%d] AbsSubframe %d.%d : Received DLSCH CW0 (rv %d,mcs %d,TBS %d)\n",
ue->Mod_id,dlsch0->rnti, ue->Mod_id,dlsch0->rnti,
harq_pid,frame_rx,subframe_rx, harq_pid,frame_rx,subframe_rx,
dlsch0->harq_processes[harq_pid]->rvidx, dlsch0->harq_processes[harq_pid]->rvidx,
...@@ -3857,7 +3857,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin ...@@ -3857,7 +3857,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
// first slot has been processed (FFTs + Channel Estimation, PCFICH/PHICH/PDCCH) // first slot has been processed (FFTs + Channel Estimation, PCFICH/PHICH/PDCCH)
stop_meas(&ue->generic_stat); stop_meas(&ue->generic_stat);
printf("[SFN %d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0)); //printf("[SFN %d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
start_meas(&ue->generic_stat); start_meas(&ue->generic_stat);
// do procedures for C-RNTI // do procedures for C-RNTI
...@@ -3952,11 +3952,13 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin ...@@ -3952,11 +3952,13 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
} // not an S-subframe } // not an S-subframe
stop_meas(&ue->generic_stat); stop_meas(&ue->generic_stat);
printf("[SFN %d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0)); //printf("[SFN %d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
// run pbch procedures if subframe is 0 // run pbch procedures if subframe is 0
if (subframe_rx == 0) if ( (subframe_rx == 0) && (ue->decode_MIB == 1))
{
ue_pbch_procedures(eNB_id,ue,proc,abstraction_flag); ue_pbch_procedures(eNB_id,ue,proc,abstraction_flag);
}
// do procedures for C-RNTI // do procedures for C-RNTI
if (ue->dlsch[subframe_rx&0x1][eNB_id][0]->active == 1) { if (ue->dlsch[subframe_rx&0x1][eNB_id][0]->active == 1) {
...@@ -3984,8 +3986,8 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin ...@@ -3984,8 +3986,8 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
mode, mode,
abstraction_flag); abstraction_flag);
stop_meas(&ue->dlsch_procedures_stat); stop_meas(&ue->dlsch_procedures_stat);
printf("[SFN %d] Slot1: Pdsch Proc %5.2f\n",subframe_rx,ue->pdsch_procedures_stat.p_time/(cpuf*1000.0)); //printf("[SFN %d] Slot1: Pdsch Proc %5.2f\n",subframe_rx,ue->pdsch_procedures_stat.p_time/(cpuf*1000.0));
printf("[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n",subframe_rx,ue->dlsch_procedures_stat.p_time/(cpuf*1000.0)); //printf("[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n",subframe_rx,ue->dlsch_procedures_stat.p_time/(cpuf*1000.0));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_OUT); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_OUT);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment