add beamforming_mode into generate eNB and UE dlsch parameters from DCI
This commit is contained in:
@@ -872,7 +872,8 @@ int generate_eNB_dlsch_params_from_dci(int frame,
|
||||
uint16_t si_rnti,
|
||||
uint16_t ra_rnti,
|
||||
uint16_t p_rnti,
|
||||
uint16_t DL_pmi_single)
|
||||
uint16_t DL_pmi_single,
|
||||
uint8_t beamforming_mode)
|
||||
{
|
||||
|
||||
uint8_t harq_pid = UINT8_MAX;
|
||||
@@ -1244,7 +1245,13 @@ int generate_eNB_dlsch_params_from_dci(int frame,
|
||||
|
||||
dlsch0_harq->Nl = 1;
|
||||
// dlsch[0]->layer_index = 0;
|
||||
dlsch0_harq->mimo_mode = (frame_parms->mode1_flag == 1) ? SISO : ALAMOUTI;
|
||||
if (beamforming_mode == 0)
|
||||
dlsch0_harq->mimo_mode = (frame_parms->mode1_flag == 1) ? SISO : ALAMOUTI;
|
||||
else if (beamforming_mode == 7)
|
||||
dlsch0_harq->mimo_mode = TM7;
|
||||
else
|
||||
LOG_E(PHY,"Invalid beamforming mode %dL\n", beamforming_mode);
|
||||
|
||||
dlsch0_harq->dl_power_off = 1;
|
||||
/*
|
||||
if (dlsch[0]->harq_processes[harq_pid]->first_tx == 1) {
|
||||
@@ -3854,7 +3861,8 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
||||
PDSCH_CONFIG_DEDICATED *pdsch_config_dedicated,
|
||||
uint16_t si_rnti,
|
||||
uint16_t ra_rnti,
|
||||
uint16_t p_rnti)
|
||||
uint16_t p_rnti,
|
||||
uint8_t beamforming_mode)
|
||||
{
|
||||
|
||||
uint8_t harq_pid=0;
|
||||
@@ -4171,6 +4179,7 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
||||
dlsch0_harq->rvidx = rv;
|
||||
dlsch0_harq->Nl = 1;
|
||||
// dlsch[0]->layer_index = 0;
|
||||
|
||||
dlsch0_harq->mimo_mode = frame_parms->mode1_flag == 1 ?SISO : ALAMOUTI;
|
||||
dlsch0_harq->dl_power_off = 1; //no power offset
|
||||
|
||||
@@ -4521,7 +4530,13 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
||||
|
||||
dlsch[0]->rnti = rnti;
|
||||
|
||||
dlsch0_harq->mimo_mode = (frame_parms->mode1_flag == 1) ? SISO : ALAMOUTI;
|
||||
if (beamforming_mode == 0)
|
||||
dlsch0_harq->mimo_mode = (frame_parms->mode1_flag == 1) ? SISO : ALAMOUTI;
|
||||
else if (beamforming_mode == 7)
|
||||
dlsch0_harq->mimo_mode = TM7;
|
||||
else
|
||||
LOG_E(PHY,"Not supported beamforming mode %d\n",beamforming_mode);
|
||||
|
||||
|
||||
dlsch0 = dlsch[0];
|
||||
|
||||
|
||||
@@ -1424,7 +1424,8 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
||||
PDSCH_CONFIG_DEDICATED *pdsch_config_dedicated,
|
||||
uint16_t si_rnti,
|
||||
uint16_t ra_rnti,
|
||||
uint16_t p_rnti);
|
||||
uint16_t p_rnti,
|
||||
uint8_t beamforming_mode);
|
||||
|
||||
int32_t generate_eNB_dlsch_params_from_dci(int frame,
|
||||
uint8_t subframe,
|
||||
@@ -1437,7 +1438,8 @@ int32_t generate_eNB_dlsch_params_from_dci(int frame,
|
||||
uint16_t si_rnti,
|
||||
uint16_t ra_rnti,
|
||||
uint16_t p_rnti,
|
||||
uint16_t DL_pmi_single);
|
||||
uint16_t DL_pmi_single,
|
||||
uint8_t beamforming_mode);
|
||||
|
||||
int32_t generate_eNB_ulsch_params_from_rar(uint8_t *rar_pdu,
|
||||
frame_t frame,
|
||||
|
||||
@@ -1094,7 +1094,8 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI,
|
||||
phy_vars_eNB->eNB_UE_stats[0].DL_pmi_single);
|
||||
phy_vars_eNB->eNB_UE_stats[0].DL_pmi_single,
|
||||
0);
|
||||
|
||||
|
||||
phy_vars_eNB->dlsch_eNB_SI->nCCE[subframe] = DCI_pdu->dci_alloc[i].firstCCE;
|
||||
@@ -1129,7 +1130,8 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
|
||||
SI_RNTI,
|
||||
DCI_pdu->dci_alloc[i].rnti,
|
||||
P_RNTI,
|
||||
phy_vars_eNB->eNB_UE_stats[0].DL_pmi_single);
|
||||
phy_vars_eNB->eNB_UE_stats[0].DL_pmi_single,
|
||||
0);
|
||||
|
||||
// mac_xface->macphy_exit("Transmitted RAR, exiting\n");
|
||||
|
||||
@@ -1187,7 +1189,8 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI,
|
||||
phy_vars_eNB->eNB_UE_stats[(uint8_t)UE_id].DL_pmi_single);
|
||||
phy_vars_eNB->eNB_UE_stats[(uint8_t)UE_id].DL_pmi_single,
|
||||
phy_vars_eNB->transmission_mode[(uint8_t)UE_id]>7?0:phy_vars_eNB->transmission_mode[(uint8_t)UE_id]);
|
||||
LOG_D(PHY,"[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d subframe %d: Generated dlsch params\n",
|
||||
phy_vars_eNB->Mod_id,DCI_pdu->dci_alloc[i].rnti,phy_vars_eNB->dlsch_eNB[(uint8_t)UE_id][0]->current_harq_pid,phy_vars_eNB->proc[sched_subframe].frame_tx,subframe);
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ void dump_dlsch(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t subframe,uint8_t
|
||||
phy_vars_ue->lte_ue_pdcch_vars[eNB_id]->num_pdcch_symbols,
|
||||
phy_vars_ue->frame_rx,
|
||||
subframe,
|
||||
phy_vars_ue->transmission_mode[eNB_id]);
|
||||
phy_vars_ue->transmission_mode[eNB_id]);
|
||||
|
||||
write_output("rxsigF0.m","rxsF0", phy_vars_ue->lte_ue_common_vars.rxdataF[0],2*nsymb*phy_vars_ue->lte_frame_parms.ofdm_symbol_size,2,1);
|
||||
write_output("rxsigF0_ext.m","rxsF0_ext", phy_vars_ue->lte_ue_pdsch_vars[0]->rxdataF_ext[0],2*nsymb*phy_vars_ue->lte_frame_parms.ofdm_symbol_size,1,1);
|
||||
@@ -2143,7 +2143,8 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
|
||||
phy_vars_ue->pdsch_config_dedicated,
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI)==0)) {
|
||||
P_RNTI,
|
||||
phy_vars_ue->transmission_mode[eNB_id]>7?0:phy_vars_ue->transmission_mode[eNB_id])==0)) {
|
||||
|
||||
#ifdef DIAG_PHY
|
||||
|
||||
@@ -2211,7 +2212,8 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
|
||||
phy_vars_ue->pdsch_config_dedicated,
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI)==0) {
|
||||
P_RNTI,
|
||||
0)==0) {
|
||||
|
||||
phy_vars_ue->dlsch_SI_received[eNB_id]++;
|
||||
|
||||
@@ -2255,7 +2257,8 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
|
||||
phy_vars_ue->pdsch_config_dedicated,
|
||||
SI_RNTI,
|
||||
phy_vars_ue->prach_resources[eNB_id]->ra_RNTI,
|
||||
P_RNTI)==0) {
|
||||
P_RNTI,
|
||||
0)==0) {
|
||||
|
||||
phy_vars_ue->dlsch_ra_received[eNB_id]++;
|
||||
|
||||
@@ -2790,7 +2793,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
|
||||
phy_vars_ue->lte_ue_pdcch_vars[eNB_id]->num_pdcch_symbols,
|
||||
frame_rx,
|
||||
subframe_prev,
|
||||
phy_vars_ue->transmission_mode[eNB_id]);
|
||||
0);
|
||||
|
||||
#ifdef DEBUG_PHY_PROC
|
||||
LOG_D(PHY,"Decoding DLSCH_SI : rb_alloc %x : nb_rb %d G %d TBS %d, num_pdcch_sym %d\n",phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->rb_alloc_even[0],
|
||||
@@ -2853,8 +2856,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
|
||||
phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->rb_alloc_even[2],
|
||||
phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->rb_alloc_even[3]);
|
||||
#endif
|
||||
|
||||
// dump_dlsch_SI(phy_vars_ue,eNB_id,subframe_prev);
|
||||
// dump_dlsch_SI(phy_vars_ue,eNB_id,subframe_prev);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_OUT);
|
||||
stop_meas(&phy_vars_ue->phy_proc_rx);
|
||||
return(-1);
|
||||
|
||||
@@ -1149,10 +1149,11 @@ int main(int argc, char **argv)
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI,
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single);
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single,
|
||||
transmission_mode<7?0:transmission_mode);
|
||||
|
||||
if (transmission_mode == 7)
|
||||
PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->mimo_mode = TM7; //Xiwen: to check about harq_pid
|
||||
/*if (transmission_mode == 7)
|
||||
PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->mimo_mode = TM7; //Xiwen: to check about harq_pid*/
|
||||
|
||||
num_dci++;
|
||||
num_ue_spec_dci++;
|
||||
@@ -1292,7 +1293,8 @@ int main(int argc, char **argv)
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI,
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single);
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single,
|
||||
0);
|
||||
|
||||
num_common_dci++;
|
||||
num_dci++;
|
||||
@@ -1459,7 +1461,8 @@ int main(int argc, char **argv)
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI,
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single);
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single,
|
||||
0);
|
||||
|
||||
num_dci++;
|
||||
num_ue_spec_dci++;
|
||||
@@ -1599,7 +1602,8 @@ int main(int argc, char **argv)
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI,
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single);
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single,
|
||||
0);
|
||||
|
||||
num_common_dci++;
|
||||
num_dci++;
|
||||
@@ -1767,7 +1771,8 @@ int main(int argc, char **argv)
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI,
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single);
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single,
|
||||
0);
|
||||
|
||||
num_dci++;
|
||||
num_ue_spec_dci++;
|
||||
@@ -1907,7 +1912,8 @@ int main(int argc, char **argv)
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI,
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single);
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single,
|
||||
0);
|
||||
|
||||
num_common_dci++;
|
||||
num_dci++;
|
||||
@@ -1936,7 +1942,8 @@ int main(int argc, char **argv)
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI,
|
||||
PHY_vars_eNB->eNB_UE_stats[k].DL_pmi_single);
|
||||
PHY_vars_eNB->eNB_UE_stats[k].DL_pmi_single,
|
||||
0);
|
||||
|
||||
dump_dci(&PHY_vars_eNB->lte_frame_parms,&dci_alloc[num_dci]);
|
||||
num_ue_spec_dci++;
|
||||
@@ -3226,7 +3233,8 @@ PMI_FEEDBACK:
|
||||
PHY_vars_UE->pdsch_config_dedicated,
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI)==0)) {
|
||||
P_RNTI==0,
|
||||
transmission_mode<7?0:transmission_mode))) {
|
||||
//dump_dci(&PHY_vars_UE->lte_frame_parms,&dci_alloc_rx[i]);
|
||||
coded_bits_per_codeword = get_G(&PHY_vars_eNB->lte_frame_parms,
|
||||
PHY_vars_UE->dlsch_ue[0][0]->harq_processes[PHY_vars_UE->dlsch_ue[0][0]->current_harq_pid]->nb_rb,
|
||||
@@ -3237,8 +3245,8 @@ PMI_FEEDBACK:
|
||||
0,
|
||||
subframe,
|
||||
(transmission_mode<7?0:transmission_mode));
|
||||
if (transmission_mode==7 && common_flag==0)
|
||||
PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->mimo_mode = TM7;
|
||||
/*if (transmission_mode==7 && common_flag==0)
|
||||
PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->mimo_mode = TM7; */
|
||||
|
||||
/*
|
||||
rate = (double)dlsch_tbs25[get_I_TBS(PHY_vars_UE->dlsch_ue[0][0]->harq_processes[PHY_vars_UE->dlsch_ue[0][0]->current_harq_pid]->mcs)][PHY_vars_UE->dlsch_ue[0][0]->nb_rb-1]/(coded_bits_per_codeword);
|
||||
@@ -3289,9 +3297,10 @@ PMI_FEEDBACK:
|
||||
PHY_vars_UE->pdsch_config_dedicated,
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI);
|
||||
if(transmission_mode==7 && common_flag==0)
|
||||
PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->mimo_mode = TM7;
|
||||
P_RNTI,
|
||||
transmission_mode<7?0:transmission_mode);
|
||||
/*if(transmission_mode==7 && common_flag==0)
|
||||
PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->mimo_mode = TM7;*/
|
||||
break;
|
||||
|
||||
case 3:
|
||||
@@ -3306,7 +3315,8 @@ PMI_FEEDBACK:
|
||||
PHY_vars_UE->pdsch_config_dedicated,
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI);
|
||||
P_RNTI,
|
||||
0);
|
||||
// printf("Rate: TM3 (after) round %d (%d) first_tx %d\n",round,PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->round,PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->first_tx);
|
||||
break;
|
||||
|
||||
@@ -3321,7 +3331,8 @@ PMI_FEEDBACK:
|
||||
PHY_vars_UE->pdsch_config_dedicated,
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI);
|
||||
P_RNTI,
|
||||
0);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
@@ -3336,7 +3347,8 @@ PMI_FEEDBACK:
|
||||
PHY_vars_UE->pdsch_config_dedicated,
|
||||
SI_RNTI,
|
||||
0,
|
||||
P_RNTI);
|
||||
P_RNTI,
|
||||
0);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user