Commit d42485d7 authored by Khodr Saaifan's avatar Khodr Saaifan Committed by Thomas Schlichter

Enable UE PDCCH format2 blind search +Fix UE PUCCH Tx for SR/Ack

parent 3506e52f
......@@ -3862,6 +3862,143 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue,
return(dci_cnt);
//#endif //ALL_AGGREGATION
/* sfn: Enable Format2 seaching in UE space
*aggregation 1,2,4, and 8
*/
// Now check UE_SPEC format 2_2A search spaces at aggregation 1
old_dci_cnt=dci_cnt;
dci_decoding_procedure0(pdcch_vars,0,mode,
subframe,
dci_alloc,
eNB_id,
ue->current_thread_id[subframe],
frame_parms,
mi,
((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti,
P_RNTI,
0,
format1A,
format1A,
format1A,
format2,
format2_size_bits,
format2_size_bytes,
&dci_cnt,
&format0_found,
&format_c_found,
&CCEmap0,
&CCEmap1,
&CCEmap2);
if ((CCEmap0==0xffff)||
((format0_found==1)&&(format_c_found==1)))
return(dci_cnt);
if (dci_cnt>old_dci_cnt)
return(dci_cnt);
// Now check UE_SPEC format 2 search spaces at aggregation 2
old_dci_cnt=dci_cnt;
dci_decoding_procedure0(pdcch_vars,0,mode,
subframe,
dci_alloc,
eNB_id,
ue->current_thread_id[subframe],
frame_parms,
mi,
((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti,
P_RNTI,
1,
format1A,
format1A,
format1A,
format2,
format2_size_bits,
format2_size_bytes,
&dci_cnt,
&format0_found,
&format_c_found,
&CCEmap0,
&CCEmap1,
&CCEmap2);
if ((CCEmap0==0xffff)||
((format0_found==1)&&(format_c_found==1)))
return(dci_cnt);
if (dci_cnt>old_dci_cnt)
return(dci_cnt);
// Now check UE_SPEC format 2_2A search spaces at aggregation 4
old_dci_cnt=dci_cnt;
dci_decoding_procedure0(pdcch_vars,0,mode,
subframe,
dci_alloc,
eNB_id,
ue->current_thread_id[subframe],
frame_parms,
mi,
((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti,
P_RNTI,
2,
format1A,
format1A,
format1A,
format2,
format2_size_bits,
format2_size_bytes,
&dci_cnt,
&format0_found,
&format_c_found,
&CCEmap0,
&CCEmap1,
&CCEmap2);
if ((CCEmap0==0xffff)||
((format0_found==1)&&(format_c_found==1)))
return(dci_cnt);
if (dci_cnt>old_dci_cnt)
return(dci_cnt);
//#ifdef ALL_AGGREGATION
// Now check UE_SPEC format 2_2A search spaces at aggregation 8
old_dci_cnt=dci_cnt;
dci_decoding_procedure0(pdcch_vars,0,mode,
subframe,
dci_alloc,
eNB_id,
ue->current_thread_id[subframe],
frame_parms,
mi,
((ue->decode_SIB == 1) ? SI_RNTI : 0),
ra_rnti,
P_RNTI,
3,
format1A,
format1A,
format1A,
format2,
format2_size_bits,
format2_size_bytes,
&dci_cnt,
&format0_found,
&format_c_found,
&CCEmap0,
&CCEmap1,
&CCEmap2);
//#endif
if ((CCEmap0==0xffff)||
((format0_found==1)&&(format_c_found==1)))
return(dci_cnt);
if (dci_cnt>old_dci_cnt)
return(dci_cnt);
} else if (tmode == 3) {
......
......@@ -5049,13 +5049,16 @@ int check_dci_format2_2a_coherency(DCI_format_t dci_format,
}
}
/*SFN: remove channel 2 from the test
*
*/
if( mcs2 > 28)
{
if(pdlsch1_harq->round == 0)
/* if(pdlsch1_harq->round == 0)
{
LOG_I(PHY,"bad mcs2\n");
return(0);
}
}*/
}
......@@ -5067,12 +5070,12 @@ int check_dci_format2_2a_coherency(DCI_format_t dci_format,
return(0);
}
if((pdlsch1_harq->round == 0) && (rv2 > 0) && (mcs2 != 0))
/* if((pdlsch1_harq->round == 0) && (rv2 > 0) && (mcs2 != 0))
{
// DCI false detection
LOG_I(PHY,"bad rv2\n");
return(0);
}
}*/
switch (N_RB_DL) {
......@@ -5772,6 +5775,99 @@ void prepare_dl_decoding_format2_2A(DCI_format_t dci_format,
uint8_t ndi1 = pdci_info_extarcted->ndi1;
uint8_t ndi2 = pdci_info_extarcted->ndi2;
uint8_t NPRB = 0;
uint8_t nb_rb_alloc = 0;
NPRB = conv_nprb(rah, rballoc, 25);
nb_rb_alloc = NPRB;
pdlsch0->current_harq_pid = harq_pid;
pdlsch0->active = 1;
pdlsch0->rnti = rnti;
/*if (rnti == tc_rnti) {
//fix for standalone Contention Resolution Id
dlsch0_harq->DCINdi = (uint8_t)-1;
LOG_D(PHY,"UE (%x/%d): Format1A DCI: C-RNTI is temporary. Set NDI = %d and to be ignored\n",
rnti,harq_pid,dlsch0_harq->DCINdi);
}*/
// NDI has been toggled or this is the first transmission
if ((ndi1!=dlsch0_harq->DCINdi) || (dlsch0_harq->first_tx==1))
{
dlsch0_harq->round = 0;
dlsch0_harq->first_tx = 0;
dlsch0_harq->status = ACTIVE;
}
//NDI has not been toggled but rv was increased by eNB: retransmission
else if (rv1 != 0)
{
if (dlsch0_harq->status == SCH_IDLE)
//packet was actually decoded in previous transmission (ACK was missed by eNB)
//However, the round is not a good check as it might have been decoded in a retransmission prior to this one.
{
LOG_D(PHY,"skip pdsch decoding and report ack\n");
// skip pdsch decoding and report ack
//pdlsch0_harq->status = SCH_IDLE;
pdlsch0->active = 0;
pdlsch0->harq_ack[subframe].ack = 1;
pdlsch0->harq_ack[subframe].harq_id = harq_pid;
pdlsch0->harq_ack[subframe].send_harq_status = 1;
//pdlsch0_harq->first_tx = 0;
}
else //normal retransmission
{
// nothing special to do
}
}
else
{
dlsch0_harq->status = ACTIVE;
}
dlsch0_harq->DCINdi = ndi1;
dlsch0_harq->mcs = mcs1;
dlsch0_harq->rvidx = rv1;
dlsch0_harq->nb_rb = NPRB;
dlsch0_harq->codeword = 0;
dlsch0_harq->Nl = 1;
dlsch0_harq->mimo_mode = frame_parms->mode1_flag == 1 ?SISO : ALAMOUTI;
dlsch0_harq->dl_power_off = 1; //no power offset
dlsch0_harq->delta_PUCCH = delta_PUCCH_lut[TPC &3];
conv_rballoc(rah,rballoc,frame_parms->N_RB_DL,dlsch0_harq->rb_alloc_even);
dlsch0_harq->rb_alloc_odd[0]= dlsch0_harq->rb_alloc_even[0];
dlsch0_harq->rb_alloc_odd[1]= dlsch0_harq->rb_alloc_even[1];
dlsch0_harq->rb_alloc_odd[2]= dlsch0_harq->rb_alloc_even[2];
dlsch0_harq->rb_alloc_odd[3]= dlsch0_harq->rb_alloc_even[3];
if(mcs1 < 29)
{
dlsch0_harq->TBS = TBStable[get_I_TBS(mcs1)][NPRB-1];
dlsch0_harq->Qm = get_Qm(mcs1);
}
compute_llr_offset(frame_parms,
pdcch_vars,
pdsch_vars,
dlsch0_harq,
nb_rb_alloc,
subframe);
#ifdef SFN_Disable
uint8_t TB0_active = 1;
uint8_t TB1_active = 1;
......@@ -6040,6 +6136,7 @@ void prepare_dl_decoding_format2_2A(DCI_format_t dci_format,
else if (dlsch0 != NULL && dlsch1 == NULL)
printf("[DCI UE] dlsch1_harq NULL dlsch0_harq status = %d\n", dlsch0_harq->status);
#endif*/
#endif
}
int generate_ue_dlsch_params_from_dci(int frame,
......@@ -6240,8 +6337,13 @@ int generate_ue_dlsch_params_from_dci(int frame,
printf("bad DCI 1 !!! \n");
return(-1);
}
sudas_LOG_PHY(debug_sudas_LOG_PHY,"/////////////////////////\n");
sudas_LOG_PHY(debug_sudas_LOG_PHY,"Frame %d Subframe %d\n",frame%1024,subframe);
sudas_LOG_PHY(debug_sudas_LOG_PHY,"Detect DCI format 1\n");
sudas_LOG_PHY(debug_sudas_LOG_PHY,"harq_pid %d NDI1 %d\n",dci_info_extarcted.harq_pid,dci_info_extarcted.ndi1);
#ifdef FHG_LOG
fflush(debug_sudas_LOG_PHY);
#endif
// dci is correct ==> update internal structure and prepare dl decoding
#ifdef DEBUG_DCI
LOG_I(PHY,"[DCI-FORMAT-1] AbsSubframe %d.%d prepare dl decoding \n", frame, subframe);
......@@ -6275,14 +6377,14 @@ int generate_ue_dlsch_params_from_dci(int frame,
// check dci content
dlsch[0]->active = 1;
dlsch[1]->active = 1;
dlsch[0]->active = 0;
//dlsch[1]->active = 1;
dlsch0 = dlsch[0];
dlsch1 = dlsch[1];
// dlsch1 = dlsch[1];
dlsch0_harq = dlsch0->harq_processes[dci_info_extarcted.harq_pid];
dlsch1_harq = dlsch1->harq_processes[dci_info_extarcted.harq_pid];
//dlsch1_harq = dlsch1->harq_processes[dci_info_extarcted.harq_pid];
// printf("before coherency dlsch[1]->pmi_alloc %d\n",dlsch[1]->pmi_alloc);
// printf("before coherency dlsch1->pmi_alloc %d\n",dlsch1->pmi_alloc);
// printf("before coherency dlsch1_harq->pmi_alloc %d\n",dlsch1_harq->pmi_alloc);
......@@ -6296,10 +6398,21 @@ int generate_ue_dlsch_params_from_dci(int frame,
ra_rnti,
p_rnti,
dlsch0_harq,
dlsch1_harq);
dlsch0_harq);//dlsch0_harq
if(status == 0)
{
printf("bad DCI 2 !!! \n");
LOG_I(PHY,"[DCI-format2] frame.subframe %d.%d bad dci infomation \n", frame, subframe);
return(-1);
}
sudas_LOG_PHY(debug_sudas_LOG_PHY,"/////////////////////////\n");
sudas_LOG_PHY(debug_sudas_LOG_PHY,"Frame %d Subframe %d\n",frame%1024,subframe);
sudas_LOG_PHY(debug_sudas_LOG_PHY,"Detect DCI format 2\n");
sudas_LOG_PHY(debug_sudas_LOG_PHY,"harq_pid %d NDI1 %d\n",dci_info_extarcted.harq_pid,dci_info_extarcted.ndi1);
#ifdef FHG_LOG
fflush(debug_sudas_LOG_PHY);
#endif
// dci is correct ==> update internal structure and prepare dl decoding
//LOG_I(PHY,"[DCI-format2] update internal structure and prepare dl decoding \n");
......@@ -6311,9 +6424,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
rnti,
subframe,
dlsch0_harq,
dlsch1_harq,
dlsch0_harq,// dlsch1_harq
dlsch0,
dlsch1);
dlsch0);//dlsch1
}
break;
......
......@@ -35,6 +35,8 @@
#include "UTIL/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h"
//SFN
#include "sudas_tm4.h"
#include "T.h"
......@@ -306,7 +308,8 @@ void generate_pucch1x(int32_t **txdataF,
{
uint32_t u,v,n;
uint32_t z[12*14],*zptr;
uint32_t z[12*14];
int16_t *zptr;
int16_t d0;
uint8_t ns,N_UL_symb,nsymb,n_oc,n_oc0,n_oc1;
uint8_t c = (frame_parms->Ncp==0) ? 3 : 2;
......@@ -342,7 +345,7 @@ void generate_pucch1x(int32_t **txdataF,
return;
}
zptr = z;
zptr = (int16_t *)z;
thres = (c*Ncs1_div_deltaPUCCH_Shift);
Nprime_div_deltaPUCCH_Shift = (n1_pucch < thres) ? Ncs1_div_deltaPUCCH_Shift : (12/deltaPUCCH_Shift);
Nprime = Nprime_div_deltaPUCCH_Shift * deltaPUCCH_Shift;
......@@ -473,38 +476,39 @@ void generate_pucch1x(int32_t **txdataF,
tmp_im = (int16_t)(((int32_t)alpha_re[alpha_ind] * ul_ref_sigs[u][v][0][1+(n<<1)] + (int32_t)alpha_im[alpha_ind] * ul_ref_sigs[u][v][0][n<<1])>>15);
// this is S(ns)*w_noc(m)*r_uv^alpha(n)
ref_re = (tmp_re*W_re - tmp_im*W_im)>>15;
ref_im = (tmp_re*W_im + tmp_im*W_re)>>15;
ref_re = (int16_t)(((int32_t)tmp_re*W_re - (int32_t)tmp_im*W_im)>>15);
ref_im = (int16_t)(((int32_t)tmp_re*W_im + (int32_t)tmp_im*W_re)>>15);
if ((l<2)||(l>=(N_UL_symb-2))) { //these are PUCCH data symbols
switch (fmt) {
case pucch_format1: //OOK 1-bit
((int16_t *)&zptr[n])[0] = ((int32_t)amp*ref_re)>>15;
((int16_t *)&zptr[n])[1] = ((int32_t)amp*ref_im)>>15;
zptr[n<<1] =(int16_t)(((int32_t)amp*ref_re));//amp is not fixed point
zptr[1+(n<<1)] =(int16_t)(((int32_t)amp*ref_im));
break;
case pucch_format1a: //BPSK 1-bit
d0 = (payload[0]&1)==0 ? amp : -amp;
((int16_t *)&zptr[n])[0] = ((int32_t)d0*ref_re)>>15;
((int16_t *)&zptr[n])[1] = ((int32_t)d0*ref_im)>>15;
zptr[n<<1] = (int16_t)(((int32_t)d0*ref_re));
zptr[1+(n<<1)] = (int16_t)(((int32_t)d0*ref_im));
// printf("d0 %d\n",d0);
break;
case pucch_format1b: //QPSK 2-bits (Table 5.4.1-1 from 36.211, pg. 18)
if (((payload[0]&1)==0) && ((payload[1]&1)==0)) {// 1
((int16_t *)&zptr[n])[0] = ((int32_t)amp*ref_re)>>15;
((int16_t *)&zptr[n])[1] = ((int32_t)amp*ref_im)>>15;
zptr[n<<1] = ((int32_t)amp*ref_re);
zptr[1+(n<<1)] = ((int32_t)amp*ref_im);
} else if (((payload[0]&1)==0) && ((payload[1]&1)==1)) { // -j
((int16_t *)&zptr[n])[0] = ((int32_t)amp*ref_im)>>15;
((int16_t *)&zptr[n])[1] = (-(int32_t)amp*ref_re)>>15;
zptr[n<<1] = ((int32_t)amp*ref_im);
zptr[1+(n<<1)] = (-(int32_t)amp*ref_re);
} else if (((payload[0]&1)==1) && ((payload[1]&1)==0)) { // j
((int16_t *)&zptr[n])[0] = (-(int32_t)amp*ref_im)>>15;
((int16_t *)&zptr[n])[1] = ((int32_t)amp*ref_re)>>15;
zptr[n<<1] = (-(int32_t)amp*ref_im);
zptr[1+(n<<1)]= ((int32_t)amp*ref_re);
} else { // -1
((int16_t *)&zptr[n])[0] = (-(int32_t)amp*ref_re)>>15;
((int16_t *)&zptr[n])[1] = (-(int32_t)amp*ref_im)>>15;
zptr[n<<1] = (-(int32_t)amp*ref_re);
zptr[1+(n<<1)] = (-(int32_t)amp*ref_im);
}
break;
......@@ -521,8 +525,8 @@ void generate_pucch1x(int32_t **txdataF,
} // switch fmt
} else { // These are PUCCH reference symbols
((int16_t *)&zptr[n])[0] = ((int32_t)amp*ref_re)>>15;
((int16_t *)&zptr[n])[1] = ((int32_t)amp*ref_im)>>15;
zptr[n<<1] = (int16_t)(((int32_t)amp*ref_re));//amp is not fixed point
zptr[1+(n<<1)] =(int16_t)(((int32_t)amp*ref_im));
// printf("ref\n");
}
......@@ -533,17 +537,28 @@ void generate_pucch1x(int32_t **txdataF,
alpha_ind = (alpha_ind + n_cs)%12;
} // n
zptr+=12;
zptr+=24;
} // l
nprime=nprime1;
n_oc =n_oc1;
} // ns
zptr = (int16_t *)z;
/* sudas_LOG_PHY(debug_sudas_LOG_PHY,"Allocat z[12*14] sequence matrix\n");
int n_sfn=0;
for (n_sfn=0;n_sfn<(12*14);n_sfn++)
{
sudas_LOG_PHY(debug_sudas_LOG_PHY," z[%d]_Re= %d z[%d]_Im= %d\n",n_sfn,zptr[n_sfn<<1],n_sfn,zptr[1+(n_sfn<<1)]);
}*/
rem = ((((12*Ncs1_div_deltaPUCCH_Shift)>>3)&7)>0) ? 1 : 0;
rem = (((deltaPUCCH_Shift*Ncs1_div_deltaPUCCH_Shift)&7)>0) ? 1 : 0;
m = (n1_pucch < thres) ? NRB2 : (((n1_pucch-thres)/(12*c/deltaPUCCH_Shift))+NRB2+((deltaPUCCH_Shift*Ncs1_div_deltaPUCCH_Shift)>>3)+rem);
sudas_LOG_PHY(debug_sudas_LOG_PHY,"Allocat PUCCH amp %d m %d nprime0 %d nprime1 %d n_oc0 %d n_oc1 %d \n",amp,m,nprime0,nprime1,n_oc0,n_oc1);
#ifdef FHG_LOG
fflush(debug_sudas_LOG_PHY);
#endif
#ifdef DEBUG_PUCCH_TX
printf("[PHY] PUCCH: m %d\n",m);
#endif
......
......@@ -1689,8 +1689,13 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
// compute CQI/RI resources
compute_cqi_ri_resources(ue, ue->ulsch[eNB_id], eNB_id, ue->ulsch[eNB_id]->rnti, P_RNTI, CBA_RNTI, cqi_status, ri_status);
if (ack_status_cw0 > 0) {
sudas_LOG_PHY(debug_sudas_LOG_PHY,"Generating PUSCH (frame_tx %d subframe_tx %d): o_ACK %d ack_status_cw0 %d\n",frame_tx,subframe_tx,ue->ulsch[eNB_id]->o_ACK[0],ack_status_cw0);
#ifdef FHG_LOG
fflush(debug_sudas_LOG_PHY);
#endif
if (ack_status_cw0 > 0) {
// check if we received a PDSCH at subframe_tx - 4
// ==> send ACK/NACK on PUSCH
if (ue->frame_parms.frame_type == FDD)
......@@ -2110,6 +2115,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
uint8_t nb_cw=0;
uint8_t cqi_status=0;
uint8_t ri_status=0;
uint8_t N_kbundled=0;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_PUCCH,VCD_FUNCTION_IN);
......@@ -2169,18 +2175,20 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
}
}
ack_status_cw0 = get_ack(&ue->frame_parms,
ack_status_cw0 = reset_ack(&ue->frame_parms,
ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->harq_ack,
subframe_tx,
proc->subframe_rx,
pucch_ack_payload,
&N_kbundled,
0);
ack_status_cw1 = get_ack(&ue->frame_parms,
ack_status_cw1 = reset_ack(&ue->frame_parms,
ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][1]->harq_ack,
subframe_tx,
proc->subframe_rx,
pucch_ack_payload,
&N_kbundled,
1);
nb_cw = ( (ack_status_cw0 != 0) ? 1:0) + ( (ack_status_cw1 != 0) ? 1:0);
......@@ -2229,6 +2237,12 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
// Generate PUCCH signal
ue->generate_ul_signal[eNB_id] = 1;
sudas_LOG_PHY(debug_sudas_LOG_PHY,"PUCCH Format:: %d SR %d ACK_status %d CQI_status %d RI_status %d \n",format, SR_payload,ack_status_cw0,cqi_status,ri_status);
#ifdef FHG_LOG
fflush(debug_sudas_LOG_PHY);
#endif
switch (format) {
case pucch_format1:
case pucch_format1a:
......@@ -2324,7 +2338,10 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
pucch_payload,
tx_amp,
subframe_tx);
sudas_LOG_PHY(debug_sudas_LOG_PHY,"PUCCH Format %d pucch_resource %d isShortenPucch %d \n",format, pucch_resource,isShortenPucch);
#ifdef FHG_LOG
fflush(debug_sudas_LOG_PHY);
#endif
} else {
#ifdef PHY_ABSTRACTION
LOG_D(PHY,"Calling generate_pucch_emul ... (ACK %d %d, SR %d)\n",pucch_ack_payload[0],pucch_ack_payload[1],SR_payload);
......@@ -2457,6 +2474,10 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui
}
if (ue->UE_mode[eNB_id] == PUSCH) {
sudas_LOG_PHY(debug_sudas_LOG_PHY,"****** start TX-Chain Check if PUCCH is active for AbsSubframe %d.%d ******\n", frame_tx, subframe_tx);
#ifdef FHG_LOG
fflush(debug_sudas_LOG_PHY);
#endif
// check if we need to use PUCCH 1a/1b
ue_pucch_procedures(ue,proc,eNB_id,abstraction_flag);
// check if we need to use SRS
......@@ -3983,6 +4004,17 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
pdsch==PDSCH?1:0,
dlsch0->harq_processes[harq_pid]->TBS>256?1:0);
if (pdsch==PDSCH) {
sudas_LOG_PHY(debug_sudas_LOG_PHY,"ret %d HARQinfo status %d round %d harq_pid %d ack %d \n", ret,dlsch0->harq_processes[harq_pid]->status,
dlsch0->harq_processes[harq_pid]->round,
dlsch0->harq_ack[subframe_rx].harq_id,
dlsch0->harq_ack[subframe_rx].ack);
#ifdef FHG_LOG
fflush(debug_sudas_LOG_PHY);
#endif
}
#if UE_TIMING_TRACE
stop_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
#if DISABLE_LOG_X
......@@ -5328,8 +5360,6 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
ue_pbch_procedures(eNB_id,ue,proc,abstraction_flag);
}
// do procedures for C-RNTI
LOG_D(PHY," ------ --> PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------ \n", frame_rx%1024, subframe_rx);
if (ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active == 1) {
......@@ -5351,6 +5381,10 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
#if UE_TIMING_TRACE
stop_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
start_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
#endif
sudas_LOG_PHY(debug_sudas_LOG_PHY," ------ --> PDSCH ue_dlsch_procedures AbsSubframe %d.%d ------ \n", frame_rx%1024, subframe_rx);
#ifdef FHG_LOG
fflush(debug_sudas_LOG_PHY);
#endif
ue_dlsch_procedures(ue,
proc,
......
......@@ -1395,9 +1395,9 @@ int main( int argc, char **argv ) {
debug_sudas_LOG_PHY = fopen("debug_sudas_LOG_PHY.txt", "w");
debug_sudas_LOG_MAC = fopen("debug_sudas_LOG_MAC.txt", "w");
sudas_LOG_MAC(debug_sudas_LOG_MAC,"main();\n");
sudas_LOG_PHY(debug_sudas_LOG_PHY,"main();\n");
#ifdef FHG_LOG
fflush(debug_sudas_LOG_MAC);
fflush(debug_sudas_LOG_PHY);
#endif
......
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