Commit 8d75cb61 authored by hardy's avatar hardy

to support OCP eNB build and test

parent 5df03269
...@@ -3110,11 +3110,15 @@ def GetParametersFromXML(action): ...@@ -3110,11 +3110,15 @@ def GetParametersFromXML(action):
RAN.SeteNB_serverId(test.findtext('eNB_serverId')) RAN.SeteNB_serverId(test.findtext('eNB_serverId'))
if (RAN.GeteNB_serverId() is None): if (RAN.GeteNB_serverId() is None):
RAN.SeteNB_serverId('0') RAN.SeteNB_serverId('0')
CiTestObj.air_interface = test.findtext('air_interface')
if (CiTestObj.air_interface is None): #local variable air_interface
CiTestObj.air_interface = 'lte' air_interface = test.findtext('air_interface')
else: if (air_interface is None) or (air_interface.lower() not in ['nr','lte','ocp']):
CiTestObj.air_interface = CiTestObj.air_interface.lower() CiTestObj.air_interface = 'lte-softmodem'
elif (air_interface.lower() in ['nr','lte']):
CiTestObj.air_interface = air_interface.lower() +'-softmodem'
else :
CiTestObj.air_interface = air_interface.lower() +'ocp-enb'
RAN.Setair_interface(CiTestObj.air_interface) RAN.Setair_interface(CiTestObj.air_interface)
if action == 'Terminate_eNB': if action == 'Terminate_eNB':
...@@ -3124,11 +3128,15 @@ def GetParametersFromXML(action): ...@@ -3124,11 +3128,15 @@ def GetParametersFromXML(action):
RAN.SeteNB_serverId(test.findtext('eNB_serverId')) RAN.SeteNB_serverId(test.findtext('eNB_serverId'))
if (RAN.GeteNB_serverId() is None): if (RAN.GeteNB_serverId() is None):
RAN.SeteNB_serverId('0') RAN.SeteNB_serverId('0')
CiTestObj.air_interface = test.findtext('air_interface')
if (CiTestObj.air_interface is None): #local variable air_interface
CiTestObj.air_interface = 'lte' air_interface = test.findtext('air_interface')
else: if (air_interface is None) or (air_interface.lower() not in ['nr','lte','ocp']):
CiTestObj.air_interface = CiTestObj.air_interface.lower() CiTestObj.air_interface = 'lte-softmodem'
elif (air_interface.lower() in ['nr','lte']):
CiTestObj.air_interface = air_interface.lower() +'-softmodem'
else :
CiTestObj.air_interface = air_interface.lower() +'ocp-enb'
RAN.Setair_interface(CiTestObj.air_interface) RAN.Setair_interface(CiTestObj.air_interface)
if action == 'Attach_UE': if action == 'Attach_UE':
...@@ -3158,11 +3166,16 @@ def GetParametersFromXML(action): ...@@ -3158,11 +3166,16 @@ def GetParametersFromXML(action):
CiTestObj.UE_instance = test.findtext('UE_instance') CiTestObj.UE_instance = test.findtext('UE_instance')
if (CiTestObj.UE_instance is None): if (CiTestObj.UE_instance is None):
CiTestObj.UE_instance = '0' CiTestObj.UE_instance = '0'
CiTestObj.air_interface = test.findtext('air_interface')
if (CiTestObj.air_interface is None): #local variable air_interface
CiTestObj.air_interface = 'lte' air_interface = test.findtext('air_interface')
else: if (air_interface is None) or (air_interface.lower() not in ['nr','lte','ocp']):
CiTestObj.air_interface = CiTestObj.air_interface.lower() CiTestObj.air_interface = 'lte-softmodem'
elif (air_interface.lower() in ['nr','lte']):
CiTestObj.air_interface = air_interface.lower() +'-softmodem'
else :
CiTestObj.air_interface = air_interface.lower() +'ocp-enb'
RAN.Setair_interface(CiTestObj.air_interface)
if action == 'Terminate_OAI_UE': if action == 'Terminate_OAI_UE':
RAN.SeteNB_instance(test.findtext('UE_instance')) RAN.SeteNB_instance(test.findtext('UE_instance'))
......
...@@ -77,7 +77,7 @@ class RANManagement(): ...@@ -77,7 +77,7 @@ class RANManagement():
self.backgroundBuildTestId = ['', '', ''] self.backgroundBuildTestId = ['', '', '']
self.Build_eNB_forced_workspace_cleanup = False self.Build_eNB_forced_workspace_cleanup = False
self.Initialize_eNB_args = '' self.Initialize_eNB_args = ''
self.air_interface = 'lte' self.air_interface = '' #changed from 'lte' to '' may lead to side effects in main
self.eNB_instance = '' self.eNB_instance = ''
self.eNB_serverId = '' self.eNB_serverId = ''
self.eNBLogFiles = ['', '', ''] self.eNBLogFiles = ['', '', '']
...@@ -91,6 +91,8 @@ class RANManagement(): ...@@ -91,6 +91,8 @@ class RANManagement():
self.htmlObj = None self.htmlObj = None
self.epcObj = None self.epcObj = None
#----------------------------------------------------------- #-----------------------------------------------------------
# Setters and Getters on Public members # Setters and Getters on Public members
#----------------------------------------------------------- #-----------------------------------------------------------
...@@ -254,12 +256,18 @@ class RANManagement(): ...@@ -254,12 +256,18 @@ class RANManagement():
sys.exit('Insufficient Parameter') sys.exit('Insufficient Parameter')
mySSH = SSH.SSHConnection() mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord) mySSH.open(lIpAddr, lUserName, lPassWord)
# Check if we build an 5G-NR gNB or an LTE eNB
# 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'
else:
result = re.search('--gNB', self.Build_eNB_args) result = re.search('--gNB', self.Build_eNB_args)
if result is not None: if result is not None:
self.air_interface = 'nr' self.air_interface = 'nr-softmodem'
else: else:
self.air_interface = 'lte' self.air_interface = 'lte-softmodem'
# Worakround for some servers, we need to erase completely the workspace # Worakround for some servers, we need to erase completely the workspace
if self.Build_eNB_forced_workspace_cleanup: if self.Build_eNB_forced_workspace_cleanup:
mySSH.command('echo ' + lPassWord + ' | sudo -S rm -Rf ' + lSourcePath, '\$', 15) mySSH.command('echo ' + lPassWord + ' | sudo -S rm -Rf ' + lSourcePath, '\$', 15)
...@@ -379,20 +387,19 @@ class RANManagement(): ...@@ -379,20 +387,19 @@ class RANManagement():
def checkBuildeNB(self, lIpAddr, lUserName, lPassWord, lSourcePath, testcaseId): def checkBuildeNB(self, lIpAddr, lUserName, lPassWord, lSourcePath, testcaseId):
if self.htmlObj is not None: if self.htmlObj is not None:
self.htmlObj.SettestCase_id(testcaseId) self.htmlObj.SettestCase_id(testcaseId)
mySSH = SSH.SSHConnection() mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord) mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 3) mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 3)
mySSH.command('ls ran_build/build', '\$', 3) mySSH.command('ls ran_build/build', '\$', 3)
mySSH.command('ls ran_build/build', '\$', 3) mySSH.command('ls ran_build/build', '\$', 3)
if self.air_interface == 'nr':
nodeB_prefix = 'g' #check if we have the build corresponding to the air interface keywords (nr-softmode, lte-softmodem, ocp-enb)
else: result = re.search(self.air_interface, mySSH.getBefore())
nodeB_prefix = 'e'
buildStatus = True
result = re.search(self.air_interface + '-softmodem', mySSH.getBefore())
if result is None: if result is None:
buildStatus = False buildStatus = False #if not, build failed
else: else:
buildStatus = True
# Generating a BUILD INFO file # Generating a BUILD INFO file
mySSH.command('echo "SRC_BRANCH: ' + self.ranBranch + '" > ../LAST_BUILD_INFO.txt', '\$', 2) mySSH.command('echo "SRC_BRANCH: ' + self.ranBranch + '" > ../LAST_BUILD_INFO.txt', '\$', 2)
mySSH.command('echo "SRC_COMMIT: ' + self.ranCommitID + '" >> ../LAST_BUILD_INFO.txt', '\$', 2) mySSH.command('echo "SRC_COMMIT: ' + self.ranCommitID + '" >> ../LAST_BUILD_INFO.txt', '\$', 2)
...@@ -404,6 +411,8 @@ class RANManagement(): ...@@ -404,6 +411,8 @@ class RANManagement():
mySSH.command('echo "TGT_BRANCH: ' + self.ranTargetBranch + '" >> ../LAST_BUILD_INFO.txt', '\$', 2) mySSH.command('echo "TGT_BRANCH: ' + self.ranTargetBranch + '" >> ../LAST_BUILD_INFO.txt', '\$', 2)
else: else:
mySSH.command('echo "MERGED_W_TGT_BRANCH: NO" >> ../LAST_BUILD_INFO.txt', '\$', 2) mySSH.command('echo "MERGED_W_TGT_BRANCH: NO" >> ../LAST_BUILD_INFO.txt', '\$', 2)
mySSH.command('mkdir -p build_log_' + testcaseId, '\$', 5) mySSH.command('mkdir -p build_log_' + testcaseId, '\$', 5)
mySSH.command('mv log/* ' + 'build_log_' + testcaseId, '\$', 5) mySSH.command('mv log/* ' + 'build_log_' + testcaseId, '\$', 5)
mySSH.command('mv compile_oai_enb.log ' + 'build_log_' + testcaseId, '\$', 5) mySSH.command('mv compile_oai_enb.log ' + 'build_log_' + testcaseId, '\$', 5)
...@@ -426,12 +435,13 @@ class RANManagement(): ...@@ -426,12 +435,13 @@ class RANManagement():
else: else:
mySSH.close() mySSH.close()
#generate logging info depending on buildStatus and air interface
if buildStatus: if buildStatus:
logging.info('\u001B[1m Building OAI ' + nodeB_prefix + 'NB Pass\u001B[0m') logging.info('\u001B[1m Building OAI ' + self.air_interface + ' Pass\u001B[0m')
if self.htmlObj is not None: if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK) self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'OK', CONST.ALL_PROCESSES_OK)
else: else
logging.error('\u001B[1m Building OAI ' + nodeB_prefix + 'NB Failed\u001B[0m') logging.error('\u001B[1m Building OAI ' + self.air_interface + ' Failed\u001B[0m')
if self.htmlObj is not None: if self.htmlObj is not None:
self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'KO', CONST.ALL_PROCESSES_OK) self.htmlObj.CreateHtmlTestRow(self.Build_eNB_args, 'KO', CONST.ALL_PROCESSES_OK)
self.htmlObj.CreateHtmlTabFooter(False) self.htmlObj.CreateHtmlTabFooter(False)
...@@ -546,7 +556,7 @@ class RANManagement(): ...@@ -546,7 +556,7 @@ class RANManagement():
# Launch eNB with the modified config file # Launch eNB with the modified config file
mySSH.command('source oaienv', '\$', 5) mySSH.command('source oaienv', '\$', 5)
mySSH.command('cd cmake_targets', '\$', 5) mySSH.command('cd cmake_targets', '\$', 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) mySSH.command('echo "ulimit -c unlimited && ./ran_build/build/' + self.air_interface + ' -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('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('echo ' + lPassWord + ' | sudo -S rm -Rf enb_' + self.testCase_id + '.log', '\$', 5)
mySSH.command('hostnamectl','\$', 5) mySSH.command('hostnamectl','\$', 5)
...@@ -655,8 +665,8 @@ class RANManagement(): ...@@ -655,8 +665,8 @@ class RANManagement():
lPassWord = self.eNBPassword lPassWord = self.eNBPassword
mySSH = SSH.SSHConnection() mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord) mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('stdbuf -o0 ps -aux | grep --color=never ' + self.air_interface + '-softmodem | grep -v grep', '\$', 5) mySSH.command('stdbuf -o0 ps -aux | grep --color=never ' + self.air_interface + ' | grep -v grep', '\$', 5)
result = re.search(self.air_interface + '-softmodem', mySSH.getBefore()) result = re.search(self.air_interface, mySSH.getBefore())
if result is None: if result is None:
logging.debug('\u001B[1;37;41m eNB Process Not Found! \u001B[0m') logging.debug('\u001B[1;37;41m eNB Process Not Found! \u001B[0m')
status_queue.put(CONST.ENB_PROCESS_FAILED) status_queue.put(CONST.ENB_PROCESS_FAILED)
...@@ -688,20 +698,20 @@ class RANManagement(): ...@@ -688,20 +698,20 @@ class RANManagement():
mySSH = SSH.SSHConnection() mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord) mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 5) mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 5)
if self.air_interface == 'lte': if (self.air_interface == 'lte-softmodem') or (self.air_interface == 'ocp-enb'):
nodeB_prefix = 'e' nodeB_prefix = 'e'
else: else:
nodeB_prefix = 'g' nodeB_prefix = 'g'
mySSH.command('stdbuf -o0 ps -aux | grep --color=never softmodem | grep -v grep', '\$', 5) mySSH.command('stdbuf -o0 ps -aux | grep --color=never -e softmodem -e ocp-enb | grep -v grep', '\$', 5)
result = re.search('-softmodem', mySSH.getBefore()) result = re.search('(-softmodem|ocp)', mySSH.getBefore())
if result is not None: if result is not None:
mySSH.command('echo ' + lPassWord + ' | sudo -S daemon --name=enb' + str(self.eNB_instance) + '_daemon --stop', '\$', 5) mySSH.command('echo ' + lPassWord + ' | sudo -S daemon --name=enb' + str(self.eNB_instance) + '_daemon --stop', '\$', 5)
mySSH.command('echo ' + lPassWord + ' | sudo -S killall --signal SIGINT -r .*-softmodem || true', '\$', 5) mySSH.command('echo ' + lPassWord + ' | sudo -S killall --signal SIGINT -r .*-softmodem .ocp-enb || true', '\$', 5)
time.sleep(10) time.sleep(10)
mySSH.command('stdbuf -o0 ps -aux | grep --color=never softmodem | grep -v grep', '\$', 5) mySSH.command('stdbuf -o0 ps -aux | grep --color=never -e softmodem -e ocp-enb | grep -v grep', '\$', 5)
result = re.search('-softmodem', mySSH.getBefore()) result = re.search('(-softmodem|ocp)', mySSH.getBefore())
if result is not None: if result is not None:
mySSH.command('echo ' + lPassWord + ' | sudo -S killall --signal SIGKILL -r .*-softmodem || true', '\$', 5) mySSH.command('echo ' + lPassWord + ' | sudo -S killall --signal SIGKILL -r .*-softmodem .ocp-enb || true', '\$', 5)
time.sleep(5) time.sleep(5)
mySSH.command('rm -f my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5) mySSH.command('rm -f my-lte-softmodem-run' + str(self.eNB_instance) + '.sh', '\$', 5)
mySSH.close() mySSH.close()
...@@ -890,8 +900,7 @@ class RANManagement(): ...@@ -890,8 +900,7 @@ class RANManagement():
if result is not None: if result is not None:
rrcSetupComplete += 1 rrcSetupComplete += 1
result = re.search('Generate LTE_RRCConnectionRelease|Generate RRCConnectionRelease', str(line)) result = re.search('Generate LTE_RRCConnectionRelease|Generate RRCConnectionRelease', str(line))
if result is not None: if result is not None: rrcReleaseRequest += 1
rrcReleaseRequest += 1
result = re.search('Generate LTE_RRCConnectionReconfiguration', str(line)) result = re.search('Generate LTE_RRCConnectionReconfiguration', str(line))
if result is not None: if result is not None:
rrcReconfigRequest += 1 rrcReconfigRequest += 1
...@@ -940,11 +949,11 @@ class RANManagement(): ...@@ -940,11 +949,11 @@ class RANManagement():
mbmsRequestMsg += 1 mbmsRequestMsg += 1
enb_log_file.close() enb_log_file.close()
logging.debug(' File analysis completed') logging.debug(' File analysis completed')
if self.air_interface == 'lte': if (self.air_interface == 'lte-softmodem') or (self.air_interface == 'ocp-enb'):
nodeB_prefix = 'e' nodeB_prefix = 'e'
else: else:
nodeB_prefix = 'g' nodeB_prefix = 'g'
if self.air_interface == 'nr': if self.air_interface == 'nr-softmodem':
if ulschReceiveOK > 0: if ulschReceiveOK > 0:
statMsg = nodeB_prefix + 'NB showed ' + str(ulschReceiveOK) + ' "ULSCH received ok" message(s)' statMsg = nodeB_prefix + 'NB showed ' + str(ulschReceiveOK) + ' "ULSCH received ok" message(s)'
logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m') logging.debug('\u001B[1;30;43m ' + statMsg + ' \u001B[0m')
......
<!--
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.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>test-05-tm1</htmlTabRef>
<htmlTabName>Test-05MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList>
030201
040101
030101 040301 040501 040603 040604 040605 040606 040607 040641 040642 040643 040644 040401 040201 030201
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="030101">
<class>Initialize_eNB</class>
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf</Initialize_eNB_args>
<air_interface>ocp</air_interface>
</testCase>
<testCase id="030201">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
<air_interface>ocp</air_interface>
</testCase>
<testCase id="040101">
<class>Initialize_UE</class>
<desc>Initialize UE</desc>
</testCase>
<testCase id="040201">
<class>Terminate_UE</class>
<desc>Terminate UE</desc>
</testCase>
<testCase id="040301">
<class>Attach_UE</class>
<desc>Attach UE</desc>
</testCase>
<testCase id="040401">
<class>Detach_UE</class>
<desc>Detach UE</desc>
</testCase>
<testCase id="040501">
<class>Ping</class>
<desc>ping (5MHz - 20 sec)</desc>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>5</ping_packetloss_threshold>
</testCase>
<testCase id="040603">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(balanced profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040604">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040605">
<class>Iperf</class>
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(unbalanced profile)</desc>
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>unbalanced</iperf_profile>
</testCase>
<testCase id="040606">
<class>Iperf</class>
<desc>iperf (5MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
<iperf_args>-t 30 -i 1 -fm</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040607">
<class>Iperf</class>
<desc>iperf (5MHz - DL/TCP)(30 sec)(balanced profile)</desc>
<iperf_args>-t 30 -i 1 -fm</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040641">
<class>Iperf</class>
<desc>iperf (5MHz - UL/9Mbps/UDP)(30 sec)(balanced profile)</desc>
<iperf_args>-u -b 9M -t 30 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
<testCase id="040642">
<class>Iperf</class>
<desc>iperf (5MHz - UL/9Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 9M -t 30 -i 1 -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040643">
<class>Iperf</class>
<desc>iperf (5MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="040644">
<class>Iperf</class>
<desc>iperf (5MHz - UL/TCP)(30 sec)(balanced profile)</desc>
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
<iperf_profile>balanced</iperf_profile>
</testCase>
</testCaseList>
<!--
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.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>build-tab</htmlTabRef>
<htmlTabName>Build</htmlTabName>
<htmlTabIcon>wrench</htmlTabIcon>
<TestCaseRequestedList>
010101
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="010101">
<class>Build_eNB</class>
<desc>Build eNB OCP (USRP)</desc>
<Build_eNB_args>-I -w USRP -c --eNBocp --ninja</Build_eNB_args>
</testCase>
</testCaseList>
...@@ -96,7 +96,9 @@ Options ...@@ -96,7 +96,9 @@ Options
enable cmake debugging messages enable cmake debugging messages
--eNB --eNB
Makes the LTE softmodem Makes the LTE softmodem
--gNB --eNBocp
Makes the OCP LTE softmodem
-gNB
Makes the NR softmodem Makes the NR softmodem
--nrUE --nrUE
Makes the NR UE softmodem Makes the NR UE softmodem
...@@ -237,6 +239,10 @@ function main() { ...@@ -237,6 +239,10 @@ function main() {
eNB=1 eNB=1
echo_info "Will compile eNB" echo_info "Will compile eNB"
shift;; shift;;
--eNBocp)
eNBocp=1
echo_info "Will compile OCP eNB"
shift;;
--gNB) --gNB)
gNB=1 gNB=1
NR="True" NR="True"
...@@ -443,7 +449,7 @@ function main() { ...@@ -443,7 +449,7 @@ function main() {
######################################################## ########################################################
# to be discussed # to be discussed
if [ "$eNB" = "1" -o "$gNB" = "1" ] ; then if [ "$eNB" = "1" -o "$eNBocp" = "1" -o "$gNB" = "1" ] ; then
if [ "$HW" = "None" -a "$TP" = "None" ] ; then if [ "$HW" = "None" -a "$TP" = "None" ] ; then
echo_info "No local radio head and no transport protocol selected" echo_info "No local radio head and no transport protocol selected"
fi fi
...@@ -574,7 +580,7 @@ function main() { ...@@ -574,7 +580,7 @@ function main() {
config_libconfig_shlib=params_libconfig config_libconfig_shlib=params_libconfig
# first generate the CMakefile in the right directory # first generate the CMakefile in the right directory
if [ "$eNB" = "1" -o "$UE" = "1" -o "$gNB" = "1" -o "$nrUE" = "1" -o "$HW" = "EXMIMO" ] ; then if [ "$eNB" = "1" -o "$eNBocp" = "1" -o "$UE" = "1" -o "$gNB" = "1" -o "$nrUE" = "1" -o "$HW" = "EXMIMO" ] ; then
# softmodem compilation # softmodem compilation
...@@ -606,6 +612,9 @@ function main() { ...@@ -606,6 +612,9 @@ function main() {
if [ "$eNB" = "1" ] ; then if [ "$eNB" = "1" ] ; then
execlist="$execlist lte-softmodem" execlist="$execlist lte-softmodem"
fi fi
if [ "$eNBocp" = "1" ] ; then
execlist="$execlist ocp-enb"
fi
if [ "$gNB" = "1" ] ; then if [ "$gNB" = "1" ] ; then
execlist="$execlist nr-softmodem" execlist="$execlist nr-softmodem"
fi fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment