From fb5201ba97646486b5069b4b3de49a235003b9fc Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Mon, 26 Nov 2018 21:02:41 +0100 Subject: [PATCH 1/4] initialization of dfts for RU. moved init_dfts out from lte_init_top into lte_init_RU() and lte_init_ue_signal() --- openair1/PHY/INIT/init_top.c | 3 --- openair1/PHY/INIT/lte_init_ru.c | 1 + openair1/PHY/INIT/lte_init_ue.c | 1 + openair2/LAYER2/MAC/eNB_scheduler_primitives.c | 3 +-- openair2/LAYER2/MAC/mac.h | 5 ++--- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/openair1/PHY/INIT/init_top.c b/openair1/PHY/INIT/init_top.c index 1bb36bd2e5..5f1b764335 100644 --- a/openair1/PHY/INIT/init_top.c +++ b/openair1/PHY/INIT/init_top.c @@ -59,11 +59,9 @@ void generate_qpsk_table(void) { } } -void init_7_5KHz(void); void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) { ccodelte_init(); ccodelte_init_inv(); - init_dfts(); phy_generate_viterbi_tables_lte(); load_codinglib(); lte_sync_time_init(frame_parms); @@ -76,7 +74,6 @@ void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) { init_unscrambling_lut(); init_scrambling_lut(); //set_taus_seed(1328); -// init_7_5KHz(); init_sss(); } diff --git a/openair1/PHY/INIT/lte_init_ru.c b/openair1/PHY/INIT/lte_init_ru.c index e2f6259447..c4cd3600c0 100644 --- a/openair1/PHY/INIT/lte_init_ru.c +++ b/openair1/PHY/INIT/lte_init_ru.c @@ -67,6 +67,7 @@ int phy_init_RU(RU_t *ru) { } if (ru->function != NGFI_RRU_IF5) { // we need to do RX/TX RU processing + init_dfts(); init_7_5KHz(); LOG_I(PHY,"nb_tx %d\n",ru->nb_tx); ru->common.rxdata_7_5kHz = (int32_t**)malloc16(ru->nb_rx*sizeof(int32_t*) ); diff --git a/openair1/PHY/INIT/lte_init_ue.c b/openair1/PHY/INIT/lte_init_ue.c index 31c37e4669..838590079b 100644 --- a/openair1/PHY/INIT/lte_init_ue.c +++ b/openair1/PHY/INIT/lte_init_ue.c @@ -665,6 +665,7 @@ int init_lte_ue_signal(PHY_VARS_UE *ue, init_frame_parms(&ue->frame_parms,1); init_lte_top(&ue->frame_parms); init_7_5KHz(); + init_dfts(); init_ul_hopping(&ue->frame_parms); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index b43c34fe14..06e7a7f4b2 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -2272,8 +2272,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP) eNB_MAC_INST *eNB = RC.mac[module_idP]; COMMON_channels_t *cc = &eNB->common_channels[CC_idP]; - struct LTE_PhysicalConfigDedicated *physicalConfigDedicated = - eNB->UE_list.physicalConfigDedicated[CC_idP][UE_idP]; + LTE_PhysicalConfigDedicated_t *physicalConfigDedicated = eNB->UE_list.physicalConfigDedicated[CC_idP][UE_idP]; if (physicalConfigDedicated == NULL) { // RRCConnectionSetup not received by UE yet AssertFatal(cc->p_eNB <= 2, "p_eNB is %d, should be <2\n", diff --git a/openair2/LAYER2/MAC/mac.h b/openair2/LAYER2/MAC/mac.h index 0625a327eb..7785abd16f 100644 --- a/openair2/LAYER2/MAC/mac.h +++ b/openair2/LAYER2/MAC/mac.h @@ -1,4 +1,4 @@ -/* + /* * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -1070,8 +1070,7 @@ typedef struct { /*! \brief UE list used by eNB to order UEs/CC for scheduling*/ typedef struct { /// Dedicated information for UEs - struct PhysicalConfigDedicated - *physicalConfigDedicated[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; + LTE_PhysicalConfigDedicated_t *physicalConfigDedicated[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; /// DLSCH pdu DLSCH_PDU DLSCH_pdu[NFAPI_CC_MAX][2][MAX_MOBILES_PER_ENB]; /// DCI template and MAC connection parameters for UEs From 4d934dacfbcfb2ca753d876f05e15937e6586964 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Tue, 27 Nov 2018 11:26:20 +0100 Subject: [PATCH 2/4] initializations of dfts for UE (bad order in call to init_dfts from lte_init_ue_signal() ) --- openair1/PHY/INIT/init_top.c | 2 -- openair1/PHY/INIT/lte_init_ue.c | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/openair1/PHY/INIT/init_top.c b/openair1/PHY/INIT/init_top.c index 5f1b764335..698f34833d 100644 --- a/openair1/PHY/INIT/init_top.c +++ b/openair1/PHY/INIT/init_top.c @@ -64,7 +64,6 @@ void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) { ccodelte_init_inv(); phy_generate_viterbi_tables_lte(); load_codinglib(); - lte_sync_time_init(frame_parms); generate_ul_ref_sigs(); generate_ul_ref_sigs_rx(); generate_64qam_table(); @@ -79,7 +78,6 @@ void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) { void free_lte_top(void) { free_codinglib(); - lte_sync_time_free(); /* free_ul_ref_sigs() is called in phy_free_lte_eNB() */ } diff --git a/openair1/PHY/INIT/lte_init_ue.c b/openair1/PHY/INIT/lte_init_ue.c index 838590079b..2edbd611c2 100644 --- a/openair1/PHY/INIT/lte_init_ue.c +++ b/openair1/PHY/INIT/lte_init_ue.c @@ -661,11 +661,11 @@ int init_lte_ue_signal(PHY_VARS_UE *ue, - + ini_dfts(); init_frame_parms(&ue->frame_parms,1); + lte_sync_time_init(frame_parms); init_lte_top(&ue->frame_parms); init_7_5KHz(); - init_dfts(); init_ul_hopping(&ue->frame_parms); From c7e611ead147161490f5f78db51c32a15de7902a Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Tue, 27 Nov 2018 12:26:51 +0100 Subject: [PATCH 3/4] compilation ok. --- openair1/PHY/INIT/lte_init_ue.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openair1/PHY/INIT/lte_init_ue.c b/openair1/PHY/INIT/lte_init_ue.c index 2edbd611c2..f82fd4a1ba 100644 --- a/openair1/PHY/INIT/lte_init_ue.c +++ b/openair1/PHY/INIT/lte_init_ue.c @@ -661,9 +661,9 @@ int init_lte_ue_signal(PHY_VARS_UE *ue, - ini_dfts(); + init_dfts(); init_frame_parms(&ue->frame_parms,1); - lte_sync_time_init(frame_parms); + lte_sync_time_init(&ue->frame_parms); init_lte_top(&ue->frame_parms); init_7_5KHz(); init_ul_hopping(&ue->frame_parms); From 15314aebff0a8253a618a8bdcb74643b1684529d Mon Sep 17 00:00:00 2001 From: Raphael Defosseux Date: Tue, 27 Nov 2018 15:45:36 +0100 Subject: [PATCH 4/4] CI: after fix, adding 10/20MHz testing to IF4p5 scenarios Signed-off-by: Raphael Defosseux --- ci-scripts/main.py | 19 ++++++++++++++++++- ci-scripts/xml_files/if4p5_usrp210_band40.xml | 8 +++----- ci-scripts/xml_files/if4p5_usrp210_band7.xml | 7 ++----- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/ci-scripts/main.py b/ci-scripts/main.py index f617d6f40a..5ce0dc5af5 100644 --- a/ci-scripts/main.py +++ b/ci-scripts/main.py @@ -396,7 +396,7 @@ class SSHConnection(): self.close() sys.exit(1) else: - self.command('stdbuf -o0 cat enb_' + SSH.testCase_id + '.log | egrep --color=never -i "wait|sync"', '\$', 4) + self.command('stdbuf -o0 cat enb_' + SSH.testCase_id + '.log | egrep --text --color=never -i "wait|sync"', '\$', 4) if rruCheck: result = re.search('wait RUs', str(self.ssh.before)) else: @@ -1406,6 +1406,8 @@ class SSHConnection(): rrcReestablishRequest = 0 rrcReestablishComplete = 0 rrcReestablishReject = 0 + rlcDiscardBuffer = 0 + rachCanceledProcedure = 0 uciStatMsgCount = 0 pdcpFailure = 0 ulschFailure = 0 @@ -1458,6 +1460,12 @@ class SSHConnection(): result = re.search('ULSCH in error in round', str(line)) if result is not None: ulschFailure += 1 + result = re.search('BAD all_segments_received', str(line)) + if result is not None: + rlcDiscardBuffer += 1 + result = re.search('Canceled RA procedure for UE rnti', str(line)) + if result is not None: + rachCanceledProcedure += 1 enb_log_file.close() self.htmleNBFailureMsg = '' if uciStatMsgCount > 0: @@ -1500,6 +1508,10 @@ class SSHConnection(): rrcMsg = ' -- ' + str(rrcReestablishReject) + ' were rejected' logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m') self.htmleNBFailureMsg += rrcMsg + '\n' + if rachCanceledProcedure > 0: + rachMsg = 'eNB cancelled ' + str(rachCanceledProcedure) + ' RA procedure(s)' + logging.debug('\u001B[1;30;43m ' + rachMsg + ' \u001B[0m') + self.htmleNBFailureMsg += rachMsg + '\n' if foundSegFault: logging.debug('\u001B[1;37;41m eNB ended with a Segmentation Fault! \u001B[0m') return ENB_PROCESS_SEG_FAULT @@ -1510,6 +1522,11 @@ class SSHConnection(): if foundRealTimeIssue: logging.debug('\u001B[1;37;41m eNB faced real time issues! \u001B[0m') return ENB_PROCESS_REALTIME_ISSUE + if rlcDiscardBuffer > 0: + rlcMsg = 'eNB RLC discarded ' + str(rlcDiscardBuffer) + ' buffer(s)' + logging.debug('\u001B[1;37;41m ' + rlcMsg + ' \u001B[0m') + self.htmleNBFailureMsg += rlcMsg + '\n' + return ENB_PROCESS_REALTIME_ISSUE return 0 def TerminateeNB(self): diff --git a/ci-scripts/xml_files/if4p5_usrp210_band40.xml b/ci-scripts/xml_files/if4p5_usrp210_band40.xml index b7877009fd..ac5d9ef5ba 100644 --- a/ci-scripts/xml_files/if4p5_usrp210_band40.xml +++ b/ci-scripts/xml_files/if4p5_usrp210_band40.xml @@ -21,17 +21,15 @@ --> - - + 010101 050101 060101 070101 040101 - 030104 030105 040301 040501 040602 040401 040201 030201 030202 + 030104 030105 040301 040501 040602 040642 040401 040201 030201 030202 + 030114 030115 040301 040511 040612 040652 040401 040201 030201 030202 050201 060201 070201 diff --git a/ci-scripts/xml_files/if4p5_usrp210_band7.xml b/ci-scripts/xml_files/if4p5_usrp210_band7.xml index 9ca3a113bf..a582754229 100644 --- a/ci-scripts/xml_files/if4p5_usrp210_band7.xml +++ b/ci-scripts/xml_files/if4p5_usrp210_band7.xml @@ -21,17 +21,14 @@ --> - 010101 050101 060101 070101 040101 030101 030102 040301 040501 040604 040642 040401 040201 030201 030202 - 050201 060201 070201 - - + 050201 060201 070201 +