diff --git a/ci-scripts/main.py b/ci-scripts/main.py
index aaceac600ec6fa47370a93dcc4332412a133e6e2..660f068c2ca029ce5bf47e2f88748e644dbf4d82 100644
--- a/ci-scripts/main.py
+++ b/ci-scripts/main.py
@@ -119,6 +119,7 @@ class OaiCiTest():
 		self.Build_OAI_UE_args = ''
 		self.Initialize_OAI_UE_args = ''
 		self.clean_repository = True
+		self.air_interface=''
 		self.expectedNbOfConnectedUEs = 0
 
 	def BuildOAIUE(self):
@@ -128,10 +129,10 @@ class OaiCiTest():
 		SSH.open(self.UEIPAddress, self.UEUserName, self.UEPassword)
 		result = re.search('--nrUE', self.Build_OAI_UE_args)
 		if result is not None:
-			RAN.air_interface='nr'
+			self.air_interface='nr-uesoftmodem'
 			ue_prefix = 'NR '
 		else:
-			RAN.air_interface='lte'
+			self.air_interface='lte-uesoftmodem'
 			ue_prefix = ''
 		result = re.search('([a-zA-Z0-9\:\-\.\/])+\.git', self.ranRepository)
 		if result is not None:
@@ -171,7 +172,7 @@ class OaiCiTest():
 						mismatch = True
 				if not mismatch:
 					SSH.close()
-					HTML.CreateHtmlTestRow(RAN.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
+					HTML.CreateHtmlTestRow(self.Build_OAI_UE_args, 'OK', CONST.ALL_PROCESSES_OK)
 					return
 
 			SSH.command('echo ' + self.UEPassword + ' | sudo -S git clean -x -d -ff', '\$', 30)
@@ -197,7 +198,7 @@ class OaiCiTest():
 		SSH.command('ls ran_build/build', '\$', 3)
 		SSH.command('ls ran_build/build', '\$', 3)
 		buildStatus = True
-		result = re.search(RAN.air_interface + '-uesoftmodem', SSH.getBefore())
+		result = re.search(self.air_interface, SSH.getBefore())
 		if result is None:
 			buildStatus = False
 		SSH.command('mkdir -p build_log_' + self.testCase_id, '\$', 5)
@@ -322,7 +323,7 @@ class OaiCiTest():
 		if self.UEIPAddress == '' or self.UEUserName == '' or self.UEPassword == '' or self.UESourceCodePath == '':
 			HELP.GenericHelp(CONST.Version)
 			sys.exit('Insufficient Parameter')
-		if RAN.air_interface == 'lte':
+		if self.air_interface == 'lte-uesoftmodem':
 			result = re.search('--no-L2-connect', str(self.Initialize_OAI_UE_args))
 			if result is None:
 				check_eNB = True
@@ -351,7 +352,7 @@ class OaiCiTest():
 		# Initialize_OAI_UE_args usually start with -C and followed by the location in repository
 		SSH.command('source oaienv', '\$', 5)
 		SSH.command('cd cmake_targets/ran_build/build', '\$', 5)
-		if RAN.air_interface == 'lte':
+		if self.air_interface == 'lte-uesoftmodem':
 			result = re.search('--no-L2-connect', str(self.Initialize_OAI_UE_args))
 			# We may have to regenerate the .u* files
 			if result is None:
@@ -373,7 +374,7 @@ class OaiCiTest():
 			copyin_res = SSH.copyin(RAN.eNBIPAddress, RAN.eNBUserName, RAN.eNBPassword, RAN.eNBSourceCodePath + '/cmake_targets/reconfig.raw', '.')
 			if (copyin_res == 0):
 				SSH.copyout(self.UEIPAddress, self.UEUserName, self.UEPassword, './reconfig.raw', self.UESourceCodePath + '/cmake_targets/ran_build/build')
-		SSH.command('echo "ulimit -c unlimited && ./'+ RAN.air_interface +'-uesoftmodem ' + self.Initialize_OAI_UE_args + '" > ./my-lte-uesoftmodem-run' + str(self.UE_instance) + '.sh', '\$', 5)
+		SSH.command('echo "ulimit -c unlimited && ./'+ self.air_interface +' ' + self.Initialize_OAI_UE_args + '" > ./my-lte-uesoftmodem-run' + str(self.UE_instance) + '.sh', '\$', 5)
 		SSH.command('chmod 775 ./my-lte-uesoftmodem-run' + str(self.UE_instance) + '.sh', '\$', 5)
 		SSH.command('echo ' + self.UEPassword + ' | sudo -S rm -Rf ' + self.UESourceCodePath + '/cmake_targets/ue_' + self.testCase_id + '.log', '\$', 5)
 		self.UELogFile = 'ue_' + self.testCase_id + '.log'
@@ -404,7 +405,7 @@ class OaiCiTest():
 					doLoop = False
 					continue
 				SSH.command('stdbuf -o0 cat ue_' + self.testCase_id + '.log | egrep --text --color=never -i "wait|sync"', '\$', 4)
-				if RAN.air_interface == 'nr':
+				if self.air_interface == 'nr-uesoftmodem':
 					result = re.search('Starting sync detection', SSH.getBefore())
 				else:
 					result = re.search('got sync', SSH.getBefore())
@@ -429,7 +430,7 @@ class OaiCiTest():
 			# That is the case for LTE
 			# In NR case, it's a positive message that will show if synchronization occurs
 			doLoop = True
-			if RAN.air_interface == 'nr':
+			if self.air_interface == 'nr-uesoftmodem':
 				loopCounter = 10
 			else:
 				# We are now checking if sync w/ eNB DOES NOT OCCUR
@@ -438,7 +439,7 @@ class OaiCiTest():
 			while (doLoop):
 				loopCounter = loopCounter - 1
 				if (loopCounter == 0):
-					if RAN.air_interface == 'nr':
+					if self.air_interface == 'nr-uesoftmodem':
 						# Here we do have great chances that UE did NOT cell-sync w/ gNB
 						doLoop = False
 						fullSyncStatus = False
@@ -457,7 +458,7 @@ class OaiCiTest():
 						fullSyncStatus = True
 						continue
 				SSH.command('stdbuf -o0 cat ue_' + self.testCase_id + '.log | egrep --text --color=never -i "wait|sync|Frequency"', '\$', 4)
-				if RAN.air_interface == 'nr':
+				if self.air_interface == 'nr-uesoftmodem':
 					# Positive messaging -->
 					result = re.search('Measured Carrier Frequency', SSH.getBefore())
 					if result is not None:
@@ -486,12 +487,12 @@ class OaiCiTest():
 
 		if fullSyncStatus and gotSyncStatus:
 			doInterfaceCheck = False
-			if RAN.air_interface == 'lte':
+			if self.air_interface == 'lte-uesoftmodem':
 				result = re.search('--no-L2-connect', str(self.Initialize_OAI_UE_args))
 				if result is None:
 					doInterfaceCheck = True
 			# For the moment, only in explicit noS1 without kernel module (ie w/ tunnel interface)
-			if RAN.air_interface == 'nr':
+			if self.air_interface == 'nr-uesoftmodem':
 				result = re.search('--noS1 --nokrnmod 1', str(self.Initialize_OAI_UE_args))
 				if result is not None:
 					doInterfaceCheck = True
@@ -531,7 +532,7 @@ class OaiCiTest():
 				self.UEDevicesStatus = []
 				self.UEDevicesStatus.append(CONST.UE_STATUS_DETACHED)
 		else:
-			if RAN.air_interface == 'lte':
+			if self.air_interface == 'lte-uesoftmodem':
 				if RAN.eNBmbmsEnables[0]:
 					HTML.htmlUEFailureMsg='oaitun_ue1/oaitun_uem1 interfaces are either NOT mounted or NOT configured'
 				else:
@@ -1086,7 +1087,10 @@ class OaiCiTest():
 			sys.exit('Insufficient Parameter')
 		SSH.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
 		if self.ADBCentralized:
-			SSH.command('adb devices', '\$', 15)
+			if self.ADBIPAddress == '192.168.18.196':
+				SSH.command('/home/oaici/remi/android-sdk-linux/platform-tools/adb devices', '\$', 15)
+			else:
+				SSH.command('adb devices', '\$', 15)
 			#self.UEDevices = re.findall("\\\\r\\\\n([A-Za-z0-9]+)\\\\tdevice",SSH.getBefore())
 			self.UEDevices = re.findall("\\\\r\\\\n([A-Za-z0-9]+)\\\\tdevice",SSH.getBefore())
 			SSH.close()
@@ -2414,8 +2418,8 @@ class OaiCiTest():
 	def CheckOAIUEProcess(self, status_queue):
 		try:
 			SSH.open(self.UEIPAddress, self.UEUserName, self.UEPassword)
-			SSH.command('stdbuf -o0 ps -aux | grep --color=never ' + RAN.air_interface + '-uesoftmodem | grep -v grep', '\$', 5)
-			result = re.search(RAN.air_interface + '-uesoftmodem', SSH.getBefore())
+			SSH.command('stdbuf -o0 ps -aux | grep --color=never ' + self.air_interface + ' | grep -v grep', '\$', 5)
+			result = re.search(self.air_interface, SSH.getBefore())
 			if result is None:
 				logging.debug('\u001B[1;37;41m OAI UE Process Not Found! \u001B[0m')
 				status_queue.put(CONST.OAI_UE_PROCESS_FAILED)
@@ -2772,7 +2776,7 @@ class OaiCiTest():
 				logging.debug('\u001B[1m' + ueAction + ' Failed \u001B[0m')
 				HTML.htmlUEFailureMsg='<b>' + ueAction + ' Failed</b>\n' + HTML.htmlUEFailureMsg
 				HTML.CreateHtmlTestRow('N/A', 'KO', logStatus, 'UE')
-				if RAN.air_interface == 'lte':
+				if self.air_interface == 'lte-uesoftmodem':
 					# In case of sniffing on commercial eNBs we have random results
 					# Not an error then
 					if (logStatus != CONST.OAI_UE_PROCESS_COULD_NOT_SYNC) or (ueAction != 'Sniffing'):
@@ -2811,7 +2815,7 @@ class OaiCiTest():
 			self.desc = 'Automatic Termination of eNB'
 			HTML.desc='Automatic Termination of eNB'
 			self.ShowTestID()
-			RAN.eNB_instance='0'
+			RAN.eNB_instance=0
 			RAN.TerminateeNB()
 		if RAN.flexranCtrlInstalled and RAN.flexranCtrlStarted:
 			self.testCase_id = 'AUTO-KILL-flexran-ctl'
@@ -3118,9 +3122,11 @@ def GetParametersFromXML(action):
 				RAN.Build_eNB_forced_workspace_cleanup=True
 			else:
 				RAN.Build_eNB_forced_workspace_cleanup=False
-		RAN.eNB_instance=test.findtext('eNB_instance')
-		if (RAN.eNB_instance is None):
-			RAN.eNB_instance='0'
+		eNB_instance=test.findtext('eNB_instance')
+		if (eNB_instance is None):
+			RAN.eNB_instance=0
+		else:
+			RAN.eNB_instance=int(eNB_instance)
 		RAN.eNB_serverId=test.findtext('eNB_serverId')
 		if (RAN.eNB_serverId is None):
 			RAN.eNB_serverId='0'
@@ -3135,18 +3141,22 @@ def GetParametersFromXML(action):
 
 	if action == 'WaitEndBuild_eNB':
 		RAN.Build_eNB_args=test.findtext('Build_eNB_args')
-		RAN.eNB_instance=test.findtext('eNB_instance')
-		if (RAN.eNB_instance is None):
+		eNB_instance=test.findtext('eNB_instance')
+		if (eNB_instance is None):
 			RAN.eNB_instance='0'
+		else:
+			RAN.eNB_instance=int(eNB_instance)
 		RAN.eNB_serverId=test.findtext('eNB_serverId')
 		if (RAN.eNB_serverId is None):
 			RAN.eNB_serverId='0'
 
 	if action == 'Initialize_eNB':
 		RAN.Initialize_eNB_args=test.findtext('Initialize_eNB_args')
-		RAN.eNB_instance=test.findtext('eNB_instance')
-		if (RAN.eNB_instance is None):
-			RAN.eNB_instance='0'
+		eNB_instance=test.findtext('eNB_instance')
+		if (eNB_instance is None):
+			RAN.eNB_instance=0
+		else:
+			RAN.eNB_instance=int(eNB_instance)
 		RAN.eNB_serverId=test.findtext('eNB_serverId')
 		if (RAN.eNB_serverId is None):
 			RAN.eNB_serverId='0'
@@ -3154,17 +3164,18 @@ def GetParametersFromXML(action):
 		#local variable air_interface
 		air_interface = test.findtext('air_interface')		
 		if (air_interface is None) or (air_interface.lower() not in ['nr','lte','ocp']):
-			CiTestObj.air_interface = 'lte-softmodem'
+			RAN.air_interface[RAN.eNB_instance] = 'lte-softmodem'
 		elif (air_interface.lower() in ['nr','lte']):
-			CiTestObj.air_interface = air_interface.lower() +'-softmodem'
+			RAN.air_interface[RAN.eNB_instance] = air_interface.lower() +'-softmodem'
 		else :
-			CiTestObj.air_interface = 'ocp-enb'
-		RAN.air_interface=CiTestObj.air_interface
+			RAN.air_interface[RAN.eNB_instance] = 'ocp-enb'
 
 	if action == 'Terminate_eNB':
-		RAN.eNB_instance=test.findtext('eNB_instance')
+		eNB_instance=test.findtext('eNB_instance')
 		if (RAN.eNB_instance is None):
-			RAN.eNB_instance='0'
+			RAN.eNB_instance=0
+		else:
+			RAN.eNB_instance=int(eNB_instance)
 		RAN.eNB_serverId=test.findtext('eNB_serverId')
 		if (RAN.eNB_serverId is None):
 			RAN.eNB_serverId='0'
@@ -3172,12 +3183,11 @@ def GetParametersFromXML(action):
 		#local variable air_interface
 		air_interface = test.findtext('air_interface')		
 		if (air_interface is None) or (air_interface.lower() not in ['nr','lte','ocp']):
-			CiTestObj.air_interface = 'lte-softmodem'
+			RAN.air_interface[RAN.eNB_instance] = 'lte-softmodem'
 		elif (air_interface.lower() in ['nr','lte']):
-			CiTestObj.air_interface = air_interface.lower() +'-softmodem'
+			RAN.air_interface[RAN.eNB_instance] = air_interface.lower() +'-softmodem'
 		else :
-			CiTestObj.air_interface = 'ocp-enb'
-		RAN.air_interface=CiTestObj.air_interface
+			RAN.air_interface[RAN.eNB_instance] = 'ocp-enb'
 
 	if action == 'Attach_UE':
 		nbMaxUEtoAttach = test.findtext('nbMaxUEtoAttach')
@@ -3210,17 +3220,27 @@ def GetParametersFromXML(action):
 		#local variable air_interface
 		air_interface = test.findtext('air_interface')		
 		if (air_interface is None) or (air_interface.lower() not in ['nr','lte','ocp']):
-			CiTestObj.air_interface = 'lte-softmodem'
+			CiTestObj.air_interface = 'lte-uesoftmodem'
 		elif (air_interface.lower() in ['nr','lte']):
-			CiTestObj.air_interface = air_interface.lower() +'-softmodem'
+			CiTestObj.air_interface = air_interface.lower() +'-uesoftmodem'
 		else :
-			CiTestObj.air_interface = 'ocp-enb'
-		RAN.air_interface=CiTestObj.air_interface
+			#CiTestObj.air_interface = 'ocp-enb'
+			logging.error('OCP UE -- NOT SUPPORTED')
 
 	if action == 'Terminate_OAI_UE':
 		RAN.eNB_instance=test.findtext('UE_instance')
 		if (CiTestObj.UE_instance is None):
 			CiTestObj.UE_instance = '0'
+		
+		#local variable air_interface
+		air_interface = test.findtext('air_interface')		
+		if (air_interface is None) or (air_interface.lower() not in ['nr','lte','ocp']):
+			CiTestObj.air_interface = 'lte-uesoftmodem'
+		elif (air_interface.lower() in ['nr','lte']):
+			CiTestObj.air_interface = air_interface.lower() +'-uesoftmodem'
+		else :
+			#CiTestObj.air_interface = 'ocp-enb'
+			logging.error('OCP UE -- NOT SUPPORTED')
 
 	if action == 'Ping' or action == 'Ping_CatM_module':
 		CiTestObj.ping_args = test.findtext('ping_args')
diff --git a/ci-scripts/ran.py b/ci-scripts/ran.py
index 8f254975ebb7dc67ec9d6b2daaed43bd9b8953e6..054b92a181a2d99707b310fceca17a2ea0e5b11e 100644
--- a/ci-scripts/ran.py
+++ b/ci-scripts/ran.py
@@ -77,8 +77,8 @@ class RANManagement():
 		self.backgroundBuildTestId = ['', '', '']
 		self.Build_eNB_forced_workspace_cleanup = False
 		self.Initialize_eNB_args = ''
-		self.air_interface = '' #changed from 'lte' to '' may lead to side effects in main
-		self.eNB_instance = ''
+		self.air_interface = ['', '', ''] #changed from 'lte' to '' may lead to side effects in main
+		self.eNB_instance = 0
 		self.eNB_serverId = ''
 		self.eNBLogFiles = ['', '', '']
 		self.eNBOptions = ['', '', '']
@@ -125,13 +125,13 @@ class RANManagement():
 		# Check if we build an 5G-NR gNB or an LTE eNB or an OCP eNB
 		result = re.search('--eNBocp', self.Build_eNB_args)
 		if result is not None:
-			self.air_interface='ocp-enb'
+			self.air_interface[self.eNB_instance] = 'ocp-enb'
 		else:	
 			result = re.search('--gNB', self.Build_eNB_args)
 			if result is not None:
-				self.air_interface = 'nr-softmodem'
+				self.air_interface[self.eNB_instance] = 'nr-softmodem'
 			else:
-				self.air_interface = 'lte-softmodem'
+				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:
@@ -205,7 +205,9 @@ class RANManagement():
 		if self.backgroundBuild:
 			mySSH.command('echo "./build_oai ' + self.Build_eNB_args + '" > ./my-lte-softmodem-build.sh', '\$', 5)
 			mySSH.command('chmod 775 ./my-lte-softmodem-build.sh', '\$', 5)
-			mySSH.command('echo ' + lPassWord + ' | sudo -S -E daemon --inherit --unsafe --name=build_enb_daemon --chdir=' + lSourcePath + '/cmake_targets -o ' + lSourcePath + '/cmake_targets/compile_oai_enb.log ./my-lte-softmodem-build.sh', '\$', 5)
+			#mySSH.command('echo ' + lPassWord + ' | sudo -S -E daemon --inherit --unsafe --name=build_enb_daemon --chdir=' + lSourcePath + '/cmake_targets -o ' + lSourcePath + '/cmake_targets/compile_oai_enb.log ./my-lte-softmodem-build.sh', '\$', 5)
+			mySSH.command('echo ' + lPassWord + ' | sudo -S ls', '\$', 5)
+			mySSH.command('echo $USER; nohup sudo ./my-lte-softmodem-build.sh' + ' > ' + lSourcePath + '/cmake_targets/compile_oai_enb.log ' + ' 2>&1 &', lUserName, 5)
 			mySSH.close()
 			if self.htmlObj is not None:
 				self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
@@ -261,7 +263,7 @@ class RANManagement():
 
 		#check if we have the build corresponding to the air interface keywords (nr-softmode, lte-softmodem, ocp-enb)
 		logging.info('CHECK Build with IP='+lIpAddr+' SourcePath='+lSourcePath)
-		result = re.search(self.air_interface, mySSH.getBefore())
+		result = re.search(self.air_interface[self.eNB_instance], mySSH.getBefore())
 		if result is None:
 			buildStatus = False #if not, build failed
 		else:
@@ -304,11 +306,11 @@ class RANManagement():
 
 		#generate logging info depending on buildStatus and air interface
 		if buildStatus:
-			logging.info('\u001B[1m Building OAI ' + self.air_interface + ' Pass\u001B[0m')
+			logging.info('\u001B[1m Building OAI ' + self.air_interface[self.eNB_instance] + ' Pass\u001B[0m')
 			if self.htmlObj is not None:
 				self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)		
 		else:
-			logging.error('\u001B[1m Building OAI ' + self.air_interface + ' Failed\u001B[0m')
+			logging.error('\u001B[1m Building OAI ' + self.air_interface[self.eNB_instance] + ' Failed\u001B[0m')
 			if self.htmlObj is not None:
 				self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'KO', CONST.ALL_PROCESSES_OK)
 				self.htmlObj.CreateHtmlTabFooter(False)
@@ -426,7 +428,8 @@ class RANManagement():
 		if self.air_interface == 'nr':
 			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)
-		mySSH.command('echo "ulimit -c unlimited && ./ran_build/build/' + self.air_interface + '-softmodem -O ' + lSourcePath + '/' + ci_full_config_file + extra_options + '" > ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
+		# NOTE: WE SHALL do a check if the executable is present (in case build went wrong)
+		mySSH.command('echo "ulimit -c unlimited && ./ran_build/build/' + self.air_interface[self.eNB_instance] + ' -O ' + lSourcePath + '/' + ci_full_config_file + extra_options + '" > ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
 		mySSH.command('chmod 775 ./my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
 		mySSH.command('echo ' + lPassWord + ' | sudo -S rm -Rf enb_' + self.testCase_id + '.log', '\$', 5)
 		mySSH.command('hostnamectl','\$', 5)
@@ -535,8 +538,8 @@ class RANManagement():
 				lPassWord = self.eNBPassword
 			mySSH = SSH.SSHConnection()
 			mySSH.open(lIpAddr, lUserName, lPassWord)
-			mySSH.command('stdbuf -o0 ps -aux | grep --color=never ' + self.air_interface + ' | grep -v grep', '\$', 5)
-			result = re.search(self.air_interface, mySSH.getBefore())
+			mySSH.command('stdbuf -o0 ps -aux | grep --color=never ' + self.air_interface[self.eNB_instance] + ' | grep -v grep', '\$', 5)
+			result = re.search(self.air_interface[self.eNB_instance], mySSH.getBefore())
 			if result is None:
 				logging.debug('\u001B[1;37;41m eNB Process Not Found! \u001B[0m')
 				status_queue.put(CONST.ENB_PROCESS_FAILED)
@@ -568,7 +571,7 @@ class RANManagement():
 		mySSH = SSH.SSHConnection()
 		mySSH.open(lIpAddr, lUserName, lPassWord)
 		mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 5)
-		if (self.air_interface == 'lte-softmodem') or (self.air_interface == 'ocp-enb'):
+		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'
@@ -831,11 +834,11 @@ class RANManagement():
 					mbmsRequestMsg += 1
 		enb_log_file.close()
 		logging.debug('   File analysis completed')
-		if (self.air_interface == 'lte-softmodem') or (self.air_interface == 'ocp-enb'):
+		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 == 'nr-softmodem':
+		if self.air_interface[self.eNB_instance] == 'nr-softmodem':
 			if ulschReceiveOK > 0:
 				statMsg = nodeB_prefix + 'NB showed ' + str(ulschReceiveOK) + ' "ULSCH received ok" message(s)'
 				logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
diff --git a/ci-scripts/xml_files/fr1_multi_node_build.xml b/ci-scripts/xml_files/fr1_multi_node_build.xml
index 0b7dce29d8aee29ea2eb020fe505c2e3dffd602f..7b4eacef3a3d091e7397bfc89a7f8422c459998c 100644
--- a/ci-scripts/xml_files/fr1_multi_node_build.xml
+++ b/ci-scripts/xml_files/fr1_multi_node_build.xml
@@ -33,27 +33,29 @@
 	<testCase id="000001">
 		<class>Build_eNB</class>
 		<desc>Build eNB</desc>
-		<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
+		<Build_eNB_args>-w USRP -c --eNB --ninja</Build_eNB_args>
 		<eNB_instance>0</eNB_instance>
 		<eNB_serverId>0</eNB_serverId>
+		<backgroundBuild>True</backgroundBuild>
 	</testCase>
 
-	<testCase id="000002">
+	<testCase id="000004">
 		<class>WaitEndBuild_eNB</class>
 		<desc>Wait for end of Build eNB</desc>
 		<eNB_instance>0</eNB_instance>
 		<eNB_serverId>0</eNB_serverId>
 	</testCase>
 
-	<testCase id="000003">
+	<testCase id="000002">
 		<class>Build_eNB</class>
 		<desc>Build gNB</desc>
-		<Build_eNB_args>-w USRP -c --gNB</Build_eNB_args>
+		<Build_eNB_args>-w USRP -c --gNB --ninja</Build_eNB_args>
 		<eNB_instance>1</eNB_instance>
 		<eNB_serverId>1</eNB_serverId>
+		<backgroundBuild>True</backgroundBuild>
 	</testCase>
 
-	<testCase id="000004">
+	<testCase id="000003">
 		<class>WaitEndBuild_eNB</class>
 		<desc>Wait for end of Build gNB</desc>
 		<eNB_instance>1</eNB_instance>
diff --git a/ci-scripts/xml_files/gnb_usrp_build.xml b/ci-scripts/xml_files/gnb_usrp_build.xml
index 97d6ef06f6221875c6b25809d19af7fddb345bf6..e2662180c5b8fee0c2974e703328a30673eb5193 100644
--- a/ci-scripts/xml_files/gnb_usrp_build.xml
+++ b/ci-scripts/xml_files/gnb_usrp_build.xml
@@ -34,7 +34,7 @@
 		<mode>TesteNB</mode>	
 		<class>Build_eNB</class>
 		<desc>Build gNB (USRP)</desc>
-		<Build_eNB_args>--gNB -w USRP</Build_eNB_args>
+		<Build_eNB_args>--gNB -w USRP --ninja</Build_eNB_args>
 		<forced_workspace_cleanup>True</forced_workspace_cleanup>
 	</testCase>
 
diff --git a/ci-scripts/xml_files/nr_ue_usrp_build.xml b/ci-scripts/xml_files/nr_ue_usrp_build.xml
index c3c842b85a9bb2974890cd9757de8ecb3a1172a4..bc04efdb4b8cd50ffd7905196f2f14b941db14ab 100644
--- a/ci-scripts/xml_files/nr_ue_usrp_build.xml
+++ b/ci-scripts/xml_files/nr_ue_usrp_build.xml
@@ -34,7 +34,7 @@
 		<mode>TestUE</mode>
 		<class>Build_OAI_UE</class>
 		<desc>Build NR UE (USRP)</desc>
-		<Build_OAI_UE_args>--nrUE -w USRP</Build_OAI_UE_args>
+		<Build_OAI_UE_args>--nrUE -w USRP --ninja</Build_OAI_UE_args>
 		<clean_repository>false</clean_repository>
 	</testCase>