From 8c8090b058627e46a09142eb46ff0475c02202e6 Mon Sep 17 00:00:00 2001 From: gabrielC <couturier.gabriel@gmail.com> Date: Mon, 17 Jul 2017 10:40:38 +0200 Subject: [PATCH] PDCCH optimisation : Stop reading DCI0 when found --- openair1/PHY/LTE_TRANSPORT/dci.c | 31 +++++++++++++++++++++---------- targets/RT/USER/lte-softmodem.c | 2 +- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci.c b/openair1/PHY/LTE_TRANSPORT/dci.c index 7e74b28031..fd4674ca21 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci.c +++ b/openair1/PHY/LTE_TRANSPORT/dci.c @@ -3071,10 +3071,7 @@ void dci_decoding_procedure0(LTE_UE_PDCCH **pdcch_vars, dump_dci(frame_parms,&dci_alloc[*dci_cnt-1]); #endif - if(agregationLevel != 0xFF) - { - return; - } + return; } // rnti match } // CCEmap_cand == 0 if ( agregationLevel != 0xFF && @@ -3632,7 +3629,10 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ((format0_found==1)&&(format_c_found==1))) return(dci_cnt); - // printf("[DCI search] Format 0 aggregation 4\n"); + //printf("[DCI search] Format 0 aggregation 1 dci_cnt %d\n",dci_cnt); + + if (dci_cnt == 0) + { // Now check UE_SPEC format 0 search spaces at aggregation 4 dci_decoding_procedure0(pdcch_vars,0,mode, subframe, @@ -3665,7 +3665,11 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ((format0_found==1)&&(format_c_found==1))) return(dci_cnt); - // printf("[DCI search] Format 0 aggregation 2\n"); + //printf("[DCI search] Format 0 aggregation 2 dci_cnt %d\n",dci_cnt); + } + + if (dci_cnt == 0) + { // Now check UE_SPEC format 0 search spaces at aggregation 2 dci_decoding_procedure0(pdcch_vars,0,mode, subframe, @@ -3694,7 +3698,11 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ((format0_found==1)&&(format_c_found==1))) return(dci_cnt); - // printf("[DCI search] Format 0 aggregation 4\n"); + //printf("[DCI search] Format 0 aggregation 4 dci_cnt %d\n",dci_cnt); + } + + if (dci_cnt == 0) + { // Now check UE_SPEC format 0 search spaces at aggregation 1 dci_decoding_procedure0(pdcch_vars,0,mode, subframe, @@ -3723,9 +3731,9 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, ((format0_found==1)&&(format_c_found==1))) return(dci_cnt); + //printf("[DCI search] Format 0 aggregation 8 dci_cnt %d\n",dci_cnt); - - + } // These are for CRNTI based on transmission mode if ((tmode < 3) || (tmode == 7)) { // Now check UE_SPEC format 1 search spaces at aggregation 1 @@ -3751,6 +3759,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, &CCEmap0, &CCEmap1, &CCEmap2); + //printf("[DCI search] Format 1 aggregation 1 dci_cnt %d\n",dci_cnt); if ((CCEmap0==0xffff) || (format_c_found==1)) @@ -3782,7 +3791,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, &CCEmap0, &CCEmap1, &CCEmap2); - + //printf("[DCI search] Format 1 aggregation 2 dci_cnt %d\n",dci_cnt); if ((CCEmap0==0xffff)|| (format_c_found==1)) @@ -3814,6 +3823,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, &CCEmap0, &CCEmap1, &CCEmap2); + //printf("[DCI search] Format 1 aggregation 4 dci_cnt %d\n",dci_cnt); if ((CCEmap0==0xffff)|| ((format0_found==1)&&(format_c_found==1))) @@ -3846,6 +3856,7 @@ uint16_t dci_decoding_procedure(PHY_VARS_UE *ue, &CCEmap0, &CCEmap1, &CCEmap2); + //printf("[DCI search] Format 1 aggregation 8 dci_cnt %d\n",dci_cnt); if ((CCEmap0==0xffff)|| ((format0_found==1)&&(format_c_found==1))) diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index 5d4881936a..bdc06fb603 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -333,7 +333,7 @@ void help (void) { printf(" --usim-test use XOR autentication algo in case of test usim mode\n"); printf(" --single-thread-disable. Disables single-thread mode in lte-softmodem\n"); printf(" --AgregationLevel Choose the agregation level used by tghe eNB for the OAI use 1, it will save some time of processing the pdcch\n"); - printf(" --DCIformat choose the DCI format (for the moment only valid for SISO DCI format 1\n"); + printf(" --DCIformat choose the DCI format, be careful when using this option(for the moment only valid for SISO DCI format 1)\n"); printf(" -A Set timing_advance\n"); printf(" -C Set the downlink frequency for all component carriers\n"); printf(" -d Enable soft scope and L1 and L2 stats (Xforms)\n"); -- 2.26.2