diff --git a/ci-scripts/ran.py b/ci-scripts/ran.py
index d5906e9567..6425d55c8f 100644
--- a/ci-scripts/ran.py
+++ b/ci-scripts/ran.py
@@ -133,7 +133,7 @@ class RANManagement():
self.air_interface[self.eNB_instance] = 'nr-softmodem'
else:
self.air_interface[self.eNB_instance] = 'lte-softmodem'
-
+
# Worakround for some servers, we need to erase completely the workspace
if self.Build_eNB_forced_workspace_cleanup:
mySSH.command('echo ' + lPassWord + ' | sudo -S rm -Rf ' + lSourcePath, '\$', 15)
@@ -427,7 +427,7 @@ class RANManagement():
# Launch eNB with the modified config file
mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd cmake_targets', '\$', 5)
- if self.air_interface == 'nr':
+ if self.air_interface[self.eNB_instance] == 'nr-softmodem':
mySSH.command('if [ -e rbconfig.raw ]; then echo ' + lPassWord + ' | sudo -S rm rbconfig.raw; fi', '\$', 5)
mySSH.command('if [ -e reconfig.raw ]; then echo ' + lPassWord + ' | sudo -S rm reconfig.raw; fi', '\$', 5)
# NOTE: WE SHALL do a check if the executable is present (in case build went wrong)
@@ -705,6 +705,11 @@ class RANManagement():
systemTime = ''
maxPhyMemUsage = ''
nbContextSwitches = ''
+ #NSA FR1 check
+ NSA_RAPROC_PUSCH_check = 0
+ #dlsch and ulsch statistics (dictionary)
+ dlsch_ulsch_stats = {}
+
for line in enb_log_file.readlines():
# Runtime statistics
result = re.search('Run time:' ,str(line))
@@ -855,12 +860,27 @@ class RANManagement():
result = re.search('MBMS USER-PLANE.*Requesting.*bytes from RLC', str(line))
if result is not None:
mbmsRequestMsg += 1
+ #FR1 NSA test : add new markers to make sure gNB is used
+ result = re.search('\[gNB [0-9]+\]\[RAPROC\] PUSCH with TC_RNTI [0-9a-fA-F]+ received correctly, adding UE MAC Context UE_id [0-9]+\/RNTI [0-9a-fA-F]+', str(line))
+ if result is not None:
+ NSA_RAPROC_PUSCH_check = 1
+ #dlsch and ulsch statistics
+ #keys below are the markers we are loooking for, loop over this keys list
+ #everytime these markers are found in the log file, the previous ones are overwritten in the dict
+ #eventually we record and print only the last occurence
+ keys = {'dlsch_rounds','dlsch_total_bytes','ulsch_rounds','ulsch_total_bytes_scheduled'}
+ for k in keys:
+ result = re.search(k, line)
+ if result is not None:
+ #remove 1- all useless char before relevant info (ulsch or dlsch) 2- trailing char
+ dlsch_ulsch_stats[k]=re.sub(r'^.*\]\s+', r'' , line.rstrip())
enb_log_file.close()
logging.debug(' File analysis completed')
if (self.air_interface[self.eNB_instance] == 'lte-softmodem') or (self.air_interface[self.eNB_instance] == 'ocp-enb'):
nodeB_prefix = 'e'
else:
nodeB_prefix = 'g'
+
if self.air_interface[self.eNB_instance] == 'nr-softmodem':
if ulschReceiveOK > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(ulschReceiveOK) + ' "ULSCH received ok" message(s)'
@@ -874,6 +894,23 @@ class RANManagement():
statMsg = nodeB_prefix + 'NB ran with TX Write thread enabled'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
htmleNBFailureMsg += statMsg + '\n'
+ #FR1 NSA test : add new markers to make sure gNB is used
+ if NSA_RAPROC_PUSCH_check:
+ statMsg = '[RAPROC] PUSCH with TC_RNTI message check for ' + nodeB_prefix + 'NB : PASS '
+ htmlMsg = statMsg+'\n'
+ else:
+ statMsg = '[RAPROC] PUSCH with TC_RNTI message check for ' + nodeB_prefix + 'NB : FAIL '
+ htmlMsg = statMsg+'\n'
+ logging.debug(statMsg)
+ htmleNBFailureMsg += htmlMsg
+ #ulsch and dlsch statistics
+ if len(dlsch_ulsch_stats)!=0: #check if dictionary is not empty
+ statMsg=''
+ for key in dlsch_ulsch_stats: #for each dictionary key
+ statMsg += dlsch_ulsch_stats[key] + '\n'
+ logging.debug(dlsch_ulsch_stats[key])
+ htmleNBFailureMsg += statMsg
+
if uciStatMsgCount > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(uciStatMsgCount) + ' "uci->stat" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
diff --git a/ci-scripts/xml_files/fr1_ran_ue_proc.xml b/ci-scripts/xml_files/fr1_ran_ue_proc.xml
index e86a36d2db..330fb27f21 100644
--- a/ci-scripts/xml_files/fr1_ran_ue_proc.xml
+++ b/ci-scripts/xml_files/fr1_ran_ue_proc.xml
@@ -89,14 +89,14 @@
Ping
Ping: 20pings in 20sec
-c 20
- 0
+ 50
Ping
Ping: 5pings in 1sec
-c 5 -i 0.2
- 0
+ 50
@@ -104,6 +104,7 @@
Terminate eNB
0
0
+ lte
@@ -111,6 +112,7 @@
Terminate gNB
1
1
+ nr