Merge remote-tracking branch 'origin/hotfix-RU-dft-initialization' into develop_integration_w48
This commit is contained in:
+18
-1
@@ -436,7 +436,7 @@ class SSHConnection():
|
|||||||
self.copyout(self.eNBIPAddress, self.eNBUserName, self.eNBPassword, pcap_log_file, self.eNBSourceCodePath + '/cmake_targets/.')
|
self.copyout(self.eNBIPAddress, self.eNBUserName, self.eNBPassword, pcap_log_file, self.eNBSourceCodePath + '/cmake_targets/.')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
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:
|
if rruCheck:
|
||||||
result = re.search('wait RUs', str(self.ssh.before))
|
result = re.search('wait RUs', str(self.ssh.before))
|
||||||
else:
|
else:
|
||||||
@@ -1573,6 +1573,8 @@ class SSHConnection():
|
|||||||
rrcReestablishRequest = 0
|
rrcReestablishRequest = 0
|
||||||
rrcReestablishComplete = 0
|
rrcReestablishComplete = 0
|
||||||
rrcReestablishReject = 0
|
rrcReestablishReject = 0
|
||||||
|
rlcDiscardBuffer = 0
|
||||||
|
rachCanceledProcedure = 0
|
||||||
uciStatMsgCount = 0
|
uciStatMsgCount = 0
|
||||||
pdcpFailure = 0
|
pdcpFailure = 0
|
||||||
ulschFailure = 0
|
ulschFailure = 0
|
||||||
@@ -1625,6 +1627,12 @@ class SSHConnection():
|
|||||||
result = re.search('ULSCH in error in round', str(line))
|
result = re.search('ULSCH in error in round', str(line))
|
||||||
if result is not None:
|
if result is not None:
|
||||||
ulschFailure += 1
|
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()
|
enb_log_file.close()
|
||||||
self.htmleNBFailureMsg = ''
|
self.htmleNBFailureMsg = ''
|
||||||
if uciStatMsgCount > 0:
|
if uciStatMsgCount > 0:
|
||||||
@@ -1667,6 +1675,10 @@ class SSHConnection():
|
|||||||
rrcMsg = ' -- ' + str(rrcReestablishReject) + ' were rejected'
|
rrcMsg = ' -- ' + str(rrcReestablishReject) + ' were rejected'
|
||||||
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
|
logging.debug('\u001B[1;30;43m ' + rrcMsg + ' \u001B[0m')
|
||||||
self.htmleNBFailureMsg += rrcMsg + '\n'
|
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:
|
if foundSegFault:
|
||||||
logging.debug('\u001B[1;37;41m eNB ended with a Segmentation Fault! \u001B[0m')
|
logging.debug('\u001B[1;37;41m eNB ended with a Segmentation Fault! \u001B[0m')
|
||||||
return ENB_PROCESS_SEG_FAULT
|
return ENB_PROCESS_SEG_FAULT
|
||||||
@@ -1677,6 +1689,11 @@ class SSHConnection():
|
|||||||
if foundRealTimeIssue:
|
if foundRealTimeIssue:
|
||||||
logging.debug('\u001B[1;37;41m eNB faced real time issues! \u001B[0m')
|
logging.debug('\u001B[1;37;41m eNB faced real time issues! \u001B[0m')
|
||||||
return ENB_PROCESS_REALTIME_ISSUE
|
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
|
return 0
|
||||||
|
|
||||||
def TerminateeNB(self):
|
def TerminateeNB(self):
|
||||||
|
|||||||
@@ -21,17 +21,15 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
<testCaseList>
|
<testCaseList>
|
||||||
<!-- Only 5MHz is tested since neither 10MHz nor 20MHz work in this configuration -->
|
<!-- Only 5MHz/10MHz is tested since 20MHz does not work as in monolithic -->
|
||||||
<!-- Also no UL iperf in 5MHz (040642) -->
|
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
010101
|
010101
|
||||||
050101 060101 070101 040101
|
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
|
050201 060201 070201
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
<!--
|
<!--
|
||||||
030104 030105 040301 040501 040602 040642 040401 040201 030201 030202
|
|
||||||
030114 030115 040301 040511 040612 040652 040401 040201 030201 030202
|
|
||||||
030124 030125 040301 040521 040622 040662 040401 040201 030201 030202
|
030124 030125 040301 040521 040622 040662 040401 040201 030201 030202
|
||||||
-->
|
-->
|
||||||
<TestCaseExclusionList>
|
<TestCaseExclusionList>
|
||||||
|
|||||||
@@ -21,17 +21,14 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
<testCaseList>
|
<testCaseList>
|
||||||
<!-- Only 5MHz is tested since neither 10MHz nor 20MHz work in this configuration -->
|
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
010101
|
010101
|
||||||
050101 060101 070101 040101
|
050101 060101 070101 040101
|
||||||
030101 030102 040301 040501 040604 040642 040401 040201 030201 030202
|
030101 030102 040301 040501 040604 040642 040401 040201 030201 030202
|
||||||
050201 060201 070201
|
|
||||||
</TestCaseRequestedList>
|
|
||||||
<!--
|
|
||||||
030111 030112 040301 040511 040614 040652 040401 040201 030201 030202
|
030111 030112 040301 040511 040614 040652 040401 040201 030201 030202
|
||||||
030121 030122 040301 040521 040624 040662 040401 040201 030201 030202
|
030121 030122 040301 040521 040624 040662 040401 040201 030201 030202
|
||||||
-->
|
050201 060201 070201
|
||||||
|
</TestCaseRequestedList>
|
||||||
<TestCaseExclusionList>
|
<TestCaseExclusionList>
|
||||||
</TestCaseExclusionList>
|
</TestCaseExclusionList>
|
||||||
|
|
||||||
|
|||||||
@@ -59,14 +59,11 @@ void generate_qpsk_table(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_7_5KHz(void);
|
|
||||||
void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) {
|
void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) {
|
||||||
ccodelte_init();
|
ccodelte_init();
|
||||||
ccodelte_init_inv();
|
ccodelte_init_inv();
|
||||||
init_dfts();
|
|
||||||
phy_generate_viterbi_tables_lte();
|
phy_generate_viterbi_tables_lte();
|
||||||
load_codinglib();
|
load_codinglib();
|
||||||
lte_sync_time_init(frame_parms);
|
|
||||||
generate_ul_ref_sigs();
|
generate_ul_ref_sigs();
|
||||||
generate_ul_ref_sigs_rx();
|
generate_ul_ref_sigs_rx();
|
||||||
generate_64qam_table();
|
generate_64qam_table();
|
||||||
@@ -76,13 +73,11 @@ void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) {
|
|||||||
init_unscrambling_lut();
|
init_unscrambling_lut();
|
||||||
init_scrambling_lut();
|
init_scrambling_lut();
|
||||||
//set_taus_seed(1328);
|
//set_taus_seed(1328);
|
||||||
// init_7_5KHz();
|
|
||||||
init_sss();
|
init_sss();
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_lte_top(void) {
|
void free_lte_top(void) {
|
||||||
free_codinglib();
|
free_codinglib();
|
||||||
lte_sync_time_free();
|
|
||||||
/* free_ul_ref_sigs() is called in phy_free_lte_eNB() */
|
/* free_ul_ref_sigs() is called in phy_free_lte_eNB() */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
if (ru->function != NGFI_RRU_IF5) { // we need to do RX/TX RU processing
|
||||||
|
init_dfts();
|
||||||
init_7_5KHz();
|
init_7_5KHz();
|
||||||
LOG_I(PHY,"nb_tx %d\n",ru->nb_tx);
|
LOG_I(PHY,"nb_tx %d\n",ru->nb_tx);
|
||||||
ru->common.rxdata_7_5kHz = (int32_t**)malloc16(ru->nb_rx*sizeof(int32_t*) );
|
ru->common.rxdata_7_5kHz = (int32_t**)malloc16(ru->nb_rx*sizeof(int32_t*) );
|
||||||
|
|||||||
@@ -661,8 +661,9 @@ int init_lte_ue_signal(PHY_VARS_UE *ue,
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
init_dfts();
|
||||||
init_frame_parms(&ue->frame_parms,1);
|
init_frame_parms(&ue->frame_parms,1);
|
||||||
|
lte_sync_time_init(&ue->frame_parms);
|
||||||
init_lte_top(&ue->frame_parms);
|
init_lte_top(&ue->frame_parms);
|
||||||
init_7_5KHz();
|
init_7_5KHz();
|
||||||
init_ul_hopping(&ue->frame_parms);
|
init_ul_hopping(&ue->frame_parms);
|
||||||
|
|||||||
@@ -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];
|
eNB_MAC_INST *eNB = RC.mac[module_idP];
|
||||||
COMMON_channels_t *cc = &eNB->common_channels[CC_idP];
|
COMMON_channels_t *cc = &eNB->common_channels[CC_idP];
|
||||||
|
|
||||||
struct LTE_PhysicalConfigDedicated *physicalConfigDedicated =
|
LTE_PhysicalConfigDedicated_t *physicalConfigDedicated = eNB->UE_list.physicalConfigDedicated[CC_idP][UE_idP];
|
||||||
eNB->UE_list.physicalConfigDedicated[CC_idP][UE_idP];
|
|
||||||
|
|
||||||
if (physicalConfigDedicated == NULL) { // RRCConnectionSetup not received by UE yet
|
if (physicalConfigDedicated == NULL) { // RRCConnectionSetup not received by UE yet
|
||||||
AssertFatal(cc->p_eNB <= 2, "p_eNB is %d, should be <2\n",
|
AssertFatal(cc->p_eNB <= 2, "p_eNB is %d, should be <2\n",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||||
* contributor license agreements. See the NOTICE file distributed with
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
* this work for additional information regarding copyright ownership.
|
* 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*/
|
/*! \brief UE list used by eNB to order UEs/CC for scheduling*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/// Dedicated information for UEs
|
/// Dedicated information for UEs
|
||||||
struct PhysicalConfigDedicated
|
LTE_PhysicalConfigDedicated_t *physicalConfigDedicated[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
||||||
*physicalConfigDedicated[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
|
||||||
/// DLSCH pdu
|
/// DLSCH pdu
|
||||||
DLSCH_PDU DLSCH_pdu[NFAPI_CC_MAX][2][MAX_MOBILES_PER_ENB];
|
DLSCH_PDU DLSCH_pdu[NFAPI_CC_MAX][2][MAX_MOBILES_PER_ENB];
|
||||||
/// DCI template and MAC connection parameters for UEs
|
/// DCI template and MAC connection parameters for UEs
|
||||||
|
|||||||
Reference in New Issue
Block a user