From dd44c82760a750b8815fa7f84b85068af985acd9 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 13 Oct 2017 11:52:34 +0200 Subject: [PATCH 1/4] bugfix: fix assert --- openair1/SCHED/fapi_l1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index a5b0179c7d..11cd85d57d 100644 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -587,7 +587,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) ul_frame = pdcch_alloc2ul_frame(fp,frame,subframe); AssertFatal(proc->subframe_tx == subframe, "Current subframe %d != NFAPI subframe %d\n",proc->subframe_tx,subframe); - AssertFatal(proc->subframe_tx == subframe, "Current frame %d != NFAPI frame %d\n",proc->frame_tx,frame); + AssertFatal(proc->frame_tx == frame, "Current frame %d != NFAPI frame %d\n",proc->frame_tx,frame); uint8_t number_dl_pdu = DL_req->dl_config_request_body.number_pdu; uint8_t number_hi_dci0_pdu = HI_DCI0_req->hi_dci0_request_body.number_of_dci+HI_DCI0_req->hi_dci0_request_body.number_of_hi; From cf208d4192ac0b2d076fd0db72586c7b7d482ccf Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 13 Oct 2017 12:11:08 +0200 Subject: [PATCH 2/4] bugfix: frame is bigger than 8 bits --- openair1/PHY/LTE_TRANSPORT/phich.c | 9 +++++---- openair1/PHY/LTE_TRANSPORT/proto.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/phich.c b/openair1/PHY/LTE_TRANSPORT/phich.c index 897034c072..0f6270956c 100644 --- a/openair1/PHY/LTE_TRANSPORT/phich.c +++ b/openair1/PHY/LTE_TRANSPORT/phich.c @@ -151,18 +151,19 @@ unsigned char subframe2_ul_harq(LTE_DL_FRAME_PARMS *frame_parms,unsigned char su return(0); } -uint8_t phich_frame2_pusch_frame(LTE_DL_FRAME_PARMS *frame_parms,frame_t frame,uint8_t subframe) +int phich_frame2_pusch_frame(LTE_DL_FRAME_PARMS *frame_parms, int frame, int subframe) { - uint8_t pusch_frame = 255; + int pusch_frame; + if (frame_parms->frame_type == FDD) { - pusch_frame = ((subframe<4) ? (frame - 1) : frame); + pusch_frame = subframe<4 ? frame + 1024 - 1 : frame; } else { // Note this is not true, but it doesn't matter, the frame number is irrelevant for TDD! pusch_frame = (frame); } LOG_D(PHY, "frame %d subframe %d: PUSCH frame = %d\n", frame, subframe, pusch_frame); - return pusch_frame; + return pusch_frame % 1024; } uint8_t phich_subframe2_pusch_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t subframe) diff --git a/openair1/PHY/LTE_TRANSPORT/proto.h b/openair1/PHY/LTE_TRANSPORT/proto.h index d09e8dc392..441cd5539a 100644 --- a/openair1/PHY/LTE_TRANSPORT/proto.h +++ b/openair1/PHY/LTE_TRANSPORT/proto.h @@ -1950,7 +1950,7 @@ uint8_t phich_subframe2_pusch_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t s @param subframe Subframe of received/transmitted PHICH @returns frame of PUSCH transmission */ -uint8_t phich_frame2_pusch_frame(LTE_DL_FRAME_PARMS *frame_parms,frame_t frame,uint8_t subframe); +int phich_frame2_pusch_frame(LTE_DL_FRAME_PARMS *frame_parms, int frame, int subframe); void print_CQI(void *o,UCI_format_t uci_format,uint8_t eNB_id,int N_RB_DL); From 00f45ec9f5b765d7379f6564931b77af29047809 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 13 Oct 2017 12:19:12 +0200 Subject: [PATCH 3/4] bugfix: modulo from frame --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index a4dce4d1cc..8a3047b5b2 100644 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -6394,12 +6394,11 @@ uint8_t ul_subframe2pdcch_alloc_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t return(9); else return((n+6)%10); - } uint32_t pdcch_alloc2ul_frame(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame, uint8_t n) { - uint32_t ul_frame = 255; + uint32_t ul_frame; if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 1) && @@ -6417,8 +6416,7 @@ uint32_t pdcch_alloc2ul_frame(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame, ui ul_frame = (frame+(n>=6 ? 1 : 0)); LOG_D(PHY, "frame %d subframe %d: PUSCH frame = %d\n", frame, n, ul_frame); - return ul_frame; - + return ul_frame % 1024; } int32_t pmi_convert_rank1_from_rank2(uint16_t pmi_alloc, int tpmi, int nb_rb) From 747372685a39a53b4a288dbf594c9fd7368da1d7 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 13 Oct 2017 13:22:15 +0200 Subject: [PATCH 4/4] bugfix: clear memory --- openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c index 65423aa9b6..17748af0b9 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c @@ -267,33 +267,28 @@ int32_t temp_in_ifft_0[2048*2] __attribute__((aligned(32))); #endif } - - - // Convert to time domain for visualization + memset(temp_in_ifft_0,0,frame_parms->ofdm_symbol_size*sizeof(int32_t)); for(i=0; iN_RB_DL) { case 6: - idft128((int16_t*) temp_in_ifft_0, (int16_t*) ul_ch_estimates_time[aa], 1); break; case 25: - idft512((int16_t*) temp_in_ifft_0, (int16_t*) ul_ch_estimates_time[aa], 1); break; case 50: - idft1024((int16_t*) temp_in_ifft_0, (int16_t*) ul_ch_estimates_time[aa], 1); break; case 100: - idft2048((int16_t*) temp_in_ifft_0, (int16_t*) ul_ch_estimates_time[aa], 1);