mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 12:40:28 +00:00
Compare commits
14 Commits
tx_symbol_
...
multi-test
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c3dedf76fc | ||
|
|
516b0c67de | ||
|
|
ac0679835a | ||
|
|
98a45d17d5 | ||
|
|
3b8ba667ee | ||
|
|
11eb0c8618 | ||
|
|
6bb6a65003 | ||
|
|
bd231bcefa | ||
|
|
3d6efde993 | ||
|
|
ca4144175a | ||
|
|
4a3b2ca59c | ||
|
|
f7f24e0251 | ||
|
|
f08949a115 | ||
|
|
3eb1cab16b |
8
.gitignore
vendored
8
.gitignore
vendored
@@ -20,14 +20,6 @@ GRTAGS
|
||||
GTAGS
|
||||
tags
|
||||
|
||||
# Package conffiles
|
||||
|
||||
tools/packages/oai-lte/conffiles
|
||||
tools/packages/oai-nr/conffiles
|
||||
tools/packages/liboai-common/conffiles
|
||||
tools/packages/liboai-usrp/conffiles
|
||||
|
||||
|
||||
# others
|
||||
nfapi_nr_interface_scf
|
||||
*.log
|
||||
|
||||
120
CMakeLists.txt
120
CMakeLists.txt
@@ -22,7 +22,38 @@
|
||||
cmake_minimum_required (VERSION 3.16)
|
||||
project (OpenAirInterface LANGUAGES C CXX)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(OAI_VERSION 2.4.0)
|
||||
|
||||
option(CUDA_ENABLE "Enable CUDA accelerated channel simulation" OFF)
|
||||
if(CUDA_ENABLE)
|
||||
find_package(CUDA REQUIRED)
|
||||
find_package(CUDAToolkit REQUIRED)
|
||||
message(STATUS "CUDA explicitly enabled, building with GPU acceleration support.")
|
||||
|
||||
enable_language(CUDA)
|
||||
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
set(CMAKE_CUDA_ARCHITECTURES 90)
|
||||
endif()
|
||||
|
||||
option(USE_UNIFIED_MEMORY "Enable CUDA Unified Memory path" OFF)
|
||||
option(USE_ATS_MEMORY "Enable ATS Hybrid Memory path" ON)
|
||||
|
||||
if(USE_UNIFIED_MEMORY AND USE_ATS_MEMORY)
|
||||
message(FATAL_ERROR "Cannot enable both USE_UNIFIED_MEMORY and USE_ATS_MEMORY at the same time.")
|
||||
endif()
|
||||
|
||||
if(USE_UNIFIED_MEMORY)
|
||||
add_compile_definitions(USE_UNIFIED_MEMORY)
|
||||
message(STATUS "CUDA Unified Memory path enabled.")
|
||||
elseif(USE_ATS_MEMORY)
|
||||
add_compile_definitions(USE_ATS_MEMORY)
|
||||
message(STATUS "CUDA ATS Hybrid Memory path enabled.")
|
||||
else()
|
||||
message(STATUS "CUDA Explicit Copy path enabled (default ATS was overridden).")
|
||||
endif()
|
||||
|
||||
add_compile_definitions(ENABLE_CUDA)
|
||||
endif()
|
||||
|
||||
#########################################################
|
||||
# Base directories, compatible with legacy OAI building #
|
||||
@@ -62,15 +93,6 @@ endif()
|
||||
###################################
|
||||
include(FindPkgConfig)
|
||||
|
||||
|
||||
option(PACKAGING_RPM "By default will create debian packages, with this option willl create rpm packages" OFF)
|
||||
option(PACKAGING_NR "Will produce a package containing nr target, configuration files and docs" OFF)
|
||||
option(PACKAGING_LTE "Will produce a package containing lte target, configuration files and docs" OFF)
|
||||
option(PACKAGING_COMMON "Will produce a package containing common target, configuration files and docs" OFF)
|
||||
option(PACKAGING_USRP "Will produce a package containing usrp target, configuration files and docs" OFF)
|
||||
option(PACKAGING_PHYSIM "Will produce a package containing physim target, configuration files and docs" OFF)
|
||||
|
||||
|
||||
# Check if asn1c is installed, and check if it supports all options we need
|
||||
# a user can provide ASN1C_EXEC to override an asn1c to use (e.g., parallel
|
||||
# installation)
|
||||
@@ -97,6 +119,8 @@ set (NFAPI_USER_DIR ${OPENAIR_DIR}/nfapi/oai_integration)
|
||||
set (OPENAIR1_DIR ${OPENAIR_DIR}/openair1)
|
||||
set (OPENAIR2_DIR ${OPENAIR_DIR}/openair2)
|
||||
set (OPENAIR3_DIR ${OPENAIR_DIR}/openair3)
|
||||
set (OPENAIR3_DIR ${OPENAIR_DIR}/openair3)
|
||||
set (OPENAIR_CMAKE ${OPENAIR_DIR}/cmake_targets)
|
||||
|
||||
project (OpenAirInterface)
|
||||
|
||||
@@ -230,16 +254,9 @@ endif()
|
||||
|
||||
add_definitions("-DASN_DISABLE_OER_SUPPORT -DHAVE_CONFIG_H -DHAVE_CONFIG_H_")
|
||||
|
||||
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||
set(CMAKE_BUILD_RPATH ${CMAKE_CURRENT_BINARY_DIR})
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
||||
set(CMAKE_INSTALL_RPATH "")
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
|
||||
|
||||
if(PACKAGING_LTE OR PACKAGING_NR OR PACKAGING_COMMON OR PACKAGING_USRP OR PACKAGING_PHYSIM)
|
||||
set(CMAKE_SKIP_INSTALL_RPATH TRUE)
|
||||
endif()
|
||||
|
||||
#########################
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ggdb2 -Wl,-rpath -Wl,${CMAKE_CURRENT_BINARY_DIR}")
|
||||
#########################
|
||||
# set a flag for changes in the source code
|
||||
# these changes are related to hardcoded path to include .h files
|
||||
set(debugOpt "-ggdb2 -DMALLOC_CHECK_=3 -fno-delete-null-pointer-checks")
|
||||
@@ -282,6 +299,22 @@ if(GIT_FOUND)
|
||||
)
|
||||
endif()
|
||||
|
||||
option(USE_UNIFIED_MEMORY "Enable CUDA Unified Memory path instead of explicit copies" OFF)
|
||||
|
||||
option(USE_ATS_MEMORY "Enable Hybrid ATS (CPU->GPU) and Explicit Copy (GPU->CPU) path" OFF)
|
||||
|
||||
if(USE_UNIFIED_MEMORY AND USE_ATS_MEMORY)
|
||||
message(FATAL_ERROR "Cannot enable both USE_UNIFIED_MEMORY and USE_ATS_MEMORY at the same time.")
|
||||
endif()
|
||||
|
||||
if(USE_UNIFIED_MEMORY)
|
||||
add_compile_definitions(USE_UNIFIED_MEMORY)
|
||||
message(STATUS "CUDA Unified Memory path enabled.")
|
||||
elseif(USE_ATS_MEMORY)
|
||||
add_compile_definitions(USE_ATS_MEMORY)
|
||||
message(STATUS "CUDA ATS Hybrid Memory path enabled.")
|
||||
endif()
|
||||
|
||||
# Debug related options
|
||||
#########################################
|
||||
# asn1c skeletons have hardcoded this flag to make customized debug logs
|
||||
@@ -1687,6 +1720,17 @@ set (SIMUSRC
|
||||
add_library(SIMU STATIC ${SIMUSRC} )
|
||||
target_include_directories(SIMU PUBLIC ${OPENAIR1_DIR}/SIMULATION/TOOLS ${OPENAIR1_DIR}/SIMULATION/RF)
|
||||
|
||||
option(CHANNEL_SSE "Enable SSE optimizations for channel simulation" OFF)
|
||||
if(CHANNEL_SSE)
|
||||
message(STATUS "SSE-optimized channel simulation enabled.")
|
||||
target_compile_definitions(SIMU PRIVATE CHANNEL_SSE)
|
||||
endif()
|
||||
|
||||
if(CUDA_FOUND)
|
||||
set_property(TARGET SIMU PROPERTY CUDA_ARCHITECTURES ${CMAKE_CUDA_ARCHITECTURES})
|
||||
set_property(TARGET SIMU PROPERTY LINKER_LANGUAGE CXX)
|
||||
endif()
|
||||
|
||||
include_directories("${NFAPI_DIR}/nfapi/public_inc")
|
||||
include_directories("${NFAPI_DIR}/common/public_inc")
|
||||
include_directories("${NFAPI_DIR}/pnf/public_inc")
|
||||
@@ -1804,24 +1848,6 @@ target_link_libraries(lte-uesoftmodem PRIVATE ${blas_LIBRARIES} ${cblas_LIBRARIE
|
||||
target_link_libraries(lte-uesoftmodem PRIVATE
|
||||
asn1_lte_rrc asn1_s1ap asn1_m2ap asn1_m3ap asn1_x2ap)
|
||||
|
||||
# nr RRU
|
||||
add_executable(nr-oru
|
||||
${OPENAIR_DIR}/executables/nr-ru.c
|
||||
${OPENAIR_DIR}/openair1/PHY/INIT/nr_parms.c
|
||||
${OPENAIR_DIR}/openair1/SCHED_NR/phy_frame_config_nr.c
|
||||
${OPENAIR_DIR}/openair1/SCHED_NR/nr_prach_procedures.c
|
||||
${OPENAIR_DIR}/openair1/SCHED/phy_procedures_lte_common.c
|
||||
${OPENAIR_DIR}/radio/COMMON/common_lib.c
|
||||
${OPENAIR_DIR}/radio/COMMON/record_player.c
|
||||
${OPENAIR_DIR}/executables/softmodem-common.c
|
||||
${OPENAIR_DIR}/executables/main_nr_ru.c
|
||||
)
|
||||
target_link_libraries(nr-oru PRIVATE
|
||||
UTIL SCHED_RU_LIB PHY_COMMON PHY_RU PHY_NR shlib_loader z dl)
|
||||
target_link_libraries(nr-oru PRIVATE pthread m CONFIG_LIB rt ${T_LIB} utils
|
||||
barrier actor)
|
||||
target_link_libraries(nr-oru PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs nr_phy_common time_management)
|
||||
|
||||
# nr-softmodem
|
||||
###################################################
|
||||
|
||||
@@ -1905,7 +1931,6 @@ add_executable(nr-uesoftmodem
|
||||
${OPENAIR_DIR}/executables/nr-uesoftmodem.c
|
||||
${OPENAIR_DIR}/executables/position_interface.c
|
||||
${OPENAIR_DIR}/executables/nr-ue.c
|
||||
${OPENAIR_DIR}/executables/nr-ue-ru.c
|
||||
${OPENAIR_DIR}/executables/softmodem-common.c
|
||||
${OPENAIR_DIR}/radio/COMMON/common_lib.c
|
||||
${OPENAIR_DIR}/radio/COMMON/record_player.c
|
||||
@@ -2084,6 +2109,16 @@ target_link_libraries(nr_srssim PRIVATE
|
||||
m pthread ITTI dl nr_ue_phy_meas physim_common
|
||||
)
|
||||
|
||||
if(CUDA_ENABLE)
|
||||
if (TARGET oai_cuda_lib)
|
||||
target_link_libraries(nr_dlsim PRIVATE oai_cuda_lib)
|
||||
target_link_libraries(nr_ulsim PRIVATE oai_cuda_lib)
|
||||
|
||||
target_compile_definitions(nr_dlsim PRIVATE ENABLE_CUDA)
|
||||
target_compile_definitions(nr_ulsim PRIVATE ENABLE_CUDA)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# these simulators do not compile:
|
||||
# dlsim_tm7 pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim
|
||||
foreach(myExe dlsim ulsim)
|
||||
@@ -2197,7 +2232,8 @@ add_subdirectory(openair3)
|
||||
add_subdirectory(radio)
|
||||
add_subdirectory(tests)
|
||||
|
||||
|
||||
if(PACKAGING_LTE OR PACKAGING_NR OR PACKAGING_COMMON OR PACKAGING_USRP OR PACKAGING_PHYSIM)
|
||||
include("tools/packages/packages.cmake")
|
||||
if(TARGET oai_cuda_lib)
|
||||
message(STATUS "CUDA library 'oai_cuda_lib' found, linking to targets...")
|
||||
target_link_libraries(nr_dlsim PRIVATE oai_cuda_lib)
|
||||
target_link_libraries(nr_ulsim PRIVATE oai_cuda_lib)
|
||||
endif()
|
||||
|
||||
@@ -304,7 +304,7 @@ class Containerize():
|
||||
result = re.search('gNB', self.imageKind)
|
||||
if result is not None:
|
||||
imageNames.append(('oai-gnb', 'gNB', 'oai-gnb', ''))
|
||||
result = re.search('x86', self.imageKind)
|
||||
result = re.search('all', self.imageKind)
|
||||
if result is not None:
|
||||
imageNames.append(('oai-enb', 'eNB', 'oai-enb', ''))
|
||||
imageNames.append(('oai-gnb', 'gNB', 'oai-gnb', ''))
|
||||
@@ -315,6 +315,7 @@ class Containerize():
|
||||
imageNames.append(('oai-physim', 'phySim', 'oai-physim', ''))
|
||||
if self.host == 'Ubuntu':
|
||||
imageNames.append(('oai-lte-ru', 'lteRU', 'oai-lte-ru', ''))
|
||||
imageNames.append(('oai-gnb-aerial', 'gNB.aerial', 'oai-gnb-aerial', ''))
|
||||
# Building again the 5G images with Address Sanitizer
|
||||
imageNames.append(('ran-build', 'build', 'ran-build-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
||||
imageNames.append(('oai-enb', 'eNB', 'oai-enb-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
||||
@@ -324,7 +325,6 @@ class Containerize():
|
||||
imageNames.append(('oai-nr-cuup', 'nr-cuup', 'oai-nr-cuup-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
||||
imageNames.append(('ran-build-fhi72', 'build.fhi72', 'ran-build-fhi72', ''))
|
||||
imageNames.append(('oai-gnb', 'gNB.fhi72', 'oai-gnb-fhi72', ''))
|
||||
imageNames.append(('oai-nr-oru', 'nrORU.fhi72', 'oai-nr-oru', ''))
|
||||
result = re.search('build_cross_arm64', self.imageKind)
|
||||
if result is not None:
|
||||
self.dockerfileprefix = '.ubuntu.cross-arm64'
|
||||
@@ -413,18 +413,18 @@ class Containerize():
|
||||
# target images should use the proper ran-build image
|
||||
if image != 'ran-build' and "-asan" in name:
|
||||
cmd.run(f'sed -i -e "s#ran-build:latest#ran-build-asan:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
||||
elif "fhi72" in name or name == "oai-nr-oru":
|
||||
elif "fhi72" in name:
|
||||
cmd.run(f'sed -i -e "s#ran-build-fhi72:latest#ran-build-fhi72:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
||||
elif image != 'ran-build':
|
||||
cmd.run(f'sed -i -e "s#ran-build:latest#ran-build:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
||||
if image == 'oai-gnb-aerial':
|
||||
cmd.run('cp -f /opt/nvidia-ipc/nvipc_src.2026.01.07.tar.gz .')
|
||||
cmd.run('cp -f /opt/nvidia-ipc/nvipc_src.2025.10.09.tar.gz .')
|
||||
logfile = f'{lSourcePath}/cmake_targets/log/{name}.docker.log'
|
||||
ret = cmd.run(f'{self.cli} build {self.cliBuildOptions} --target {image} --tag {name}:{imageTag} --file docker/Dockerfile.{pattern}{self.dockerfileprefix} {option} . > {logfile} 2>&1', timeout=1200)
|
||||
t = (name, archiveArtifact(cmd, ctx, logfile))
|
||||
log_files.append(t)
|
||||
if image == 'oai-gnb-aerial':
|
||||
cmd.run('rm -f nvipc_src.2026.01.07.tar.gz')
|
||||
cmd.run('rm -f nvipc_src.2025.10.09.tar.gz')
|
||||
# check the status of the build
|
||||
ret = cmd.run(f"{self.cli} image inspect --format=\'Size = {{{{.Size}}}} bytes\' {name}:{imageTag}")
|
||||
if ret.returncode != 0:
|
||||
@@ -582,7 +582,7 @@ class Containerize():
|
||||
ret = cmd.run(f"docker image inspect --format=\'Size = {{{{.Size}}}} bytes\' {baseImage}:{baseTag}")
|
||||
if ret.returncode != 0:
|
||||
logging.error(f'No {baseImage} image present, cannot build tests')
|
||||
HTML.CreateHtmlTestRow("Unit test build failed", 'KO', CONST.ALL_PROCESSES_OK)
|
||||
HTML.CreateHtmlTestRow(self.imageKind, 'KO', CONST.ALL_PROCESSES_OK)
|
||||
return False
|
||||
|
||||
# build ran-unittests image
|
||||
|
||||
@@ -200,11 +200,9 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
|
||||
@@ -233,11 +233,9 @@ RUs =
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
THREAD_STRUCT =
|
||||
(
|
||||
|
||||
@@ -233,11 +233,9 @@ RUs =
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
THREAD_STRUCT =
|
||||
(
|
||||
|
||||
@@ -233,11 +233,9 @@ RUs =
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
THREAD_STRUCT =
|
||||
(
|
||||
|
||||
@@ -233,11 +233,9 @@ RUs =
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
THREAD_STRUCT =
|
||||
(
|
||||
|
||||
@@ -362,11 +362,9 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
|
||||
@@ -197,15 +197,13 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
}
|
||||
);
|
||||
IQfile = "/tmp/rfsimulator.iqs"
|
||||
}
|
||||
|
||||
log_config: {
|
||||
global_log_level = "info";
|
||||
|
||||
@@ -27,15 +27,14 @@ RUs = ({
|
||||
eNB_instances = [0];
|
||||
});
|
||||
|
||||
rfsimulator = (
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
log_config: {
|
||||
global_log_level = "info";
|
||||
|
||||
@@ -13,7 +13,16 @@ gNBs =
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst = 1; }) });
|
||||
plmn_list = ({
|
||||
mcc = 208;
|
||||
mnc = 97;
|
||||
mnc_length = 2;
|
||||
snssaiList = (
|
||||
{
|
||||
sst = 1;
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
nr_cellid = 12345678L;
|
||||
|
||||
@@ -177,19 +186,19 @@ gNBs =
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
remote_s_address = "127.0.0.1"; // pnf addr [!]
|
||||
local_s_address = "127.0.0.2"; // vnf addr
|
||||
local_s_portc = 50001; // vnf p5 port
|
||||
remote_s_portc = 50000; // pnf p5 port [!]
|
||||
local_s_portd = 50011; // vnf p7 port [!]
|
||||
remote_s_portd = 50010; // pnf p7 port [!]
|
||||
tr_s_preference = "aerial";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 280; # 150;
|
||||
pucch_TargetSNRx10 = 200; #200;
|
||||
dl_max_mcs = 28;
|
||||
ul_max_mcs = 28;
|
||||
num_cc = 1;
|
||||
remote_s_address = "127.0.0.1"; // pnf addr [!]
|
||||
local_s_address = "127.0.0.2"; // vnf addr
|
||||
local_s_portc = 50001; // vnf p5 port
|
||||
remote_s_portc = 50000; // pnf p5 port [!]
|
||||
local_s_portd = 50011; // vnf p7 port [!]
|
||||
remote_s_portd = 50010; // pnf p7 port [!]
|
||||
tr_s_preference = "aerial";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 280; # 150;
|
||||
pucch_TargetSNRx10 = 200; #200;
|
||||
dl_max_mcs = 28;
|
||||
ul_max_mcs = 28;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -213,13 +222,13 @@ security = {
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
hw_log_level ="info";
|
||||
phy_log_level ="info";
|
||||
mac_log_level ="info";
|
||||
rlc_log_level ="info";
|
||||
pdcp_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
ngap_log_level ="debug";
|
||||
f1ap_log_level ="debug";
|
||||
global_log_level ="info";
|
||||
hw_log_level ="info";
|
||||
phy_log_level ="info";
|
||||
mac_log_level ="info";
|
||||
rlc_log_level ="info";
|
||||
pdcp_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
ngap_log_level ="debug";
|
||||
f1ap_log_level ="debug";
|
||||
};
|
||||
|
||||
@@ -191,11 +191,10 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -200,11 +200,10 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -234,15 +234,14 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = ("chanmod"); #("saviq"); or/and "chanmod"
|
||||
prop_delay = 20;
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
channelmod = {
|
||||
max_chan=10;
|
||||
|
||||
@@ -242,15 +242,14 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
prop_delay = 238.74;
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -29,40 +29,40 @@ gNBs =
|
||||
# downlinkConfigCommon
|
||||
#frequencyInfoDL
|
||||
# this is pointA + 16 PRBs@120kHz SCS (same as initial BWP)
|
||||
absoluteFrequencySSB = 2078299;
|
||||
dl_frequencyBand = 257;
|
||||
absoluteFrequencySSB = 2071387;
|
||||
dl_frequencyBand = 261;
|
||||
# this is 27.900 GHz
|
||||
dl_absoluteFrequencyPointA = 2077963;
|
||||
dl_absoluteFrequencyPointA = 2071001;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 3;
|
||||
dl_carrierBandwidth = 66;
|
||||
dl_carrierBandwidth = 32;
|
||||
#initialDownlinkBWP
|
||||
#genericParameters
|
||||
# this is RBstart=0,L=32 (275*(L-1))+RBstart
|
||||
initialDLBWPlocationAndBandwidth = 6349;
|
||||
initialDLBWPlocationAndBandwidth = 8525;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 3;
|
||||
#pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 4;
|
||||
initialDLBWPcontrolResourceSetZero = 1;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
#uplinkConfigCommon
|
||||
#frequencyInfoUL
|
||||
ul_frequencyBand = 257;
|
||||
ul_frequencyBand = 261;
|
||||
#scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 3;
|
||||
ul_carrierBandwidth = 66;
|
||||
ul_carrierBandwidth = 32;
|
||||
pMax = 20;
|
||||
#initialUplinkBWP
|
||||
#genericParameters
|
||||
initialULBWPlocationAndBandwidth = 6349;
|
||||
initialULBWPlocationAndBandwidth = 8525;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 3;
|
||||
@@ -143,11 +143,6 @@ gNBs =
|
||||
|
||||
);
|
||||
|
||||
first_active_bwp = 1;
|
||||
bwp_list = (
|
||||
{ scs = 3; bwpStart = 0; bwpSize = 66;}
|
||||
);
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
@@ -202,11 +197,9 @@ RUs = ({
|
||||
eNB_instances = [0];
|
||||
});
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
@@ -205,15 +205,14 @@ RUs = (
|
||||
);
|
||||
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -251,7 +251,7 @@ fhi_72 = {
|
||||
io_core = 1;
|
||||
worker_cores = (2);
|
||||
ru_addr = ("98:ae:71:04:83:e3", "98:ae:71:04:83:e3");
|
||||
mtu = 9216;
|
||||
mtu = 9600;
|
||||
fh_config = ({
|
||||
T1a_cp_dl = (285, 470);
|
||||
T1a_cp_ul = (285, 429);
|
||||
|
||||
@@ -208,11 +208,9 @@ RUs = (
|
||||
);
|
||||
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -197,11 +197,9 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -204,15 +204,13 @@ RUs = ({
|
||||
});
|
||||
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs"
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -155,8 +155,8 @@ gNBs =
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CI_GNB_IP_ADDR";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "CI_GNB_IP_ADDR";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
@@ -217,15 +217,14 @@ RUs = (
|
||||
);
|
||||
|
||||
|
||||
rfsimulator = (
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -63,7 +63,7 @@ gNBs:
|
||||
prach_ConfigurationIndex: 98
|
||||
#prach_msg1_FDM
|
||||
#0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM: 1
|
||||
prach_msg1_FDM: 0
|
||||
prach_msg1_FrequencyStart: 0
|
||||
zeroCorrelationZoneConfig: 12
|
||||
preambleReceivedTargetPower: -104
|
||||
@@ -99,7 +99,7 @@ gNBs:
|
||||
pucchGroupHopping: 0
|
||||
hoppingId: 40
|
||||
p0_nominal: -90
|
||||
ssb_PositionsInBurst_Bitmap: 2
|
||||
ssb_PositionsInBurst_Bitmap: 1
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell: 2
|
||||
@@ -168,7 +168,7 @@ RUs:
|
||||
sdr_addrs: serial=XXXXXXX
|
||||
|
||||
rfsimulator:
|
||||
- serveraddr: server
|
||||
serveraddr: server
|
||||
|
||||
security:
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -203,11 +203,10 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -258,7 +258,7 @@ fhi_72 = {
|
||||
io_core = 1;
|
||||
worker_cores = (2);
|
||||
ru_addr = ("70:b3:d5:e1:5b:81", "70:b3:d5:e1:5b:81");
|
||||
mtu = 9216;
|
||||
mtu = 9600;
|
||||
fh_config = ({
|
||||
T1a_cp_dl = (419, 470);
|
||||
T1a_cp_ul = (285, 336);
|
||||
|
||||
@@ -203,15 +203,14 @@ RUs = (
|
||||
);
|
||||
|
||||
|
||||
rfsimulator = (
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "127.0.0.1";
|
||||
}
|
||||
);
|
||||
@@ -12,7 +12,8 @@ uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
|
||||
MACRLCs = (
|
||||
|
||||
@@ -87,9 +87,3 @@ PRSs =
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "127.0.0.1";
|
||||
}
|
||||
);
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = (
|
||||
{ id = 1; dnn = "oai"; nssai_sst = 1; },
|
||||
{ id = 2; dnn = "oai"; nssai_sst = 1; }
|
||||
)
|
||||
}
|
||||
|
||||
thread-pool = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "127.0.0.1";
|
||||
}
|
||||
);
|
||||
@@ -2,7 +2,8 @@ uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
|
||||
position0 = {
|
||||
@@ -13,12 +14,6 @@ position0 = {
|
||||
|
||||
thread-pool = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "127.0.0.1";
|
||||
}
|
||||
);
|
||||
|
||||
#/* configuration for channel modelisation */
|
||||
#/* To be included in main config file when */
|
||||
#/* channel modelisation is used (rfsimulator with chanmod options enabled) */
|
||||
@@ -45,4 +40,4 @@ channelmod = {
|
||||
ds_tdl = 0;
|
||||
}
|
||||
);
|
||||
};
|
||||
};
|
||||
@@ -2,7 +2,8 @@ uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
|
||||
position0 = {
|
||||
@@ -13,40 +14,6 @@ position0 = {
|
||||
|
||||
thread-pool = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
prop_delay = 20;
|
||||
options = ("chanmod");
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
att_tx = 0;
|
||||
att_rx = 0;
|
||||
max_rxgain = 114;
|
||||
sdr_addrs = "type=x300";
|
||||
clock_src = "internal";
|
||||
time_src = "internal";
|
||||
# if_freq = 3700000000L;
|
||||
# if_offset = 1000000;
|
||||
}
|
||||
);
|
||||
|
||||
cells = (
|
||||
{
|
||||
ru_id = 0;
|
||||
band = 254;
|
||||
rf_freq = 2488400000L;
|
||||
rf_offset = -873500000L;
|
||||
numerology = 0;
|
||||
N_RB_DL = 25;
|
||||
ssb_start = 60;
|
||||
}
|
||||
);
|
||||
|
||||
#/* configuration for channel modelisation */
|
||||
#/* To be included in main config file when */
|
||||
#/* channel modelisation is used (rfsimulator with chanmod options enabled) */
|
||||
|
||||
@@ -2,15 +2,11 @@ uicc0:
|
||||
imsi: 208990100001100
|
||||
key: fec86ba6eb707ed08905757b1bb44b8f
|
||||
opc: C42449363BBAD02B66D16BC975D77CC1
|
||||
pdu_sessions:
|
||||
- dnn: oai
|
||||
nssai_sst: 1
|
||||
dnn: oai
|
||||
nssai_sst: 1
|
||||
|
||||
thread-pool: "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
|
||||
rfsimulator:
|
||||
- serveraddr: "127.0.0.1"
|
||||
|
||||
#/* configuration for channel modelisation */
|
||||
#/* To be included in main config file when */
|
||||
#/* channel modelisation is used (rfsimulator with chanmod options enabled) */
|
||||
|
||||
@@ -2,9 +2,8 @@ uicc0:
|
||||
imsi: 208990100001100
|
||||
key: fec86ba6eb707ed08905757b1bb44b8f
|
||||
opc: C42449363BBAD02B66D16BC975D77CC1
|
||||
pdu_sessions:
|
||||
- dnn: oai
|
||||
nssai_sst: 1
|
||||
dnn: oai
|
||||
nssai_sst: 1
|
||||
|
||||
thread-pool: "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@ uicc0 = {
|
||||
imsi = "208970100001127";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "c42449363bbad02b66d16bc975d77cc1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
|
||||
thread-pool = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
|
||||
@@ -12,7 +12,9 @@ uicc0 = {
|
||||
imsi = "208950000000031";
|
||||
key = "0c0a34601d4f07677303652c0462535b";
|
||||
opc= "63bfa50ee6523365ff14c1f45f88737d";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 222; nssai_sd = 123; });
|
||||
dnn= "oai";
|
||||
nssai_sst=222;
|
||||
nssai_sd=123;
|
||||
}
|
||||
|
||||
MACRLCs = (
|
||||
|
||||
@@ -12,7 +12,9 @@ uicc0 = {
|
||||
imsi = "2089900007487";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; nssai_sd = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
nssai_sd=1;
|
||||
}
|
||||
|
||||
MACRLCs = (
|
||||
|
||||
@@ -205,15 +205,14 @@ RUs = (
|
||||
);
|
||||
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -200,15 +200,14 @@ RUs = (
|
||||
);
|
||||
|
||||
|
||||
rfsimulator = (
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
# --- Test Suite 1: Scalability vs. Channel Count ---
|
||||
Channels_16_Batch:
|
||||
'Total GPU Time (us)': 5265.72
|
||||
'Avg Time per Channel - GPU (us)': 329.11
|
||||
'Threshold': 100.00
|
||||
|
||||
Channels_16_Stream:
|
||||
'Total GPU Time (us)': 5265.72
|
||||
'Avg Time per Channel - GPU (us)': 329.11
|
||||
'Threshold': 100.00
|
||||
|
||||
Channels_16_Serial:
|
||||
'Total GPU Time (us)': 5265.72
|
||||
'Avg Time per Channel - GPU (us)': 329.11
|
||||
'Threshold': 100.00
|
||||
|
||||
Channels_256_Batch:
|
||||
'Total GPU Time (us)': 85696.71
|
||||
'Avg Time per Channel - GPU (us)': 334.75
|
||||
'Threshold': 100.00
|
||||
|
||||
Channels_256_Stream:
|
||||
'Total GPU Time (us)': 85696.71
|
||||
'Avg Time per Channel - GPU (us)': 334.75
|
||||
'Threshold': 100.00
|
||||
|
||||
Channels_256_Serial:
|
||||
'Total GPU Time (us)': 85696.71
|
||||
'Avg Time per Channel - GPU (us)': 334.75
|
||||
'Threshold': 100.00
|
||||
|
||||
Channels_1024_Batch:
|
||||
'Total GPU Time (us)': 337217.10
|
||||
'Avg Time per Channel - GPU (us)': 329.31
|
||||
'Threshold': 100.00
|
||||
|
||||
Channels_1024_Stream:
|
||||
'Total GPU Time (us)': 337217.10
|
||||
'Avg Time per Channel - GPU (us)': 329.31
|
||||
'Threshold': 100.00
|
||||
|
||||
Channels_1024_Serial:
|
||||
'Total GPU Time (us)': 337217.10
|
||||
'Avg Time per Channel - GPU (us)': 329.31
|
||||
'Threshold': 100.00
|
||||
|
||||
# --- Test Suite 2: Performance vs. Channel Complexity ---
|
||||
Length_16_Batch:
|
||||
'Total GPU Time (us)': 319082.56
|
||||
'Avg Time per Channel - GPU (us)': 311.60
|
||||
'Threshold': 100.00
|
||||
|
||||
Length_16_Stream:
|
||||
'Total GPU Time (us)': 319082.56
|
||||
'Avg Time per Channel - GPU (us)': 311.60
|
||||
'Threshold': 100.00
|
||||
|
||||
Length_16_Serial:
|
||||
'Total GPU Time (us)': 319082.56
|
||||
'Avg Time per Channel - GPU (us)': 311.60
|
||||
'Threshold': 100.00
|
||||
|
||||
Length_64_Batch:
|
||||
'Total GPU Time (us)': 366564.52
|
||||
'Avg Time per Channel - GPU (us)': 357.97
|
||||
'Threshold': 100.00
|
||||
|
||||
Length_64_Stream:
|
||||
'Total GPU Time (us)': 366564.52
|
||||
'Avg Time per Channel - GPU (us)': 357.97
|
||||
'Threshold': 100.00
|
||||
|
||||
Length_64_Serial:
|
||||
'Total GPU Time (us)': 366564.52
|
||||
'Avg Time per Channel - GPU (us)': 357.97
|
||||
'Threshold': 100.00
|
||||
|
||||
Length_128_Batch:
|
||||
'Total GPU Time (us)': 425883.51
|
||||
'Avg Time per Channel - GPU (us)': 415.90
|
||||
'Threshold': 100.00
|
||||
|
||||
Length_128_Stream:
|
||||
'Total GPU Time (us)': 425883.51
|
||||
'Avg Time per Channel - GPU (us)': 415.90
|
||||
'Threshold': 100.00
|
||||
|
||||
Length_128_Serial:
|
||||
'Total GPU Time (us)': 425883.51
|
||||
'Avg Time per Channel - GPU (us)': 415.90
|
||||
'Threshold': 100.00
|
||||
|
||||
# --- Test Suite 3: Performance vs. MIMO Configuration ---
|
||||
MIMO_2x2_Batch:
|
||||
'Total GPU Time (us)': 158999.06
|
||||
'Avg Time per Channel - GPU (us)': 155.27
|
||||
'Threshold': 100.00
|
||||
|
||||
MIMO_2x2_Stream:
|
||||
'Total GPU Time (us)': 158999.06
|
||||
'Avg Time per Channel - GPU (us)': 155.27
|
||||
'Threshold': 100.00
|
||||
|
||||
MIMO_2x2_Serial:
|
||||
'Total GPU Time (us)': 158999.06
|
||||
'Avg Time per Channel - GPU (us)': 155.27
|
||||
'Threshold': 100.00
|
||||
|
||||
MIMO_4x4_Batch:
|
||||
'Total GPU Time (us)': 336377.55
|
||||
'Avg Time per Channel - GPU (us)': 328.49
|
||||
'Threshold': 100.00
|
||||
|
||||
MIMO_4x4_Stream:
|
||||
'Total GPU Time (us)': 336377.55
|
||||
'Avg Time per Channel - GPU (us)': 328.49
|
||||
'Threshold': 100.00
|
||||
|
||||
MIMO_4x4_Serial:
|
||||
'Total GPU Time (us)': 336377.55
|
||||
'Avg Time per Channel - GPU (us)': 328.49
|
||||
'Threshold': 100.00
|
||||
|
||||
MIMO_8x8_Batch:
|
||||
'Total GPU Time (us)': 718312.46
|
||||
'Avg Time per Channel - GPU (us)': 701.48
|
||||
'Threshold': 100.00
|
||||
|
||||
MIMO_8x8_Stream:
|
||||
'Total GPU Time (us)': 718312.46
|
||||
'Avg Time per Channel - GPU (us)': 701.48
|
||||
'Threshold': 100.00
|
||||
|
||||
MIMO_8x8_Serial:
|
||||
'Total GPU Time (us)': 718312.46
|
||||
'Avg Time per Channel - GPU (us)': 701.48
|
||||
'Threshold': 100.00
|
||||
|
||||
# --- Test Suite 4: Performance vs. Signal Samples ---
|
||||
Samples_30720_Batch:
|
||||
'Total GPU Time (us)': 84702.49
|
||||
'Avg Time per Channel - GPU (us)': 82.72
|
||||
'Threshold': 100.00
|
||||
|
||||
Samples_30720_Stream:
|
||||
'Total GPU Time (us)': 84702.49
|
||||
'Avg Time per Channel - GPU (us)': 82.72
|
||||
'Threshold': 100.00
|
||||
|
||||
Samples_30720_Serial:
|
||||
'Total GPU Time (us)': 84702.49
|
||||
'Avg Time per Channel - GPU (us)': 82.72
|
||||
'Threshold': 100.00
|
||||
|
||||
Samples_61440_Batch:
|
||||
'Total GPU Time (us)': 168761.94
|
||||
'Avg Time per Channel - GPU (us)': 164.81
|
||||
'Threshold': 100.00
|
||||
|
||||
Samples_61440_Stream:
|
||||
'Total GPU Time (us)': 168761.94
|
||||
'Avg Time per Channel - GPU (us)': 164.81
|
||||
'Threshold': 100.00
|
||||
|
||||
Samples_61440_Serial:
|
||||
'Total GPU Time (us)': 168761.94
|
||||
'Avg Time per Channel - GPU (us)': 164.81
|
||||
'Threshold': 100.00
|
||||
|
||||
Samples_122880_Batch:
|
||||
'Total GPU Time (us)': 336500.40
|
||||
'Avg Time per Channel - GPU (us)': 328.61
|
||||
'Threshold': 100.00
|
||||
|
||||
Samples_122880_Stream:
|
||||
'Total GPU Time (us)': 336500.40
|
||||
'Avg Time per Channel - GPU (us)': 328.61
|
||||
'Threshold': 100.00
|
||||
|
||||
Samples_122880_Serial:
|
||||
'Total GPU Time (us)': 336500.40
|
||||
'Avg Time per Channel - GPU (us)': 328.61
|
||||
'Threshold': 100.00
|
||||
65
ci-scripts/tests/nr_physim_gpu_benchmark/gpu_test_driver.py
Normal file
65
ci-scripts/tests/nr_physim_gpu_benchmark/gpu_test_driver.py
Normal file
@@ -0,0 +1,65 @@
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Test driver for the GPU benchmark suite.")
|
||||
parser.add_argument("--executable", required=True, help="Path to the test_channel_scalability executable")
|
||||
cli_args = parser.parse_args()
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
matrix_file_path = os.path.join(script_dir, "gpu_test_matrix.yaml")
|
||||
|
||||
try:
|
||||
with open(matrix_file_path) as f:
|
||||
test_matrix = yaml.safe_load(f)
|
||||
except FileNotFoundError:
|
||||
print(f"ERROR: Test matrix file not found at {matrix_file_path}")
|
||||
sys.exit(1)
|
||||
|
||||
failed_tests = []
|
||||
|
||||
for test_case in test_matrix["tests"]:
|
||||
name = test_case["name"]
|
||||
args = test_case["args"]
|
||||
|
||||
print(f"\n{'='*80}")
|
||||
print(f"--- Running Test Case: {name} ---")
|
||||
print(f"{'='*80}\n")
|
||||
|
||||
command = [
|
||||
"python3",
|
||||
os.path.join(script_dir, "run_gpu_benchmark.py"),
|
||||
"--executable",
|
||||
cli_args.executable,
|
||||
"--args",
|
||||
args,
|
||||
"--test-case-name",
|
||||
name,
|
||||
]
|
||||
|
||||
result = subprocess.run(command)
|
||||
|
||||
if result.returncode != 0:
|
||||
print(f"\n--- !!! Test Case FAILED: {name} !!! ---\n")
|
||||
failed_tests.append(name)
|
||||
else:
|
||||
print(f"\n--- Test Case PASSED: {name} ---\n")
|
||||
|
||||
print(f"\n{'='*80}")
|
||||
print("--- Test Suite Summary ---")
|
||||
if not failed_tests:
|
||||
print("\033[92mAll test cases PASSED.\033[0m")
|
||||
sys.exit(0)
|
||||
else:
|
||||
print(f"\033[91mThe following {len(failed_tests)} test case(s) FAILED:\033[0m")
|
||||
for test_name in failed_tests:
|
||||
print(f" - {test_name}")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,76 @@
|
||||
tests:
|
||||
# --- Test Suite 1: Scalability vs. Channel Count ---
|
||||
- name: "Channels_16_Batch"
|
||||
args: "-c 16 -t 4 -r 4 -s 122880 -l 32 -m batch -n 25"
|
||||
- name: "Channels_16_Stream"
|
||||
args: "-c 16 -t 4 -r 4 -s 122880 -l 32 -m stream -n 25"
|
||||
- name: "Channels_16_Serial"
|
||||
args: "-c 16 -t 4 -r 4 -s 122880 -l 32 -m serial -n 25"
|
||||
- name: "Channels_256_Batch"
|
||||
args: "-c 256 -t 4 -r 4 -s 122880 -l 32 -m batch -n 25"
|
||||
- name: "Channels_256_Stream"
|
||||
args: "-c 256 -t 4 -r 4 -s 122880 -l 32 -m stream -n 25"
|
||||
- name: "Channels_256_Serial"
|
||||
args: "-c 256 -t 4 -r 4 -s 122880 -l 32 -m serial -n 25"
|
||||
- name: "Channels_1024_Batch"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 32 -m batch -n 25"
|
||||
- name: "Channels_1024_Stream"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 32 -m stream -n 25"
|
||||
- name: "Channels_1024_Serial"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 32 -m serial -n 25"
|
||||
|
||||
# --- Test Suite 2: Performance vs. Channel Complexity ---
|
||||
- name: "Length_16_Batch"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 16 -m batch -n 25"
|
||||
- name: "Length_64_Batch"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 64 -m batch -n 25"
|
||||
- name: "Length_64_Stream"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 64 -m stream -n 25"
|
||||
- name: "Length_64_Serial"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 64 -m serial -n 25"
|
||||
- name: "Length_128_Batch"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 128 -m batch -n 25"
|
||||
- name: "Length_128_Stream"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 128 -m stream -n 25"
|
||||
- name: "Length_128_Serial"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 128 -m serial -n 25"
|
||||
|
||||
# --- Test Suite 3: Performance vs. MIMO Configuration ---
|
||||
- name: "MIMO_2x2_Batch"
|
||||
args: "-c 1024 -t 2 -r 2 -s 122880 -l 32 -m batch -n 25"
|
||||
- name: "MIMO_2x2_Stream"
|
||||
args: "-c 1024 -t 2 -r 2 -s 122880 -l 32 -m stream -n 25"
|
||||
- name: "MIMO_2x2_Serial"
|
||||
args: "-c 1024 -t 2 -r 2 -s 122880 -l 32 -m serial -n 25"
|
||||
- name: "MIMO_4x4_Batch"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 32 -m batch -n 25"
|
||||
- name: "MIMO_4x4_Stream"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 32 -m stream -n 25"
|
||||
- name: "MIMO_4x4_Serial"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 32 -m serial -n 25"
|
||||
- name: "MIMO_8x8_Batch"
|
||||
args: "-c 1024 -t 8 -r 8 -s 122880 -l 32 -m batch -n 25"
|
||||
- name: "MIMO_8x8_Stream"
|
||||
args: "-c 1024 -t 8 -r 8 -s 122880 -l 32 -m stream -n 25"
|
||||
- name: "MIMO_8x8_Serial"
|
||||
args: "-c 1024 -t 8 -r 8 -s 122880 -l 32 -m serial -n 25"
|
||||
|
||||
# --- Test Suite 4: Performance vs. Signal Samples ---
|
||||
- name: "Samples_30720_Batch"
|
||||
args: "-c 1024 -t 4 -r 4 -s 30720 -l 32 -m batch -n 25"
|
||||
- name: "Samples_30720_Stream"
|
||||
args: "-c 1024 -t 4 -r 4 -s 30720 -l 32 -m stream -n 25"
|
||||
- name: "Samples_30720_Serial"
|
||||
args: "-c 1024 -t 4 -r 4 -s 30720 -l 32 -m serial -n 25"
|
||||
- name: "Samples_61440_Batch"
|
||||
args: "-c 1024 -t 4 -r 4 -s 61440 -l 32 -m batch -n 25"
|
||||
- name: "Samples_61440_Stream"
|
||||
args: "-c 1024 -t 4 -r 4 -s 61440 -l 32 -m stream -n 25"
|
||||
- name: "Samples_61440_Serial"
|
||||
args: "-c 1024 -t 4 -r 4 -s 61440 -l 32 -m serial -n 25"
|
||||
- name: "Samples_122880_Batch"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 32 -m batch -n 25"
|
||||
- name: "Samples_122880_Stream"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 32 -m stream -n 25"
|
||||
- name: "Samples_122880_Serial"
|
||||
args: "-c 1024 -t 4 -r 4 -s 122880 -l 32 -m serial -n 25"
|
||||
130
ci-scripts/tests/nr_physim_gpu_benchmark/run_gpu_benchmark.py
Normal file
130
ci-scripts/tests/nr_physim_gpu_benchmark/run_gpu_benchmark.py
Normal file
@@ -0,0 +1,130 @@
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
import yaml
|
||||
|
||||
|
||||
def parse_benchmark_output(log_text):
|
||||
metrics = {}
|
||||
pattern = re.compile(r"\|\s*(?P<key>[\w\s\(\)\-]+?)\s*\|\s*(?P<value>[\d\.]+)x?\s*\|")
|
||||
for line in log_text.splitlines():
|
||||
match = pattern.search(line)
|
||||
if match:
|
||||
key = match.group("key").strip()
|
||||
value = float(match.group("value"))
|
||||
metrics[key] = value
|
||||
return metrics
|
||||
|
||||
|
||||
def analyze_gpu_log(log_file):
|
||||
util_vals, power_vals = [], []
|
||||
try:
|
||||
with open(log_file, "r") as f:
|
||||
for line in f:
|
||||
if "utilization.gpu" in line:
|
||||
continue
|
||||
parts = line.strip().split(",")
|
||||
if len(parts) >= 2:
|
||||
try:
|
||||
util_vals.append(float(parts[0].strip()))
|
||||
power_vals.append(float(parts[1].strip()))
|
||||
except (ValueError, IndexError):
|
||||
continue
|
||||
except FileNotFoundError:
|
||||
return "N/A", "N/A"
|
||||
if not util_vals or not power_vals:
|
||||
return "N/A", "N/A"
|
||||
avg_util = sum(util_vals) / len(util_vals)
|
||||
max_util = max(util_vals)
|
||||
avg_power = sum(power_vals) / len(power_vals)
|
||||
max_power = max(power_vals)
|
||||
return (f"Avg: {avg_util:.1f}%, Max: {max_util:.1f}%", f"Avg: {avg_power:.1f}W, Max: {max_power:.1f}W")
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Run a single GPU benchmark and compare against a baseline.")
|
||||
parser.add_argument("--executable", required=True, help="Path to the test_channel_scalability executable")
|
||||
parser.add_argument("--args", required=True, help="Arguments to pass to the executable, in quotes")
|
||||
parser.add_argument("--test-case-name", required=True, help="The name of the test case to look up in the baseline file")
|
||||
cli_args = parser.parse_args()
|
||||
|
||||
gpu_log_file = "nvidia-smi.log"
|
||||
monitor_command = f"nvidia-smi --query-gpu=utilization.gpu,power.draw --format=csv,noheader,nounits -l 1 > {gpu_log_file}"
|
||||
monitor_process = subprocess.Popen(monitor_command, shell=True)
|
||||
command = [cli_args.executable] + cli_args.args.split()
|
||||
print(f"Running command: {' '.join(command)}")
|
||||
result = subprocess.run(command, text=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
monitor_process.terminate()
|
||||
time.sleep(1)
|
||||
|
||||
if result.returncode != 0:
|
||||
print("--- Benchmark FAILED to run ---")
|
||||
print(result.stdout)
|
||||
print(result.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
print("--- Benchmark Ran Successfully ---")
|
||||
print(result.stdout)
|
||||
|
||||
gpu_util_summary, gpu_power_summary = analyze_gpu_log(gpu_log_file)
|
||||
print("\n--- GPU Monitoring Summary ---")
|
||||
print(f"GPU Utilization: {gpu_util_summary}")
|
||||
print(f"GPU Power Draw: {gpu_power_summary}")
|
||||
|
||||
measured_metrics = parse_benchmark_output(result.stdout)
|
||||
if not measured_metrics:
|
||||
print("ERROR: Could not parse any metrics from the benchmark's text output.")
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
baseline_file_path = os.path.join(script_dir, "gpu_performance_baselines.yaml")
|
||||
with open(baseline_file_path) as f:
|
||||
all_baselines = yaml.safe_load(f)
|
||||
except FileNotFoundError:
|
||||
print(f"ERROR: Master baseline file not found at {baseline_file_path}")
|
||||
sys.exit(1)
|
||||
|
||||
baseline_metrics = all_baselines.get(cli_args.test_case_name)
|
||||
if not baseline_metrics:
|
||||
print(f"ERROR: Could not find baseline entry for '{cli_args.test_case_name}' in {baseline_file_path}")
|
||||
sys.exit(1)
|
||||
|
||||
all_metrics_ok = True
|
||||
print("\n--- Performance Validation ---")
|
||||
for key, baseline_value in baseline_metrics.items():
|
||||
if key == "Threshold":
|
||||
continue
|
||||
|
||||
if key in measured_metrics:
|
||||
measured_value = measured_metrics[key]
|
||||
threshold = baseline_metrics.get("Threshold", 0.25)
|
||||
upper_bound = baseline_value * (1 + threshold)
|
||||
|
||||
print(f"Metric: '{key}'")
|
||||
print(f" - Measured: {measured_value:.2f}")
|
||||
print(f" - Baseline: {baseline_value:.2f}")
|
||||
print(f" - Allowed Upper Bound: {upper_bound:.2f}")
|
||||
|
||||
if measured_value > upper_bound:
|
||||
print(" - STATUS: \033[91mFAILED (Exceeded threshold)\033[0m")
|
||||
all_metrics_ok = False
|
||||
else:
|
||||
print(" - STATUS: \033[92mPASSED\033[0m")
|
||||
else:
|
||||
print(f"Metric '{key}' from baseline not found in run output. SKIPPING.")
|
||||
|
||||
if all_metrics_ok:
|
||||
print("\nOverall Performance: PASSED")
|
||||
sys.exit(0)
|
||||
else:
|
||||
print("\nOverall Performance: FAILED due to regression.")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -240,7 +240,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE (1) connected to DU-PCI 1?</desc>
|
||||
<node>localhost</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 192.168.71.150 9090 | grep "3585"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.150 9090 | grep "3585"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
@@ -271,7 +271,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE (1) connected to DU-PCI 0?</desc>
|
||||
<node>localhost</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 192.168.71.150 9090 | grep "3584"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.150 9090 | grep "3584"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
@@ -302,7 +302,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE (1) connected to DU-PCI 1?</desc>
|
||||
<node>localhost</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 192.168.71.150 9090 | grep "3585"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.150 9090 | grep "3585"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>rfsim-fr2-66prb-5gnr-tdd</htmlTabRef>
|
||||
<htmlTabRef>rfsim-fr2-32prb-5gnr-tdd</htmlTabRef>
|
||||
<htmlTabName>Monolithic FR2 gNB</htmlTabName>
|
||||
<htmlTabIcon>wrench</htmlTabIcon>
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<class>Deploy_Object</class>
|
||||
<desc>Deploy OAI gNB</desc>
|
||||
<node>localhost</node>
|
||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_fr2_66prb</yaml_path>
|
||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_fr2_32prb</yaml_path>
|
||||
<services>mysql oai-amf oai-smf oai-upf oai-ext-dn</services>
|
||||
</testCase>
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
<class>Deploy_Object</class>
|
||||
<desc>Deploy OAI NR-UE</desc>
|
||||
<node>localhost</node>
|
||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_fr2_66prb</yaml_path>
|
||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_fr2_32prb</yaml_path>
|
||||
<services>oai-gnb oai-nr-ue</services>
|
||||
</testCase>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
<always_exec>true</always_exec>
|
||||
<desc>Undeploy all OAI 5G stack</desc>
|
||||
<node>localhost</node>
|
||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_fr2_66prb</yaml_path>
|
||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_fr2_32prb</yaml_path>
|
||||
<d_retx_th>10,0,0,0</d_retx_th>
|
||||
<u_retx_th>10,0,0,0</u_retx_th>
|
||||
</testCase>
|
||||
@@ -120,7 +120,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE (1) connected to DU-PCI 1?</desc>
|
||||
<node>localhost</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 192.168.71.180 9090 | grep "1234"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.180 9090 | grep "1234"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
@@ -181,7 +181,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE (1) connected to DU-PCI 0?</desc>
|
||||
<node>localhost</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 192.168.71.150 9090 | grep "3584"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.150 9090 | grep "3584"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
@@ -218,7 +218,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE (1) connected to DU-PCI 1?</desc>
|
||||
<node>localhost</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 192.168.71.180 9090 | grep "1234"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.180 9090 | grep "1234"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
<class>Build_Run_Tests</class>
|
||||
<desc>Build and Run UnitTests</desc>
|
||||
<node>obelix</node>
|
||||
<kind>all</kind>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<class>Build_Image</class>
|
||||
<desc>Build all Images</desc>
|
||||
<node>obelix</node>
|
||||
<kind>x86</kind>
|
||||
<kind>all</kind>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
<testCase>
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (DL/UDP/800M)(30 sec)(single-ue profile)</desc>
|
||||
<iperf_args>-u -b 800M -t 30 -R -l 1428</iperf_args>
|
||||
<iperf_args>-u -b 800M -t 30 -R</iperf_args>
|
||||
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
||||
<id>up2-aerial</id>
|
||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||
@@ -101,7 +101,7 @@
|
||||
<class>Iperf</class>
|
||||
<desc>Optional iperf (DL/UDP/1000M)(30 sec)(single-ue profile)</desc>
|
||||
<may_fail>true</may_fail>
|
||||
<iperf_args>-u -b 1000M -t 30 -R -l 1428</iperf_args>
|
||||
<iperf_args>-u -b 1000M -t 30 -R</iperf_args>
|
||||
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
||||
<id>up2-aerial</id>
|
||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
<testCase>
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (DL/UDP/200M)(30 sec)(single-ue profile)</desc>
|
||||
<iperf_args>-u -b 200M -t 30 -R -l 1428</iperf_args>
|
||||
<iperf_args>-u -b 200M -t 30 -R</iperf_args>
|
||||
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
||||
<id>up2-aerial</id>
|
||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE connected to DU1?</desc>
|
||||
<node>groot</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 127.0.0.1 9090 | grep "3585"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 127.0.0.1 9090 | grep "3585"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
@@ -152,7 +152,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE connected to DU0?</desc>
|
||||
<node>groot</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 127.0.0.1 9090 | grep "3584"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 127.0.0.1 9090 | grep "3584"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
@@ -175,7 +175,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE connected to DU1?</desc>
|
||||
<node>groot</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 127.0.0.1 9090 | grep "3585"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 127.0.0.1 9090 | grep "3585"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE connected to gNB-PCI1?</desc>
|
||||
<node>rocket</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 127.0.0.1 9090 | grep "3585"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 127.0.0.1 9090 | grep "3585"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
@@ -144,7 +144,7 @@
|
||||
<class>Custom_Command</class>
|
||||
<desc>UE connected to gNB-PCI0?</desc>
|
||||
<node>groot</node>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 127.0.0.1 9090 | grep "3584"</command>
|
||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 127.0.0.1 9090 | grep "3584"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
|
||||
@@ -208,10 +208,9 @@ services:
|
||||
environment:
|
||||
TZ: Europe/Paris
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsimulator.[0].serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsimulator.serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time
|
||||
volumes:
|
||||
- ../../conf_files/lteue.usim-ci.conf:/opt/oai-lte-ue/etc/ue_usim.conf
|
||||
- ../../conf_files/lteue.rfsim.conf:/opt/oai-lte-ue/etc/ue.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep lte-uesoftmodem"
|
||||
interval: 10s
|
||||
|
||||
@@ -30,10 +30,9 @@ services:
|
||||
environment:
|
||||
TZ: Europe/Paris
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsimulator.[0].serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time --noS1
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsimulator.serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time --noS1
|
||||
volumes:
|
||||
- ../../conf_files/lteue.usim-ci.conf:/opt/oai-lte-ue/etc/ue_usim.conf
|
||||
- ../../conf_files/lteue.rfsim.conf:/opt/oai-lte-ue/etc/ue.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep lte-uesoftmodem"
|
||||
interval: 10s
|
||||
|
||||
@@ -208,10 +208,9 @@ services:
|
||||
environment:
|
||||
TZ: Europe/Paris
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 50 --ue-rxgain 140 --ue-txgain 120 --rfsimulator.[0].serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 50 --ue-rxgain 140 --ue-txgain 120 --rfsimulator.serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time
|
||||
volumes:
|
||||
- ../../conf_files/lteue.usim-ci.conf:/opt/oai-lte-ue/etc/ue_usim.conf
|
||||
- ../../conf_files/lteue.rfsim.conf:/opt/oai-lte-ue/etc/ue.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep lte-uesoftmodem"
|
||||
interval: 10s
|
||||
|
||||
@@ -208,10 +208,9 @@ services:
|
||||
environment:
|
||||
TZ: Europe/Paris
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 100 --ue-rxgain 140 --ue-txgain 120 --rfsimulator.[0].serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 100 --ue-rxgain 140 --ue-txgain 120 --rfsimulator.serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time
|
||||
volumes:
|
||||
- ../../conf_files/lteue.usim-ci.conf:/opt/oai-lte-ue/etc/ue_usim.conf
|
||||
- ../../conf_files/lteue.rfsim.conf:/opt/oai-lte-ue/etc/ue.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep lte-uesoftmodem"
|
||||
interval: 10s
|
||||
|
||||
@@ -28,10 +28,9 @@ services:
|
||||
environment:
|
||||
TZ: Europe/Paris
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
USE_ADDITIONAL_OPTIONS: -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsim --noS1 --rfsimulator.[0].serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time --noS1
|
||||
USE_ADDITIONAL_OPTIONS: -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsim --noS1 --rfsimulator.serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time --noS1
|
||||
volumes:
|
||||
- ../../conf_files/lteue.usim-mbs.conf:/opt/oai-lte-ue/etc/ue_usim.conf
|
||||
- ../../conf_files/lteue.rfsim.conf:/opt/oai-lte-ue/etc/ue.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep lte-uesoftmodem"
|
||||
interval: 10s
|
||||
|
||||
@@ -33,10 +33,9 @@ services:
|
||||
TZ: Europe/Paris
|
||||
HOSTNAME: oai_ue0
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
USE_ADDITIONAL_OPTIONS: -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsim --noS1 --rfsimulator.[0].serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time --noS1
|
||||
USE_ADDITIONAL_OPTIONS: -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsim --noS1 --rfsimulator.serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time --noS1
|
||||
volumes:
|
||||
- ../../conf_files/lteue.usim-mbs.conf:/opt/oai-lte-ue/etc/ue_usim.conf
|
||||
- ../../conf_files/lteue.rfsim.conf:/opt/oai-lte-ue/etc/ue.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep lte-uesoftmodem"
|
||||
interval: 10s
|
||||
|
||||
@@ -208,10 +208,9 @@ services:
|
||||
environment:
|
||||
TZ: Europe/Paris
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -T -C 2605000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsimulator.[0].serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -T -C 2605000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsimulator.serveraddr 192.168.61.20 --log_config.global_log_options level,nocolor,time
|
||||
volumes:
|
||||
- ../../conf_files/lteue.usim-ci.conf:/opt/oai-lte-ue/etc/ue_usim.conf
|
||||
- ../../conf_files/lteue.rfsim.conf:/opt/oai-lte-ue/etc/ue.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep lte-uesoftmodem"
|
||||
interval: 10s
|
||||
|
||||
@@ -130,10 +130,10 @@ services:
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim
|
||||
--log_config.global_log_options level,nocolor,time
|
||||
--rfsimulator.[0].options chanmod
|
||||
--rfsimulator.options chanmod
|
||||
--telnetsrv --telnetsrv.listenaddr 192.168.71.171
|
||||
--telnetsrv.shrmod ci
|
||||
--rfsimulator.[0].serveraddr 192.168.71.181
|
||||
--rfsimulator.serveraddr 192.168.71.181
|
||||
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||
depends_on:
|
||||
- oai-cu
|
||||
@@ -168,7 +168,7 @@ services:
|
||||
--gNBs.[0].servingCellConfigCommon.[0].dl_absoluteFrequencyPointA 642024
|
||||
--gNBs.[0].servingCellConfigCommon.[0].ssb_PositionsInBurst_Bitmap 3
|
||||
--MACRLCs.[0].local_n_address 192.168.71.172
|
||||
--rfsimulator.[0].serveraddr 192.168.71.181
|
||||
--rfsimulator.serveraddr 192.168.71.181
|
||||
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||
depends_on:
|
||||
- oai-cu
|
||||
@@ -199,8 +199,8 @@ services:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim --log_config.global_log_options level,nocolor,time
|
||||
-r 106 --numerology 1 -C 3619200000
|
||||
--uicc0.imsi 208990100001100
|
||||
--rfsimulator.[0].options chanmod
|
||||
--rfsimulator.[0].serveraddr server
|
||||
--rfsimulator.options chanmod
|
||||
--rfsimulator.serveraddr server
|
||||
--telnetsrv --telnetsrv.shrmod ciUE --telnetsrv.listenaddr 192.168.71.181 --telnetsrv.listenport 8091
|
||||
--channelmod.modellist_rfsimu_1.[0].model_name rfsimu_channel_ue0
|
||||
--channelmod.modellist_rfsimu_1.[1].model_name rfsimu_channel_ue1
|
||||
|
||||
@@ -256,7 +256,7 @@ Create the entry for the second UE in `docker-compose.yaml` file as follows:
|
||||
- NET_ADMIN # for interface bringup
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
devices:
|
||||
@@ -518,7 +518,8 @@ uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001100 -C 3319680000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001100 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
@@ -150,7 +150,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001101 -C 3319680000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001101 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
@@ -177,7 +177,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001102 -C 3319680000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001102 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
@@ -204,7 +204,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001103 -C 3319680000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001103 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
@@ -231,7 +231,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001104 -C 3319680000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001104 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
@@ -258,7 +258,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001105 -C 3319680000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001105 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
@@ -285,7 +285,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001106 -C 3319680000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001106 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
@@ -312,7 +312,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001107 -C 3319680000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001107 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
@@ -339,7 +339,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001108 -C 3319680000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001108 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
@@ -366,7 +366,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001109 -C 3319680000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001109 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
|
||||
@@ -3,4 +3,4 @@ services:
|
||||
privileged: true
|
||||
stdin_open: true
|
||||
tty: true
|
||||
command: gdb --args /opt/oai-nr-ue/bin/nr-uesoftmodem -O /opt/oai-nr-ue/etc/nr-ue.conf -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001100 -C 3619200000 --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
command: gdb --args /opt/oai-nr-ue/bin/nr-uesoftmodem -O /opt/oai-nr-ue/etc/nr-ue.conf -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001100 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
|
||||
@@ -121,7 +121,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -r 24 --ssb 24 --numerology 1 -C 3604800000 --uicc0.imsi 208990100001100
|
||||
--rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
--rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
--telnetsrv --telnetsrv.shrmod ciUE --telnetsrv.listenaddr 192.168.71.150 --telnetsrv.listenport 8091
|
||||
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||
depends_on:
|
||||
|
||||
@@ -124,7 +124,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -r 273 --numerology 1 --band 78 -C 3450720000 --ssb 1518 --ue-nb-ant-tx 2 --uicc0.imsi 208990100001100 --ue-nb-ant-rx 2 --uecap_file /opt/oai-nr-ue/etc/uecap.xml --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -r 273 --numerology 1 --band 78 -C 3450720000 --ssb 1518 --ue-nb-ant-tx 2 --uicc0.imsi 208990100001100 --ue-nb-ant-rx 2 --uecap_file /opt/oai-nr-ue/etc/uecap.xml --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
|
||||
@@ -309,7 +309,7 @@ services:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim --log_config.global_log_options level,nocolor,time
|
||||
-r 106 --numerology 1 -C 3619200000
|
||||
--uicc0.imsi 208990100001100
|
||||
--rfsimulator.[0].serveraddr oai-du
|
||||
--rfsimulator.serveraddr oai-du
|
||||
depends_on:
|
||||
- oai-du
|
||||
networks:
|
||||
@@ -338,8 +338,8 @@ services:
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim --log_config.global_log_options level,nocolor,time
|
||||
-r 106 --numerology 1 -C 3619200000
|
||||
--uicc0.imsi 208990100001101 --uicc0.pdu_sessions.[0].nssai_sst 2
|
||||
--rfsimulator.[0].serveraddr 192.168.78.3
|
||||
--uicc0.imsi 208990100001101 --uicc0.nssai_sst 2
|
||||
--rfsimulator.serveraddr 192.168.78.3
|
||||
depends_on:
|
||||
- oai-du2
|
||||
networks:
|
||||
@@ -368,8 +368,8 @@ services:
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim --log_config.global_log_options level,nocolor,time
|
||||
-r 106 --numerology 1 -C 3619200000
|
||||
--uicc0.imsi 208990100001102 --uicc0.pdu_sessions.[0].nssai_sst 3
|
||||
--rfsimulator.[0].serveraddr 192.168.78.4
|
||||
--uicc0.imsi 208990100001102 --uicc0.nssai_sst 3
|
||||
--rfsimulator.serveraddr 192.168.78.4
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
depends_on:
|
||||
- oai-du3
|
||||
|
||||
@@ -8,7 +8,7 @@ services:
|
||||
- NET_ADMIN # for interface bringup
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --rfsimulator.[0].wait_timeout 20 --noS1 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --rfsimulator.wait_timeout 20 --noS1 --log_config.global_log_options level,nocolor,time
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
networks:
|
||||
public_net:
|
||||
@@ -33,7 +33,7 @@ services:
|
||||
- NET_ADMIN # for interface bringup
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --noS1 --reconfig-file etc/rrc/reconfig.raw --rbconfig-file etc/rrc/rbconfig.raw --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --noS1 --reconfig-file etc/rrc/reconfig.raw --rbconfig-file etc/rrc/rbconfig.raw --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
|
||||
@@ -105,7 +105,7 @@ services:
|
||||
privileged: true
|
||||
container_name: rfsim5g-oai-nr-ue
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000003 --rfsimulator.[0].serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000003 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
@@ -124,7 +124,7 @@ services:
|
||||
privileged: true
|
||||
container_name: rfsim5g-oai-nr-ue2
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.[0].serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
|
||||
@@ -102,7 +102,7 @@ services:
|
||||
public_net:
|
||||
ipv4_address: 192.168.71.140
|
||||
volumes:
|
||||
- ../../conf_files/gnb.sa.band257.u3.66prb.rfsim.conf:/opt/oai-gnb/etc/gnb.conf
|
||||
- ../../conf_files/gnb.sa.band261.u3.32prb.rfsim.conf:/opt/oai-gnb/etc/gnb.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep nr-softmodem"
|
||||
start_period: 10s
|
||||
@@ -121,8 +121,8 @@ services:
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim
|
||||
--rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
-C 27975360000 -r 66 --numerology 3 --ssb 48 --band 257
|
||||
--rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
-r 32 --numerology 3 --band 261 -C 27533160000 --ssb 73
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
@@ -111,7 +111,7 @@ services:
|
||||
- NET_ADMIN # for interface bringup
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim --log_config.global_log_options level,nocolor,time --num-ues 10
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001100 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time --num-ues 10
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
|
||||
@@ -2,193 +2,74 @@ uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
uicc1 = {
|
||||
imsi = "208990100001101";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
uicc2 = {
|
||||
imsi = "208990100001102";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
uicc3 = {
|
||||
imsi = "208990100001103";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
uicc4 = {
|
||||
imsi = "208990100001104";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
uicc5 = {
|
||||
imsi = "208990100001105";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
uicc6 = {
|
||||
imsi = "208990100001106";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
uicc7 = {
|
||||
imsi = "208990100001107";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
uicc8 = {
|
||||
imsi = "208990100001108";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
uicc9 = {
|
||||
imsi = "208990100001109";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
thread-pool: "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "192.168.71.140";
|
||||
}, {
|
||||
serveraddr = "192.168.71.140";
|
||||
}, {
|
||||
serveraddr = "192.168.71.140";
|
||||
}, {
|
||||
serveraddr = "192.168.71.140";
|
||||
}, {
|
||||
serveraddr = "192.168.71.140";
|
||||
}, {
|
||||
serveraddr = "192.168.71.140";
|
||||
}, {
|
||||
serveraddr = "192.168.71.140";
|
||||
}, {
|
||||
serveraddr = "192.168.71.140";
|
||||
}, {
|
||||
serveraddr = "192.168.71.140";
|
||||
}, {
|
||||
serveraddr = "192.168.71.140";
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
}, {
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
}, {
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
}, {
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
}, {
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
}, {
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
}, {
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
}, {
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
}, {
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
}, {
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
}
|
||||
);
|
||||
|
||||
cells = (
|
||||
{
|
||||
ru_id = 0;
|
||||
band = 78;
|
||||
rf_freq = 3319680000L;
|
||||
numerology = 1;
|
||||
N_RB_DL = 106;
|
||||
ssb_start = 516;
|
||||
}, {
|
||||
ru_id = 1;
|
||||
band = 78;
|
||||
rf_freq = 3319680000L;
|
||||
numerology = 1;
|
||||
N_RB_DL = 106;
|
||||
ssb_start = 516;
|
||||
}, {
|
||||
ru_id = 2;
|
||||
band = 78;
|
||||
rf_freq = 3319680000L;
|
||||
numerology = 1;
|
||||
N_RB_DL = 106;
|
||||
ssb_start = 516;
|
||||
}, {
|
||||
ru_id = 3;
|
||||
band = 78;
|
||||
rf_freq = 3319680000L;
|
||||
numerology = 1;
|
||||
N_RB_DL = 106;
|
||||
ssb_start = 516;
|
||||
}, {
|
||||
ru_id = 4;
|
||||
band = 78;
|
||||
rf_freq = 3319680000L;
|
||||
numerology = 1;
|
||||
N_RB_DL = 106;
|
||||
ssb_start = 516;
|
||||
}, {
|
||||
ru_id = 5;
|
||||
band = 78;
|
||||
rf_freq = 3319680000L;
|
||||
numerology = 1;
|
||||
N_RB_DL = 106;
|
||||
ssb_start = 516;
|
||||
}, {
|
||||
ru_id = 6;
|
||||
band = 78;
|
||||
rf_freq = 3319680000L;
|
||||
numerology = 1;
|
||||
N_RB_DL = 106;
|
||||
ssb_start = 516;
|
||||
}, {
|
||||
ru_id = 7;
|
||||
band = 78;
|
||||
rf_freq = 3319680000L;
|
||||
numerology = 1;
|
||||
N_RB_DL = 106;
|
||||
ssb_start = 516;
|
||||
}, {
|
||||
ru_id = 8;
|
||||
band = 78;
|
||||
rf_freq = 3319680000L;
|
||||
numerology = 1;
|
||||
N_RB_DL = 106;
|
||||
ssb_start = 516;
|
||||
}, {
|
||||
ru_id = 9;
|
||||
band = 78;
|
||||
rf_freq = 3319680000L;
|
||||
numerology = 1;
|
||||
N_RB_DL = 106;
|
||||
ssb_start = 516;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -149,7 +149,7 @@ services:
|
||||
--gNBs.[0].nr_cellid 0
|
||||
--telnetsrv --telnetsrv.listenaddr 192.168.71.171
|
||||
--telnetsrv.shrmod ci
|
||||
--rfsimulator.[0].serveraddr 192.168.71.190
|
||||
--rfsimulator.serveraddr 192.168.71.190
|
||||
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||
depends_on:
|
||||
- oai-cucp-0
|
||||
@@ -176,7 +176,7 @@ services:
|
||||
- NET_ADMIN # for interface bringup
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim --rfsimulator.[0].serveraddr server
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim --rfsimulator.serveraddr server
|
||||
--band 78 -C 3619200000 -r 106 --numerology 1 --ssb 516
|
||||
--uicc0.imsi 208990100001100
|
||||
--log_config.global_log_options level,nocolor,time
|
||||
@@ -259,7 +259,7 @@ services:
|
||||
- ALL
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim
|
||||
--rfsimulator.[0].serveraddr 192.168.71.190
|
||||
--rfsimulator.serveraddr 192.168.71.190
|
||||
--log_config.global_log_options level,nocolor,time
|
||||
--gNBs.[0].gNB_DU_ID 1234
|
||||
--gNBs.[0].gNB_ID 0xb00
|
||||
|
||||
@@ -123,7 +123,7 @@ services:
|
||||
- NET_ADMIN # for interface bringup
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --band 254 -C 2488400000 --CO -873500000 -r 25 --numerology 0 --ssb 60 --rfsim --rfsimulator.[0].prop_delay 238.74 --rfsimulator.[0].serveraddr 192.168.71.140 --num-ul-actors 1 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --band 254 -C 2488400000 --CO -873500000 -r 25 --numerology 0 --ssb 60 --rfsim --rfsimulator.prop_delay 238.74 --rfsimulator.serveraddr 192.168.71.140 --num-ul-actors 1 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
|
||||
@@ -121,10 +121,13 @@ services:
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS:
|
||||
--rfsim --rfsimulator.[0].serveraddr 192.168.71.140
|
||||
--band 254 -C 2488400000 --CO -873500000 -r 25 --numerology 0 --ssb 60
|
||||
--rfsim --rfsimulator.prop_delay 20 --rfsimulator.options chanmod
|
||||
--rfsimulator.serveraddr 192.168.71.140
|
||||
--time-sync-I 0.1 --ntn-initial-time-drift -46
|
||||
--initial-fo 57340 --cont-fo-comp 3
|
||||
--initial-fo 57340 --cont-fo-comp 2
|
||||
--log_config.global_log_options level,nocolor,time
|
||||
--num-ul-actors 1
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
|
||||
@@ -36,7 +36,7 @@ services:
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim -E
|
||||
--reconfig-file etc/rrc/reconfig.raw --rbconfig-file etc/rrc/rbconfig.raw
|
||||
--rfsimulator.[0].serveraddr 192.168.71.140
|
||||
--rfsimulator.serveraddr 192.168.71.140
|
||||
--log_config.global_log_options level,nocolor,time
|
||||
--telnetsrv --telnetsrv.listenaddr 192.168.71.150 --telnetsrv.listenport 8091
|
||||
--telnetsrv.shrmod ciUE
|
||||
|
||||
@@ -8,7 +8,7 @@ services:
|
||||
- NET_ADMIN
|
||||
- NET_RAW
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --sl-mode 2 --sync-ref 4 --rfsim --rfsimulator.[0].serveraddr server --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --sl-mode 2 --sync-ref 4 --rfsim --rfsimulator.serveraddr server --log_config.global_log_options level,nocolor,time
|
||||
networks:
|
||||
public_net:
|
||||
ipv4_address: 192.168.71.140
|
||||
@@ -33,7 +33,7 @@ services:
|
||||
- NET_ADMIN # for interface bringup
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --sl-mode 2 --rfsim --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --sl-mode 2 --rfsim --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-nr-ue-1
|
||||
networks:
|
||||
|
||||
@@ -8,7 +8,7 @@ services:
|
||||
- NET_ADMIN # for interface bringup
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --rfsimulator.[0].wait_timeout 20 --noS1 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --rfsimulator.wait_timeout 20 --noS1 --log_config.global_log_options level,nocolor,time
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
networks:
|
||||
public_net:
|
||||
@@ -33,7 +33,7 @@ services:
|
||||
- NET_ADMIN # for interface bringup
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --reconfig-file etc/rrc/reconfig.raw --rbconfig-file etc/rrc/rbconfig.raw --rfsimulator.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --reconfig-file etc/rrc/reconfig.raw --rbconfig-file etc/rrc/rbconfig.raw --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
ASAN_OPTIONS: detect_leaks=0
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
|
||||
@@ -149,7 +149,7 @@ services:
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim -r 25 --numerology 0 --uicc0.imsi 208990100001100 --band 66 -C 2152680000 --CO -400000000 --ssb 48
|
||||
--rfsimulator.[0].serveraddr 192.168.71.141 --log_config.global_log_options level,nocolor,time
|
||||
--rfsimulator.serveraddr 192.168.71.141 --extra-pdu-id 2 --log_config.global_log_options level,nocolor,time
|
||||
--telnetsrv --telnetsrv.shrmod ciUE --telnetsrv.listenaddr 192.168.71.150 --telnetsrv.listenport 8091
|
||||
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||
depends_on:
|
||||
@@ -160,7 +160,7 @@ services:
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
volumes:
|
||||
- ../../conf_files/nrue.uicc.2pdu.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
||||
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
||||
start_period: 10s
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
cuBB_Path="${cuBB_SDK:-/opt/nvidia/cuBB}"
|
||||
|
||||
cd "$cuBB_Path" || exit 1
|
||||
# Add gdrcopy to LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/opt/mellanox/dpdk/lib/x86_64-linux-gnu:/opt/mellanox/doca/lib/x86_64-linux-gnu:/opt/nvidia/cuBB/cuPHY-CP/external/gdrcopy/build/x86_64/
|
||||
|
||||
# Restart MPS
|
||||
# Export variables
|
||||
@@ -12,7 +14,7 @@ export CUDA_MPS_PIPE_DIRECTORY=/var
|
||||
export CUDA_MPS_LOG_DIRECTORY=/var
|
||||
|
||||
# Stop existing MPS
|
||||
echo quit | sudo -E nvidia-cuda-mps-control
|
||||
sudo -E echo quit | sudo -E nvidia-cuda-mps-control
|
||||
|
||||
# Start MPS
|
||||
sudo -E nvidia-cuda-mps-control -d
|
||||
@@ -22,11 +24,11 @@ sudo -E echo start_server -uid 0 | sudo -E nvidia-cuda-mps-control
|
||||
# Check if an argument is provided
|
||||
if [ $# -eq 0 ]; then
|
||||
# No argument provided, use default value
|
||||
argument="P5G_WNC_GH"
|
||||
argument="P5G_FXN_GH"
|
||||
else
|
||||
# Argument provided, use it
|
||||
argument="$1"
|
||||
fi
|
||||
|
||||
sudo -E "$cuBB_Path"/build.$(uname -m)/cuPHY-CP/cuphycontroller/examples/cuphycontroller_scf "$argument"
|
||||
sudo -E ./build.$(uname -m)/cuPHY-CP/gt_common_libs/nvIPC/tests/pcap/pcap_collect
|
||||
sudo -E "$cuBB_Path"/build/cuPHY-CP/cuphycontroller/examples/cuphycontroller_scf "$argument"
|
||||
sudo -E ./build/cuPHY-CP/gt_common_libs/nvIPC/tests/pcap/pcap_collect
|
||||
|
||||
@@ -1,243 +0,0 @@
|
||||
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# 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.
|
||||
|
||||
aerial_sdk_version: 25-3-cubb
|
||||
l2adapter_filename: l2_adapter_config_P5G_GH.yaml
|
||||
aerial_metrics_backend_address: 127.0.0.1:8081
|
||||
|
||||
# CPU core shared by all low-priority threads
|
||||
low_priority_core: 10
|
||||
enable_ptp_svc_monitoring: 0
|
||||
ptp_rms_threshold: 20 #ns
|
||||
nic_tput_alert_threshold_mbps: 85000
|
||||
|
||||
cuphydriver_config:
|
||||
standalone: 0
|
||||
validation: 0
|
||||
num_slots: 8
|
||||
log_level: DBG
|
||||
profiler_sec: 0
|
||||
dpdk_thread: 10
|
||||
dpdk_verbose_logs: 0
|
||||
accu_tx_sched_res_ns: 500
|
||||
accu_tx_sched_disable: 0 #Flag applicable only for CX6-DX : BF3/CX7 HW and beyond support accurate send scheduling directly on timestamp, for CX6-DX this is implemented via software emulation
|
||||
fh_stats_dump_cpu_core: -1
|
||||
pdump_client_thread: -1
|
||||
use_green_contexts: 0
|
||||
use_batched_memcpy: 0 # Experimental feature; requires >= CUDA 12.8
|
||||
mps_sm_pusch: 100
|
||||
mps_sm_pucch: 2
|
||||
mps_sm_prach: 2
|
||||
mps_sm_ul_order: 20
|
||||
mps_sm_pdsch: 102
|
||||
mps_sm_pdcch: 10
|
||||
mps_sm_pbch: 2
|
||||
mps_sm_gpu_comms: 16
|
||||
mps_sm_srs: 16
|
||||
pdsch_fallback: 0
|
||||
dpdk_file_prefix: cuphycontroller
|
||||
nics:
|
||||
- nic: '0000:01:00.0'
|
||||
mtu: 9216
|
||||
cpu_mbufs: 196608
|
||||
uplane_tx_handles: 64
|
||||
txq_size: 8192
|
||||
rxq_size: 16384
|
||||
gpu: 0
|
||||
cus_port_failover: 0
|
||||
gpus:
|
||||
- 0
|
||||
# Set GPUID to the GPU sharing the PCIe switch as NIC
|
||||
# run nvidia-smi topo -m to find out which GPU
|
||||
workers_ul: [4,5]
|
||||
workers_dl: [6,7,8]
|
||||
debug_worker: -1
|
||||
workers_sched_priority: 95
|
||||
prometheus_thread: -1
|
||||
start_section_id_srs: 3072
|
||||
start_section_id_prach: 2048
|
||||
enable_ul_cuphy_graphs: 1
|
||||
enable_dl_cuphy_graphs: 1
|
||||
ul_order_kernel_mode: 0 # 0: Ping-Pong, 1: dual CTA
|
||||
ul_order_timeout_cpu_ns: 8000000
|
||||
ul_order_timeout_log_interval_ns: 1000000000
|
||||
ul_order_timeout_gpu_ns: 3000000
|
||||
ul_order_timeout_gpu_srs_ns: 5200000
|
||||
ul_srs_aggr3_task_launch_offset_ns: 500000
|
||||
ul_order_timeout_gpu_log_enable: 0
|
||||
ul_order_max_rx_pkts: 512
|
||||
ul_order_rx_pkts_timeout_ns: 100000
|
||||
cplane_disable: 0
|
||||
gpu_init_comms_dl: 1
|
||||
cell_group: 1
|
||||
cell_group_num: 1
|
||||
fix_beta_dl: 0
|
||||
bfw_beta_prescaler: 16384
|
||||
pusch_workCancelMode: 2 # set cuphyPuschStatPrms_t workCancelMode field to PUSCH_DEVICE_GRAPHS; this only sets the mode and does not cancel work;
|
||||
# work cancellation (i.e., not launching some of the device graphs) can only occur after an explicit internal
|
||||
# memory write is timely observed by a PUSCH graph.
|
||||
pusch_sinr: 2
|
||||
pusch_rssi: 1
|
||||
pusch_tdi: 1
|
||||
pusch_cfo: 1
|
||||
pusch_dftsofdm: 0
|
||||
pusch_to: 1
|
||||
pusch_select_eqcoeffalgo: 3
|
||||
pusch_select_chestalgo: 1
|
||||
pusch_enable_perprgchest: 0
|
||||
pusch_tbsizecheck: 1
|
||||
pusch_deviceGraphLaunchEn: 1
|
||||
pusch_waitTimeOutPreEarlyHarqUs: 3000
|
||||
pusch_waitTimeOutPostEarlyHarqUs: 3000
|
||||
puxch_polarDcdrListSz: 8
|
||||
enable_cpu_task_tracing: 0
|
||||
enable_prepare_tracing: 0
|
||||
disable_empw: 0 #1=>Disables Multi packet WQE feature
|
||||
cqe_tracer_config:
|
||||
enable_dl_cqe_tracing: 0
|
||||
cqe_trace_cell_mask: 1 #[64 bit mask: Bit0->Cell0, Bit1->Cell1...]
|
||||
cqe_trace_slot_mask: 196800 #[20 bit mask: Bit0->Slot0, Bit1->Slot1...] 196800=>All *6,*7 DL Slots
|
||||
ul_rx_pkt_tracing_level: 0
|
||||
ul_rx_pkt_tracing_level_srs: 0
|
||||
pmu_metrics: 0 #Enable and select PMU metrics, 0=disabled, 1=General Counters (platform agnostic), 2=Topdown Metrics (Grace only), 3=Cache Metrics (Grace only)
|
||||
enable_h2d_copy_thread: 1
|
||||
h2d_copy_thread_cpu_affinity : 11
|
||||
h2d_copy_thread_sched_priority : 95 #0->SCHED_OTHER, >0->Actual
|
||||
split_ul_cuda_streams: 0 # 1=Put UL slot 4 and slot 5 on different streams for DDDSUUDDDD pattern
|
||||
serialize_pucch_pusch: 0 # 1=Force serialization of PUSCH/PUCCH
|
||||
# Note: for Early Harq (EH) order is PUSCH EH -> PUCCH -> PUSCH non EH
|
||||
# for non-Early Harq order is PUCCH -> all PUSCH processing
|
||||
aggr_obj_non_avail_th: 5 # Threshold for consecutive non-availability of Aggregated objects(UL/DL) or DL/UL buffers
|
||||
dl_wait_th_ns:
|
||||
- 500000 #H2D copy wait threshold
|
||||
- 4000000 #cuPHY DL channel wait threshold
|
||||
sendCPlane_timing_error_th_ns : 0
|
||||
sendCPlane_ulbfw_backoff_th_ns: 300000 # ULBFW must be completed by cplane send time - this is the backoff time
|
||||
sendCPlane_dlbfw_backoff_th_ns: 300000 # DLBFW must be completed by cplane send time - this is the backoff time
|
||||
pusch_forcedNumCsi2Bits: 0
|
||||
mMIMO_enable: 0
|
||||
enable_srs: 1
|
||||
ue_mode: 0
|
||||
mCh_segment_proc_enable: 0
|
||||
pusch_aggr_per_ctx: 3
|
||||
prach_aggr_per_ctx: 2
|
||||
pucch_aggr_per_ctx: 4
|
||||
srs_aggr_per_ctx: 3
|
||||
ul_input_buffer_per_cell: 10
|
||||
ul_input_buffer_per_cell_srs: 6
|
||||
max_harq_pools: 384
|
||||
max_harq_tx_count_bundled: 10
|
||||
max_harq_tx_count_non_bundled: 4
|
||||
ok_testbench_config:
|
||||
enable_ok_tb: 0
|
||||
num_ok_tb_slot: 0 #Presently not used
|
||||
max_ru_unhealthy_ul_slots: 100
|
||||
srs_chest_algo_type: 0
|
||||
srs_chest_tol2_normalization_algo_type: 1
|
||||
srs_chest_tol2_constant_scaler: 32768.0
|
||||
bfw_power_normalization_alg_selector: 1
|
||||
total_num_srs_chest_buffers: 6144
|
||||
send_static_bfw_wt_all_cplane: 1
|
||||
ul_pcap_capture_enable: 0
|
||||
ul_pcap_capture_thread_cpu_affinity: 10
|
||||
ul_pcap_capture_thread_sched_priority: 95
|
||||
pcap_logger_ul_cplane_enable: 0
|
||||
pcap_logger_dl_cplane_enable: 0
|
||||
pcap_logger_thread_cpu_affinity: 10
|
||||
pcap_logger_thread_sched_prio: 95
|
||||
pcap_logger_file_save_dir: ./
|
||||
dlc_bfw_enable_divide_per_cell: 0 # Enable/disable dividing DL BFW C-Plane transmission window among multiple cells in a slot
|
||||
ulc_bfw_enable_divide_per_cell: 0 # Enable/disable dividing UL BFW C-Plane transmission window among multiple cells in a slot
|
||||
dlc_alloc_cplane_bfw_txq: 0 # Allocates a second separate queue for BFW DL C-Plane transmission
|
||||
ulc_alloc_cplane_bfw_txq: 1 # Allocates a second separate queue for BFW UL C-Plane transmission
|
||||
#static beam id range
|
||||
static_beam_id_start: 1
|
||||
static_beam_id_end: 16527
|
||||
#dynamic beam id range
|
||||
dynamic_beam_id_start: 16528 #Dynamic beam ID start should be after static beam ID end
|
||||
dynamic_beam_id_end: 32767 #15bit max value
|
||||
bfw_c_plane_chaining_mode: 0 # 0: Default memcpy of BFW weights, 1: CPU mbuf chaining of BFW weights, 2: GPU mbuf chaining
|
||||
enable_l1_param_sanity_check: 0
|
||||
pusch_nMaxLdpcHetConfigs: 32
|
||||
notify_ul_harq_buffer_release: 0
|
||||
|
||||
# data_config:
|
||||
# datalake_core: 12 # This must be set for Data Lake and/or E3 Agent to be used
|
||||
# datalake_db_write_enable: 1 # Enable/disable ClickHouse writes based on datalake_data_types
|
||||
# datalake_samples: 1000000
|
||||
# datalake_address: localhost
|
||||
# datalake_engine: "MergeTree() PRIMARY KEY (TsTaiNs)"
|
||||
# # datalake_drop_tables: 0 # Set to 1 to drop Clickhouse tables at startup
|
||||
# datalake_data_types: [fh, pusch, hest] # Data types to write to ClickHouse DB (all types always collected in memory for E3 Agent):
|
||||
# fh = Fronthaul IQ samples,pusch = PUSCH/FAPI data, hest = channel estimates
|
||||
# datalake_store_failed_pdu: 0 # Set to 1 to store PDU data even when CRC fails
|
||||
# e3_agent_enable: 0 # Enable/disable E3 Agent and dApp capabilities
|
||||
# num_rows_fh: 120
|
||||
# num_rows_pusch: 200
|
||||
# num_rows_hest: 140
|
||||
# e3_pub_port: 5555 # E3 publisher port for indication messages
|
||||
# e3_rep_port: 5556 # E3 reply port for E3AP requests
|
||||
# e3_sub_port: 5560 # E3 subscriber port for Manager messages
|
||||
|
||||
cells:
|
||||
- name: O-RU 0
|
||||
cell_id: 1
|
||||
ru_type: 1
|
||||
# set to 00:00:00:00:00:00 to use the MAC address of the NIC port to use
|
||||
src_mac_addr: 00:00:00:00:00:00
|
||||
dst_mac_addr: e8:c7:cf:ad:12:0b #WNC n78
|
||||
nic: '0000:01:00.0'
|
||||
vlan: 500
|
||||
pcp: 7
|
||||
txq_count_uplane: 1
|
||||
eAxC_id_ssb_pbch: [0, 1, 2, 3]
|
||||
eAxC_id_pdcch: [0, 1, 2, 3]
|
||||
eAxC_id_pdsch: [0, 1, 2, 3]
|
||||
eAxC_id_csirs: [0, 1, 2, 3]
|
||||
eAxC_id_pusch: [0, 1, 2, 3]
|
||||
eAxC_id_pucch: [0, 1, 2, 3]
|
||||
eAxC_id_srs: [8, 9, 10, 11]
|
||||
eAxC_id_prach: [4, 5, 6, 7]
|
||||
dl_iq_data_fmt: {comp_meth: 1, bit_width: 9}
|
||||
ul_iq_data_fmt: {comp_meth: 1, bit_width: 9}
|
||||
section_3_time_offset: 484
|
||||
fs_offset_dl: 7
|
||||
exponent_dl: 4
|
||||
ref_dl: 0
|
||||
fs_offset_ul: -5
|
||||
exponent_ul: 4
|
||||
max_amp_ul: 65504
|
||||
mu: 1
|
||||
T1a_max_up_ns: 280000
|
||||
T1a_max_cp_ul_ns: 405000
|
||||
Ta4_min_ns: 50000
|
||||
Ta4_max_ns: 331000
|
||||
Tcp_adv_dl_ns: 125000
|
||||
ul_u_plane_tx_offset_ns: 280000
|
||||
fh_len_range: 0
|
||||
pusch_prb_stride: 273
|
||||
prach_prb_stride: 12
|
||||
srs_prb_stride: 273
|
||||
pusch_ldpc_max_num_itr_algo_type: 1
|
||||
pusch_fixed_max_num_ldpc_itrs: 10
|
||||
pusch_ldpc_early_termination: 0
|
||||
pusch_ldpc_algo_index: 0
|
||||
pusch_ldpc_flags: 2
|
||||
pusch_ldpc_use_half: 1
|
||||
pusch_nMaxPrb: 273
|
||||
pusch_nMaxRx: 4
|
||||
ul_gain_calibration: 78.68
|
||||
lower_guard_bw: 845
|
||||
tv_pusch: cuPhyChEstCoeffs.h5
|
||||
@@ -18,13 +18,12 @@ services:
|
||||
- /lib/modules:/lib/modules
|
||||
- /dev/hugepages:/dev/hugepages
|
||||
- /usr/src:/usr/src
|
||||
- ./cuphycontroller_P5G_WNC_GH.yaml:/opt/nvidia/cuBB/cuPHY-CP/cuphycontroller/config/cuphycontroller_P5G_WNC_GH.yaml
|
||||
- ./aerial_l1_entrypoint.sh:/opt/nvidia/cuBB/aerial_l1_entrypoint.sh
|
||||
- /var/log/aerial:/var/log/aerial
|
||||
- ../../../cmake_targets/share:/opt/cuBB/share
|
||||
userns_mode: host
|
||||
ipc: "shareable"
|
||||
image: cubb-build:25-3
|
||||
image: cubb-build:25-2.1
|
||||
environment:
|
||||
- cuBB_SDK=/opt/nvidia/cuBB
|
||||
command: bash -c "sudo rm -rf /tmp/phy.log && sudo chmod +x /opt/nvidia/cuBB/aerial_l1_entrypoint.sh && /opt/nvidia/cuBB/aerial_l1_entrypoint.sh"
|
||||
@@ -46,7 +45,7 @@ services:
|
||||
- IPC_LOCK
|
||||
ipc: "container:nv-cubb"
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,utc_time
|
||||
USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,time
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
cuBB_Path="${cuBB_SDK:-/opt/nvidia/cuBB}"
|
||||
|
||||
cd "$cuBB_Path" || exit 1
|
||||
# Add gdrcopy to LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/opt/mellanox/dpdk/lib/x86_64-linux-gnu:/opt/mellanox/doca/lib/x86_64-linux-gnu:/opt/nvidia/cuBB/cuPHY-CP/external/gdrcopy/build/x86_64/
|
||||
|
||||
# Restart MPS
|
||||
# Export variables
|
||||
@@ -12,7 +14,7 @@ export CUDA_MPS_PIPE_DIRECTORY=/var
|
||||
export CUDA_MPS_LOG_DIRECTORY=/var
|
||||
|
||||
# Stop existing MPS
|
||||
echo quit | sudo -E nvidia-cuda-mps-control
|
||||
sudo -E echo quit | sudo -E nvidia-cuda-mps-control
|
||||
|
||||
# Start MPS
|
||||
sudo -E nvidia-cuda-mps-control -d
|
||||
@@ -22,11 +24,11 @@ sudo -E echo start_server -uid 0 | sudo -E nvidia-cuda-mps-control
|
||||
# Check if an argument is provided
|
||||
if [ $# -eq 0 ]; then
|
||||
# No argument provided, use default value
|
||||
argument="P5G_WNC_GH"
|
||||
argument="P5G_FXN_GH"
|
||||
else
|
||||
# Argument provided, use it
|
||||
argument="$1"
|
||||
fi
|
||||
|
||||
sudo -E "$cuBB_Path"/build.$(uname -m)/cuPHY-CP/cuphycontroller/examples/cuphycontroller_scf "$argument"
|
||||
sudo -E ./build.$(uname -m)/cuPHY-CP/gt_common_libs/nvIPC/tests/pcap/pcap_collect
|
||||
sudo -E "$cuBB_Path"/build/cuPHY-CP/cuphycontroller/examples/cuphycontroller_scf "$argument"
|
||||
sudo -E ./build/cuPHY-CP/gt_common_libs/nvIPC/tests/pcap/pcap_collect
|
||||
|
||||
@@ -1,243 +0,0 @@
|
||||
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# 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.
|
||||
|
||||
aerial_sdk_version: 25-3-cubb
|
||||
l2adapter_filename: l2_adapter_config_P5G_GH.yaml
|
||||
aerial_metrics_backend_address: 127.0.0.1:8081
|
||||
|
||||
# CPU core shared by all low-priority threads
|
||||
low_priority_core: 10
|
||||
enable_ptp_svc_monitoring: 0
|
||||
ptp_rms_threshold: 20 #ns
|
||||
nic_tput_alert_threshold_mbps: 85000
|
||||
|
||||
cuphydriver_config:
|
||||
standalone: 0
|
||||
validation: 0
|
||||
num_slots: 8
|
||||
log_level: DBG
|
||||
profiler_sec: 0
|
||||
dpdk_thread: 10
|
||||
dpdk_verbose_logs: 0
|
||||
accu_tx_sched_res_ns: 500
|
||||
accu_tx_sched_disable: 0 #Flag applicable only for CX6-DX : BF3/CX7 HW and beyond support accurate send scheduling directly on timestamp, for CX6-DX this is implemented via software emulation
|
||||
fh_stats_dump_cpu_core: -1
|
||||
pdump_client_thread: -1
|
||||
use_green_contexts: 0
|
||||
use_batched_memcpy: 0 # Experimental feature; requires >= CUDA 12.8
|
||||
mps_sm_pusch: 100
|
||||
mps_sm_pucch: 2
|
||||
mps_sm_prach: 2
|
||||
mps_sm_ul_order: 20
|
||||
mps_sm_pdsch: 102
|
||||
mps_sm_pdcch: 10
|
||||
mps_sm_pbch: 2
|
||||
mps_sm_gpu_comms: 16
|
||||
mps_sm_srs: 16
|
||||
pdsch_fallback: 0
|
||||
dpdk_file_prefix: cuphycontroller
|
||||
nics:
|
||||
- nic: '0000:01:00.0'
|
||||
mtu: 9216
|
||||
cpu_mbufs: 196608
|
||||
uplane_tx_handles: 64
|
||||
txq_size: 8192
|
||||
rxq_size: 16384
|
||||
gpu: 0
|
||||
cus_port_failover: 0
|
||||
gpus:
|
||||
- 0
|
||||
# Set GPUID to the GPU sharing the PCIe switch as NIC
|
||||
# run nvidia-smi topo -m to find out which GPU
|
||||
workers_ul: [4,5]
|
||||
workers_dl: [6,7,8]
|
||||
debug_worker: -1
|
||||
workers_sched_priority: 95
|
||||
prometheus_thread: -1
|
||||
start_section_id_srs: 3072
|
||||
start_section_id_prach: 2048
|
||||
enable_ul_cuphy_graphs: 1
|
||||
enable_dl_cuphy_graphs: 1
|
||||
ul_order_kernel_mode: 0 # 0: Ping-Pong, 1: dual CTA
|
||||
ul_order_timeout_cpu_ns: 8000000
|
||||
ul_order_timeout_log_interval_ns: 1000000000
|
||||
ul_order_timeout_gpu_ns: 3000000
|
||||
ul_order_timeout_gpu_srs_ns: 5200000
|
||||
ul_srs_aggr3_task_launch_offset_ns: 500000
|
||||
ul_order_timeout_gpu_log_enable: 0
|
||||
ul_order_max_rx_pkts: 512
|
||||
ul_order_rx_pkts_timeout_ns: 100000
|
||||
cplane_disable: 0
|
||||
gpu_init_comms_dl: 1
|
||||
cell_group: 1
|
||||
cell_group_num: 1
|
||||
fix_beta_dl: 0
|
||||
bfw_beta_prescaler: 16384
|
||||
pusch_workCancelMode: 2 # set cuphyPuschStatPrms_t workCancelMode field to PUSCH_DEVICE_GRAPHS; this only sets the mode and does not cancel work;
|
||||
# work cancellation (i.e., not launching some of the device graphs) can only occur after an explicit internal
|
||||
# memory write is timely observed by a PUSCH graph.
|
||||
pusch_sinr: 2
|
||||
pusch_rssi: 1
|
||||
pusch_tdi: 1
|
||||
pusch_cfo: 1
|
||||
pusch_dftsofdm: 0
|
||||
pusch_to: 1
|
||||
pusch_select_eqcoeffalgo: 3
|
||||
pusch_select_chestalgo: 1
|
||||
pusch_enable_perprgchest: 0
|
||||
pusch_tbsizecheck: 1
|
||||
pusch_deviceGraphLaunchEn: 1
|
||||
pusch_waitTimeOutPreEarlyHarqUs: 3000
|
||||
pusch_waitTimeOutPostEarlyHarqUs: 3000
|
||||
puxch_polarDcdrListSz: 8
|
||||
enable_cpu_task_tracing: 0
|
||||
enable_prepare_tracing: 0
|
||||
disable_empw: 0 #1=>Disables Multi packet WQE feature
|
||||
cqe_tracer_config:
|
||||
enable_dl_cqe_tracing: 0
|
||||
cqe_trace_cell_mask: 1 #[64 bit mask: Bit0->Cell0, Bit1->Cell1...]
|
||||
cqe_trace_slot_mask: 196800 #[20 bit mask: Bit0->Slot0, Bit1->Slot1...] 196800=>All *6,*7 DL Slots
|
||||
ul_rx_pkt_tracing_level: 0
|
||||
ul_rx_pkt_tracing_level_srs: 0
|
||||
pmu_metrics: 0 #Enable and select PMU metrics, 0=disabled, 1=General Counters (platform agnostic), 2=Topdown Metrics (Grace only), 3=Cache Metrics (Grace only)
|
||||
enable_h2d_copy_thread: 1
|
||||
h2d_copy_thread_cpu_affinity : 11
|
||||
h2d_copy_thread_sched_priority : 95 #0->SCHED_OTHER, >0->Actual
|
||||
split_ul_cuda_streams: 0 # 1=Put UL slot 4 and slot 5 on different streams for DDDSUUDDDD pattern
|
||||
serialize_pucch_pusch: 0 # 1=Force serialization of PUSCH/PUCCH
|
||||
# Note: for Early Harq (EH) order is PUSCH EH -> PUCCH -> PUSCH non EH
|
||||
# for non-Early Harq order is PUCCH -> all PUSCH processing
|
||||
aggr_obj_non_avail_th: 5 # Threshold for consecutive non-availability of Aggregated objects(UL/DL) or DL/UL buffers
|
||||
dl_wait_th_ns:
|
||||
- 500000 #H2D copy wait threshold
|
||||
- 4000000 #cuPHY DL channel wait threshold
|
||||
sendCPlane_timing_error_th_ns : 0
|
||||
sendCPlane_ulbfw_backoff_th_ns: 300000 # ULBFW must be completed by cplane send time - this is the backoff time
|
||||
sendCPlane_dlbfw_backoff_th_ns: 300000 # DLBFW must be completed by cplane send time - this is the backoff time
|
||||
pusch_forcedNumCsi2Bits: 0
|
||||
mMIMO_enable: 0
|
||||
enable_srs: 1
|
||||
ue_mode: 0
|
||||
mCh_segment_proc_enable: 0
|
||||
pusch_aggr_per_ctx: 9 #3
|
||||
prach_aggr_per_ctx: 2
|
||||
pucch_aggr_per_ctx: 4
|
||||
srs_aggr_per_ctx: 3
|
||||
ul_input_buffer_per_cell: 10
|
||||
ul_input_buffer_per_cell_srs: 6
|
||||
max_harq_pools: 384
|
||||
max_harq_tx_count_bundled: 10
|
||||
max_harq_tx_count_non_bundled: 4
|
||||
ok_testbench_config:
|
||||
enable_ok_tb: 0
|
||||
num_ok_tb_slot: 0 #Presently not used
|
||||
max_ru_unhealthy_ul_slots: 100
|
||||
srs_chest_algo_type: 0
|
||||
srs_chest_tol2_normalization_algo_type: 1
|
||||
srs_chest_tol2_constant_scaler: 32768.0
|
||||
bfw_power_normalization_alg_selector: 1
|
||||
total_num_srs_chest_buffers: 6144
|
||||
send_static_bfw_wt_all_cplane: 1
|
||||
ul_pcap_capture_enable: 0
|
||||
ul_pcap_capture_thread_cpu_affinity: 10
|
||||
ul_pcap_capture_thread_sched_priority: 95
|
||||
pcap_logger_ul_cplane_enable: 0
|
||||
pcap_logger_dl_cplane_enable: 0
|
||||
pcap_logger_thread_cpu_affinity: 10
|
||||
pcap_logger_thread_sched_prio: 95
|
||||
pcap_logger_file_save_dir: ./
|
||||
dlc_bfw_enable_divide_per_cell: 0 # Enable/disable dividing DL BFW C-Plane transmission window among multiple cells in a slot
|
||||
ulc_bfw_enable_divide_per_cell: 0 # Enable/disable dividing UL BFW C-Plane transmission window among multiple cells in a slot
|
||||
dlc_alloc_cplane_bfw_txq: 0 # Allocates a second separate queue for BFW DL C-Plane transmission
|
||||
ulc_alloc_cplane_bfw_txq: 1 # Allocates a second separate queue for BFW UL C-Plane transmission
|
||||
#static beam id range
|
||||
static_beam_id_start: 1
|
||||
static_beam_id_end: 16527
|
||||
#dynamic beam id range
|
||||
dynamic_beam_id_start: 16528 #Dynamic beam ID start should be after static beam ID end
|
||||
dynamic_beam_id_end: 32767 #15bit max value
|
||||
bfw_c_plane_chaining_mode: 0 # 0: Default memcpy of BFW weights, 1: CPU mbuf chaining of BFW weights, 2: GPU mbuf chaining
|
||||
enable_l1_param_sanity_check: 0
|
||||
pusch_nMaxLdpcHetConfigs: 32
|
||||
notify_ul_harq_buffer_release: 0
|
||||
|
||||
# data_config:
|
||||
# datalake_core: 12 # This must be set for Data Lake and/or E3 Agent to be used
|
||||
# datalake_db_write_enable: 1 # Enable/disable ClickHouse writes based on datalake_data_types
|
||||
# datalake_samples: 1000000
|
||||
# datalake_address: localhost
|
||||
# datalake_engine: "MergeTree() PRIMARY KEY (TsTaiNs)"
|
||||
# # datalake_drop_tables: 0 # Set to 1 to drop Clickhouse tables at startup
|
||||
# datalake_data_types: [fh, pusch, hest] # Data types to write to ClickHouse DB (all types always collected in memory for E3 Agent):
|
||||
# fh = Fronthaul IQ samples,pusch = PUSCH/FAPI data, hest = channel estimates
|
||||
# datalake_store_failed_pdu: 0 # Set to 1 to store PDU data even when CRC fails
|
||||
# e3_agent_enable: 0 # Enable/disable E3 Agent and dApp capabilities
|
||||
# num_rows_fh: 120
|
||||
# num_rows_pusch: 200
|
||||
# num_rows_hest: 140
|
||||
# e3_pub_port: 5555 # E3 publisher port for indication messages
|
||||
# e3_rep_port: 5556 # E3 reply port for E3AP requests
|
||||
# e3_sub_port: 5560 # E3 subscriber port for Manager messages
|
||||
|
||||
cells:
|
||||
- name: O-RU 0
|
||||
cell_id: 1
|
||||
ru_type: 1
|
||||
# set to 00:00:00:00:00:00 to use the MAC address of the NIC port to use
|
||||
src_mac_addr: 00:00:00:00:00:00
|
||||
dst_mac_addr: e8:c7:cf:ad:12:0b #WNC n78
|
||||
nic: '0000:01:00.0'
|
||||
vlan: 500
|
||||
pcp: 7
|
||||
txq_count_uplane: 1
|
||||
eAxC_id_ssb_pbch: [0, 1, 2, 3]
|
||||
eAxC_id_pdcch: [0, 1, 2, 3]
|
||||
eAxC_id_pdsch: [0, 1, 2, 3]
|
||||
eAxC_id_csirs: [0, 1, 2, 3]
|
||||
eAxC_id_pusch: [0, 1, 2, 3]
|
||||
eAxC_id_pucch: [0, 1, 2, 3]
|
||||
eAxC_id_srs: [8, 9, 10, 11]
|
||||
eAxC_id_prach: [4, 5, 6, 7]
|
||||
dl_iq_data_fmt: {comp_meth: 1, bit_width: 9}
|
||||
ul_iq_data_fmt: {comp_meth: 1, bit_width: 9}
|
||||
section_3_time_offset: 484
|
||||
fs_offset_dl: 7
|
||||
exponent_dl: 4
|
||||
ref_dl: 0
|
||||
fs_offset_ul: -5
|
||||
exponent_ul: 4
|
||||
max_amp_ul: 65504
|
||||
mu: 1
|
||||
T1a_max_up_ns: 280000
|
||||
T1a_max_cp_ul_ns: 405000
|
||||
Ta4_min_ns: 50000
|
||||
Ta4_max_ns: 331000
|
||||
Tcp_adv_dl_ns: 125000
|
||||
ul_u_plane_tx_offset_ns: 280000
|
||||
fh_len_range: 0
|
||||
pusch_prb_stride: 273
|
||||
prach_prb_stride: 12
|
||||
srs_prb_stride: 273
|
||||
pusch_ldpc_max_num_itr_algo_type: 1
|
||||
pusch_fixed_max_num_ldpc_itrs: 10
|
||||
pusch_ldpc_early_termination: 0
|
||||
pusch_ldpc_algo_index: 0
|
||||
pusch_ldpc_flags: 2
|
||||
pusch_ldpc_use_half: 1
|
||||
pusch_nMaxPrb: 273
|
||||
pusch_nMaxRx: 4
|
||||
ul_gain_calibration: 78.68
|
||||
lower_guard_bw: 845
|
||||
tv_pusch: cuPhyChEstCoeffs.h5
|
||||
@@ -18,13 +18,12 @@ services:
|
||||
- /lib/modules:/lib/modules
|
||||
- /dev/hugepages:/dev/hugepages
|
||||
- /usr/src:/usr/src
|
||||
- ./cuphycontroller_P5G_WNC_GH_ul.yaml:/opt/nvidia/cuBB/cuPHY-CP/cuphycontroller/config/cuphycontroller_P5G_WNC_GH.yaml
|
||||
- ./aerial_l1_entrypoint.sh:/opt/nvidia/cuBB/aerial_l1_entrypoint.sh
|
||||
- /var/log/aerial:/var/log/aerial
|
||||
- ../../../cmake_targets/share:/opt/cuBB/share
|
||||
userns_mode: host
|
||||
ipc: "shareable"
|
||||
image: cubb-build:25-3
|
||||
image: cubb-build:25-2.1_srs-ul-heavy
|
||||
environment:
|
||||
- cuBB_SDK=/opt/nvidia/cuBB
|
||||
command: bash -c "sudo rm -rf /tmp/phy.log && sudo chmod +x /opt/nvidia/cuBB/aerial_l1_entrypoint.sh && /opt/nvidia/cuBB/aerial_l1_entrypoint.sh"
|
||||
@@ -46,7 +45,7 @@ services:
|
||||
- IPC_LOCK
|
||||
ipc: "container:nv-cubb"
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,utc_time
|
||||
USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,time
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
|
||||
@@ -82,8 +82,6 @@ Options:
|
||||
Makes the NR softmodem
|
||||
--RU
|
||||
Makes the OAI RRU
|
||||
--nrRU
|
||||
Makes the NR RRU
|
||||
--UE
|
||||
Makes the UE specific parts (usim, nvram) from the given configuration file
|
||||
--nrUE
|
||||
@@ -229,11 +227,6 @@ function main() {
|
||||
TARGET_LIST="$TARGET_LIST oairu"
|
||||
echo_info "Will compile RRU"
|
||||
shift;;
|
||||
--nrRU)
|
||||
NRRU=1
|
||||
TARGET_LIST="$TARGET_LIST nr-oru"
|
||||
echo_info "Will compile NR O-RU"
|
||||
shift;;
|
||||
--UE)
|
||||
UE=1
|
||||
TARGET_LIST="$TARGET_LIST lte-uesoftmodem conf2uedata usim nvram"
|
||||
@@ -459,7 +452,7 @@ function main() {
|
||||
if [[ $TARGET_LIST != "" ]] && [[ -f $OPENAIR_DIR/CMakeLists.txt ]]; then
|
||||
# add some default libraries that should always be built
|
||||
# for eNB, gNB, UEs, simulators
|
||||
if [[ $gNB == 1 || $eNB == 1 || $UE == 1 || $nrUE == 1 || $SIMUS_PHY == 1 || $RU == 1 || $NRRU == 1 ]]; then
|
||||
if [[ $gNB == 1 || $eNB == 1 || $UE == 1 || $nrUE == 1 || $SIMUS_PHY == 1 || $RU == 1 ]]; then
|
||||
TARGET_LIST="$TARGET_LIST params_libconfig coding rfsimulator dfts params_yaml vrtsim rf_emulator"
|
||||
fi
|
||||
|
||||
|
||||
@@ -278,7 +278,7 @@ check_install_usrp_uhd_driver(){
|
||||
x=$((x + 1))
|
||||
done
|
||||
$SUDO apt-get update
|
||||
$SUDO apt-get -y install python3-tk $boost_libs_ubuntu libusb-1.0-0-dev
|
||||
$SUDO apt-get -y install python-tk $boost_libs_ubuntu libusb-1.0-0-dev
|
||||
case "$(get_distribution_release)" in
|
||||
"ubuntu20.04" | "ubuntu22.04")
|
||||
$SUDO apt-get -y install libuhd-dev libuhd4.5.0 uhd-host
|
||||
@@ -288,7 +288,7 @@ check_install_usrp_uhd_driver(){
|
||||
boost_libs_fedora="boost-chrono boost-date-time boost-filesystem boost-program-options boost-thread boost-test boost-regex boost-devel"
|
||||
if [ $IS_CONTAINER -eq 0 ]
|
||||
then
|
||||
$SUDO $INSTALLER -y install python3 $boost_libs_fedora libusb1-devel libusbx-devel python3-mako python3-docutils python3-pip $CMAKE
|
||||
$SUDO $INSTALLER -y install python3 $boost_libs_fedora libusb-devel libusbx-devel python3-mako python3-docutils python3-pip $CMAKE
|
||||
$SUDO pip3 install requests
|
||||
else
|
||||
$SUDO $INSTALLER -y install $boost_libs_fedora $CMAKE
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/fhi_lib/app/src/common.h b/fhi_lib/app/src/common.h
|
||||
index ac5f471..ed9ab7d 100644
|
||||
index ac5f471..94c2d7c 100644
|
||||
--- a/fhi_lib/app/src/common.h
|
||||
+++ b/fhi_lib/app/src/common.h
|
||||
@@ -28,7 +28,7 @@
|
||||
@@ -7,7 +7,7 @@ index ac5f471..ed9ab7d 100644
|
||||
#include <rte_mbuf.h>
|
||||
|
||||
-#define VERSIONX "oran_f_release_v1.0"
|
||||
+#define VERSIONX "oran_f_release_v1.7"
|
||||
+#define VERSIONX "oran_f_release_v1.6"
|
||||
|
||||
#define APP_O_DU 0
|
||||
#define APP_O_RU 1
|
||||
@@ -173,7 +173,7 @@ index eccc4ae..a97fdc6 100644
|
||||
CPP_FLAGS_FULL := $(CPP_FLAGS) $(CPP_COMP) $(INC) $(DEF)
|
||||
CPP_FLAGS_FULL_SNC := $(CPP_FLAGS) $(CPP_COMP_SNC) $(INC) $(DEF)
|
||||
diff --git a/fhi_lib/lib/api/xran_fh_o_du.h b/fhi_lib/lib/api/xran_fh_o_du.h
|
||||
index bacf597..18597d6 100644
|
||||
index bacf597..2aeaaae 100644
|
||||
--- a/fhi_lib/lib/api/xran_fh_o_du.h
|
||||
+++ b/fhi_lib/lib/api/xran_fh_o_du.h
|
||||
@@ -141,8 +141,8 @@ extern "C" {
|
||||
@@ -182,7 +182,7 @@ index bacf597..18597d6 100644
|
||||
|
||||
-#define XRAN_MAX_FRAGMENT (4) /**< Max number of fragmentations in single symbol */
|
||||
-#define XRAN_MAX_SET_BFWS (64) /**< Assumed 64Ant, BFP 9bit with 9K jumbo frame */
|
||||
+#define XRAN_MAX_FRAGMENT (7) /**< Max number of fragmentations in single symbol */
|
||||
+#define XRAN_MAX_FRAGMENT (6) /**< Max number of fragmentations in single symbol */
|
||||
+#define XRAN_MAX_SET_BFWS (1) //(64) /**< Assumed 64Ant, BFP 9bit with 9K jumbo frame */
|
||||
|
||||
#define XRAN_MAX_PKT_BURST (448+4) /**< 4x14x8 symbols per ms */
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <dlfcn.h>
|
||||
#include "common/platform_types.h"
|
||||
|
||||
#define CONFIG_LOADCONFIG_MAIN
|
||||
#include "config_load_configmodule.h"
|
||||
#include "config_userapi.h"
|
||||
#include "../utils/LOG/log.h"
|
||||
@@ -143,7 +144,7 @@ int config_cmdlineonly_getlist(configmodule_interface_t *cfg,
|
||||
paramlist_def_t *ParamList,
|
||||
paramdef_t *params,
|
||||
int numparams,
|
||||
const char *prefix)
|
||||
char *prefix)
|
||||
{
|
||||
ParamList->numelt = 0;
|
||||
return 0;
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
struct configmodule_interface;
|
||||
typedef int (*configmodule_getfunc_t)(struct configmodule_interface *, paramdef_t *, int numparams, const char *prefix);
|
||||
typedef int (
|
||||
*configmodule_getlistfunc_t)(struct configmodule_interface *, paramlist_def_t *, paramdef_t *, int numparams, const char *prefix);
|
||||
*configmodule_getlistfunc_t)(struct configmodule_interface *, paramlist_def_t *, paramdef_t *, int numparams, char *prefix);
|
||||
typedef int (*configmodule_setfunc_t)(paramdef_t *cfgoptions, int numoptions, const char *prefix);
|
||||
typedef void (*configmodule_endfunc_t)(struct configmodule_interface *cfg);
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ int config_get(configmodule_interface_t *cfgif, paramdef_t *params, int numparam
|
||||
return ret;
|
||||
}
|
||||
|
||||
int config_getlist(configmodule_interface_t *cfg, paramlist_def_t *ParamList, paramdef_t *params, int numparams, const char *prefix)
|
||||
int config_getlist(configmodule_interface_t *cfg, paramlist_def_t *ParamList, paramdef_t *params, int numparams, char *prefix)
|
||||
{
|
||||
if (CONFIG_ISFLAGSET(CONFIG_ABORT)) {
|
||||
fprintf(stderr,"[CONFIG] config_get skipped, config module not properly initialized\n");
|
||||
|
||||
@@ -62,7 +62,7 @@ int config_assign_ipv4addr(configmodule_interface_t *cfg, paramdef_t *cfgoptions
|
||||
#define CONFIG_CHECKALLSECTIONS "ALLSECTIONS"
|
||||
int config_check_unknown_cmdlineopt(configmodule_interface_t *cfg, char *prefix);
|
||||
int config_get(configmodule_interface_t *cfg, paramdef_t *params, int numparams, const char *prefix);
|
||||
int config_getlist(configmodule_interface_t *cfg, paramlist_def_t *ParamList, paramdef_t *params, int numparams, const char *prefix);
|
||||
int config_getlist(configmodule_interface_t *cfg, paramlist_def_t *ParamList, paramdef_t *params, int numparams, char *prefix);
|
||||
|
||||
/* apis to set some of the paramdef_t fields before using the get/getlist api's */
|
||||
void config_set_checkfunctions(paramdef_t *params, checkedparam_t *checkfunctions, int numparams);
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
# define NUMBER_OF_SRS_MAX 16
|
||||
# define NUMBER_OF_SCH_STATS_MAX 16
|
||||
|
||||
#define MAX_MANAGED_ENB_PER_MOBILE 2
|
||||
#define MAX_MANAGED_GNB_PER_MOBILE 2
|
||||
|
||||
# ifndef PHYSIM
|
||||
# ifndef UE_EXPANSION
|
||||
|
||||
@@ -27,30 +27,39 @@
|
||||
|
||||
#ifdef LARGE_SCALE
|
||||
#define NB_MODULES_MAX 128
|
||||
#define NB_NODE_MAX 128
|
||||
#else
|
||||
#define NB_MODULES_MAX 32
|
||||
#define NB_NODE_MAX 32
|
||||
#endif
|
||||
|
||||
#define MAX_IP_PACKET_SIZE 10000 // 9000
|
||||
|
||||
#define MAX_MODULES NB_MODULES_MAX
|
||||
#define MAX_NR_RRC_UE_CONTEXTS 64
|
||||
|
||||
#ifndef UE_EXPANSION
|
||||
#ifdef LARGE_SCALE
|
||||
#define MAX_MOBILES_PER_ENB 128
|
||||
#define MAX_MOBILES_PER_ENB_NB_IoT 128
|
||||
#define MAX_eNB 2
|
||||
#define MAX_gNB 2
|
||||
#else
|
||||
#define MAX_MOBILES_PER_ENB 40
|
||||
#define MAX_MOBILES_PER_ENB_NB_IoT 40
|
||||
#define MAX_eNB 2
|
||||
#define MAX_gNB 2
|
||||
#endif
|
||||
#else
|
||||
#define MAX_MOBILES_PER_ENB 256
|
||||
#define MAX_MOBILES_PER_ENB_NB_IoT 256
|
||||
#define MAX_eNB 2
|
||||
#define MAX_gNB 2
|
||||
#endif
|
||||
|
||||
#define NUMBER_OF_NR_UCI_STATS_MAX 16
|
||||
#define MAX_MANAGED_ENB_PER_MOBILE 2
|
||||
#define MAX_MANAGED_GNB_PER_MOBILE 2
|
||||
|
||||
/// NB-IOT
|
||||
#define NB_RB_MAX_NB_IOT (2 + 3) /* 2 from LTE_maxDRB_NB_r13 in LTE_asn_constant.h + 3 SRBs */
|
||||
@@ -76,10 +85,12 @@
|
||||
// RLC Entity
|
||||
#define RLC_TX_MAXSIZE 10000000
|
||||
#define RLC_RX_MAXSIZE 10000000
|
||||
#define SEND_MRW_ON 240
|
||||
#define MAX_ANT 8
|
||||
// CBA constant
|
||||
#define NUM_MAX_CBA_GROUP 4
|
||||
|
||||
#define printk printf
|
||||
#define RETURNok (0)
|
||||
#define RETURNerror (-1)
|
||||
#define DEFAULT_NAS_PATH "PWD"
|
||||
@@ -89,8 +100,5 @@
|
||||
// SDAP
|
||||
#define MAX_QOS_FLOWS 64
|
||||
|
||||
// SDAP/5G NAS NOS1
|
||||
#define DEFAULT_NOS1_PDU_ID 10
|
||||
|
||||
#define SPEED_OF_LIGHT 299792458 // in m/s
|
||||
#endif /* __PLATFORM_CONSTANTS_H__ */
|
||||
|
||||
@@ -14,7 +14,7 @@ add_subdirectory(nr)
|
||||
add_subdirectory(LOG)
|
||||
add_subdirectory(threadPool)
|
||||
add_subdirectory(time_manager)
|
||||
add_library(utils utils.c system.c time_meas.c time_stat.c tuntap_if.c)
|
||||
add_library(utils utils.c system.c time_meas.c time_stat.c tun_if.c)
|
||||
target_include_directories(utils PUBLIC .)
|
||||
target_link_libraries(utils PRIVATE ${T_LIB})
|
||||
if (ENABLE_TESTS)
|
||||
|
||||
@@ -65,7 +65,7 @@ Note: only LTTng 2.3.8 is supported.
|
||||
1. **Run gNB:**
|
||||
|
||||
```bash
|
||||
./$binary_path -O $configuration_file PARALLEL_SINGLE_THREAD --rfsimulator.[0].serveraddr server --rfsim -E
|
||||
./$binary_path -O $configuration_file PARALLEL_SINGLE_THREAD --rfsimulator.serveraddr server --rfsim -E
|
||||
```
|
||||
|
||||
## Verifying Tracepoints
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
#define _GNU_SOURCE /* required for pthread_getname_np */
|
||||
//#define LOG_TEST 1
|
||||
|
||||
#define COMPONENT_LOG
|
||||
#define COMPONENT_LOG_IF
|
||||
#include <ctype.h>
|
||||
#define LOG_MAIN
|
||||
#include "log.h"
|
||||
|
||||
@@ -302,6 +302,22 @@ void close_log_mem(void);
|
||||
@param multiVec create new file or append to existing (useful for writing multiple vectors to same file. Just call the function multiple times with same file name and with this parameter set to 1)
|
||||
*/
|
||||
#define MATLAB_RAW (1U<<31)
|
||||
#define MATLAB_SHORT 0
|
||||
#define MATLAB_CSHORT 1
|
||||
#define MATLAB_INT 2
|
||||
#define MATLAB_CINT 3
|
||||
#define MATLAB_INT8 4
|
||||
#define MATLAB_CINT8 5
|
||||
#define MATLAB_LLONG 6
|
||||
#define MATLAB_DOUBLE 7
|
||||
#define MATLAB_CDOUBLE 8
|
||||
#define MATLAB_UINT8 9
|
||||
#define MATLEB_EREN1 10
|
||||
#define MATLEB_EREN2 11
|
||||
#define MATLEB_EREN3 12
|
||||
#define MATLAB_CSHORT_BRACKET1 13
|
||||
#define MATLAB_CSHORT_BRACKET2 14
|
||||
#define MATLAB_CSHORT_BRACKET3 15
|
||||
|
||||
int32_t write_file_matlab(const char *fname,
|
||||
const char *vname,
|
||||
@@ -317,6 +333,7 @@ int32_t write_file_matlab(const char *fname,
|
||||
|
||||
#define LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL "global_log_level"
|
||||
#define LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE "global_log_online"
|
||||
#define LOG_CONFIG_STRING_GLOBAL_LOG_INFILE "global_log_infile"
|
||||
#define LOG_CONFIG_STRING_GLOBAL_LOG_OPTIONS "global_log_options"
|
||||
|
||||
#define LOG_CONFIG_LEVEL_FORMAT "%s_log_level"
|
||||
|
||||
3
common/utils/T/.gitignore
vendored
3
common/utils/T/.gitignore
vendored
@@ -16,8 +16,5 @@ tracer/extract_input_subframe
|
||||
tracer/extract_output_subframe
|
||||
tracer/extract
|
||||
tracer/multi
|
||||
tracer/t_tracer_app_gnb
|
||||
tracer/t_tracer_app_ue
|
||||
tracer/csv
|
||||
tracee/tracee
|
||||
incgen
|
||||
|
||||
@@ -17,5 +17,4 @@ It is made of two main parts:
|
||||
* [MAC PDUs and wireshark](./T/wireshark.md)
|
||||
* [The *enb* tracer](./T/enb.md)
|
||||
* [The *to_vcd* tracer](./T/to_vcd.md)
|
||||
* [The *csv* tracer](./T/csv.md)
|
||||
* [Tutorial: how to create a new trace](./T/howto_new_trace.md)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user