git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6598 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -658,7 +658,7 @@ int generate_eNB_dlsch_params_from_dci(uint8_t subframe,
|
||||
rv = ((DCI1A_10MHz_FDD_t *)dci_pdu)->rv;
|
||||
TPC = ((DCI1A_10MHz_FDD_t *)dci_pdu)->TPC;
|
||||
harq_pid = ((DCI1A_10MHz_FDD_t *)dci_pdu)->harq_pid;
|
||||
// printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB);
|
||||
//printf("FDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC);
|
||||
}
|
||||
|
||||
dlsch0_harq = dlsch[0]->harq_processes[harq_pid];
|
||||
@@ -740,7 +740,7 @@ int generate_eNB_dlsch_params_from_dci(uint8_t subframe,
|
||||
if (NPRB==0)
|
||||
return(-1);
|
||||
|
||||
// printf("NPRB %d, nb_rb %d, ndi %d\n",NPRB,dlsch0_harq->nb_rb,ndi);
|
||||
//printf("NPRB %d, nb_rb %d, ndi %d\n",NPRB,dlsch0_harq->nb_rb,ndi);
|
||||
dlsch0_harq->rvidx = rv;
|
||||
|
||||
dlsch0_harq->Nl = 1;
|
||||
@@ -3548,7 +3548,6 @@ int generate_ue_dlsch_params_from_dci(uint8_t subframe,
|
||||
dlsch0_harq = dlsch[0]->harq_processes[harq_pid];
|
||||
// see 36-212 V8.6.0 p. 45
|
||||
NPRB = (TPC&1) + 2;
|
||||
// toggle the ndi
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -3589,41 +3588,44 @@ int generate_ue_dlsch_params_from_dci(uint8_t subframe,
|
||||
}
|
||||
// change the mcs limit from 7 to 8, supported by MAC
|
||||
if (mcs > 10) {
|
||||
LOG_E(PHY,"Format 1A: unlikely mcs for format 1A (%d)\n",mcs);
|
||||
LOG_E(PHY,"Format 1A: subframe %d unlikely mcs for format 1A (%d), TPC %d rv %d\n",subframe,mcs,TPC,rv);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
if ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)){ //
|
||||
// toggle the ndi, always toggled for si,p and ra
|
||||
ndi = 1-dlsch0_harq->DCINdi;
|
||||
if (dlsch0_harq->round == 4) {
|
||||
dlsch0_harq->round = 0;
|
||||
dlsch0_harq->first_tx = 1;
|
||||
}
|
||||
// if (dlsch0_harq->round == 0)
|
||||
// ndi = 1-dlsch0_harq->DCINdi;
|
||||
}
|
||||
|
||||
dlsch[0]->current_harq_pid = harq_pid;
|
||||
// msg("Format 1A: harq_pid %d\n",harq_pid);
|
||||
|
||||
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
|
||||
|
||||
LOG_D(PHY,"UE (%x/%d): Subframe %d Format1A DCI: ndi %d, old_ndi %d (first tx %d) harq_status %d\n",dlsch[0]->rnti,harq_pid,subframe,ndi,dlsch0_harq->DCINdi,
|
||||
dlsch0_harq->first_tx,dlsch0_harq->status);
|
||||
if ((rnti != si_rnti) && (rnti!=ra_rnti)) {
|
||||
//LOG_I(PHY,"UE (%x/%d): Subframe %d Format1A DCI: ndi %d, old_ndi %d (first tx %d) harq_status %d\n",dlsch[0]->rnti,harq_pid,subframe,ndi,dlsch0_harq->DCINdi,
|
||||
//dlsch0_harq->first_tx,dlsch0_harq->status);
|
||||
if ((ndi!=dlsch0_harq->DCINdi)|| // DCI has been toggled or this is the first transmission
|
||||
(dlsch0_harq->first_tx==1)) {
|
||||
dlsch0_harq->round = 0;
|
||||
if (dlsch0_harq->first_tx==1) {
|
||||
LOG_I(PHY,"[PDSCH %x/%d] Format 1A DCI First TX: Clearing flag\n");
|
||||
//LOG_I(PHY,"[PDSCH %x/%d] Format 1A DCI First TX: Clearing flag\n");
|
||||
dlsch0_harq->first_tx = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
dlsch0_harq->DCINdi = ndi;
|
||||
|
||||
dlsch0_harq->mcs = mcs;
|
||||
dlsch0_harq->TBS = TBStable[get_I_TBS(mcs)][NPRB-1];
|
||||
dlsch[0]->rnti = rnti;
|
||||
dlsch0 = dlsch[0];
|
||||
//printf("Format 1A: harq_pid %d, nb_rb %d, round %d\n",harq_pid,dlsch0_harq->nb_rb,dlsch0_harq->round);
|
||||
break;
|
||||
|
||||
case format1:
|
||||
|
||||
@@ -291,7 +291,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
(r==0) ? harq_process->F : 0);
|
||||
|
||||
#ifdef DEBUG_DLSCH_DECODING
|
||||
msg("HARQ_PID %d Rate Matching Segment %d (coded bits %d,unpunctured/repeated bits %d, TBS %d, mod_order %d, nb_rb %d, Nl %d, rv %d, round %d)...\n",
|
||||
LOG_I(PHY,"HARQ_PID %d Rate Matching Segment %d (coded bits %d,unpunctured/repeated bits %d, TBS %d, mod_order %d, nb_rb %d, Nl %d, rv %d, round %d)...\n",
|
||||
harq_pid,r, G,
|
||||
Kr*3,
|
||||
harq_process->TBS,
|
||||
|
||||
@@ -2818,6 +2818,7 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF,
|
||||
|
||||
if (rb_alloc_ind==1) {
|
||||
|
||||
//printf("demod: rb %d\n",rb);
|
||||
|
||||
*pmi_loc = (pmi>>((rb>>2)<<1))&3;
|
||||
// printf("rb %d: sb %d : pmi %d\n",rb,rb>>2,*pmi_loc);
|
||||
|
||||
@@ -335,7 +335,7 @@ int get_G(LTE_DL_FRAME_PARMS *frame_parms,uint16_t nb_rb,uint32_t *rb_alloc,uint
|
||||
if (is_pmch_subframe(frame,subframe,frame_parms) == 0) {
|
||||
G_adj= adjust_G(frame_parms,rb_alloc,mod_order,subframe);
|
||||
|
||||
// printf("get_G subframe %d mod_order %d, nb_rb %d: rb_alloc %x,%x,%x,%x, G_adj %d\n",subframe,mod_order,nb_rb,rb_alloc[3],rb_alloc[2],rb_alloc[1],rb_alloc[0], G_adj);
|
||||
//printf("get_G subframe %d mod_order %d, nb_rb %d: rb_alloc %x,%x,%x,%x, G_adj %d\n",subframe,mod_order,nb_rb,rb_alloc[3],rb_alloc[2],rb_alloc[1],rb_alloc[0], G_adj);
|
||||
if (frame_parms->Ncp==NORMAL) { // normal prefix
|
||||
// PDDDPDD PDDDPDD - 13 PDSCH symbols, 10 full, 3 w/ pilots = 10*12 + 3*8
|
||||
// PCDDPDD PDDDPDD - 12 PDSCH symbols, 9 full, 3 w/ pilots = 9*12 + 3*8
|
||||
|
||||
@@ -1835,7 +1835,7 @@ void lte_ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
|
||||
phy_vars_ue->lte_frame_parms.phich_config_common.phich_duration,
|
||||
phy_vars_ue->lte_frame_parms.phich_config_common.phich_resource);
|
||||
if (frame_rx%100 == 0) {
|
||||
LOG_I(PHY,"[UE %d] frame %d, slot %d, PBCH: mode1_flag %d, tx_ant %d, frame_tx %d, phase %d. N_RB_DL %d, phich_duration %d, phich_resource %d/6\n",
|
||||
LOG_I(PHY,"[UE %d] frame %d, slot %d, PBCH: mode1_flag %d, tx_ant %d, frame_tx %d, phase %d. N_RB_DL %d, phich_duration %d, phich_resource %d/6,Frequency offset %d Hz (%d)\n",
|
||||
phy_vars_ue->Mod_id,
|
||||
frame_rx,
|
||||
slot_rx,
|
||||
@@ -1845,7 +1845,8 @@ void lte_ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
|
||||
pbch_phase,
|
||||
phy_vars_ue->lte_frame_parms.N_RB_DL,
|
||||
phy_vars_ue->lte_frame_parms.phich_config_common.phich_duration,
|
||||
phy_vars_ue->lte_frame_parms.phich_config_common.phich_resource);
|
||||
phy_vars_ue->lte_frame_parms.phich_config_common.phich_resource,
|
||||
phy_vars_ue->lte_ue_common_vars.freq_offset,openair_daq_vars.freq_offset);
|
||||
//dump_frame_parms(&phy_vars_ue->lte_frame_parms);
|
||||
}
|
||||
#endif
|
||||
@@ -2746,8 +2747,8 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
|
||||
LOG_D(PHY,"[UE %d] Frame %d, subframe %d, received SI in error\n",phy_vars_ue->Mod_id,frame_rx,subframe_prev);
|
||||
#endif
|
||||
|
||||
dump_dlsch_SI(phy_vars_ue,eNB_id,subframe_prev);
|
||||
exit(-1);
|
||||
//dump_dlsch_SI(phy_vars_ue,eNB_id,subframe_prev);
|
||||
//exit(-1);
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user