Commit ffecf830 authored by Robert Schmidt's avatar Robert Schmidt

Merge branch 'integration_2023_w07' into 'develop'

integration_2023_w07

See merge request oai/openairinterface5g!1955

!1817 OAI LTE improvements
!1925 Avoid saturation in PUSCH for UL channel estimation
!1940 5G UE IMEISV 16 digits
!1944 fixes in limiting MCS and number of PRB while handling NR PHR
!1953 bugfix: length type too short
!1935 updating simulators docker-compose files for CN5G release v1.5
!1941 Dockerfile for aw2s RRUs on u18.04
!1956 Updated 5G L2sim tutorial
!1951 Conditional compilation of the T1 and CUDA offload libs
!1926 CI custom command
parents 2de56bf3 5824a060
...@@ -140,29 +140,6 @@ set (OPENAIR_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}) ...@@ -140,29 +140,6 @@ set (OPENAIR_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
project (OpenAirInterface) project (OpenAirInterface)
##############################################
# Base CUDA setting
##############################################
find_package(CUDA)
if (CUDA_FOUND)
message ("cuda include ${CUDA_INCLUDE_DIRS}")
message ("cuda library ${CUDA_LIBRARY_DIRS}")
add_definitions("-L/usr/local/cuda/lib64")
SET(CUDA_NVCC_FLAGS
"${CUDA_NVCC_FLAGS};-arch=sm_60;")
# Disable warnings for CUDA
SET(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-lpthread;-w;-O3;--default-stream;per-thread;-I/usr/local/cuda/inc;-L/usr/local/cuda/lib -lcutil;-rdc=true;-lcudadevrt")
SET(CUDA_VERBOSE_BUILD ON)
SET(CUDA_SEPARABLE_COMPILATION ON)
else (CUDA_FOUND)
message ("No CUDA tool installed")
endif ()
#################################################### ####################################################
# compilation flags # compilation flags
############################################# #############################################
...@@ -618,26 +595,19 @@ target_link_libraries(benetel_5g PRIVATE asn1_nr_rrc asn1_lte_rrc) ...@@ -618,26 +595,19 @@ target_link_libraries(benetel_5g PRIVATE asn1_nr_rrc asn1_lte_rrc)
# LDPC offload library # LDPC offload library
########################################################## ##########################################################
# there is no generic way to test for T1 Offload, it simply comes with the add_boolean_option(ENABLE_LDPC_T1 OFF "Build support for LDPC Offload to T1 library")
# shared object if (ENABLE_LDPC_T1)
if (EXISTS "/usr/local/lib64/librte_pmd_hpac_sdfec_pmd.so") pkg_check_modules(LIBDPDK_T1 REQUIRED libdpdk=20.05.0)
set(T1_OFFLOAD_FOUND TRUE) find_library(T1 NAMES rte_pmd_hpac_sdfec_pmd REQUIRED)
else() if (NOT T1)
set(T1_OFFLOAD_FOUND FALSE) message(FATAL_ERROR "Library rte_pmd_hpac_sdfec_pmd for T1 offload not found")
endif()
add_library(ldpc_t1 MODULE ${OPENAIR1_DIR}/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c)
set_target_properties(ldpc_t1 PROPERTIES COMPILE_FLAGS "-DALLOW_EXPERIMENTAL_API")
target_compile_options(ldpc_t1 PRIVATE ${LIBDPDK_T1_CFLAGS})
target_link_libraries(ldpc_t1 ${LIBDPDK_T1_LDFLAGS} ${T1})
endif() endif()
if(T1_OFFLOAD_FOUND)
message(STATUS "T1 Offload support detected")
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/lib64/pkgconfig/")
pkg_search_module(LIBDPDK REQUIRED libdpdk=20.05.0)
add_library(ldpc_offload MODULE ${OPENAIR1_DIR}/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c)
set_target_properties(ldpc_offload PROPERTIES COMPILE_FLAGS "-DALLOW_EXPERIMENTAL_API")
target_compile_options(ldpc_offload PRIVATE ${LIBDPDK_CFLAGS})
target_link_libraries(ldpc_offload ${LIBDPDK_LDFLAGS} rte_pmd_hpac_sdfec_pmd "-Wl,-rpath /usr/local/lib64")
else()
message(STATUS "No T1 Offload support detected")
endif ()
########################################################## ##########################################################
include_directories ("${OPENAIR_DIR}/radio/COMMON") include_directories ("${OPENAIR_DIR}/radio/COMMON")
...@@ -1033,16 +1003,26 @@ add_library(ldpc_cl MODULE ${PHY_LDPC_CL_SRC} ) ...@@ -1033,16 +1003,26 @@ add_library(ldpc_cl MODULE ${PHY_LDPC_CL_SRC} )
target_link_libraries(ldpc_cl OpenCL) target_link_libraries(ldpc_cl OpenCL)
add_dependencies(ldpc_cl nrLDPC_decoder_kernels_CL) add_dependencies(ldpc_cl nrLDPC_decoder_kernels_CL)
if (CUDA_FOUND)
cuda_add_library(ldpc_cuda MODULE ${PHY_LDPC_CUDA_SRC} ) ##############################################
# Base CUDA setting
##############################################
add_boolean_option(BUILD_CUDA False "Build support for CUDA")
if (ENABLE_LDPC_CUDA)
find_package(CUDA REQUIRED)
SET(CUDA_NVCC_FLAG "${CUDA_NVCC_FLAGS};-arch=sm_60;")
SET(CUDA_VERBOSE_BUILD ON)
cuda_add_library(ldpc_cuda MODULE ${PHY_LDPC_CUDA_SRC})
set_target_properties(ldpc_cuda PROPERTIES CUDA_SEPARABLE_COMPILATION ON) set_target_properties(ldpc_cuda PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
# CUDA_ADD_CUFFT_TO_TARGET(ldpc_cuda) if (NOT CUDA_FOUND)
endif (CUDA_FOUND) message(FATAL_ERROR "no CUDA found")
endif()
endif()
add_library(ldpc MODULE ${PHY_LDPC_OPTIM8SEGMULTI_SRC} ) add_library(ldpc MODULE ${PHY_LDPC_OPTIM8SEGMULTI_SRC} )
target_link_libraries(ldpc PRIVATE ldpc_gen_HEADERS) target_link_libraries(ldpc PRIVATE ldpc_gen_HEADERS)
add_library(coding MODULE ${PHY_TURBOSRC} ) add_library(coding MODULE ${PHY_TURBOSRC} )
target_link_libraries(coding PRIVATE asn1_nr_rrc asn1_lte_rrc) target_link_libraries(coding PRIVATE asn1_nr_rrc asn1_lte_rrc)
...@@ -2384,11 +2364,11 @@ target_link_libraries(nr-softmodem PRIVATE ${LIB_LMS_LIBRARIES}) ...@@ -2384,11 +2364,11 @@ target_link_libraries(nr-softmodem PRIVATE ${LIB_LMS_LIBRARIES})
target_link_libraries(nr-softmodem PRIVATE ${T_LIB}) target_link_libraries(nr-softmodem PRIVATE ${T_LIB})
target_link_libraries(nr-softmodem PRIVATE asn1_nr_rrc asn1_lte_rrc) target_link_libraries(nr-softmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_dependencies( nr-softmodem ldpc_orig ldpc_optim ldpc_optim8seg ldpc) add_dependencies(nr-softmodem ldpc_orig ldpc_optim ldpc_optim8seg ldpc)
if(T1_OFFLOAD_FOUND) if (ENABLE_LDPC_T1)
add_dependencies( nr-softmodem ldpc_offload) add_dependencies(nr-softmodem ldpc_t1)
endif () endif()
# force the generation of ASN.1 so that we don't need to wait during the build # force the generation of ASN.1 so that we don't need to wait during the build
target_link_libraries(nr-softmodem PRIVATE target_link_libraries(nr-softmodem PRIVATE
...@@ -2451,10 +2431,10 @@ target_link_libraries(nr-uesoftmodem PRIVATE ${T_LIB}) ...@@ -2451,10 +2431,10 @@ target_link_libraries(nr-uesoftmodem PRIVATE ${T_LIB})
target_link_libraries(nr-uesoftmodem PRIVATE asn1_nr_rrc asn1_lte_rrc) target_link_libraries(nr-uesoftmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_dependencies( nr-uesoftmodem ldpc_orig ldpc_optim ldpc_optim8seg ldpc ) add_dependencies( nr-uesoftmodem ldpc_orig ldpc_optim ldpc_optim8seg ldpc )
if (CUDA_FOUND) if (ENABLE_LDPC_CUDA)
add_dependencies( nr-uesoftmodem ldpc_cuda) add_dependencies(nr-uesoftmodem ldpc_cuda)
add_dependencies( nr-softmodem ldpc_cuda) add_dependencies(nr-softmodem ldpc_cuda)
endif (CUDA_FOUND) endif()
# force the generation of ASN.1 so that we don't need to wait during the build # force the generation of ASN.1 so that we don't need to wait during the build
target_link_libraries(nr-uesoftmodem PRIVATE target_link_libraries(nr-uesoftmodem PRIVATE
...@@ -2523,9 +2503,9 @@ add_executable(ldpctest ...@@ -2523,9 +2503,9 @@ add_executable(ldpctest
) )
add_dependencies( ldpctest ldpc_orig ldpc_optim ldpc_optim8seg ldpc ) add_dependencies( ldpctest ldpc_orig ldpc_optim ldpc_optim8seg ldpc )
if (CUDA_FOUND) if (ENABLE_LDPC_CUDA)
add_dependencies( ldpctest ldpc_cuda) add_dependencies(ldpctest ldpc_cuda)
endif (CUDA_FOUND) endif()
target_link_libraries(ldpctest PRIVATE target_link_libraries(ldpctest PRIVATE
-Wl,--start-group UTIL SIMU PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group -Wl,--start-group UTIL SIMU PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} dl m pthread ${ATLAS_LIBRARIES} dl
...@@ -2634,9 +2614,9 @@ add_executable(nr_ulsim ...@@ -2634,9 +2614,9 @@ add_executable(nr_ulsim
${SHLIB_LOADER_SOURCES} ${SHLIB_LOADER_SOURCES}
) )
if(T1_OFFLOAD_FOUND) if (ENABLE_LDPC_T1)
add_dependencies( nr_ulsim ldpc_offload) add_dependencies(nr_ulsim ldpc_t1)
endif () endif()
target_link_libraries(nr_ulsim PRIVATE target_link_libraries(nr_ulsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON lte_rrc nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group -Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON lte_rrc nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group
......
...@@ -77,7 +77,7 @@ pipeline { ...@@ -77,7 +77,7 @@ pipeline {
withCredentials([ withCredentials([
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.DH_Credentials}", usernameVariable: 'DH_Username', passwordVariable: 'DH_Password'] [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.DH_Credentials}", usernameVariable: 'DH_Username', passwordVariable: 'DH_Password']
]) { ]) {
def listOfImages = ["oai-enb", "oai-gnb", "oai-lte-ue", "oai-nr-ue"] def listOfImages = ["oai-enb", "oai-gnb", "oai-lte-ue", "oai-nr-ue", "oai-nr-cuup"]
// Logging in on both registries // Logging in on both registries
sh "docker login -u ${DH_Username} -p ${DH_Password} > /dev/null 2>&1" sh "docker login -u ${DH_Username} -p ${DH_Password} > /dev/null 2>&1"
sh "docker login -u oaicicd -p oaicicd porcepix.sboai.cs.eurecom.fr > /dev/null 2>&1" sh "docker login -u oaicicd -p oaicicd porcepix.sboai.cs.eurecom.fr > /dev/null 2>&1"
......
...@@ -74,23 +74,22 @@ class Cmd(metaclass=abc.ABCMeta): ...@@ -74,23 +74,22 @@ class Cmd(metaclass=abc.ABCMeta):
class LocalCmd(Cmd): class LocalCmd(Cmd):
def __init__(self, d = None): def __init__(self, d = None):
self.cwd = d self.cwd = d
if self.cwd is not None:
logging.debug(f'Working dir is {self.cwd}')
self.cp = sp.CompletedProcess(args='', returncode=0, stdout='') self.cp = sp.CompletedProcess(args='', returncode=0, stdout='')
def run(self, line, timeout=300, silent=False, reportNonZero=True): def run(self, line, timeout=300, silent=False, reportNonZero=True):
if type(line) is str:
line = [s for s in line.split(' ') if len(s) > 0]
if not silent: if not silent:
logging.debug(' '.join(line)) logging.info(line)
try: try:
ret = sp.run(line, cwd=self.cwd, stdout=sp.PIPE, stderr=sp.STDOUT, timeout=timeout) ret = sp.run(line, shell=True, cwd=self.cwd, stdout=sp.PIPE, stderr=sp.STDOUT, timeout=timeout)
except Exception as e: except Exception as e:
ret = sp.CompletedProcess(args=line, returncode=255, stdout=f'Exception: {str(e)}'.encode('utf-8')) ret = sp.CompletedProcess(args=line, returncode=255, stdout=f'Exception: {str(e)}'.encode('utf-8'))
if ret.stdout is None: if ret.stdout is None:
ret.stdout = b'' ret.stdout = b''
ret.stdout = ret.stdout.decode('utf-8').strip() ret.stdout = ret.stdout.decode('utf-8').strip()
if reportNonZero and ret.returncode != 0: if reportNonZero and ret.returncode != 0:
cmd = ' '.join(ret.args) logging.warning(f'command "{ret.args}" returned non-zero returncode {ret.returncode}: output:\n{ret.stdout}')
logging.warning(f'command "{cmd}" returned non-zero returncode {ret.returncode}: output:\n{ret.stdout}')
self.cp = ret self.cp = ret
return ret return ret
......
This diff is collapsed.
...@@ -453,17 +453,6 @@ class OaiCiTest(): ...@@ -453,17 +453,6 @@ class OaiCiTest():
UE_prefix = 'NR ' UE_prefix = 'NR '
SSH = sshconnection.SSHConnection() SSH = sshconnection.SSHConnection()
SSH.open(self.UEIPAddress, self.UEUserName, self.UEPassword) SSH.open(self.UEIPAddress, self.UEUserName, self.UEPassword)
# b2xx_fx3_utils reset procedure
SSH.command('echo ' + self.UEPassword + ' | sudo -S uhd_find_devices', '\$', 180)
result = re.search('type: b200', SSH.getBefore())
if result is not None:
logging.debug('Found a B2xx device --> resetting it')
SSH.command('echo ' + self.UEPassword + ' | sudo -S b2xx_fx3_utils --reset-device', '\$', 10)
# Reloading FGPA bin firmware
SSH.command('echo ' + self.UEPassword + ' | sudo -S uhd_find_devices', '\$', 180)
result = re.search('type: n3xx', str(SSH.getBefore()))
if result is not None:
logging.debug('Found a N3xx device --> resetting it')
SSH.command('cd ' + self.UESourceCodePath, '\$', 5) SSH.command('cd ' + self.UESourceCodePath, '\$', 5)
# Initialize_OAI_UE_args usually start with -C and followed by the location in repository # Initialize_OAI_UE_args usually start with -C and followed by the location in repository
SSH.command('source oaienv', '\$', 5) SSH.command('source oaienv', '\$', 5)
......
...@@ -66,8 +66,8 @@ class EPCManagement(): ...@@ -66,8 +66,8 @@ class EPCManagement():
self.mmeConfFile = 'mme.conf' self.mmeConfFile = 'mme.conf'
self.yamlPath = '' self.yamlPath = ''
self.isMagmaUsed = False self.isMagmaUsed = False
self.cfgDeploy = '--type start-mini --fqdn yes --scenario 1 --capture /tmp/oai-cn5g-v1.3.pcap' #from xml, 'mini' is default normal for docker-network.py self.cfgDeploy = '--type start-mini --scenario 1 --capture /tmp/oai-cn5g-v1.5.pcap' #from xml, 'mini' is default normal for docker-network.py
self.cfgUnDeploy = '--type stop-mini --fqdn yes --scenario 1' #from xml, 'mini' is default normal for docker-network.py self.cfgUnDeploy = '--type stop-mini --scenario 1' #from xml, 'mini' is default normal for docker-network.py
#----------------------------------------------------------- #-----------------------------------------------------------
...@@ -253,18 +253,18 @@ class EPCManagement(): ...@@ -253,18 +253,18 @@ class EPCManagement():
logging.debug('Starting OAI CN5G') logging.debug('Starting OAI CN5G')
mySSH.command('if [ -d ' + self.SourceCodePath + '/scripts ]; then echo ' + self.Password + ' | sudo -S rm -Rf ' + self.SourceCodePath + '/scripts ; fi', '\$', 5) mySSH.command('if [ -d ' + self.SourceCodePath + '/scripts ]; then echo ' + self.Password + ' | sudo -S rm -Rf ' + self.SourceCodePath + '/scripts ; fi', '\$', 5)
mySSH.command('mkdir -p ' + self.SourceCodePath + '/scripts', '\$', 5) mySSH.command('mkdir -p ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('cd /opt/oai-cn5g-fed-v1.4/docker-compose', '\$', 5) mySSH.command('cd /opt/oai-cn5g-fed-v1.5/docker-compose', '\$', 5)
mySSH.command('python3 ./core-network.py '+self.cfgDeploy, '\$', 60) mySSH.command('python3 ./core-network.py '+self.cfgDeploy, '\$', 60)
if re.search('start-mini-as-ue', self.cfgDeploy): if re.search('start-mini-as-ue', self.cfgDeploy):
dFile = 'docker-compose-mini-nrf-asue.yaml' dFile = 'docker-compose-mini-nrf-asue.yaml'
else: else:
dFile = 'docker-compose-mini-nrf.yaml' dFile = 'docker-compose-mini-nrf.yaml'
mySSH.command('docker-compose -p 5gcn -f ' + dFile + ' ps -a', '\$', 60) mySSH.command('docker-compose -f ' + dFile + ' ps -a', '\$', 60)
if mySSH.getBefore().count('Up (healthy)') != 6: if mySSH.getBefore().count('Up (healthy)') != 6:
logging.error('Not all container healthy') logging.error('Not all container healthy')
else: else:
logging.debug('OK --> all containers are healthy') logging.debug('OK --> all containers are healthy')
mySSH.command('docker-compose -p 5gcn -f ' + dFile + ' config | grep --colour=never image', '\$', 10) mySSH.command('docker-compose -f ' + dFile + ' config | grep --colour=never image', '\$', 10)
listOfImages = mySSH.getBefore() listOfImages = mySSH.getBefore()
for imageLine in listOfImages.split('\\r\\n'): for imageLine in listOfImages.split('\\r\\n'):
res1 = re.search('image: (?P<name>[a-zA-Z0-9\-/]+):(?P<tag>[a-zA-Z0-9\-]+)', str(imageLine)) res1 = re.search('image: (?P<name>[a-zA-Z0-9\-/]+):(?P<tag>[a-zA-Z0-9\-]+)', str(imageLine))
...@@ -537,11 +537,11 @@ class EPCManagement(): ...@@ -537,11 +537,11 @@ class EPCManagement():
mySSH.command('docker logs ' + c + ' > ' + self.SourceCodePath + '/logs/' + c + '.log', '\$', 5) mySSH.command('docker logs ' + c + ' > ' + self.SourceCodePath + '/logs/' + c + '.log', '\$', 5)
logging.debug('Terminating OAI CN5G') logging.debug('Terminating OAI CN5G')
mySSH.command('cd /opt/oai-cn5g-fed-v1.4/docker-compose', '\$', 5) mySSH.command('cd /opt/oai-cn5g-fed-v1.5/docker-compose', '\$', 5)
mySSH.command('python3 ./core-network.py '+self.cfgUnDeploy, '\$', 60) mySSH.command('python3 ./core-network.py '+self.cfgUnDeploy, '\$', 60)
mySSH.command('docker volume prune --force || true', '\$', 60) mySSH.command('docker volume prune --force || true', '\$', 60)
time.sleep(2) time.sleep(2)
mySSH.command('tshark -r /tmp/oai-cn5g-v1.3.pcap | egrep --colour=never "Tracking area update" ','\$', 30) mySSH.command('tshark -r /tmp/oai-cn5g-v1.5.pcap | egrep --colour=never "Tracking area update" ','\$', 30)
result = re.search('Tracking area update request', mySSH.getBefore()) result = re.search('Tracking area update request', mySSH.getBefore())
if result is not None: if result is not None:
message = 'UE requested ' + str(mySSH.getBefore().count('Tracking area update request')) + 'Tracking area update request(s)' message = 'UE requested ' + str(mySSH.getBefore().count('Tracking area update request')) + 'Tracking area update request(s)'
...@@ -828,7 +828,7 @@ class EPCManagement(): ...@@ -828,7 +828,7 @@ class EPCManagement():
mySSH.command('zip mme.log.zip mme_check_run.*', '\$', 60) mySSH.command('zip mme.log.zip mme_check_run.*', '\$', 60)
elif re.match('OAICN5G', self.Type, re.IGNORECASE): elif re.match('OAICN5G', self.Type, re.IGNORECASE):
mySSH.command('cd ' + self.SourceCodePath + '/logs','\$', 5) mySSH.command('cd ' + self.SourceCodePath + '/logs','\$', 5)
mySSH.command('cp -f /tmp/oai-cn5g-v1.3.pcap .','\$', 30) mySSH.command('cp -f /tmp/oai-cn5g-v1.5.pcap .','\$', 30)
mySSH.command('zip mme.log.zip oai-amf.log oai-nrf.log oai-cn5g*.pcap','\$', 30) mySSH.command('zip mme.log.zip oai-amf.log oai-nrf.log oai-cn5g*.pcap','\$', 30)
mySSH.command('mv mme.log.zip ' + self.SourceCodePath + '/scripts','\$', 30) mySSH.command('mv mme.log.zip ' + self.SourceCodePath + '/scripts','\$', 30)
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE): elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
......
...@@ -70,6 +70,7 @@ import subprocess ...@@ -70,6 +70,7 @@ import subprocess
from multiprocessing import Process, Lock, SimpleQueue from multiprocessing import Process, Lock, SimpleQueue
logging.basicConfig( logging.basicConfig(
level=logging.DEBUG, level=logging.DEBUG,
stream=sys.stdout,
format="[%(asctime)s] %(levelname)8s: %(message)s" format="[%(asctime)s] %(levelname)8s: %(message)s"
) )
...@@ -498,6 +499,9 @@ def GetParametersFromXML(action): ...@@ -498,6 +499,9 @@ def GetParametersFromXML(action):
string_field = test.findtext('test_svr_id') string_field = test.findtext('test_svr_id')
if (string_field is not None): if (string_field is not None):
CONTAINERS.testSvrId = string_field CONTAINERS.testSvrId = string_field
elif action == 'Custom_Command':
RAN.node = test.findtext('node')
RAN.command = test.findtext('command')
else: else:
logging.warning(f"unknown action {action} from option-parsing point-of-view") logging.warning(f"unknown action {action} from option-parsing point-of-view")
...@@ -879,6 +883,9 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re ...@@ -879,6 +883,9 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
RAN.BuildeNB(HTML) RAN.BuildeNB(HTML)
elif action == 'WaitEndBuild_eNB': elif action == 'WaitEndBuild_eNB':
RAN.WaitBuildeNBisFinished(HTML) RAN.WaitBuildeNBisFinished(HTML)
elif action == 'Custom_Command':
logging.info(f"Executing custom command")
RAN.CustomCommand(HTML)
elif action == 'Initialize_eNB': elif action == 'Initialize_eNB':
check_eNB = False check_eNB = False
check_OAI_UE = False check_OAI_UE = False
......
...@@ -38,6 +38,7 @@ import os ...@@ -38,6 +38,7 @@ import os
import time import time
from multiprocessing import Process, Lock, SimpleQueue from multiprocessing import Process, Lock, SimpleQueue
import yaml import yaml
import cls_cmd
#----------------------------------------------------------- #-----------------------------------------------------------
...@@ -96,6 +97,8 @@ class RANManagement(): ...@@ -96,6 +97,8 @@ class RANManagement():
#checkers from xml #checkers from xml
self.ran_checkers={} self.ran_checkers={}
self.cmd_prefix = '' # prefix before {lte,nr}-softmodem self.cmd_prefix = '' # prefix before {lte,nr}-softmodem
self.node = ''
self.command = ''
#----------------------------------------------------------- #-----------------------------------------------------------
...@@ -259,6 +262,21 @@ class RANManagement(): ...@@ -259,6 +262,21 @@ class RANManagement():
mySSH.close() mySSH.close()
self.checkBuildeNB(lIpAddr, lUserName, lPassWord, lSourcePath, self.backgroundBuildTestId[int(self.eNB_instance)], HTML) self.checkBuildeNB(lIpAddr, lUserName, lPassWord, lSourcePath, self.backgroundBuildTestId[int(self.eNB_instance)], HTML)
def CustomCommand(self, HTML):
if self.node == '' or self.node == "localhost":
cmd = cls_cmd.LocalCmd()
else:
cmd = cls_cmd.RemoteCmd(self.node)
ret = cmd.run(self.command)
cmd.close()
logging.debug(f'CustomCommand: {self.command} returnCode: {ret.returncode} output: {ret.stdout}')
html_queue = SimpleQueue()
status = 'OK'
if ret.returncode != 0:
html_queue.put(ret.stdout)
status = 'Warning'
HTML.CreateHtmlTestRow(self.command, status, 1, html_queue)
def checkBuildeNB(self, lIpAddr, lUserName, lPassWord, lSourcePath, testcaseId, HTML): def checkBuildeNB(self, lIpAddr, lUserName, lPassWord, lSourcePath, testcaseId, HTML):
HTML.testCase_id=testcaseId HTML.testCase_id=testcaseId
...@@ -347,17 +365,6 @@ class RANManagement(): ...@@ -347,17 +365,6 @@ class RANManagement():
cwd = os.getcwd() cwd = os.getcwd()
mySSH.copyout(lIpAddr,lUserName,lPassWord, cwd + "/active_net_interfaces.awk", "/tmp") mySSH.copyout(lIpAddr,lUserName,lPassWord, cwd + "/active_net_interfaces.awk", "/tmp")
#reboot USRP if requested in xml
if self.USRPIPAddress!='':
logging.debug('USRP '+ self.USRPIPAddress +': reboot request')
mySSH.open(lIpAddr, lUserName, lPassWord)
cmd2usrp='ssh root@'+self.USRPIPAddress+' reboot'
mySSH.command2(cmd2usrp,1)
mySSH.close()
logging.debug('Waiting for USRP to be ready')
time.sleep(120)
if (self.pStatus < 0): if (self.pStatus < 0):
HTML.CreateHtmlTestRow(self.air_interface[self.eNB_instance] + ' ' + self.Initialize_eNB_args, 'KO', self.pStatus) HTML.CreateHtmlTestRow(self.air_interface[self.eNB_instance] + ' ' + self.Initialize_eNB_args, 'KO', self.pStatus)
HTML.CreateHtmlTabFooter(False) HTML.CreateHtmlTabFooter(False)
...@@ -419,16 +426,6 @@ class RANManagement(): ...@@ -419,16 +426,6 @@ class RANManagement():
result = re.search('^rru|^rcc|^du.band', str(config_file)) result = re.search('^rru|^rcc|^du.band', str(config_file))
if result is not None: if result is not None:
rruCheck = True rruCheck = True
# do not reset board twice in IF4.5 case
result = re.search('^rru|^enb|^du.band', str(config_file))
if result is not None:
mySSH.command('echo ' + lPassWord + ' | sudo -S uhd_find_devices', '\$', 180)
result = re.search('type: b200', mySSH.getBefore())
if result is not None:
logging.debug('Found a B2xx device --> resetting it')
mySSH.command('echo ' + lPassWord + ' | sudo -S b2xx_fx3_utils --reset-device', '\$', 10)
# Reloading FGPA bin firmware
mySSH.command('echo ' + lPassWord + ' | sudo -S uhd_find_devices', '\$', 180)
# Make a copy and adapt to EPC / eNB IP addresses # Make a copy and adapt to EPC / eNB IP addresses
mySSH.command('cp ' + full_config_file + ' ' + ci_full_config_file, '\$', 5) mySSH.command('cp ' + full_config_file + ' ' + ci_full_config_file, '\$', 5)
localMmeIpAddr = EPC.MmeIPAddress localMmeIpAddr = EPC.MmeIPAddress
......
...@@ -51,3 +51,4 @@ ...@@ -51,3 +51,4 @@
- Push_Local_Registry - Push_Local_Registry
- Pull_Local_Registry - Pull_Local_Registry
- Clean_Test_Server_Images - Clean_Test_Server_Images
- Custom_Command
...@@ -27,12 +27,15 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1.xml ...@@ -27,12 +27,15 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1.xml
<htmlTabName>Test-FDD-05MHz-TM1</htmlTabName> <htmlTabName>Test-FDD-05MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111110 111110
300000
040101 040101
030101 030101
000001 000001
040301 000001 040501 040603 040604 040605 040606 040607 040641 040642 040643 040644 040401 040201 040301 000001 040501 040603 040604 040605 040606 040607 040641 040642 040643 040644 040401 040201
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -42,7 +45,24 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1.xml ...@@ -42,7 +45,24 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1.xml
<test_svr_id>0</test_svr_id> <test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull> <images_to_pull>oai-enb</images_to_pull>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>hutch</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>hutch</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="300000">
<class>Custom_Command</class>
<desc>To reset USRP</desc>
<node>hutch</node>
<command>sudo -S b2xx_fx3_utils --reset-device</command>
</testCase>
<testCase id="030101"> <testCase id="030101">
<class>Deploy_Object</class> <class>Deploy_Object</class>
<desc>Deploy eNB (FDD/Band7/5MHz/B200) in a container</desc> <desc>Deploy eNB (FDD/Band7/5MHz/B200) in a container</desc>
......
...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1_rrc_inactivity_no_flexran.xm ...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1_rrc_inactivity_no_flexran.xm
<htmlTabName>Test-FDD-05MHz-TM1-RRC-Inactivity</htmlTabName> <htmlTabName>Test-FDD-05MHz-TM1-RRC-Inactivity</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111110 111110
040101 040101
030102 030102
000010 040301 040502 000011 040302 000001 000012 040303 000002 000013 040503 040401 040201 000010 040301 040502 000011 040302 000001 000012 040303 000002 000013 040503 040401 040201
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -41,6 +43,18 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1_rrc_inactivity_no_flexran.xm ...@@ -41,6 +43,18 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1_rrc_inactivity_no_flexran.xm
<test_svr_id>0</test_svr_id> <test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull> <images_to_pull>oai-enb</images_to_pull>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>hutch</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>hutch</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030102"> <testCase id="030102">
<class>Deploy_Object</class> <class>Deploy_Object</class>
......
...@@ -28,12 +28,14 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml ...@@ -28,12 +28,14 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
<htmlTabName>Test-FDD-10MHz-TM1</htmlTabName> <htmlTabName>Test-FDD-10MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111110 111110
040101 040101
030111 030111
000001 000001
040301 040511 040613 040614 040615 040651 040652 040653 040654 040401 040201 040301 040511 040613 040614 040615 040651 040652 040653 040654 040401 040201
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -43,6 +45,18 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml ...@@ -43,6 +45,18 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
<test_svr_id>0</test_svr_id> <test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull> <images_to_pull>oai-enb</images_to_pull>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>hutch</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>hutch</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030111"> <testCase id="030111">
<class>Deploy_Object</class> <class>Deploy_Object</class>
......
...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml ...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
<htmlTabName>Test-FDD-10MHz-CDRX-TM1</htmlTabName> <htmlTabName>Test-FDD-10MHz-CDRX-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111110 111110
040101 040101
030112 030112
040301 040512 040612 040650 040401 040201 040301 040512 040612 040650 040401 040201
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -41,6 +43,18 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml ...@@ -41,6 +43,18 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
<test_svr_id>0</test_svr_id> <test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull> <images_to_pull>oai-enb</images_to_pull>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>hutch</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>hutch</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030112"> <testCase id="030112">
<class>Deploy_Object</class> <class>Deploy_Object</class>
......
...@@ -27,12 +27,14 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml ...@@ -27,12 +27,14 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
<htmlTabName>Test-FDD-20MHz-TM1</htmlTabName> <htmlTabName>Test-FDD-20MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111110 111110
040101 040101
030121 030121
000001 000001
040301 040521 040623 040624 040625 040662 040401 040201 040301 040521 040623 040624 040625 040662 040401 040201
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -42,6 +44,18 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml ...@@ -42,6 +44,18 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
<test_svr_id>0</test_svr_id> <test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull> <images_to_pull>oai-enb</images_to_pull>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>hutch</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>hutch</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030121"> <testCase id="030121">
<class>Deploy_Object</class> <class>Deploy_Object</class>
......
...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm1.xml ...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm1.xml
<htmlTabName>Test-TDD-05MHz-TM1</htmlTabName> <htmlTabName>Test-TDD-05MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111110 111110
040101 040101
030104 030104
040301 040501 040602 040601 040603 040604 040605 040642 040641 040643 040644 040645 040401 040201 040301 040501 040602 040601 040603 040604 040605 040642 040641 040643 040644 040645 040401 040201
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -41,6 +43,18 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm1.xml ...@@ -41,6 +43,18 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm1.xml
<test_svr_id>0</test_svr_id> <test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull> <images_to_pull>oai-enb</images_to_pull>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>starsky</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>starsky</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030104"> <testCase id="030104">
<class>Deploy_Object</class> <class>Deploy_Object</class>
......
...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm2.xml ...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm2.xml
<htmlTabName>Test-TDD-05MHz-TM2</htmlTabName> <htmlTabName>Test-TDD-05MHz-TM2</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111110 111110
040101 040101
030105 030105
040301 040502 040606 040608 040646 040648 040401 040201 040301 040502 040606 040608 040646 040648 040401 040201
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -41,7 +43,18 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm2.xml ...@@ -41,7 +43,18 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm2.xml
<test_svr_id>0</test_svr_id> <test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull> <images_to_pull>oai-enb</images_to_pull>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>starsky</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>starsky</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030105"> <testCase id="030105">
<class>Deploy_Object</class> <class>Deploy_Object</class>
<desc>Deploy eNB (TDD/Band40/5MHz/B200) in a container</desc> <desc>Deploy eNB (TDD/Band40/5MHz/B200) in a container</desc>
......
...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band40_test_10mhz_tm1.xml ...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band40_test_10mhz_tm1.xml
<htmlTabName>Test-TDD-10MHz-TM1</htmlTabName> <htmlTabName>Test-TDD-10MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111110 111110
040101 040101
030114 030114
040301 040511 040612 040611 040613 040614 040615 040652 040651 040653 040654 040655 040401 040201 040301 040511 040612 040611 040613 040614 040615 040652 040651 040653 040654 040655 040401 040201
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -41,7 +43,18 @@ Replaces xml_files/enb_usrp210_band40_test_10mhz_tm1.xml ...@@ -41,7 +43,18 @@ Replaces xml_files/enb_usrp210_band40_test_10mhz_tm1.xml
<test_svr_id>0</test_svr_id> <test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull> <images_to_pull>oai-enb</images_to_pull>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>starsky</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>starsky</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030114"> <testCase id="030114">
<class>Deploy_Object</class> <class>Deploy_Object</class>
<desc>Deploy eNB (TDD/Band40/10MHz/B200) in a container</desc> <desc>Deploy eNB (TDD/Band40/10MHz/B200) in a container</desc>
......
...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1.xml ...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1.xml
<htmlTabName>Test-TDD-20MHz-TM1</htmlTabName> <htmlTabName>Test-TDD-20MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111110 111110
040101 040101
030124 030124
040301 040521 040622 040621 040623 040662 040401 040201 040301 040521 040622 040621 040623 040662 040401 040201
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -41,7 +43,18 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1.xml ...@@ -41,7 +43,18 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1.xml
<test_svr_id>0</test_svr_id> <test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull> <images_to_pull>oai-enb</images_to_pull>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>starsky</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>starsky</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030124"> <testCase id="030124">
<class>Deploy_Object</class> <class>Deploy_Object</class>
<desc>Deploy eNB (TDD/Band40/20MHz/B200) in a container</desc> <desc>Deploy eNB (TDD/Band40/20MHz/B200) in a container</desc>
......
...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1_default_scheduler.xml ...@@ -27,11 +27,13 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1_default_scheduler.xml
<htmlTabName>Test-TDD-20MHz-TM1-Default-Scheduler</htmlTabName> <htmlTabName>Test-TDD-20MHz-TM1-Default-Scheduler</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111110 111110
040101 040101
030125 030125
040301 040522 040627 040626 040628 040629 040630 040667 040666 040668 040669 040670 040401 040201 040301 040522 040627 040626 040628 040629 040630 040667 040666 040668 040669 040670 040401 040201
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -41,7 +43,18 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1_default_scheduler.xml ...@@ -41,7 +43,18 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1_default_scheduler.xml
<test_svr_id>0</test_svr_id> <test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull> <images_to_pull>oai-enb</images_to_pull>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>starsky</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>starsky</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030125"> <testCase id="030125">
<class>Deploy_Object</class> <class>Deploy_Object</class>
<desc>Deploy eNB (TDD/Band40/20MHz/B200) in a container</desc> <desc>Deploy eNB (TDD/Band40/20MHz/B200) in a container</desc>
......
...@@ -26,6 +26,9 @@ ...@@ -26,6 +26,9 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
200000
100000
500000
111110 111110
111111 111111
000001 000001
...@@ -47,6 +50,8 @@ ...@@ -47,6 +50,8 @@
000001 000001
030202 030202
030201 030201
300000
600000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -69,7 +74,36 @@ ...@@ -69,7 +74,36 @@
<desc>Initialize Quectel</desc> <desc>Initialize Quectel</desc>
<id>idefix</id> <id>idefix</id>
</testCase> </testCase>
<testCase id = "100000">
<class>Custom_Command</class>
<desc>To reset USRP</desc>
<node>nepes</node>
<command>sudo -S b2xx_fx3_utils --reset-device</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower - nepes</desc>
<node>nepes</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="300000">
<class>Custom_Command</class>
<desc>To reset cpupower - nepes</desc>
<node>nepes</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="500000">
<class>Custom_Command</class>
<desc>To reset cpupower - obelix</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="600000">
<class>Custom_Command</class>
<desc>To reset cpupower - obelix</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="010002"> <testCase id="010002">
<class>Terminate_UE</class> <class>Terminate_UE</class>
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
111111 111111
010002 010002
030101 030101
...@@ -39,6 +40,7 @@ ...@@ -39,6 +40,7 @@
010002 010002
000001 000001
030201 030201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<!-- <!--
070002 070002
...@@ -66,7 +68,18 @@ ...@@ -66,7 +68,18 @@
<desc>Terminate Quectel</desc> <desc>Terminate Quectel</desc>
<id>idefix</id> <id>idefix</id>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower - nepes</desc>
<node>nepes</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower - nepes</desc>
<node>nepes</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030101"> <testCase id="030101">
<class>Deploy_Object</class> <class>Deploy_Object</class>
<desc>Deploy gNB (TDD/Band78/40MHz/B200) in a container</desc> <desc>Deploy gNB (TDD/Band78/40MHz/B200) in a container</desc>
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
110002 110002
130101 130101
130102 130102
...@@ -37,6 +38,7 @@ ...@@ -37,6 +38,7 @@
110002 110002
100001 100001
130201 130201
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<!-- <!--
070001 070001
...@@ -77,7 +79,18 @@ ...@@ -77,7 +79,18 @@
<eNB_serverId>0</eNB_serverId> <eNB_serverId>0</eNB_serverId>
<services>gnb_du_tdd</services> <services>gnb_du_tdd</services>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>nepes</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>nepes</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="100001"> <testCase id="100001">
<class>IdleSleep</class> <class>IdleSleep</class>
<desc>Sleep</desc> <desc>Sleep</desc>
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
<htmlTabName>Build</htmlTabName> <htmlTabName>Build</htmlTabName>
<htmlTabIcon>wrench</htmlTabIcon> <htmlTabIcon>wrench</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
000001 000001
000002 000002
</TestCaseRequestedList> </TestCaseRequestedList>
...@@ -47,4 +48,11 @@ ...@@ -47,4 +48,11 @@
<eNB_serverId>0</eNB_serverId> <eNB_serverId>0</eNB_serverId>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reboot USRP</desc>
<node>obelix</node>
<command>ssh root@172.21.19.13 reboot ; sleep 45 </command>
</testCase>
</testCaseList> </testCaseList>
...@@ -26,7 +26,10 @@ ...@@ -26,7 +26,10 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
700000
010002 010002
300000
030000 030000
040000 040000
000002 000002
...@@ -42,6 +45,8 @@ ...@@ -42,6 +45,8 @@
010002 010002
080001 080001
080000 080000
200000
800000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -51,6 +56,30 @@ ...@@ -51,6 +56,30 @@
<id>nrmodule2_quectel</id> <id>nrmodule2_quectel</id>
<UE_Trace>yes</UE_Trace> <UE_Trace>yes</UE_Trace>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower - obelix</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower - obelix</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="700000">
<class>Custom_Command</class>
<desc>To reset cpupower - asterix</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="800000">
<class>Custom_Command</class>
<desc>To reset cpupower - asterix</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="010002"> <testCase id="010002">
...@@ -84,7 +113,12 @@ ...@@ -84,7 +113,12 @@
<rt_stats_cfg>datalog_rt_stats.2x2.yaml</rt_stats_cfg> <rt_stats_cfg>datalog_rt_stats.2x2.yaml</rt_stats_cfg>
<USRP_IPAddress>172.21.19.14</USRP_IPAddress> <USRP_IPAddress>172.21.19.14</USRP_IPAddress>
</testCase> </testCase>
<testCase id = "300000">
<class>Custom_Command</class>
<desc>To reboot USRP</desc>
<node>asterix</node>
<command>ssh root@172.21.19.14 reboot ; sleep 45</command>
</testCase>
<testCase id="000001"> <testCase id="000001">
<class>IdleSleep</class> <class>IdleSleep</class>
<desc>Sleep</desc> <desc>Sleep</desc>
......
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
300000
010002 010002
031000 031000
041000 041000
...@@ -49,6 +51,8 @@ ...@@ -49,6 +51,8 @@
010002 010002
080001 080001
080000 080000
200000
400000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -78,6 +82,31 @@ ...@@ -78,6 +82,31 @@
<id>nrmodule2_quectel</id> <id>nrmodule2_quectel</id>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower - asterix</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower - asterix</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="300000">
<class>Custom_Command</class>
<desc>To reset cpupower - obelix</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="400000">
<class>Custom_Command</class>
<desc>To reset cpupower - obelix</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="031000"> <testCase id="031000">
<class>Initialize_eNB</class> <class>Initialize_eNB</class>
......
...@@ -26,6 +26,9 @@ ...@@ -26,6 +26,9 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
200000
400000
010002 010002
030000 030000
040000 040000
...@@ -43,6 +46,8 @@ ...@@ -43,6 +46,8 @@
010002 010002
080001 080001
080000 080000
300000
500000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -52,12 +57,42 @@ ...@@ -52,12 +57,42 @@
<id>idefix</id> <id>idefix</id>
<UE_Trace>yes</UE_Trace> <UE_Trace>yes</UE_Trace>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset USRP</desc>
<node>obelix</node>
<command>sudo -S b2xx_fx3_utils --reset-device</command>
</testCase>
<testCase id="010002"> <testCase id="010002">
<class>Terminate_UE</class> <class>Terminate_UE</class>
<desc>Terminate Quectel</desc> <desc>Terminate Quectel</desc>
<id>idefix</id> <id>idefix</id>
</testCase> </testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower - obelix</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="300000">
<class>Custom_Command</class>
<desc>To reset cpupower - obelix</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="400000">
<class>Custom_Command</class>
<desc>To reset cpupower - nepes</desc>
<node>nepes</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="500000">
<class>Custom_Command</class>
<desc>To reset cpupower - nepes</desc>
<node>nepes</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030000"> <testCase id="030000">
<class>Initialize_eNB</class> <class>Initialize_eNB</class>
......
...@@ -26,12 +26,14 @@ ...@@ -26,12 +26,14 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
040000 040000
000001 000001
010000 010000
000002 000002
050000 050000
080000 080000
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -40,6 +42,18 @@ ...@@ -40,6 +42,18 @@
<desc>Run AS UE Scenario</desc> <desc>Run AS UE Scenario</desc>
<id>amarisoft_ue_1</id> <id>amarisoft_ue_1</id>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="040000"> <testCase id="040000">
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
040000 040000
000002 000002
010000 010000
...@@ -35,6 +36,7 @@ ...@@ -35,6 +36,7 @@
000001 000001
010002 010002
080000 080000
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -49,7 +51,18 @@ ...@@ -49,7 +51,18 @@
<class>Terminate_OAI_UE</class> <class>Terminate_OAI_UE</class>
<desc>Terminate OAI UE</desc> <desc>Terminate OAI UE</desc>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="040000"> <testCase id="040000">
<class>Initialize_eNB</class> <class>Initialize_eNB</class>
......
...@@ -26,7 +26,9 @@ ...@@ -26,7 +26,9 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
010002 010002
300000
040000 040000
000002 000002
010000 010000
...@@ -43,6 +45,7 @@ ...@@ -43,6 +45,7 @@
000001 000001
010002 010002
080000 080000
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -59,7 +62,24 @@ ...@@ -59,7 +62,24 @@
<desc>Terminate Quectel</desc> <desc>Terminate Quectel</desc>
<id>nrmodule2_quectel</id> <id>nrmodule2_quectel</id>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="300000">
<class>Custom_Command</class>
<desc>To reboot USRP</desc>
<node>asterix</node>
<command>ssh root@172.21.19.14 reboot ; sleep 45</command>
</testCase>
<testCase id="040000"> <testCase id="040000">
<class>Initialize_eNB</class> <class>Initialize_eNB</class>
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
010002 010002
042000 042000
000002 000002
...@@ -41,6 +42,7 @@ ...@@ -41,6 +42,7 @@
000001 000001
010002 010002
080000 080000
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -72,7 +74,18 @@ ...@@ -72,7 +74,18 @@
<USRP_IPAddress>172.21.19.14</USRP_IPAddress> <USRP_IPAddress>172.21.19.14</USRP_IPAddress>
<cmd_prefix>numactl --cpunodebind=netdev:ens2f0np0 --membind=netdev:ens2f0np0</cmd_prefix> <cmd_prefix>numactl --cpunodebind=netdev:ens2f0np0 --membind=netdev:ens2f0np0</cmd_prefix>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="000001"> <testCase id="000001">
<class>IdleSleep</class> <class>IdleSleep</class>
<desc>Sleep</desc> <desc>Sleep</desc>
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
011002 011002
100000
041000 041000
000002 000002
011000 011000
...@@ -47,6 +48,7 @@ ...@@ -47,6 +48,7 @@
000001 000001
011002 011002
081000 081000
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -56,8 +58,18 @@ ...@@ -56,8 +58,18 @@
<id>nrmodule2_quectel</id> <id>nrmodule2_quectel</id>
<UE_Trace>yes</UE_Trace> <UE_Trace>yes</UE_Trace>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>asterix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="011002"> <testCase id="011002">
<class>Terminate_UE</class> <class>Terminate_UE</class>
<desc>Terminate Quectel</desc> <desc>Terminate Quectel</desc>
......
...@@ -26,9 +26,21 @@ ...@@ -26,9 +26,21 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
090101 000001 090109 100000 090101 000001 090109 200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
<testCase id = "100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>caracal</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id = "200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>caracal</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="090101"> <testCase id="090101">
<class>Initialize_eNB</class> <class>Initialize_eNB</class>
......
...@@ -26,9 +26,21 @@ ...@@ -26,9 +26,21 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
190101 000001 190109 100000 190101 000001 190109 200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
<testCase id = "100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>caracal</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id = "200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>caracal</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="190101"> <testCase id="190101">
<class>Initialize_eNB</class> <class>Initialize_eNB</class>
......
...@@ -29,6 +29,18 @@ ...@@ -29,6 +29,18 @@
290101 000001 290109 290101 000001 290109
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>caracal</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>caracal</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="290101"> <testCase id="290101">
<class>Initialize_eNB</class> <class>Initialize_eNB</class>
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
<htmlTabIcon>wrench</htmlTabIcon> <htmlTabIcon>wrench</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
010101 010101
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -34,8 +35,15 @@ ...@@ -34,8 +35,15 @@
<mode>TesteNB</mode> <mode>TesteNB</mode>
<class>Build_eNB</class> <class>Build_eNB</class>
<desc>Build gNB (USRP)</desc> <desc>Build gNB (USRP)</desc>
<Build_eNB_args>--gNB -w USRP --ninja -c -P</Build_eNB_args> <Build_eNB_args>--gNB -w USRP --ninja -c -P --build-lib "ldpc_cuda"</Build_eNB_args>
<forced_workspace_cleanup>True</forced_workspace_cleanup> <forced_workspace_cleanup>True</forced_workspace_cleanup>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reboot USRP</desc>
<node>caracal</node>
<command>ssh root@192.168.20.2 reboot</command>
</testCase>
</testCaseList> </testCaseList>
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
010002 010002
030000 030000
000002 000002
...@@ -39,9 +40,21 @@ ...@@ -39,9 +40,21 @@
000001 000001
010002 010002
080000 080000
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="010000"> <testCase id="010000">
<class>Initialize_UE</class> <class>Initialize_UE</class>
<desc>Initialize Quectel</desc> <desc>Initialize Quectel</desc>
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
<htmlTabIcon>tasks</htmlTabIcon> <htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount> <repeatCount>1</repeatCount>
<TestCaseRequestedList> <TestCaseRequestedList>
100000
010002 010002
030001 030001
000002 000002
...@@ -39,6 +40,7 @@ ...@@ -39,6 +40,7 @@
000001 000001
010002 010002
080000 080000
200000
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
...@@ -49,6 +51,18 @@ ...@@ -49,6 +51,18 @@
<UE_Trace>yes</UE_Trace> <UE_Trace>yes</UE_Trace>
</testCase> </testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>To reset cpupower</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="010002"> <testCase id="010002">
<class>Terminate_UE</class> <class>Terminate_UE</class>
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<testCase id="060000"> <testCase id="060000">
<class>Terminate_5GCN</class> <class>Terminate_5GCN</class>
<desc>Terminate 5G Core</desc> <desc>Terminate 5G Core</desc>
<args>--type stop-mini-as-ue --fqdn yes --scenario 1</args> <args>--type stop-mini-as-ue --scenario 1</args>
</testCase> </testCase>
</testCaseList> </testCaseList>
...@@ -25,7 +25,8 @@ ...@@ -25,7 +25,8 @@
<htmlTabName>CN5G-Start</htmlTabName> <htmlTabName>CN5G-Start</htmlTabName>
<htmlTabIcon>log-in</htmlTabIcon> <htmlTabIcon>log-in</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
000100 100000
000100
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList> <TestCaseExclusionList>
</TestCaseExclusionList> </TestCaseExclusionList>
...@@ -33,7 +34,14 @@ ...@@ -33,7 +34,14 @@
<testCase id="000100"> <testCase id="000100">
<class>Initialize_5GCN</class> <class>Initialize_5GCN</class>
<desc>Initialize 5G Core</desc> <desc>Initialize 5G Core</desc>
<args>--type start-mini-as-ue --fqdn yes --scenario 1 --capture /tmp/oai-cn5g-v1.3.pcap</args> <args>--type start-mini-as-ue --scenario 1 --capture /tmp/oai-cn5g-v1.5.pcap</args>
</testCase>
<testCase id = "100000">
<class>Custom_Command</class>
<desc>To reboot USRP</desc>
<node>asterix</node>
<command>ssh root@172.21.19.14 reboot ; sleep 45</command>
</testCase> </testCase>
</testCaseList> </testCaseList>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<htmlTabName>CN5G-Start</htmlTabName> <htmlTabName>CN5G-Start</htmlTabName>
<htmlTabIcon>log-in</htmlTabIcon> <htmlTabIcon>log-in</htmlTabIcon>
<TestCaseRequestedList> <TestCaseRequestedList>
000100 000100
</TestCaseRequestedList> </TestCaseRequestedList>
<TestCaseExclusionList> <TestCaseExclusionList>
</TestCaseExclusionList> </TestCaseExclusionList>
...@@ -34,5 +34,4 @@ ...@@ -34,5 +34,4 @@
<class>Initialize_5GCN</class> <class>Initialize_5GCN</class>
<desc>Initialize 5G Core</desc> <desc>Initialize 5G Core</desc>
</testCase> </testCase>
</testCaseList> </testCaseList>
...@@ -180,7 +180,7 @@ services: ...@@ -180,7 +180,7 @@ services:
retries: 5 retries: 5
oai_enb: oai_enb:
image: oai-enb:develop image: oaisoftwarealliance/oai-enb:develop
privileged: true privileged: true
container_name: l2sim4g-oai-enb container_name: l2sim4g-oai-enb
network_mode: "host" network_mode: "host"
...@@ -230,7 +230,7 @@ services: ...@@ -230,7 +230,7 @@ services:
retries: 5 retries: 5
oai_ue1: oai_ue1:
image: oai-lte-ue:develop image: oaisoftwarealliance/oai-lte-ue:develop
privileged: true privileged: true
container_name: l2sim4g-oai-lte-ue1 container_name: l2sim4g-oai-lte-ue1
network_mode: "host" network_mode: "host"
...@@ -258,7 +258,7 @@ services: ...@@ -258,7 +258,7 @@ services:
retries: 5 retries: 5
oai_ue2: oai_ue2:
image: oai-lte-ue:develop image: oaisoftwarealliance/oai-lte-ue:develop
privileged: true privileged: true
container_name: l2sim4g-oai-lte-ue2 container_name: l2sim4g-oai-lte-ue2
network_mode: "host" network_mode: "host"
......
...@@ -54,9 +54,6 @@ $ docker image tag oaisoftwarealliance/oai-spgwc:latest oai-spgwc:latest ...@@ -54,9 +54,6 @@ $ docker image tag oaisoftwarealliance/oai-spgwc:latest oai-spgwc:latest
$ docker image tag oaisoftwarealliance/oai-hss:latest oai-hss:latest $ docker image tag oaisoftwarealliance/oai-hss:latest oai-hss:latest
$ docker image tag oaisoftwarealliance/oai-spgwu-tiny:latest oai-spgwu-tiny:latest $ docker image tag oaisoftwarealliance/oai-spgwu-tiny:latest oai-spgwu-tiny:latest
$ docker image tag oaisoftwarealliance/magma-mme:latest magma-mme:latest $ docker image tag oaisoftwarealliance/magma-mme:latest magma-mme:latest
$ docker image tag oaisoftwarealliance/oai-enb:develop oai-enb:develop
$ docker image tag oaisoftwarealliance/oai-lte-ue:develop oai-lte-ue:develop
``` ```
```bash ```bash
......
...@@ -180,7 +180,7 @@ services: ...@@ -180,7 +180,7 @@ services:
retries: 5 retries: 5
oai_enb0: oai_enb0:
image: oai-enb:develop image: oaisoftwarealliance/oai-enb:develop
privileged: true privileged: true
container_name: rfsim4g-oai-enb container_name: rfsim4g-oai-enb
networks: networks:
...@@ -214,7 +214,7 @@ services: ...@@ -214,7 +214,7 @@ services:
retries: 5 retries: 5
oai_ue0: oai_ue0:
image: oai-lte-ue:develop image: oaisoftwarealliance/oai-lte-ue:develop
privileged: true privileged: true
container_name: rfsim4g-oai-lte-ue0 container_name: rfsim4g-oai-lte-ue0
networks: networks:
......
...@@ -2,7 +2,7 @@ version: '3.8' ...@@ -2,7 +2,7 @@ version: '3.8'
services: services:
oai_enb0: oai_enb0:
image: oai-enb:develop image: oaisoftwarealliance/oai-enb:develop
privileged: true privileged: true
container_name: rfsim4g-oai-enb container_name: rfsim4g-oai-enb
networks: networks:
...@@ -36,7 +36,7 @@ services: ...@@ -36,7 +36,7 @@ services:
retries: 5 retries: 5
oai_ue0: oai_ue0:
image: oai-lte-ue:develop image: oaisoftwarealliance/oai-lte-ue:develop
privileged: true privileged: true
container_name: rfsim4g-oai-lte-ue0 container_name: rfsim4g-oai-lte-ue0
networks: networks:
......
...@@ -180,7 +180,7 @@ services: ...@@ -180,7 +180,7 @@ services:
retries: 5 retries: 5
oai_enb0: oai_enb0:
image: oai-enb:develop image: oaisoftwarealliance/oai-enb:develop
privileged: true privileged: true
container_name: rfsim4g-oai-enb container_name: rfsim4g-oai-enb
networks: networks:
...@@ -214,7 +214,7 @@ services: ...@@ -214,7 +214,7 @@ services:
retries: 5 retries: 5
oai_ue0: oai_ue0:
image: oai-lte-ue:develop image: oaisoftwarealliance/oai-lte-ue:develop
privileged: true privileged: true
container_name: rfsim4g-oai-lte-ue0 container_name: rfsim4g-oai-lte-ue0
networks: networks:
......
...@@ -180,7 +180,7 @@ services: ...@@ -180,7 +180,7 @@ services:
retries: 5 retries: 5
oai_enb0: oai_enb0:
image: oai-enb:develop image: oaisoftwarealliance/oai-enb:develop
privileged: true privileged: true
container_name: rfsim4g-oai-enb container_name: rfsim4g-oai-enb
networks: networks:
...@@ -214,7 +214,7 @@ services: ...@@ -214,7 +214,7 @@ services:
retries: 5 retries: 5
oai_ue0: oai_ue0:
image: oai-lte-ue:develop image: oaisoftwarealliance/oai-lte-ue:develop
privileged: true privileged: true
container_name: rfsim4g-oai-lte-ue0 container_name: rfsim4g-oai-lte-ue0
networks: networks:
......
...@@ -2,7 +2,7 @@ version: '3.8' ...@@ -2,7 +2,7 @@ version: '3.8'
services: services:
oai_enb0: oai_enb0:
image: oai-enb:develop image: oaisoftwarealliance/oai-enb:develop
privileged: true privileged: true
container_name: rfsim4g-oai-enb container_name: rfsim4g-oai-enb
networks: networks:
...@@ -22,7 +22,7 @@ services: ...@@ -22,7 +22,7 @@ services:
retries: 5 retries: 5
oai_ue0: oai_ue0:
image: oai-lte-ue:develop image: oaisoftwarealliance/oai-lte-ue:develop
privileged: true privileged: true
container_name: rfsim4g-oai-lte-ue0 container_name: rfsim4g-oai-lte-ue0
networks: networks:
......
...@@ -2,7 +2,7 @@ version: '3.8' ...@@ -2,7 +2,7 @@ version: '3.8'
services: services:
oai_enb0: oai_enb0:
image: oai-enb:develop image: oaisoftwarealliance/oai-enb:develop
privileged: true privileged: true
container_name: rfsim4g-oai-enb container_name: rfsim4g-oai-enb
networks: networks:
...@@ -22,7 +22,7 @@ services: ...@@ -22,7 +22,7 @@ services:
retries: 5 retries: 5
oai_ue0: oai_ue0:
image: oai-lte-ue:develop image: oaisoftwarealliance/oai-lte-ue:develop
privileged: true privileged: true
container_name: rfsim4g-oai-lte-ue0 container_name: rfsim4g-oai-lte-ue0
networks: networks:
......
...@@ -180,7 +180,7 @@ services: ...@@ -180,7 +180,7 @@ services:
retries: 5 retries: 5
oai_enb0: oai_enb0:
image: oai-enb:develop image: oaisoftwarealliance/oai-enb:develop
privileged: true privileged: true
container_name: rfsim4g-oai-enb container_name: rfsim4g-oai-enb
networks: networks:
...@@ -213,7 +213,7 @@ services: ...@@ -213,7 +213,7 @@ services:
retries: 5 retries: 5
oai_ue0: oai_ue0:
image: oai-lte-ue:develop image: oaisoftwarealliance/oai-lte-ue:develop
privileged: true privileged: true
container_name: rfsim4g-oai-lte-ue0 container_name: rfsim4g-oai-lte-ue0
networks: networks:
......
...@@ -2,27 +2,16 @@ version: '3.8' ...@@ -2,27 +2,16 @@ version: '3.8'
services: services:
oai-nrf: oai-nrf:
container_name: "rfsim5g-oai-nrf" container_name: "rfsim5g-oai-nrf"
image: oai-nrf:august-dev image: oaisoftwarealliance/oai-nrf:v1.5.0
environment: environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80 - TZ=Europe/Paris
- NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- NRF_API_VERSION=v1
- INSTANCE=0
- PID_DIRECTORY=/var/run
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.130 ipv4_address: 192.168.71.130
volumes:
- ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:5.7 image: mysql:8.0
volumes: volumes:
- ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
...@@ -36,17 +25,15 @@ services: ...@@ -36,17 +25,15 @@ services:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh" test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 30
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oai-amf:august-dev image: oaisoftwarealliance/oai-amf:v1.5.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- MCC=208 - MCC=208
- MNC=99 - MNC=99
- REGION_ID=128 - REGION_ID=128
...@@ -62,132 +49,85 @@ services: ...@@ -62,132 +49,85 @@ services:
- PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (1, 0xFFFFFF).
- SST_0=1 - SST_0=1
- SD_0=0xffffff
- SST_1=1
- SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
# One single SMF instance
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai-smf - SMF_FQDN_0=oai-smf
- SMF_IPV4_ADDR_0=0.0.0.0 - SMF_IPV4_ADDR_0=192.168.71.133
- SMF_HTTP_VERSION_0=v1
- SELECTED_0=true - SELECTED_0=true
- SMF_INSTANCE_ID_1=2 # mysql definition in AMF is mandatory in mini deployment.
- SMF_FQDN_1=oai-smf
- SMF_IPV4_ADDR_1=0.0.0.0
- SMF_HTTP_VERSION_1=v1
- SELECTED_1=false
- MYSQL_SERVER=192.168.71.131 - MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root - MYSQL_USER=root
- MYSQL_PASS=linux - MYSQL_PASS=linux
- MYSQL_DB=oai_db - MYSQL_DB=oai_db
- OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1 # NF registration
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80 - NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes - NF_REGISTRATION=yes
- SMF_SELECTION=yes - SMF_SELECTION=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- NRF_API_VERSION=v1 - USE_HTTP2=no
- NRF_FQDN=oai-nrf
- EXTERNAL_AUSF=no
- AUSF_IPV4_ADDRESS=0.0.0.0
- AUSF_PORT=80
- AUSF_API_VERSION=v1
- AUSF_FQDN=localhost
depends_on: depends_on:
- oai-nrf - oai-nrf
- mysql - mysql
volumes:
- ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
interval: 10s
timeout: 15s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oai-smf:august-dev image: oaisoftwarealliance/oai-smf:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0 - SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100 - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4 - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=0.0.0.0 - AMF_IPV4_ADDRESS=192.168.71.132
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai-amf - AMF_FQDN=oai-amf
- UDM_IPV4_ADDRESS=127.0.0.1
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=localhost
- UPF_IPV4_ADDRESS=192.168.71.134 - UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu - UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- REGISTER_NRF=yes - REGISTER_NRF=yes
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4 - TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127 - DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1 - NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps - SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps - SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf - oai-nrf
- oai-amf - oai-amf
volumes:
- ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-spgwu:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-spgwu"
image: oai-spgwu-tiny:august-dev image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
- SGW_INTERFACE_NAME_FOR_SX=eth0 - SGW_INTERFACE_NAME_FOR_SX=eth0
- PGW_INTERFACE_NAME_FOR_SGI=eth0 - PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes - NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24 - NETWORK_UE_IP=12.1.1.0/24
- SPGWC0_IP_ADDRESS=192.168.71.133
- BYPASS_UL_PFCP_RULES=no
- MCC=208
- MNC=99
- MNC03=099
- TAC=1
- GTP_EXTENSION_HEADER_PRESENT=yes
- GW_ID=1
- REALM=openairinterface.org
- ENABLE_5G_FEATURES=yes - ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes - REGISTER_NRF=yes
- USE_FQDN_NRF=yes - USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu - UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
...@@ -200,24 +140,16 @@ services: ...@@ -200,24 +140,16 @@ services:
cap_drop: cap_drop:
- ALL - ALL
privileged: true privileged: true
volumes:
- ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.134 ipv4_address: 192.168.71.134
traffic_net: traffic_net:
ipv4_address: 192.168.72.134 ipv4_address: 192.168.72.134
oai-ext-dn: oai-ext-dn:
image: ubuntu:bionic
privileged: true privileged: true
container_name: rfsim5g-oai-ext-dn container_name: rfsim5g-oai-ext-dn
image: oaisoftwarealliance/trf-gen-cn5g:latest
entrypoint: /bin/bash -c \ entrypoint: /bin/bash -c \
"apt update; apt install -y procps iptables iproute2 iperf iputils-ping;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
...@@ -231,7 +163,7 @@ services: ...@@ -231,7 +163,7 @@ services:
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-cu: oai-cu:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-cu container_name: rfsim5g-oai-cu
environment: environment:
...@@ -265,7 +197,7 @@ services: ...@@ -265,7 +197,7 @@ services:
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-du: oai-du:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-du container_name: rfsim5g-oai-du
environment: environment:
...@@ -299,7 +231,7 @@ services: ...@@ -299,7 +231,7 @@ services:
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-nr-ue: oai-nr-ue:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue container_name: rfsim5g-oai-nr-ue
environment: environment:
......
...@@ -2,27 +2,16 @@ version: '3.8' ...@@ -2,27 +2,16 @@ version: '3.8'
services: services:
oai-nrf: oai-nrf:
container_name: "rfsim5g-oai-nrf" container_name: "rfsim5g-oai-nrf"
image: oai-nrf:august-dev image: oaisoftwarealliance/oai-nrf:v1.5.0
environment: environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80 - TZ=Europe/Paris
- NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- NRF_API_VERSION=v1
- INSTANCE=0
- PID_DIRECTORY=/var/run
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.130 ipv4_address: 192.168.71.130
volumes:
- ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:5.7 image: mysql:8.0
volumes: volumes:
- ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
...@@ -36,17 +25,15 @@ services: ...@@ -36,17 +25,15 @@ services:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh" test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 30
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oai-amf:august-dev image: oaisoftwarealliance/oai-amf:v1.5.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- MCC=208 - MCC=208
- MNC=99 - MNC=99
- REGION_ID=128 - REGION_ID=128
...@@ -62,132 +49,85 @@ services: ...@@ -62,132 +49,85 @@ services:
- PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (1, 0xFFFFFF).
- SST_0=1 - SST_0=1
- SD_0=0xffffff
- SST_1=1
- SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
# One single SMF instance
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai-smf - SMF_FQDN_0=oai-smf
- SMF_IPV4_ADDR_0=0.0.0.0 - SMF_IPV4_ADDR_0=192.168.71.133
- SMF_HTTP_VERSION_0=v1
- SELECTED_0=true - SELECTED_0=true
- SMF_INSTANCE_ID_1=2 # mysql definition in AMF is mandatory in mini deployment.
- SMF_FQDN_1=oai-smf
- SMF_IPV4_ADDR_1=0.0.0.0
- SMF_HTTP_VERSION_1=v1
- SELECTED_1=false
- MYSQL_SERVER=192.168.71.131 - MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root - MYSQL_USER=root
- MYSQL_PASS=linux - MYSQL_PASS=linux
- MYSQL_DB=oai_db - MYSQL_DB=oai_db
- OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1 # NF registration
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80 - NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes - NF_REGISTRATION=yes
- SMF_SELECTION=yes - SMF_SELECTION=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- NRF_API_VERSION=v1 - USE_HTTP2=no
- NRF_FQDN=oai-nrf
- EXTERNAL_AUSF=no
- AUSF_IPV4_ADDRESS=0.0.0.0
- AUSF_PORT=80
- AUSF_API_VERSION=v1
- AUSF_FQDN=localhost
depends_on: depends_on:
- oai-nrf - oai-nrf
- mysql - mysql
volumes:
- ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
interval: 10s
timeout: 15s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oai-smf:august-dev image: oaisoftwarealliance/oai-smf:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0 - SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100 - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4 - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=0.0.0.0 - AMF_IPV4_ADDRESS=192.168.71.132
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai-amf - AMF_FQDN=oai-amf
- UDM_IPV4_ADDRESS=127.0.0.1
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=localhost
- UPF_IPV4_ADDRESS=192.168.71.134 - UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu - UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- REGISTER_NRF=yes - REGISTER_NRF=yes
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4 - TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127 - DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1 - NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps - SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps - SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf - oai-nrf
- oai-amf - oai-amf
volumes:
- ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-spgwu:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-spgwu"
image: oai-spgwu-tiny:august-dev image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
- SGW_INTERFACE_NAME_FOR_SX=eth0 - SGW_INTERFACE_NAME_FOR_SX=eth0
- PGW_INTERFACE_NAME_FOR_SGI=eth0 - PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes - NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24 - NETWORK_UE_IP=12.1.1.0/24
- SPGWC0_IP_ADDRESS=192.168.71.133
- BYPASS_UL_PFCP_RULES=no
- MCC=208
- MNC=99
- MNC03=099
- TAC=1
- GTP_EXTENSION_HEADER_PRESENT=yes
- GW_ID=1
- REALM=openairinterface.org
- ENABLE_5G_FEATURES=yes - ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes - REGISTER_NRF=yes
- USE_FQDN_NRF=yes - USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu - UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
...@@ -200,24 +140,16 @@ services: ...@@ -200,24 +140,16 @@ services:
cap_drop: cap_drop:
- ALL - ALL
privileged: true privileged: true
volumes:
- ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.134 ipv4_address: 192.168.71.134
traffic_net: traffic_net:
ipv4_address: 192.168.72.134 ipv4_address: 192.168.72.134
oai-ext-dn: oai-ext-dn:
image: ubuntu:bionic
privileged: true privileged: true
container_name: rfsim5g-oai-ext-dn container_name: rfsim5g-oai-ext-dn
image: oaisoftwarealliance/trf-gen-cn5g:latest
entrypoint: /bin/bash -c \ entrypoint: /bin/bash -c \
"apt update; apt install -y procps iptables iproute2 iperf iputils-ping;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
...@@ -231,7 +163,7 @@ services: ...@@ -231,7 +163,7 @@ services:
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-gnb: oai-gnb:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-gnb container_name: rfsim5g-oai-gnb
environment: environment:
...@@ -260,7 +192,7 @@ services: ...@@ -260,7 +192,7 @@ services:
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-nr-ue: oai-nr-ue:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue container_name: rfsim5g-oai-nr-ue
environment: environment:
......
...@@ -32,28 +32,22 @@ Password: ...@@ -32,28 +32,22 @@ Password:
Now pull images. Now pull images.
```bash ```bash
$ docker pull mysql:5.7 $ docker pull mysql:8.0
$ docker pull oaisoftwarealliance/oai-amf:develop $ docker pull oaisoftwarealliance/oai-amf:v1.5.0
$ docker pull oaisoftwarealliance/oai-nrf:develop $ docker pull oaisoftwarealliance/oai-nrf:v1.5.0
$ docker pull oaisoftwarealliance/oai-smf:develop $ docker pull oaisoftwarealliance/oai-smf:v1.5.0
$ docker pull oaisoftwarealliance/oai-spgwu-tiny:develop $ docker pull oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
$ docker pull oaisoftwarealliance/trf-gen-cn5g:latest
$ docker pull oaisoftwarealliance/oai-gnb:develop $ docker pull oaisoftwarealliance/oai-gnb:develop
$ docker pull oaisoftwarealliance/oai-nr-ue:develop $ docker pull oaisoftwarealliance/oai-nr-ue:develop
$ docker pull oaisoftwarealliance/proxy:latest $ docker pull oaisoftwarealliance/proxy:develop
``` ```
And **re-tag** them for tutorials' docker-compose file to work. And **re-tag** them for tutorials' docker-compose file to work.
```bash ```bash
$ docker image tag oaisoftwarealliance/oai-amf:latest oai-amf:august-dev $ docker image tag oaisoftwarealliance/proxy:develop oai-lte-multi-ue-proxy:latest
$ docker image tag oaisoftwarealliance/oai-nrf:latest oai-nrf:august-dev
$ docker image tag oaisoftwarealliance/oai-smf:latest oai-smf:august-dev
$ docker image tag oaisoftwarealliance/oai-spgwu-tiny:latest oai-spgwu-tiny:august-dev
$ docker image tag oaisoftwarealliance/oai-gnb:develop oai-gnb:develop
$ docker image tag oaisoftwarealliance/oai-nr-ue:develop oai-nr-ue:develop
$ docker image tag oaisoftwarealliance/proxy:latest oai-lte-multi-ue-proxy:latest
``` ```
```bash ```bash
......
...@@ -2,27 +2,16 @@ version: '3.8' ...@@ -2,27 +2,16 @@ version: '3.8'
services: services:
oai-nrf: oai-nrf:
container_name: "l2sim-oai-nrf" container_name: "l2sim-oai-nrf"
image: oai-nrf:august-dev image: oaisoftwarealliance/oai-nrf:v1.5.0
environment: environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80 - TZ=Europe/Paris
- NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- NRF_API_VERSION=v1
- INSTANCE=0
- PID_DIRECTORY=/var/run
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.130 ipv4_address: 192.168.71.130
volumes:
- ../5g_rfsimulator/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
mysql: mysql:
container_name: "l2sim-mysql" container_name: "l2sim-mysql"
image: mysql:5.7 image: mysql:8.0
volumes: volumes:
- ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
...@@ -36,17 +25,15 @@ services: ...@@ -36,17 +25,15 @@ services:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh" test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 30
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "l2sim-oai-amf" container_name: "l2sim-oai-amf"
image: oai-amf:august-dev image: oaisoftwarealliance/oai-amf:v1.5.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- MCC=208 - MCC=208
- MNC=99 - MNC=99
- REGION_ID=128 - REGION_ID=128
...@@ -62,132 +49,85 @@ services: ...@@ -62,132 +49,85 @@ services:
- PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (1, 0xFFFFFF).
- SST_0=1 - SST_0=1
- SD_0=0xffffff
- SST_1=1
- SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
# One single SMF instance
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai-smf - SMF_FQDN_0=oai-smf
- SMF_IPV4_ADDR_0=0.0.0.0 - SMF_IPV4_ADDR_0=192.168.71.133
- SMF_HTTP_VERSION_0=v1
- SELECTED_0=true - SELECTED_0=true
- SMF_INSTANCE_ID_1=2 # mysql definition in AMF is mandatory in mini deployment.
- SMF_FQDN_1=oai-smf
- SMF_IPV4_ADDR_1=0.0.0.0
- SMF_HTTP_VERSION_1=v1
- SELECTED_1=false
- MYSQL_SERVER=192.168.71.131 - MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root - MYSQL_USER=root
- MYSQL_PASS=linux - MYSQL_PASS=linux
- MYSQL_DB=oai_db - MYSQL_DB=oai_db
- OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1 # NF registration
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80 - NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes - NF_REGISTRATION=yes
- SMF_SELECTION=yes - SMF_SELECTION=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- NRF_API_VERSION=v1 - USE_HTTP2=no
- NRF_FQDN=oai-nrf
- EXTERNAL_AUSF=no
- AUSF_IPV4_ADDRESS=0.0.0.0
- AUSF_PORT=80
- AUSF_API_VERSION=v1
- AUSF_FQDN=localhost
depends_on: depends_on:
- oai-nrf - oai-nrf
- mysql - mysql
volumes:
- ../5g_rfsimulator/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
interval: 10s
timeout: 15s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "l2sim-oai-smf" container_name: "l2sim-oai-smf"
image: oai-smf:august-dev image: oaisoftwarealliance/oai-smf:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0 - SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100 - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4 - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=0.0.0.0 - AMF_IPV4_ADDRESS=192.168.71.132
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai-amf - AMF_FQDN=oai-amf
- UDM_IPV4_ADDRESS=127.0.0.1
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=localhost
- UPF_IPV4_ADDRESS=192.168.71.134 - UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu - UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- REGISTER_NRF=yes - REGISTER_NRF=yes
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4 - TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127 - DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1 - NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps - SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps - SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf - oai-nrf
- oai-amf - oai-amf
volumes:
- ../5g_rfsimulator/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-spgwu:
container_name: "l2sim-oai-spgwu" container_name: "l2sim-oai-spgwu"
image: oai-spgwu-tiny:august-dev image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
- SGW_INTERFACE_NAME_FOR_SX=eth0 - SGW_INTERFACE_NAME_FOR_SX=eth0
- PGW_INTERFACE_NAME_FOR_SGI=eth0 - PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes - NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24 - NETWORK_UE_IP=12.1.1.0/24
- SPGWC0_IP_ADDRESS=192.168.71.133
- BYPASS_UL_PFCP_RULES=no
- MCC=208
- MNC=99
- MNC03=099
- TAC=1
- GTP_EXTENSION_HEADER_PRESENT=yes
- GW_ID=1
- REALM=openairinterface.org
- ENABLE_5G_FEATURES=yes - ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes - REGISTER_NRF=yes
- USE_FQDN_NRF=yes - USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu - UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
...@@ -200,24 +140,17 @@ services: ...@@ -200,24 +140,17 @@ services:
cap_drop: cap_drop:
- ALL - ALL
privileged: true privileged: true
volumes:
- ../5g_rfsimulator/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.134 ipv4_address: 192.168.71.134
traffic_net: traffic_net:
ipv4_address: 192.168.72.134 ipv4_address: 192.168.72.134
oai-ext-dn: oai-ext-dn:
image: ubuntu:bionic
privileged: true privileged: true
container_name: "l2sim-oai-ext-dn" container_name: "l2sim-oai-ext-dn"
image: oaisoftwarealliance/trf-gen-cn5g:latest
entrypoint: /bin/bash -c \ entrypoint: /bin/bash -c \
"apt update; apt install -y procps iptables iproute2 iperf iputils-ping;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
- oai-spgwu - oai-spgwu
...@@ -230,7 +163,7 @@ services: ...@@ -230,7 +163,7 @@ services:
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-gnb: oai-gnb:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: "l2sim-oai-gnb" container_name: "l2sim-oai-gnb"
network_mode: "host" network_mode: "host"
...@@ -278,7 +211,7 @@ services: ...@@ -278,7 +211,7 @@ services:
retries: 5 retries: 5
oai-nr-ue0: oai-nr-ue0:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: "l2sim-oai-nr-ue0" container_name: "l2sim-oai-nr-ue0"
network_mode: "host" network_mode: "host"
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
This page is only valid for an `Ubuntu18` host. This page is only valid for an `Ubuntu18` host.
**NOTE: this version (2022-01-27) has been updated for the `v1.3.0` version of the `OAI 5G CN`.** **NOTE: this version (2023-01-27) has been updated for the `v1.5.0` version of the `OAI 5G CN`.**
**Table of Contents** **Table of Contents**
...@@ -36,35 +36,24 @@ Password: ...@@ -36,35 +36,24 @@ Password:
Now pull images. Now pull images.
```bash ```bash
$ docker pull mysql:5.7 $ docker pull mysql:8.0
$ docker pull oaisoftwarealliance/oai-amf:develop $ docker pull oaisoftwarealliance/oai-amf:v1.5.0
$ docker pull oaisoftwarealliance/oai-nrf:develop $ docker pull oaisoftwarealliance/oai-nrf:v1.5.0
$ docker pull oaisoftwarealliance/oai-smf:develop $ docker pull oaisoftwarealliance/oai-smf:v1.5.0
$ docker pull oaisoftwarealliance/oai-spgwu-tiny:develop $ docker pull oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
$ docker pull oaisoftwarealliance/trf-gen-cn5g:latest
$ docker pull oaisoftwarealliance/oai-gnb:develop $ docker pull oaisoftwarealliance/oai-gnb:develop
$ docker pull oaisoftwarealliance/oai-nr-ue:develop $ docker pull oaisoftwarealliance/oai-nr-ue:develop
``` ```
And **re-tag** them for tutorials' docker-compose file to work.
```bash
$ docker image tag oaisoftwarealliance/oai-amf:latest oai-amf:august-dev
$ docker image tag oaisoftwarealliance/oai-nrf:latest oai-nrf:august-dev
$ docker image tag oaisoftwarealliance/oai-smf:latest oai-smf:august-dev
$ docker image tag oaisoftwarealliance/oai-spgwu-tiny:latest oai-spgwu-tiny:august-dev
$ docker image tag oaisoftwarealliance/oai-gnb:develop oai-gnb:develop
$ docker image tag oaisoftwarealliance/oai-nr-ue:develop oai-nr-ue:develop
```
```bash ```bash
$ docker logout $ docker logout
``` ```
**CAUTION: 2022/01/27 with the release `v1.3.0` of the `CN5G`, the previous version was not compatible any-more.** **CAUTION: 2023/01/27 with the release `v1.5.0` of the `CN5G`, the previous version was not compatible any-more.**
**This new version is working only with the `v1.3.0` of the `CN5G`.** **This new version is working only with the `v1.5.0` of the `CN5G`.**
# 2. Deploy containers # # 2. Deploy containers #
......
#!/bin/bash
set -eo pipefail
STATUS=0
AMF_PORT_FOR_NGAP=38412
AMF_PORT_FOR_N11_HTTP=80
AMF_IP_NGAP_INTERFACE=$(ifconfig $AMF_INTERFACE_NAME_FOR_NGAP | grep inet | awk {'print $2'})
AMF_IP_N11_INTERFACE=$(ifconfig $AMF_INTERFACE_NAME_FOR_N11 | grep inet | awk {'print $2'})
N2_PORT_STATUS=$(netstat -Snpl | grep -o "$AMF_IP_NGAP_INTERFACE:$AMF_PORT_FOR_NGAP")
N11_PORT_STATUS=$(netstat -tnpl | grep -o "$AMF_IP_N11_INTERFACE:$AMF_PORT_FOR_N11_HTTP")
#Check if entrypoint properly configured the conf file and no parameter is unset (optional)
NB_UNREPLACED_AT=`cat /openair-amf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
if [ $NB_UNREPLACED_AT -ne 0 ]; then
STATUS=1
echo "Healthcheck error: configuration file is not configured properly"
fi
if [[ -z $N2_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: N2 SCTP port $AMF_PORT_FOR_NGAP is not listening"
fi
if [[ -z $N11_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: N11/SBI TCP/HTTP port $AMF_PORT_FOR_N11_HTTP is not listening"
fi
#host="${MYSQL_SERVER}"
#user="${MYSQL_USER:-root}"
#export MYSQL_PWD="${MYSQL_PASS}"
#args=(
# -h"$host"
# -u"$user"
# --silent
#)
#if ! command -v mysql &> /dev/null; then
# echo "Installing mysql command"
# apt update
# apt-get -y install mysql-client
#else
# if select="$(echo 'SELECT 1' | mysql "${args[@]}")" && [ "$select" = '1' ]; then
# database_check=$(mysql -h$host -u$user -D oai_db --silent -e "SELECT * FROM users;")
# if [[ -z $database_check ]]; then
# echo "Healthcheck error: oai_db not populated"
# STATUS=1
# fi
# STATUS=0
# else
# echo "Healthcheck error: Mysql port inactive"
# STATUS=1
# fi
#fi
exit $STATUS
...@@ -2,27 +2,16 @@ version: '3.8' ...@@ -2,27 +2,16 @@ version: '3.8'
services: services:
oai-nrf: oai-nrf:
container_name: "rfsim5g-oai-nrf" container_name: "rfsim5g-oai-nrf"
image: oai-nrf:august-dev image: oaisoftwarealliance/oai-nrf:v1.5.0
environment: environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80 - TZ=Europe/Paris
- NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- NRF_API_VERSION=v1
- INSTANCE=0
- PID_DIRECTORY=/var/run
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.130 ipv4_address: 192.168.71.130
volumes:
- ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:5.7 image: mysql:8.0
volumes: volumes:
- ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
...@@ -36,17 +25,15 @@ services: ...@@ -36,17 +25,15 @@ services:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh" test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 30
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oai-amf:august-dev image: oaisoftwarealliance/oai-amf:v1.5.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- MCC=208 - MCC=208
- MNC=99 - MNC=99
- REGION_ID=128 - REGION_ID=128
...@@ -62,132 +49,85 @@ services: ...@@ -62,132 +49,85 @@ services:
- PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (1, 0xFFFFFF).
- SST_0=1 - SST_0=1
- SD_0=0xffffff
- SST_1=1
- SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
# One single SMF instance
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai-smf - SMF_FQDN_0=oai-smf
- SMF_IPV4_ADDR_0=0.0.0.0 - SMF_IPV4_ADDR_0=192.168.71.133
- SMF_HTTP_VERSION_0=v1
- SELECTED_0=true - SELECTED_0=true
- SMF_INSTANCE_ID_1=2 # mysql definition in AMF is mandatory in mini deployment.
- SMF_FQDN_1=oai-smf
- SMF_IPV4_ADDR_1=0.0.0.0
- SMF_HTTP_VERSION_1=v1
- SELECTED_1=false
- MYSQL_SERVER=192.168.71.131 - MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root - MYSQL_USER=root
- MYSQL_PASS=linux - MYSQL_PASS=linux
- MYSQL_DB=oai_db - MYSQL_DB=oai_db
- OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1 # NF registration
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80 - NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes - NF_REGISTRATION=yes
- SMF_SELECTION=yes - SMF_SELECTION=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- NRF_API_VERSION=v1 - USE_HTTP2=no
- NRF_FQDN=oai-nrf
- EXTERNAL_AUSF=no
- AUSF_IPV4_ADDRESS=0.0.0.0
- AUSF_PORT=80
- AUSF_API_VERSION=v1
- AUSF_FQDN=localhost
depends_on: depends_on:
- oai-nrf - oai-nrf
- mysql - mysql
volumes:
- ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
interval: 10s
timeout: 15s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oai-smf:august-dev image: oaisoftwarealliance/oai-smf:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0 - SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100 - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4 - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=0.0.0.0 - AMF_IPV4_ADDRESS=192.168.71.132
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai-amf - AMF_FQDN=oai-amf
- UDM_IPV4_ADDRESS=127.0.0.1
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=localhost
- UPF_IPV4_ADDRESS=192.168.71.134 - UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu - UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- REGISTER_NRF=yes - REGISTER_NRF=yes
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4 - TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127 - DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1 - NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps - SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps - SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf - oai-nrf
- oai-amf - oai-amf
volumes:
- ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-spgwu:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-spgwu"
image: oai-spgwu-tiny:august-dev image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
- SGW_INTERFACE_NAME_FOR_SX=eth0 - SGW_INTERFACE_NAME_FOR_SX=eth0
- PGW_INTERFACE_NAME_FOR_SGI=eth0 - PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes - NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24 - NETWORK_UE_IP=12.1.1.0/24
- SPGWC0_IP_ADDRESS=192.168.71.133
- BYPASS_UL_PFCP_RULES=no
- MCC=208
- MNC=99
- MNC03=099
- TAC=1
- GTP_EXTENSION_HEADER_PRESENT=yes
- GW_ID=1
- REALM=openairinterface.org
- ENABLE_5G_FEATURES=yes - ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes - REGISTER_NRF=yes
- USE_FQDN_NRF=yes - USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu - UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
...@@ -200,24 +140,16 @@ services: ...@@ -200,24 +140,16 @@ services:
cap_drop: cap_drop:
- ALL - ALL
privileged: true privileged: true
volumes:
- ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.134 ipv4_address: 192.168.71.134
traffic_net: traffic_net:
ipv4_address: 192.168.72.134 ipv4_address: 192.168.72.134
oai-ext-dn: oai-ext-dn:
image: ubuntu:bionic
privileged: true privileged: true
container_name: rfsim5g-oai-ext-dn container_name: rfsim5g-oai-ext-dn
image: oaisoftwarealliance/trf-gen-cn5g:latest
entrypoint: /bin/bash -c \ entrypoint: /bin/bash -c \
"apt update; apt install -y procps iptables iproute2 iperf iputils-ping;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
...@@ -231,7 +163,7 @@ services: ...@@ -231,7 +163,7 @@ services:
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-gnb: oai-gnb:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-gnb container_name: rfsim5g-oai-gnb
environment: environment:
...@@ -261,7 +193,7 @@ services: ...@@ -261,7 +193,7 @@ services:
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-nr-ue: oai-nr-ue:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue container_name: rfsim5g-oai-nr-ue
environment: environment:
...@@ -284,7 +216,7 @@ services: ...@@ -284,7 +216,7 @@ services:
retries: 5 retries: 5
oai-nr-ue2: oai-nr-ue2:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue2 container_name: rfsim5g-oai-nr-ue2
environment: environment:
......
#!/bin/bash
set -eo pipefail
STATUS=0
NRF_IP_SBI_INTERFACE=$(ifconfig $NRF_INTERFACE_NAME_FOR_SBI | grep inet | awk {'print $2'})
NRF_SBI_PORT_STATUS=$(netstat -tnpl | grep -o "$NRF_IP_SBI_INTERFACE:$NRF_INTERFACE_PORT_FOR_SBI")
#Check if entrypoint properly configured the conf file and no parameter is unset(optional)
NB_UNREPLACED_AT=`cat /openair-nrf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
if [ $NB_UNREPLACED_AT -ne 0 ]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY configuration file is not configured properly"
fi
if [[ -z $NRF_SBI_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY SBI TCP/HTTP port $NRF_INTERFACE_PORT_FOR_SBI is not listening."
fi
exit $STATUS
\ No newline at end of file
#!/bin/bash
set -eo pipefail
STATUS=0
SMF_IP_SBI_INTERFACE=$(ifconfig $SMF_INTERFACE_NAME_FOR_SBI | grep inet | awk {'print $2'})
SMF_SBI_PORT_STATUS=$(netstat -tnpl | grep -o "$SMF_IP_SBI_INTERFACE:$SMF_INTERFACE_PORT_FOR_SBI")
#Check if entrypoint properly configured the conf file and no parameter is unset(optional)
#NB_UNREPLACED_AT=`cat /openair-smf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
#if [ $NB_UNREPLACED_AT -ne 0 ]; then
# STATUS=-1
# echo "Healthcheck error: UNHEALTHY configuration file is not configured properly"
#fi
#
if [[ -z $SMF_SBI_PORT_STATUS ]]; then
STATUS=-1
echo "Healthcheck error: UNHEALTHY SBI TCP/HTTP port $SMF_INTERFACE_PORT_FOR_SBI is not listening."
fi
exit $STATUS
#!/bin/bash
set -eo pipefail
STATUS=0
SGW_PORT_FOR_S1U_S12_S4_UP=2152
SGW_PORT_FOR_SX=8805
SGW_IP_S1U_INTERFACE=$(ifconfig $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP | grep inet | awk {'print $2'})
SGW_IP_SX_INTERFACE=$(ifconfig $SGW_INTERFACE_NAME_FOR_SX | grep inet | awk {'print $2'})
S1U_S12_S4_UP_PORT_STATUS=$(netstat -unpl | grep -o "$SGW_IP_S1U_INTERFACE:$SGW_PORT_FOR_S1U_S12_S4_UP")
SX_PORT_STATUS=$(netstat -unpl | grep -o "$SGW_IP_SX_INTERFACE:$SGW_PORT_FOR_SX")
#Check if entrypoint properly configured the conf file and no parameter is unset (optional)
NB_UNREPLACED_AT=`cat /openair-spgwu/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
if [ $NB_UNREPLACED_AT -ne 0 ]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY configuration file is not configured properly"
fi
if [[ -z $S1U_S12_S4_UP_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY S1U port $SGW_PORT_FOR_S1U_S12_S4_UP is not listening."
fi
if [[ -z $SX_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY SX port $SGW_PORT_FOR_SX is not listening."
fi
exit $STATUS
\ No newline at end of file
...@@ -2,28 +2,16 @@ version: '3.8' ...@@ -2,28 +2,16 @@ version: '3.8'
services: services:
oai-nrf: oai-nrf:
container_name: "rfsim5g-oai-nrf" container_name: "rfsim5g-oai-nrf"
image: oai-nrf:august-dev image: oaisoftwarealliance/oai-nrf:v1.5.0
environment: environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80 - TZ=Europe/Paris
- NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- NRF_API_VERSION=v1
- INSTANCE=0
- PID_DIRECTORY=/var/run
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.130 ipv4_address: 192.168.71.130
volumes:
- ../5g_rfsimulator/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:5.7 image: mysql:8.0
volumes: volumes:
- ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
...@@ -37,18 +25,15 @@ services: ...@@ -37,18 +25,15 @@ services:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh" test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 30
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oai-amf:august-dev image: oaisoftwarealliance/oai-amf:v1.5.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- MCC=208 - MCC=208
- MNC=99 - MNC=99
- REGION_ID=128 - REGION_ID=128
...@@ -64,134 +49,85 @@ services: ...@@ -64,134 +49,85 @@ services:
- PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (1, 0xFFFFFF).
- SST_0=1 - SST_0=1
- SD_0=0xffffff
- SST_1=1
- SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
# One single SMF instance
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai-smf - SMF_FQDN_0=oai-smf
- SMF_IPV4_ADDR_0=0.0.0.0 - SMF_IPV4_ADDR_0=192.168.71.133
- SMF_HTTP_VERSION_0=v1
- SELECTED_0=true - SELECTED_0=true
- SMF_INSTANCE_ID_1=2 # mysql definition in AMF is mandatory in mini deployment.
- SMF_FQDN_1=oai-smf
- SMF_IPV4_ADDR_1=0.0.0.0
- SMF_HTTP_VERSION_1=v1
- SELECTED_1=false
- MYSQL_SERVER=192.168.71.131 - MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root - MYSQL_USER=root
- MYSQL_PASS=linux - MYSQL_PASS=linux
- MYSQL_DB=oai_db - MYSQL_DB=oai_db
- OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1 # NF registration
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80 - NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes - NF_REGISTRATION=yes
- SMF_SELECTION=yes - SMF_SELECTION=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- NRF_API_VERSION=v1 - USE_HTTP2=no
- NRF_FQDN=oai-nrf
- EXTERNAL_AUSF=no
- AUSF_IPV4_ADDRESS=0.0.0.0
- AUSF_PORT=80
- AUSF_API_VERSION=v1
- AUSF_FQDN=localhost
depends_on: depends_on:
- oai-nrf - oai-nrf
- mysql - mysql
volumes:
- ../5g_rfsimulator/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
interval: 10s
timeout: 15s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oai-smf:august-dev image: oaisoftwarealliance/oai-smf:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0 - SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100 - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4 - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=0.0.0.0 - AMF_IPV4_ADDRESS=192.168.71.132
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai-amf - AMF_FQDN=oai-amf
- UDM_IPV4_ADDRESS=127.0.0.1
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=localhost
- UPF_IPV4_ADDRESS=192.168.71.134 - UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu - UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- REGISTER_NRF=yes - REGISTER_NRF=yes
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4 - TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127 - DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1 - NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps - SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps - SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf - oai-nrf
- oai-amf - oai-amf
volumes:
- ../5g_rfsimulator/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-spgwu:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-spgwu"
image: oai-spgwu-tiny:august-dev image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
- SGW_INTERFACE_NAME_FOR_SX=eth0 - SGW_INTERFACE_NAME_FOR_SX=eth0
- PGW_INTERFACE_NAME_FOR_SGI=eth0 - PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes - NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24 - NETWORK_UE_IP=12.1.1.0/24
- SPGWC0_IP_ADDRESS=192.168.71.133
- BYPASS_UL_PFCP_RULES=no
- MCC=208
- MNC=99
- MNC03=099
- TAC=1
- GTP_EXTENSION_HEADER_PRESENT=yes
- GW_ID=1
- REALM=openairinterface.org
- ENABLE_5G_FEATURES=yes - ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes - REGISTER_NRF=yes
- USE_FQDN_NRF=yes - USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu - UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
...@@ -204,25 +140,16 @@ services: ...@@ -204,25 +140,16 @@ services:
cap_drop: cap_drop:
- ALL - ALL
privileged: true privileged: true
volumes:
- ../5g_rfsimulator/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.134 ipv4_address: 192.168.71.134
traffic_net: traffic_net:
ipv4_address: 192.168.72.134 ipv4_address: 192.168.72.134
oai-ext-dn: oai-ext-dn:
image: ubuntu:bionic
privileged: true privileged: true
container_name: rfsim5g-oai-ext-dn container_name: rfsim5g-oai-ext-dn
image: oaisoftwarealliance/trf-gen-cn5g:latest
entrypoint: /bin/bash -c \ entrypoint: /bin/bash -c \
"apt update; apt install -y procps iptables iproute2 iperf iputils-ping;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
...@@ -235,9 +162,8 @@ services: ...@@ -235,9 +162,8 @@ services:
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-gnb: oai-gnb:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-gnb container_name: rfsim5g-oai-gnb
environment: environment:
...@@ -256,9 +182,8 @@ services: ...@@ -256,9 +182,8 @@ services:
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-nr-ue: oai-nr-ue:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue container_name: rfsim5g-oai-nr-ue
environment: environment:
......
...@@ -2,28 +2,16 @@ version: '3.8' ...@@ -2,28 +2,16 @@ version: '3.8'
services: services:
oai-nrf: oai-nrf:
container_name: "rfsim5g-oai-nrf" container_name: "rfsim5g-oai-nrf"
image: oai-nrf:august-dev image: oaisoftwarealliance/oai-nrf:v1.5.0
environment: environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80 - TZ=Europe/Paris
- NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- NRF_API_VERSION=v1
- INSTANCE=0
- PID_DIRECTORY=/var/run
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.130 ipv4_address: 192.168.71.130
volumes:
- ../5g_rfsimulator/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:5.7 image: mysql:8.0
volumes: volumes:
- ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
...@@ -37,18 +25,15 @@ services: ...@@ -37,18 +25,15 @@ services:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh" test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 30
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oai-amf:august-dev image: oaisoftwarealliance/oai-amf:v1.5.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- MCC=208 - MCC=208
- MNC=99 - MNC=99
- REGION_ID=128 - REGION_ID=128
...@@ -64,134 +49,85 @@ services: ...@@ -64,134 +49,85 @@ services:
- PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (1, 0xFFFFFF).
- SST_0=1 - SST_0=1
- SD_0=0xffffff
- SST_1=1
- SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
# One single SMF instance
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai-smf - SMF_FQDN_0=oai-smf
- SMF_IPV4_ADDR_0=0.0.0.0 - SMF_IPV4_ADDR_0=192.168.71.133
- SMF_HTTP_VERSION_0=v1
- SELECTED_0=true - SELECTED_0=true
- SMF_INSTANCE_ID_1=2 # mysql definition in AMF is mandatory in mini deployment.
- SMF_FQDN_1=oai-smf
- SMF_IPV4_ADDR_1=0.0.0.0
- SMF_HTTP_VERSION_1=v1
- SELECTED_1=false
- MYSQL_SERVER=192.168.71.131 - MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root - MYSQL_USER=root
- MYSQL_PASS=linux - MYSQL_PASS=linux
- MYSQL_DB=oai_db - MYSQL_DB=oai_db
- OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1 # NF registration
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80 - NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes - NF_REGISTRATION=yes
- SMF_SELECTION=yes - SMF_SELECTION=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- NRF_API_VERSION=v1 - USE_HTTP2=no
- NRF_FQDN=oai-nrf
- EXTERNAL_AUSF=no
- AUSF_IPV4_ADDRESS=0.0.0.0
- AUSF_PORT=80
- AUSF_API_VERSION=v1
- AUSF_FQDN=localhost
depends_on: depends_on:
- oai-nrf - oai-nrf
- mysql - mysql
volumes:
- ../5g_rfsimulator/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
interval: 10s
timeout: 15s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oai-smf:august-dev image: oaisoftwarealliance/oai-smf:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0 - SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100 - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4 - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=0.0.0.0 - AMF_IPV4_ADDRESS=192.168.71.132
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai-amf - AMF_FQDN=oai-amf
- UDM_IPV4_ADDRESS=127.0.0.1
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=localhost
- UPF_IPV4_ADDRESS=192.168.71.134 - UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu - UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- REGISTER_NRF=yes - REGISTER_NRF=yes
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4 - TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127 - DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1 - NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps - SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps - SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf - oai-nrf
- oai-amf - oai-amf
volumes:
- ../5g_rfsimulator/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-spgwu:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-spgwu"
image: oai-spgwu-tiny:august-dev image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
- SGW_INTERFACE_NAME_FOR_SX=eth0 - SGW_INTERFACE_NAME_FOR_SX=eth0
- PGW_INTERFACE_NAME_FOR_SGI=eth0 - PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes - NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24 - NETWORK_UE_IP=12.1.1.0/24
- SPGWC0_IP_ADDRESS=192.168.71.133
- BYPASS_UL_PFCP_RULES=no
- MCC=208
- MNC=99
- MNC03=099
- TAC=1
- GTP_EXTENSION_HEADER_PRESENT=yes
- GW_ID=1
- REALM=openairinterface.org
- ENABLE_5G_FEATURES=yes - ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes - REGISTER_NRF=yes
- USE_FQDN_NRF=yes - USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu - UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
...@@ -204,25 +140,16 @@ services: ...@@ -204,25 +140,16 @@ services:
cap_drop: cap_drop:
- ALL - ALL
privileged: true privileged: true
volumes:
- ../5g_rfsimulator/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.134 ipv4_address: 192.168.71.134
traffic_net: traffic_net:
ipv4_address: 192.168.72.134 ipv4_address: 192.168.72.134
oai-ext-dn: oai-ext-dn:
image: ubuntu:bionic
privileged: true privileged: true
container_name: rfsim5g-oai-ext-dn container_name: rfsim5g-oai-ext-dn
image: oaisoftwarealliance/trf-gen-cn5g:latest
entrypoint: /bin/bash -c \ entrypoint: /bin/bash -c \
"apt update; apt install -y procps iptables iproute2 iperf iputils-ping;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
...@@ -235,9 +162,8 @@ services: ...@@ -235,9 +162,8 @@ services:
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-gnb: oai-gnb:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-gnb container_name: rfsim5g-oai-gnb
environment: environment:
...@@ -258,7 +184,7 @@ services: ...@@ -258,7 +184,7 @@ services:
retries: 5 retries: 5
oai-nr-ue: oai-nr-ue:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue container_name: rfsim5g-oai-nr-ue
environment: environment:
......
...@@ -2,28 +2,16 @@ version: '3.8' ...@@ -2,28 +2,16 @@ version: '3.8'
services: services:
oai-nrf: oai-nrf:
container_name: "rfsim5g-oai-nrf" container_name: "rfsim5g-oai-nrf"
image: oai-nrf:august-dev image: oaisoftwarealliance/oai-nrf:v1.5.0
environment: environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80 - TZ=Europe/Paris
- NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- NRF_API_VERSION=v1
- INSTANCE=0
- PID_DIRECTORY=/var/run
networks: networks:
core_net: core_net:
ipv4_address: 192.168.71.130 ipv4_address: 192.168.71.130
volumes:
- ../5g_rfsimulator/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:5.7 image: mysql:8.0
volumes: volumes:
- ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
...@@ -37,18 +25,15 @@ services: ...@@ -37,18 +25,15 @@ services:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh" test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 30
networks: networks:
core_net: core_net:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oai-amf:august-dev image: oaisoftwarealliance/oai-amf:v1.5.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- MCC=208 - MCC=208
- MNC=99 - MNC=99
- REGION_ID=128 - REGION_ID=128
...@@ -64,134 +49,85 @@ services: ...@@ -64,134 +49,85 @@ services:
- PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (1, 0xFFFFFF).
- SST_0=1 - SST_0=1
- SD_0=0xffffff
- SST_1=1
- SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
# One single SMF instance
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai-smf - SMF_FQDN_0=oai-smf
- SMF_IPV4_ADDR_0=0.0.0.0 - SMF_IPV4_ADDR_0=192.168.71.133
- SMF_HTTP_VERSION_0=v1
- SELECTED_0=true - SELECTED_0=true
- SMF_INSTANCE_ID_1=2 # mysql definition in AMF is mandatory in mini deployment.
- SMF_FQDN_1=oai-smf
- SMF_IPV4_ADDR_1=0.0.0.0
- SMF_HTTP_VERSION_1=v1
- SELECTED_1=false
- MYSQL_SERVER=192.168.71.131 - MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root - MYSQL_USER=root
- MYSQL_PASS=linux - MYSQL_PASS=linux
- MYSQL_DB=oai_db - MYSQL_DB=oai_db
- OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1 # NF registration
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80 - NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes - NF_REGISTRATION=yes
- SMF_SELECTION=yes - SMF_SELECTION=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- NRF_API_VERSION=v1 - USE_HTTP2=no
- NRF_FQDN=oai-nrf
- EXTERNAL_AUSF=no
- AUSF_IPV4_ADDRESS=0.0.0.0
- AUSF_PORT=80
- AUSF_API_VERSION=v1
- AUSF_FQDN=localhost
depends_on: depends_on:
- oai-nrf - oai-nrf
- mysql - mysql
volumes:
- ../5g_rfsimulator/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
interval: 10s
timeout: 15s
retries: 5
networks: networks:
core_net: core_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oai-smf:august-dev image: oaisoftwarealliance/oai-smf:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0 - SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100 - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4 - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=0.0.0.0 - AMF_IPV4_ADDRESS=192.168.71.132
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai-amf - AMF_FQDN=oai-amf
- UDM_IPV4_ADDRESS=127.0.0.1
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=localhost
- UPF_IPV4_ADDRESS=192.168.71.134 - UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu - UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- REGISTER_NRF=yes - REGISTER_NRF=yes
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4 - TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127 - DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1 - NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps - SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps - SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf - oai-nrf
- oai-amf - oai-amf
volumes:
- ../5g_rfsimulator/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
core_net: core_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-spgwu:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-spgwu"
image: oai-spgwu-tiny:august-dev image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
- SGW_INTERFACE_NAME_FOR_SX=eth0 - SGW_INTERFACE_NAME_FOR_SX=eth0
- PGW_INTERFACE_NAME_FOR_SGI=eth0 - PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes - NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24 - NETWORK_UE_IP=12.1.1.0/24
- SPGWC0_IP_ADDRESS=192.168.71.133
- BYPASS_UL_PFCP_RULES=no
- MCC=208
- MNC=99
- MNC03=099
- TAC=1
- GTP_EXTENSION_HEADER_PRESENT=yes
- GW_ID=1
- REALM=openairinterface.org
- ENABLE_5G_FEATURES=yes - ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes - REGISTER_NRF=yes
- USE_FQDN_NRF=yes - USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu - UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
...@@ -204,13 +140,6 @@ services: ...@@ -204,13 +140,6 @@ services:
cap_drop: cap_drop:
- ALL - ALL
privileged: true privileged: true
volumes:
- ../5g_rfsimulator/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
core_net: core_net:
ipv4_address: 192.168.71.134 ipv4_address: 192.168.71.134
...@@ -218,11 +147,10 @@ services: ...@@ -218,11 +147,10 @@ services:
ipv4_address: 192.168.73.134 ipv4_address: 192.168.73.134
oai-ext-dn: oai-ext-dn:
image: ubuntu:bionic
privileged: true privileged: true
container_name: rfsim5g-oai-ext-dn container_name: rfsim5g-oai-ext-dn
image: oaisoftwarealliance/trf-gen-cn5g:latest
entrypoint: /bin/bash -c \ entrypoint: /bin/bash -c \
"apt update; apt install -y procps iptables iproute2 iperf iputils-ping;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.73.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.73.134 dev eth0; sleep infinity"
depends_on: depends_on:
...@@ -237,7 +165,7 @@ services: ...@@ -237,7 +165,7 @@ services:
retries: 5 retries: 5
oai-cucp: oai-cucp:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-cucp container_name: rfsim5g-oai-cucp
environment: environment:
...@@ -259,7 +187,7 @@ services: ...@@ -259,7 +187,7 @@ services:
retries: 5 retries: 5
oai-cuup: oai-cuup:
image: oai-nr-cuup:develop image: oaisoftwarealliance/oai-nr-cuup:develop
privileged: true privileged: true
container_name: rfsim5g-oai-cuup container_name: rfsim5g-oai-cuup
environment: environment:
...@@ -282,7 +210,7 @@ services: ...@@ -282,7 +210,7 @@ services:
retries: 5 retries: 5
oai-du: oai-du:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-du container_name: rfsim5g-oai-du
environment: environment:
...@@ -301,7 +229,7 @@ services: ...@@ -301,7 +229,7 @@ services:
retries: 5 retries: 5
oai-nr-ue: oai-nr-ue:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue container_name: rfsim5g-oai-nr-ue
environment: environment:
......
version: '3.8' version: '3.8'
services: services:
oai-gnb: oai-gnb:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-gnb container_name: rfsim5g-oai-gnb
environment: environment:
...@@ -21,7 +21,7 @@ services: ...@@ -21,7 +21,7 @@ services:
retries: 5 retries: 5
oai-nr-ue: oai-nr-ue:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue container_name: rfsim5g-oai-nr-ue
environment: environment:
......
version: '3.8' version: '3.8'
services: services:
oai-gnb: oai-gnb:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-gnb container_name: rfsim5g-oai-gnb
environment: environment:
...@@ -21,7 +21,7 @@ services: ...@@ -21,7 +21,7 @@ services:
retries: 5 retries: 5
oai-nr-ue: oai-nr-ue:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue container_name: rfsim5g-oai-nr-ue
environment: environment:
......
version: '3.8' version: '3.8'
services: services:
oai-gnb: oai-gnb:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-gnb container_name: rfsim5g-oai-gnb
environment: environment:
...@@ -21,7 +21,7 @@ services: ...@@ -21,7 +21,7 @@ services:
retries: 5 retries: 5
oai-nr-ue: oai-nr-ue:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue container_name: rfsim5g-oai-nr-ue
environment: environment:
......
...@@ -2,28 +2,16 @@ version: '3.8' ...@@ -2,28 +2,16 @@ version: '3.8'
services: services:
oai-nrf: oai-nrf:
container_name: "rfsim5g-oai-nrf" container_name: "rfsim5g-oai-nrf"
image: oai-nrf:august-dev image: oaisoftwarealliance/oai-nrf:v1.5.0
environment: environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80 - TZ=Europe/Paris
- NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- NRF_API_VERSION=v1
- INSTANCE=0
- PID_DIRECTORY=/var/run
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.130 ipv4_address: 192.168.71.130
volumes:
- ../5g_rfsimulator/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:5.7 image: mysql:8.0
volumes: volumes:
- ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
...@@ -37,18 +25,15 @@ services: ...@@ -37,18 +25,15 @@ services:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh" test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 30
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oai-amf:august-dev image: oaisoftwarealliance/oai-amf:v1.5.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- MCC=208 - MCC=208
- MNC=99 - MNC=99
- REGION_ID=128 - REGION_ID=128
...@@ -64,134 +49,85 @@ services: ...@@ -64,134 +49,85 @@ services:
- PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001 - PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (1, 0xFFFFFF).
- SST_0=1 - SST_0=1
- SD_0=0xffffff
- SST_1=1
- SD_1=1
- AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0
# One single SMF instance
- SMF_INSTANCE_ID_0=1 - SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai-smf - SMF_FQDN_0=oai-smf
- SMF_IPV4_ADDR_0=0.0.0.0 - SMF_IPV4_ADDR_0=192.168.71.133
- SMF_HTTP_VERSION_0=v1
- SELECTED_0=true - SELECTED_0=true
- SMF_INSTANCE_ID_1=2 # mysql definition in AMF is mandatory in mini deployment.
- SMF_FQDN_1=oai-smf
- SMF_IPV4_ADDR_1=0.0.0.0
- SMF_HTTP_VERSION_1=v1
- SELECTED_1=false
- MYSQL_SERVER=192.168.71.131 - MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root - MYSQL_USER=root
- MYSQL_PASS=linux - MYSQL_PASS=linux
- MYSQL_DB=oai_db - MYSQL_DB=oai_db
- OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1 # NF registration
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80 - NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes - NF_REGISTRATION=yes
- SMF_SELECTION=yes - SMF_SELECTION=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- NRF_API_VERSION=v1 - USE_HTTP2=no
- NRF_FQDN=oai-nrf
- EXTERNAL_AUSF=no
- AUSF_IPV4_ADDRESS=0.0.0.0
- AUSF_PORT=80
- AUSF_API_VERSION=v1
- AUSF_FQDN=localhost
depends_on: depends_on:
- oai-nrf - oai-nrf
- mysql - mysql
volumes:
- ../5g_rfsimulator/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
interval: 10s
timeout: 15s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oai-smf:august-dev image: oaisoftwarealliance/oai-smf:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0 - SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100 - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4 - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=0.0.0.0 - AMF_IPV4_ADDRESS=192.168.71.132
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai-amf - AMF_FQDN=oai-amf
- UDM_IPV4_ADDRESS=127.0.0.1
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=localhost
- UPF_IPV4_ADDRESS=192.168.71.134 - UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu - UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- REGISTER_NRF=yes - REGISTER_NRF=yes
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai - DNN_NI0=oai
- TYPE0=IPv4 - TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127 - DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1 - NSSAI_SST0=1
- NSSAI_SD0=0xFFFFFF
- SESSION_AMBR_UL0=200Mbps - SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps - SESSION_AMBR_DL0=400Mbps
- DNN_NI2=oai.ipv4 - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf - oai-nrf
- oai-amf - oai-amf
volumes:
- ../5g_rfsimulator/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-spgwu:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-spgwu"
image: oai-spgwu-tiny:august-dev image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
- SGW_INTERFACE_NAME_FOR_SX=eth0 - SGW_INTERFACE_NAME_FOR_SX=eth0
- PGW_INTERFACE_NAME_FOR_SGI=eth0 - PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes - NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24 - NETWORK_UE_IP=12.1.1.0/24
- SPGWC0_IP_ADDRESS=192.168.71.133
- BYPASS_UL_PFCP_RULES=no
- MCC=208
- MNC=99
- MNC03=099
- TAC=1
- GTP_EXTENSION_HEADER_PRESENT=yes
- GW_ID=1
- REALM=openairinterface.org
- ENABLE_5G_FEATURES=yes - ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes - REGISTER_NRF=yes
- USE_FQDN_NRF=yes - USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu - UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130 - NRF_IPV4_ADDRESS=192.168.71.130
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1 - NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff - NSSAI_SD_0=0xffffff
- DNN_0=oai - DNN_0=oai
...@@ -204,25 +140,16 @@ services: ...@@ -204,25 +140,16 @@ services:
cap_drop: cap_drop:
- ALL - ALL
privileged: true privileged: true
volumes:
- ../5g_rfsimulator/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.134 ipv4_address: 192.168.71.134
traffic_net: traffic_net:
ipv4_address: 192.168.72.134 ipv4_address: 192.168.72.134
oai-ext-dn: oai-ext-dn:
image: ubuntu:bionic
privileged: true privileged: true
container_name: rfsim5g-oai-ext-dn container_name: rfsim5g-oai-ext-dn
image: oaisoftwarealliance/trf-gen-cn5g:latest
entrypoint: /bin/bash -c \ entrypoint: /bin/bash -c \
"apt update; apt install -y procps iptables iproute2 iperf iputils-ping;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
...@@ -235,9 +162,8 @@ services: ...@@ -235,9 +162,8 @@ services:
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 5
oai-gnb: oai-gnb:
image: oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
privileged: true privileged: true
container_name: rfsim5g-oai-gnb container_name: rfsim5g-oai-gnb
environment: environment:
...@@ -258,7 +184,7 @@ services: ...@@ -258,7 +184,7 @@ services:
retries: 5 retries: 5
oai-nr-ue: oai-nr-ue:
image: oai-nr-ue:develop image: oaisoftwarealliance/oai-nr-ue:develop
privileged: true privileged: true
container_name: rfsim5g-oai-nr-ue container_name: rfsim5g-oai-nr-ue
environment: environment:
......
...@@ -55,7 +55,7 @@ CMAKE_BUILD_TYPE="RelWithDebInfo" ...@@ -55,7 +55,7 @@ CMAKE_BUILD_TYPE="RelWithDebInfo"
CMAKE_CMD="$CMAKE" CMAKE_CMD="$CMAKE"
BUILD_ECLIPSE=0 BUILD_ECLIPSE=0
NR="False" NR="False"
OPTIONAL_LIBRARIES="telnetsrv enbscope uescope nrscope" OPTIONAL_LIBRARIES="telnetsrv enbscope uescope nrscope ldpc_cuda ldpc_t1"
ulfiusdep=$(basename ./`find /usr/lib* -name libulfius.so`) ulfiusdep=$(basename ./`find /usr/lib* -name libulfius.so`)
jssondep=$(basename ./`find /usr/lib* -name libjansson.so`) jssondep=$(basename ./`find /usr/lib* -name libjansson.so`)
if [ "$ulfiusdep" == "libulfius.so" -a "$jssondep" == "libjansson.so" ] ; then if [ "$ulfiusdep" == "libulfius.so" -a "$jssondep" == "libjansson.so" ] ; then
...@@ -399,6 +399,9 @@ function main() { ...@@ -399,6 +399,9 @@ function main() {
echo_fatal "Unknown optional library in $2, valid libraries are $OPTIONAL_LIBRARIES" echo_fatal "Unknown optional library in $2, valid libraries are $OPTIONAL_LIBRARIES"
fi fi
fi fi
for oklib in $BUILD_OPTLIB ; do
CMAKE_CMD="$CMAKE_CMD -DENABLE_${oklib^^}=ON"
done
shift 2;; shift 2;;
--noavx512) --noavx512)
CMAKE_CMD="$CMAKE_CMD -DAVX512=OFF" CMAKE_CMD="$CMAKE_CMD -DAVX512=OFF"
......
...@@ -302,7 +302,6 @@ void *rrc_enb_process_msg(void *); ...@@ -302,7 +302,6 @@ void *rrc_enb_process_msg(void *);
TASK_DEF(TASK_L2L1, TASK_PRIORITY_MAX, 200, NULL, NULL) \ TASK_DEF(TASK_L2L1, TASK_PRIORITY_MAX, 200, NULL, NULL) \
TASK_DEF(TASK_BM, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_BM, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_PHY_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_PHY_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_MAC_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_MAC_GNB, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_MAC_GNB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RLC_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_RLC_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RRC_ENB_NB_IoT, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_RRC_ENB_NB_IoT, TASK_PRIORITY_MED, 200, NULL, NULL) \
...@@ -310,8 +309,8 @@ void *rrc_enb_process_msg(void *); ...@@ -310,8 +309,8 @@ void *rrc_enb_process_msg(void *);
TASK_DEF(TASK_PDCP_GNB, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_PDCP_GNB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_DATA_FORWARDING, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_DATA_FORWARDING, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_END_MARKER, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_END_MARKER, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RRC_ENB, TASK_PRIORITY_MED, 200, NULL,NULL)\ TASK_DEF(TASK_RRC_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RRC_GNB, TASK_PRIORITY_MED, 200, NULL,NULL)\ TASK_DEF(TASK_RRC_GNB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RAL_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_RAL_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_S1AP, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_S1AP, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_NGAP, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_NGAP, TASK_PRIORITY_MED, 200, NULL, NULL) \
...@@ -334,7 +333,7 @@ void *rrc_enb_process_msg(void *); ...@@ -334,7 +333,7 @@ void *rrc_enb_process_msg(void *);
TASK_DEF(TASK_RRC_NRUE, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_RRC_NRUE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_NAS_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_NAS_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RAL_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_RAL_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_GTPV1_U, TASK_PRIORITY_MED, 1000,NULL, NULL)\ TASK_DEF(TASK_GTPV1_U, TASK_PRIORITY_MED, 1000, NULL, NULL) \
TASK_DEF(TASK_CU_F1, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_CU_F1, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_DU_F1, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_DU_F1, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_CUCP_E1, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_CUCP_E1, TASK_PRIORITY_MED, 200, NULL, NULL) \
......
...@@ -12,6 +12,8 @@ ...@@ -12,6 +12,8 @@
</tr> </tr>
</table> </table>
## 4G L2 nFAPI simulator
This simulator allows to test L2 and above Layers using the nFAPI interface. This simulator allows to test L2 and above Layers using the nFAPI interface.
The UE executable is able to "simulate" multiple UEs in order to stimulate the scheduler in the eNB. The UE executable is able to "simulate" multiple UEs in order to stimulate the scheduler in the eNB.
...@@ -38,7 +40,34 @@ Normally it should be fine to run both executables on the same host using the `l ...@@ -38,7 +40,34 @@ Normally it should be fine to run both executables on the same host using the `l
**2022/03/08: Starting the `2022.w01` tag on the `develop` branch, the L2 nFAPI simulation is using a proxy.** **2022/03/08: Starting the `2022.w01` tag on the `develop` branch, the L2 nFAPI simulation is using a proxy.**
A tutorial is available on the [EpiSci GitHub Repository](https://github.com/EpiSci/oai-lte-5g-multi-ue-proxy#readme). ## 5G L2 nFAPI simulator
### Download and Build the Proxy Server (from EpiSci)
```bash
$ cd ~
$ git clone https://github.com/EpiSci/oai-lte-5g-multi-ue-proxy.git
$ cd oai-lte-multi-ue-proxy
$ make
```
### Start Proxy Server
Set the number of UEs to connect to server as 1 and the mode is SA.
```bash
$ number_of_ues=1
$ sudo -E ./build/proxy $number_of_ues --nr
```
### Start gNB
```bash
$ sudo -E ./nr-softmodem -O ../ci-scripts/conf_files/episci/proxy_rcc.band78.tm1.106PRB.nfapi.conf --nfapi VNF --noS1 --sa --emulate-l1
```
### Start UE
```bash
$ sudo -E ./nr-uesoftmodem -O ../ci-scripts/conf_files/episci/proxy_nr-ue.nfapi.conf --nokrnmod 1 --nfapi STANDALONE_PNF --node-number 2 --sa --emulate-l1
```
### EpiSci's Documentation
A more detailed tutorial is available on the [EpiSci GitHub Repository](https://github.com/EpiSci/oai-lte-5g-multi-ue-proxy#readme).
This proxy allows to perform L2 nFAPI simulator for: This proxy allows to perform L2 nFAPI simulator for:
...@@ -46,6 +75,7 @@ This proxy allows to perform L2 nFAPI simulator for: ...@@ -46,6 +75,7 @@ This proxy allows to perform L2 nFAPI simulator for:
* 5G-NSA * 5G-NSA
* 5G-SA * 5G-SA
### L2 Simulator as Docker Containers
Another tutorial for 5G SA mode with 1 User is available [here](../ci-scripts/yaml_files/5g_l2sim_tdd/README.md). Another tutorial for 5G SA mode with 1 User is available [here](../ci-scripts/yaml_files/5g_l2sim_tdd/README.md).
---- ----
......
...@@ -144,7 +144,7 @@ cd cmake_targets ...@@ -144,7 +144,7 @@ cd cmake_targets
cd ~/openairinterface5g cd ~/openairinterface5g
source oaienv source oaienv
cd cmake_targets cd cmake_targets
./build_oai -w USRP --ninja --nrUE --gNB --build-lib all -c ./build_oai -w USRP --ninja --nrUE --gNB --build-lib "telnetsrv nrscope" -c
``` ```
# 4. Run OAI CN5G and OAI gNB # 4. Run OAI CN5G and OAI gNB
......
...@@ -35,4 +35,4 @@ COPY . . ...@@ -35,4 +35,4 @@ COPY . .
RUN /bin/sh oaienv && \ RUN /bin/sh oaienv && \
cd cmake_targets && \ cd cmake_targets && \
mkdir -p log && \ mkdir -p log && \
./build_oai --eNB --gNB --RU --UE --nrUE --ninja --build-lib all -w USRP --verbose-ci --noavx512 -c ./build_oai --eNB --gNB --RU --UE --nrUE --ninja --build-lib "telnetsrv enbscope uescope nrscope" -w USRP --verbose-ci --noavx512 -c
...@@ -35,4 +35,4 @@ COPY . . ...@@ -35,4 +35,4 @@ COPY . .
RUN /bin/sh oaienv && \ RUN /bin/sh oaienv && \
cd cmake_targets && \ cd cmake_targets && \
mkdir -p log && \ mkdir -p log && \
./build_oai --eNB --gNB --RU --UE --nrUE --ninja --build-lib all -w USRP --verbose-ci --noavx512 -c ./build_oai --eNB --gNB --RU --UE --nrUE --ninja --build-lib "telnetsrv enbscope uescope nrscope" -w USRP --verbose-ci --noavx512 -c
...@@ -37,9 +37,6 @@ RUN /bin/sh oaienv && \ ...@@ -37,9 +37,6 @@ RUN /bin/sh oaienv && \
cd cmake_targets/ran_build/build && \ cd cmake_targets/ran_build/build && \
ninja aw2sori_transpro ninja aw2sori_transpro
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml && \
cp /oai-ran/docker/scripts/gnb_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
#start from scratch for target executable #start from scratch for target executable
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-gnb-aw2s FROM registry.access.redhat.com/ubi8/ubi:latest as oai-gnb-aw2s
ENV TZ=Europe/Paris ENV TZ=Europe/Paris
...@@ -54,18 +51,15 @@ RUN yum repolist --disablerepo=* && \ ...@@ -54,18 +51,15 @@ RUN yum repolist --disablerepo=* && \
lksctp-tools \ lksctp-tools \
tzdata \ tzdata \
net-tools \ net-tools \
iputils \ iputils && \
python3-pip && \
pip3 install six && \
pip3 install requests && \
echo "/usr/local/lib" > /etc/ld.so.conf.d/local-lib.conf && \ echo "/usr/local/lib" > /etc/ld.so.conf.d/local-lib.conf && \
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
COPY ./libori.so /usr/local/lib
WORKDIR /opt/oai-gnb-aw2s/bin WORKDIR /opt/oai-gnb-aw2s/bin
COPY --from=gnb-build \ COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/nr-softmodem ./
/oai-ran/cmake_targets/ran_build/build/nr-softmodem \ COPY ./docker/scripts/gnb-aw2s_entrypoint.sh /opt/oai-gnb-aw2s/bin/entrypoint.sh
/oai-ran/docker/scripts/entrypoint.sh \
./
COPY --from=gnb-build \ COPY --from=gnb-build \
/oai-ran/cmake_targets/ran_build/build/liboai_eth_transpro.so \ /oai-ran/cmake_targets/ran_build/build/liboai_eth_transpro.so \
...@@ -92,17 +86,7 @@ COPY --from=gnb-base \ ...@@ -92,17 +86,7 @@ COPY --from=gnb-base \
RUN ln -s /usr/local/lib/libaw2sori_transpro.so /usr/local/lib/libthirdparty_transpro.so && \ RUN ln -s /usr/local/lib/libaw2sori_transpro.so /usr/local/lib/libthirdparty_transpro.so && \
ldconfig ldconfig
# Copy the relevant configuration files for gNB
WORKDIR /opt/oai-gnb-aw2s/etc
COPY --from=gnb-build /oai-ran/docker/etc .
WORKDIR /opt/oai-gnb-aw2s WORKDIR /opt/oai-gnb-aw2s
#EXPOSE 2152/udp # S1U, GTP/UDP
#EXPOSE 22100/tcp # ?
#EXPOSE 36412/udp # S1C, SCTP/UDP
#EXPOSE 36422/udp # X2C, SCTP/UDP
#EXPOSE 50000/udp # IF5 / ORI (control)
#EXPOSE 50001/udp # IF5 / ECPRI (data)
ENTRYPOINT ["/opt/oai-gnb-aw2s/bin/entrypoint.sh"] ENTRYPOINT ["/opt/oai-gnb-aw2s/bin/entrypoint.sh"]
CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem", "-O", "/opt/oai-gnb-aw2s/etc/gnb.conf"] CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem", "-O", "/opt/oai-gnb-aw2s/etc/gnb.conf"]
#/*
# * 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
# */
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu18.04
#
#---------------------------------------------------------------------
FROM ran-base:latest AS gnb-base
FROM ran-build:latest AS gnb-build
COPY ./libori.so /usr/local/lib/
# build AW2S fronthaul lib
WORKDIR /oai-ran
RUN /bin/sh oaienv && \
cd cmake_targets/ran_build/build && \
ninja aw2sori_transpro
#start from scratch for target executable
FROM ubuntu:bionic as oai-gnb-aw2s
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
procps \
libsctp1 \
tzdata \
libblas3 \
libatlas3-base \
libconfig9 \
openssl \
net-tools \
iproute2 \
iputils-ping && \
rm -rf /var/lib/apt/lists/*
COPY ./libori.so /usr/local/lib/
WORKDIR /opt/oai-gnb-aw2s/bin
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/nr-softmodem ./
COPY ./docker/scripts/gnb-aw2s_entrypoint.sh /opt/oai-gnb-aw2s/bin/entrypoint.sh
COPY --from=gnb-build \
/oai-ran/cmake_targets/ran_build/build/liboai_eth_transpro.so \
/oai-ran/cmake_targets/ran_build/build/librfsimulator.so \
/oai-ran/cmake_targets/ran_build/build/libaw2sori_transpro.so \
/oai-ran/cmake_targets/ran_build/build/libcoding.so \
/oai-ran/cmake_targets/ran_build/build/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
/oai-ran/cmake_targets/ran_build/build/libldpc.so \
/oai-ran/cmake_targets/ran_build/build/libldpc_optim.so \
/oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so \
/oai-ran/cmake_targets/ran_build/build/libldpc_orig.so \
/oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
/usr/local/lib/
RUN /bin/bash -c "ln -s /usr/local/lib/libaw2sori_transpro.so /usr/local/lib/libthirdparty_transpro.so" && \
/bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so /usr/local/lib/liboai_transpro.so" && \
ldconfig
WORKDIR /opt/oai-gnb-aw2s
ENTRYPOINT ["/opt/oai-gnb-aw2s/bin/entrypoint.sh"]
CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem", "-O", "/opt/oai-gnb-aw2s/etc/gnb.conf"]
#!/bin/bash
set -uo pipefail
PREFIX=/opt/oai-gnb-aw2s
if [[ -v USE_VOLUMED_CONF ]]; then
cp $PREFIX/etc/mounted.conf $PREFIX/etc/gnb.conf
else
echo "ERROR: No configuration file provided."
echo "Please set USE_VOLUMED_CONF and mount a configuration file at $PREFIX/etc/mounted.conf"
exit 1
fi
echo "=================================="
echo "== Configuration file:"
cat $PREFIX/etc/enb.conf
# enable printing of stack traces on assert
export gdbStacks=1
echo "=================================="
echo "== Starting gNB soft modem with AW2S"
if [[ -v USE_ADDITIONAL_OPTIONS ]]; then
echo "Additional option(s): ${USE_ADDITIONAL_OPTIONS}"
new_args=()
while [[ $# -gt 0 ]]; do
new_args+=("$1")
shift
done
for word in ${USE_ADDITIONAL_OPTIONS}; do
new_args+=("$word")
done
echo "${new_args[@]}"
exec "${new_args[@]}"
else
echo "$@"
exec "$@"
fi
...@@ -53,11 +53,8 @@ int create_tasks(uint32_t enb_nb) { ...@@ -53,11 +53,8 @@ int create_tasks(uint32_t enb_nb) {
LOG_I(ENB_APP, "Creating ENB_APP eNB Task\n"); LOG_I(ENB_APP, "Creating ENB_APP eNB Task\n");
rc = itti_create_task (TASK_ENB_APP, eNB_app_task, NULL); rc = itti_create_task (TASK_ENB_APP, eNB_app_task, NULL);
AssertFatal(rc >= 0, "Create task for eNB APP failed\n"); AssertFatal(rc >= 0, "Create task for eNB APP failed\n");
rrc_enb_init();
LOG_I(RRC,"Creating RRC eNB Task\n"); itti_mark_task_ready(TASK_RRC_ENB);
rc = itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL);
AssertFatal(rc >= 0, "Create task for RRC eNB failed\n");
if (get_softmodem_params()->emulate_l1 || (EPC_MODE_ENABLED && split73 != SPLIT73_DU)) { if (get_softmodem_params()->emulate_l1 || (EPC_MODE_ENABLED && split73 != SPLIT73_DU)) {
rc = itti_create_task(TASK_SCTP, sctp_eNB_task, NULL); rc = itti_create_task(TASK_SCTP, sctp_eNB_task, NULL);
AssertFatal(rc >= 0, "Create task for SCTP failed\n"); AssertFatal(rc >= 0, "Create task for SCTP failed\n");
...@@ -89,11 +86,5 @@ int create_tasks(uint32_t enb_nb) { ...@@ -89,11 +86,5 @@ int create_tasks(uint32_t enb_nb) {
AssertFatal(rc >= 0, "Create task for GTPV1U failed\n"); AssertFatal(rc >= 0, "Create task for GTPV1U failed\n");
} }
if (!NODE_IS_CU(type)) {
LOG_I(MAC,"Creating MAC eNB Task\n");
rc = itti_create_task(TASK_MAC_ENB, mac_enb_task, NULL);
AssertFatal(rc >= 0, "Create task for MAC eNB failed\n");
}
return 0; return 0;
} }
...@@ -313,7 +313,6 @@ static inline int rxtx(PHY_VARS_eNB *eNB, ...@@ -313,7 +313,6 @@ static inline int rxtx(PHY_VARS_eNB *eNB,
return(0); return(0);
} }
static void *L1_thread_tx(void *param) { static void *L1_thread_tx(void *param) {
L1_proc_t *eNB_proc = (L1_proc_t *)param; L1_proc_t *eNB_proc = (L1_proc_t *)param;
L1_rxtx_proc_t *proc = &eNB_proc->L1_proc_tx; L1_rxtx_proc_t *proc = &eNB_proc->L1_proc_tx;
...@@ -811,35 +810,19 @@ static void *eNB_thread_prach_br( void *param ) { ...@@ -811,35 +810,19 @@ static void *eNB_thread_prach_br( void *param ) {
return &eNB_thread_prach_status; return &eNB_thread_prach_status;
} }
static void print_opp_meas(PHY_VARS_eNB *eNB);
extern void init_td_thread(PHY_VARS_eNB *); static void reset_opp_meas(PHY_VARS_eNB *eNB);
extern void init_te_thread(PHY_VARS_eNB *);
extern void kill_td_thread(PHY_VARS_eNB *);
extern void kill_te_thread(PHY_VARS_eNB *);
static void *process_stats_thread(void *param) { static void *process_stats_thread(void *param) {
PHY_VARS_eNB *eNB = (PHY_VARS_eNB *)param; PHY_VARS_eNB *eNB = (PHY_VARS_eNB *)param;
wait_sync("process_stats_thread"); wait_sync("process_stats_thread");
reset_opp_meas(eNB);
while (!oai_exit) { while (!oai_exit) {
sleep(1); sleep(1);
print_opp_meas(eNB);
if (opp_enabled == 1) { if (RC.mac)
if ( eNB->ulsch_decoding_stats.trials>0) lte_dump_mac_stats(RC.mac[0], stdout);
print_meas(&eNB->ulsch_decoding_stats,"ulsch_decoding",NULL,NULL); if (time(NULL) % 10)
reset_opp_meas(eNB);
if (eNB->dlsch_encoding_stats.trials >0) {
print_meas(&eNB->dlsch_turbo_encoding_preperation_stats,"dlsch_coding_crc",NULL,NULL);
print_meas(&eNB->dlsch_turbo_encoding_segmentation_stats,"dlsch_segmentation",NULL,NULL);
print_meas(&eNB->dlsch_encoding_stats,"dlsch_encoding",NULL,NULL);
print_meas(&eNB->dlsch_turbo_encoding_stats,"turbo_encoding",NULL,NULL);
print_meas(&eNB->dlsch_interleaving_stats,"turbo_interleaving",NULL,NULL);
print_meas(&eNB->dlsch_rate_matching_stats,"turbo_rate_matching",NULL,NULL);
}
print_meas(&eNB->dlsch_modulation_stats,"dlsch_modulation",NULL,NULL);
}
} }
return(NULL); return(NULL);
...@@ -918,11 +901,6 @@ void init_eNB_proc(int inst) { ...@@ -918,11 +901,6 @@ void init_eNB_proc(int inst) {
pthread_cond_init( &proc->cond_prach_br, NULL); pthread_cond_init( &proc->cond_prach_br, NULL);
pthread_attr_init( &proc->attr_prach_br); pthread_attr_init( &proc->attr_prach_br);
if(get_thread_worker_conf() == WORKER_ENABLE) {
init_te_thread(eNB);
init_td_thread(eNB);
}
LOG_I(PHY,"eNB->single_thread_flag:%d\n", eNB->single_thread_flag); LOG_I(PHY,"eNB->single_thread_flag:%d\n", eNB->single_thread_flag);
if ((get_thread_parallel_conf() == PARALLEL_RU_L1_SPLIT) && NFAPI_MODE!=NFAPI_MODE_VNF) { if ((get_thread_parallel_conf() == PARALLEL_RU_L1_SPLIT) && NFAPI_MODE!=NFAPI_MODE_VNF) {
...@@ -954,8 +932,10 @@ void init_eNB_proc(int inst) { ...@@ -954,8 +932,10 @@ void init_eNB_proc(int inst) {
AssertFatal(proc->instance_cnt_prach == -1,"instance_cnt_prach = %d\n",proc->instance_cnt_prach); AssertFatal(proc->instance_cnt_prach == -1,"instance_cnt_prach = %d\n",proc->instance_cnt_prach);
if (opp_enabled == 1) pthread_create(&proc->process_stats_thread,NULL,process_stats_thread,(void *)eNB); if (opp_enabled == 1)
pthread_create(&proc->L1_stats_thread,NULL,L1_stats_thread,(void*)eNB); threadCreate(&proc->process_stats_thread, process_stats_thread, (void *)eNB, "opp stats", -1, sched_get_priority_min(SCHED_OAI));
if (!IS_SOFTMODEM_NOSTATS_BIT)
threadCreate(&proc->L1_stats_thread, L1_stats_thread, (void *)eNB, "L1 stats", -1, sched_get_priority_min(SCHED_OAI));
} }
//for multiple CCs: setup master and slaves //for multiple CCs: setup master and slaves
...@@ -997,11 +977,6 @@ void kill_eNB_proc(int inst) { ...@@ -997,11 +977,6 @@ void kill_eNB_proc(int inst) {
L1_proc = &proc->L1_proc; L1_proc = &proc->L1_proc;
L1_proc_tx = &proc->L1_proc_tx; L1_proc_tx = &proc->L1_proc_tx;
if(get_thread_worker_conf() == WORKER_ENABLE) {
kill_td_thread(eNB);
kill_te_thread(eNB);
}
LOG_I(PHY, "Killing TX CC_id %d inst %d\n", CC_id, inst ); LOG_I(PHY, "Killing TX CC_id %d inst %d\n", CC_id, inst );
if ((get_thread_parallel_conf() == PARALLEL_RU_L1_SPLIT || get_thread_parallel_conf() == PARALLEL_RU_L1_TRX_SPLIT) && NFAPI_MODE!=NFAPI_MODE_VNF) { if ((get_thread_parallel_conf() == PARALLEL_RU_L1_SPLIT || get_thread_parallel_conf() == PARALLEL_RU_L1_TRX_SPLIT) && NFAPI_MODE!=NFAPI_MODE_VNF) {
...@@ -1060,30 +1035,43 @@ void kill_eNB_proc(int inst) { ...@@ -1060,30 +1035,43 @@ void kill_eNB_proc(int inst) {
} }
} }
static void reset_opp_meas(PHY_VARS_eNB *eNB)
void reset_opp_meas(void) { {
int sfn;
reset_meas(&softmodem_stats_mt); reset_meas(&softmodem_stats_mt);
reset_meas(&softmodem_stats_hw); reset_meas(&softmodem_stats_hw);
for (sfn=0; sfn < 10; sfn++) {
reset_meas(&softmodem_stats_rxtx_sf); reset_meas(&softmodem_stats_rxtx_sf);
reset_meas(&softmodem_stats_rx_sf); reset_meas(&softmodem_stats_rx_sf);
} reset_meas(&eNB->ulsch_decoding_stats);
reset_meas(&eNB->dlsch_turbo_encoding_preperation_stats);
reset_meas(&eNB->dlsch_turbo_encoding_segmentation_stats);
reset_meas(&eNB->dlsch_encoding_stats);
reset_meas(&eNB->dlsch_turbo_encoding_stats);
reset_meas(&eNB->dlsch_interleaving_stats);
reset_meas(&eNB->dlsch_rate_matching_stats);
reset_meas(&eNB->dlsch_modulation_stats);
} }
static void print_opp_meas(PHY_VARS_eNB *eNB)
void print_opp_meas(void) { {
int sfn=0;
print_meas(&softmodem_stats_mt, "Main ENB Thread", NULL, NULL); print_meas(&softmodem_stats_mt, "Main ENB Thread", NULL, NULL);
print_meas(&softmodem_stats_hw, "HW Acquisation", NULL, NULL); print_meas(&softmodem_stats_hw, "HW Acquisation", NULL, NULL);
for (sfn=0; sfn < 10; sfn++) {
print_meas(&softmodem_stats_rxtx_sf,"[eNB][total_phy_proc_rxtx]",NULL, NULL); print_meas(&softmodem_stats_rxtx_sf,"[eNB][total_phy_proc_rxtx]",NULL, NULL);
print_meas(&softmodem_stats_rx_sf,"[eNB][total_phy_proc_rx]",NULL,NULL); print_meas(&softmodem_stats_rx_sf,"[eNB][total_phy_proc_rx]",NULL,NULL);
if (eNB->ulsch_decoding_stats.trials > 0)
print_meas(&eNB->ulsch_decoding_stats, "ulsch_decoding", NULL, NULL);
if (eNB->dlsch_encoding_stats.trials > 0) {
print_meas(&eNB->dlsch_turbo_encoding_preperation_stats, "dlsch_coding_crc", NULL, NULL);
print_meas(&eNB->dlsch_turbo_encoding_segmentation_stats, "dlsch_segmentation", NULL, NULL);
print_meas(&eNB->dlsch_encoding_stats, "dlsch_encoding", NULL, NULL);
print_meas(&eNB->dlsch_turbo_encoding_stats, "turbo_encoding", NULL, NULL);
print_meas(&eNB->dlsch_interleaving_stats, "turbo_interleaving", NULL, NULL);
print_meas(&eNB->dlsch_rate_matching_stats, "turbo_rate_matching", NULL, NULL);
} }
}
print_meas(&eNB->dlsch_modulation_stats, "dlsch_modulation", NULL, NULL);
}
void free_transport(PHY_VARS_eNB *eNB) { void free_transport(PHY_VARS_eNB *eNB) {
for (int i=0; i<NUMBER_OF_DLSCH_MAX; i++) { for (int i=0; i<NUMBER_OF_DLSCH_MAX; i++) {
...@@ -1279,7 +1267,6 @@ void init_eNB(int single_thread_flag, ...@@ -1279,7 +1267,6 @@ void init_eNB(int single_thread_flag,
eNB->prach_energy_counter = 0; eNB->prach_energy_counter = 0;
} }
} }
LOG_I(PHY,"[lte-softmodem.c] eNB structure allocated\n"); LOG_I(PHY,"[lte-softmodem.c] eNB structure allocated\n");
} }
......
...@@ -1472,11 +1472,11 @@ static void *ru_stats_thread(void *param) { ...@@ -1472,11 +1472,11 @@ static void *ru_stats_thread(void *param) {
sleep(1); sleep(1);
if (opp_enabled) { if (opp_enabled) {
if (ru->feprx) print_meas(&ru->ofdm_demod_stats,"feprx",NULL,NULL); if (ru->feprx) print_meas(&ru->ofdm_demod_stats,"feprx_ru",NULL,NULL);
if (ru->feptx_ofdm) print_meas(&ru->ofdm_mod_stats,"feptx_ofdm",NULL,NULL); if (ru->feptx_ofdm) print_meas(&ru->ofdm_mod_stats,"feptx_ofdm_ru",NULL,NULL);
if (ru->fh_north_asynch_in) print_meas(&ru->rx_fhaul,"rx_fhaul",NULL,NULL); if (ru->fh_north_asynch_in) print_meas(&ru->rx_fhaul,"rx_fhaul_ru",NULL,NULL);
if (ru->fh_north_out) { if (ru->fh_north_out) {
print_meas(&ru->tx_fhaul,"tx_fhaul",NULL,NULL); print_meas(&ru->tx_fhaul,"tx_fhaul",NULL,NULL);
...@@ -2335,17 +2335,8 @@ void init_RU_proc(RU_t *ru) { ...@@ -2335,17 +2335,8 @@ void init_RU_proc(RU_t *ru) {
init_feptx_thread(ru, NULL); init_feptx_thread(ru, NULL);
} }
if (opp_enabled == 1) pthread_create(&ru->ru_stats_thread,NULL,ru_stats_thread,(void *)ru); if (opp_enabled == 1)
/* pthread_create(&ru->ru_stats_thread, NULL, ru_stats_thread, (void *)ru);
if (ru->function == eNodeB_3GPP) {
usleep(10000);
LOG_I(PHY, "Signaling main thread that RU %d (is_slave %d,send_dmrs %d) is ready in state %s\n",ru->idx,ru->is_slave,ru->generate_dmrs_sync,ru_states[ru->state]);
AssertFatal((ret=pthread_mutex_lock(ru->ru_mutex))==0,"mutex_lock returns %d\n",ret);
*ru->ru_mask &= ~(1<<ru->idx);
pthread_cond_signal(ru->ru_cond);
AssertFatal((ret=pthread_mutex_unlock(ru->ru_mutex))==0,"mutex_unlock returns %d\n",ret);
}
*/
} }
......
...@@ -156,10 +156,6 @@ void sendFs6Ulharq(enum pckType type, int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI * ...@@ -156,10 +156,6 @@ void sendFs6Ulharq(enum pckType type, int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *
RU_t **RCconfig_RU(int nb_RU,int nb_L1_inst,PHY_VARS_eNB ***eNB,uint64_t *ru_mask,pthread_mutex_t *ru_mutex,pthread_cond_t *ru_cond); RU_t **RCconfig_RU(int nb_RU,int nb_L1_inst,PHY_VARS_eNB ***eNB,uint64_t *ru_mask,pthread_mutex_t *ru_mutex,pthread_cond_t *ru_cond);
extern void reset_opp_meas(void);
extern void print_opp_meas(void);
RU_t **RCconfig_RU(int nb_RU,int nb_L1_inst,PHY_VARS_eNB ***eNB,uint64_t *ru_mask,pthread_mutex_t *ru_mutex,pthread_cond_t *ru_cond); RU_t **RCconfig_RU(int nb_RU,int nb_L1_inst,PHY_VARS_eNB ***eNB,uint64_t *ru_mask,pthread_mutex_t *ru_mutex,pthread_cond_t *ru_cond);
int transmission_mode=1; int transmission_mode=1;
...@@ -452,10 +448,6 @@ int main ( int argc, char **argv ) ...@@ -452,10 +448,6 @@ int main ( int argc, char **argv )
set_taus_seed (0); set_taus_seed (0);
printf("configuring for RAU/RRU\n"); printf("configuring for RAU/RRU\n");
if (opp_enabled ==1) {
reset_opp_meas();
}
cpuf=get_cpu_freq_GHz(); cpuf=get_cpu_freq_GHz();
printf("ITTI init, useMME: %i\n",EPC_MODE_ENABLED); printf("ITTI init, useMME: %i\n",EPC_MODE_ENABLED);
itti_init(TASK_MAX, tasks_info); itti_init(TASK_MAX, tasks_info);
...@@ -490,6 +482,7 @@ int main ( int argc, char **argv ) ...@@ -490,6 +482,7 @@ int main ( int argc, char **argv )
MessageDef *msg_p = itti_alloc_new_message (TASK_ENB_APP, 0, RRC_CONFIGURATION_REQ); MessageDef *msg_p = itti_alloc_new_message (TASK_ENB_APP, 0, RRC_CONFIGURATION_REQ);
RRC_CONFIGURATION_REQ(msg_p) = RC.rrc[enb_id]->configuration; RRC_CONFIGURATION_REQ(msg_p) = RC.rrc[enb_id]->configuration;
itti_send_msg_to_task (TASK_RRC_ENB, ENB_MODULE_ID_TO_INSTANCE(enb_id), msg_p); itti_send_msg_to_task (TASK_RRC_ENB, ENB_MODULE_ID_TO_INSTANCE(enb_id), msg_p);
rrc_enb_process_itti_msg(NULL);
} }
node_type = RC.rrc[0]->node_type; node_type = RC.rrc[0]->node_type;
} }
...@@ -605,10 +598,11 @@ int main ( int argc, char **argv ) ...@@ -605,10 +598,11 @@ int main ( int argc, char **argv )
sync_var=0; sync_var=0;
pthread_cond_broadcast(&sync_cond); pthread_cond_broadcast(&sync_cond);
pthread_mutex_unlock(&sync_mutex); pthread_mutex_unlock(&sync_mutex);
config_check_unknown_cmdlineopt(CONFIG_CHECKALLSECTIONS);
} }
create_tasks_mbms(1); create_tasks_mbms(1);
sleep(1);
config_check_unknown_cmdlineopt(CONFIG_CHECKALLSECTIONS);
// wait for end of program // wait for end of program
LOG_UI(ENB_APP,"TYPE <CTRL-C> TO TERMINATE\n"); LOG_UI(ENB_APP,"TYPE <CTRL-C> TO TERMINATE\n");
......
...@@ -179,14 +179,6 @@ extern void init_UE(int nb_inst, ...@@ -179,14 +179,6 @@ extern void init_UE(int nb_inst,
extern void init_thread(int sched_runtime, int sched_deadline, int sched_fifo, cpu_set_t *cpuset, char *name); extern void init_thread(int sched_runtime, int sched_deadline, int sched_fifo, cpu_set_t *cpuset, char *name);
extern void reset_opp_meas(void);
extern void print_opp_meas(void);
extern void init_td_thread(PHY_VARS_eNB *);
extern void init_te_thread(PHY_VARS_eNB *);
extern void kill_td_thread(PHY_VARS_eNB *);
extern void kill_te_thread(PHY_VARS_eNB *);
extern void init_ocm(void); extern void init_ocm(void);
extern void init_ue_devices(PHY_VARS_UE *); extern void init_ue_devices(PHY_VARS_UE *);
......
This diff is collapsed.
...@@ -1434,7 +1434,7 @@ int32_t nrLDPC_decod_offload(t_nrLDPC_dec_params* p_decParams, uint8_t harq_pid, ...@@ -1434,7 +1434,7 @@ int32_t nrLDPC_decod_offload(t_nrLDPC_dec_params* p_decParams, uint8_t harq_pid,
argv_re[1] = "-l"; argv_re[1] = "-l";
argv_re[2] = "31"; argv_re[2] = "31";
argv_re[3] = "-w"; argv_re[3] = "-w";
argv_re[4] = "81:00.0"; argv_re[4] = "b0:00.0";
argv_re[5] = "--file-prefix=b6"; argv_re[5] = "--file-prefix=b6";
argv_re[6] = "--"; argv_re[6] = "--";
......
...@@ -75,7 +75,7 @@ int load_nrLDPClib_offload(void) { ...@@ -75,7 +75,7 @@ int load_nrLDPClib_offload(void) {
loader_shlibfunc_t shlib_decoffload_fdesc; loader_shlibfunc_t shlib_decoffload_fdesc;
shlib_decoffload_fdesc.fname = "nrLDPC_decod_offload"; shlib_decoffload_fdesc.fname = "nrLDPC_decod_offload";
int ret=load_module_shlib("ldpc_offload",&shlib_decoffload_fdesc,1,NULL); int ret=load_module_shlib("ldpc_t1",&shlib_decoffload_fdesc,1,NULL);
AssertFatal( (ret >= 0),"Error loading ldpc decoder offload"); AssertFatal( (ret >= 0),"Error loading ldpc decoder offload");
nrLDPC_decoder_offload = (nrLDPC_decoffloadfunc_t)shlib_decoffload_fdesc.fptr; nrLDPC_decoder_offload = (nrLDPC_decoffloadfunc_t)shlib_decoffload_fdesc.fptr;
......
...@@ -241,10 +241,6 @@ void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch) { ...@@ -241,10 +241,6 @@ void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch) {
} }
} }
void *te_thread(void *param) {
return(NULL);
}
static void TPencode(void * arg) { static void TPencode(void * arg) {
turboEncode_t * rdata=(turboEncode_t *) arg; turboEncode_t * rdata=(turboEncode_t *) arg;
unsigned char harq_pid = rdata->harq_pid; unsigned char harq_pid = rdata->harq_pid;
......
...@@ -248,6 +248,7 @@ void processULSegment(void * arg) { ...@@ -248,6 +248,7 @@ void processULSegment(void * arg) {
if(ulsch_harq->repetition_number == 1) { if(ulsch_harq->repetition_number == 1) {
memset(ulsch_harq->pusch_rep_buffer[r],0,(sizeof(int32_t)*3*(6144+64))) ; // reset the buffer every new repetitions memset(ulsch_harq->pusch_rep_buffer[r],0,(sizeof(int32_t)*3*(6144+64))) ; // reset the buffer every new repetitions
} }
if(ulsch_harq->total_number_of_repetitions > 1) { if(ulsch_harq->total_number_of_repetitions > 1) {
if (ulsch_harq->rvidx==1) { if (ulsch_harq->rvidx==1) {
LOG_E(PHY,"Adding HARQ data for segment: %d\n", r); LOG_E(PHY,"Adding HARQ data for segment: %d\n", r);
...@@ -267,13 +268,13 @@ void processULSegment(void * arg) { ...@@ -267,13 +268,13 @@ void processULSegment(void * arg) {
soft_bits+96, soft_bits+96,
ulsch_harq->w[r]); ulsch_harq->w[r]);
stop_meas(&eNB->ulsch_deinterleaving_stats); stop_meas(&eNB->ulsch_deinterleaving_stats);
rdata->decodeIterations = rdata->function( soft_bits+96, rdata->decodeIterations = rdata->function(soft_bits + 96,
NULL, NULL,
rdata->decoded_bytes, rdata->decoded_bytes,
NULL, NULL,
rdata->Kr, rdata->Kr,
rdata->maxIterations, rdata->maxIterations,
rdata->nbSegments == 1 ? CRC24_A: CRC24_B, rdata->nbSegments == 1 ? CRC24_A : CRC24_B,
rdata->Fbits, rdata->Fbits,
&eNB->ulsch_tc_init_stats, &eNB->ulsch_tc_init_stats,
&eNB->ulsch_tc_alpha_stats, &eNB->ulsch_tc_alpha_stats,
...@@ -282,13 +283,6 @@ void processULSegment(void * arg) { ...@@ -282,13 +283,6 @@ void processULSegment(void * arg) {
&eNB->ulsch_tc_ext_stats, &eNB->ulsch_tc_ext_stats,
&eNB->ulsch_tc_intl1_stats, &eNB->ulsch_tc_intl1_stats,
&eNB->ulsch_tc_intl2_stats); &eNB->ulsch_tc_intl2_stats);
stop_meas(&eNB->ulsch_turbo_decoding_stats);
}
void *td_thread(void *param) {
return(NULL);
} }
int ulsch_decoding_data(PHY_VARS_eNB *eNB, L1_rxtx_proc_t *proc, int ulsch_decoding_data(PHY_VARS_eNB *eNB, L1_rxtx_proc_t *proc,
......
This diff is collapsed.
This diff is collapsed.
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
\param symbol symbol within slot \param symbol symbol within slot
\param bwp_start_subcarrier, first allocated subcarrier \param bwp_start_subcarrier, first allocated subcarrier
\param nb_rb_pusch, number of allocated RBs for this UE \param nb_rb_pusch, number of allocated RBs for this UE
\param max_ch maximum value of estimated channel
*/ */
int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB, int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
...@@ -45,7 +46,8 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB, ...@@ -45,7 +46,8 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
unsigned char symbol, unsigned char symbol,
int ul_id, int ul_id,
unsigned short bwp_start_subcarrier, unsigned short bwp_start_subcarrier,
nfapi_nr_pusch_pdu_t *pusch_pdu); nfapi_nr_pusch_pdu_t *pusch_pdu,
int *max_ch);
void dump_nr_I0_stats(FILE *fd,PHY_VARS_gNB *gNB); void dump_nr_I0_stats(FILE *fd,PHY_VARS_gNB *gNB);
......
...@@ -155,7 +155,8 @@ void nr_ulsch_scale_channel(int32_t **ul_ch_estimates_ext, ...@@ -155,7 +155,8 @@ void nr_ulsch_scale_channel(int32_t **ul_ch_estimates_ext,
uint8_t is_dmrs_symbol, uint8_t is_dmrs_symbol,
uint32_t len, uint32_t len,
uint8_t nrOfLayers, uint8_t nrOfLayers,
uint16_t nb_rb); uint16_t nb_rb,
int shift_ch_ext);
/** \brief This function computes the average channel level over all allocated RBs and antennas (TX/RX) in order to compute output shift for compensated signal /** \brief This function computes the average channel level over all allocated RBs and antennas (TX/RX) in order to compute output shift for compensated signal
@param ul_ch_estimates_ext Channel estimates in allocated RBs @param ul_ch_estimates_ext Channel estimates in allocated RBs
......
...@@ -68,6 +68,14 @@ ...@@ -68,6 +68,14 @@
#include <pthread.h> #include <pthread.h>
#include "assertions.h" #include "assertions.h"
#if UE_TIMING_TRACE
#define start_UE_TIMING(a) start_meas(&(a))
#define stop_UE_TIMING(a) stop_meas(&(a))
#else
#define start_UE_TIMING(a)
#define stop_UE_TIMING(a)
#endif
#ifdef MEX #ifdef MEX
#include "mex.h" #include "mex.h"
#define msg mexPrintf #define msg mexPrintf
......
This diff is collapsed.
...@@ -990,13 +990,6 @@ int main(int argc, char **argv) { ...@@ -990,13 +990,6 @@ int main(int argc, char **argv) {
eNB->mac_enabled=1; eNB->mac_enabled=1;
if(get_thread_worker_conf() == WORKER_ENABLE) {
extern void init_td_thread(PHY_VARS_eNB *);
extern void init_te_thread(PHY_VARS_eNB *);
init_td_thread(eNB);
init_te_thread(eNB);
}
// callback functions required for phy_procedures_tx // callback functions required for phy_procedures_tx
// eNB_id_i = UE->n_connected_eNB; // eNB_id_i = UE->n_connected_eNB;
printf("Setting mcs1 = %d\n",mcs1); printf("Setting mcs1 = %d\n",mcs1);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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