mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
Compare commits
245 Commits
multi-test
...
testing_40
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b7dbf72968 | ||
|
|
3acd553be8 | ||
|
|
67fcc123b2 | ||
|
|
b269374aaf | ||
|
|
b2ccd1b2bf | ||
|
|
3180d99ca6 | ||
|
|
9777d23173 | ||
|
|
068e91ad0c | ||
|
|
543fab819e | ||
|
|
0858ee8877 | ||
|
|
0c2a9384d0 | ||
|
|
269880f89d | ||
|
|
12fc8112d9 | ||
|
|
95c8fa468a | ||
|
|
f4b9e04c61 | ||
|
|
74b998a0d8 | ||
|
|
ee00eb346e | ||
|
|
656b1d52a0 | ||
|
|
b533127553 | ||
|
|
ec0b97beae | ||
|
|
357496a88a | ||
|
|
df7db3ab27 | ||
|
|
b7867a4053 | ||
|
|
54076927ba | ||
|
|
aeba59a9ad | ||
|
|
315fe92253 | ||
|
|
2c1687e44f | ||
|
|
358c17ce58 | ||
|
|
95df8b174e | ||
|
|
34c001d488 | ||
|
|
0388bf0e67 | ||
|
|
003d72c859 | ||
|
|
9cb79027e4 | ||
|
|
50e133f791 | ||
|
|
5ff032f9a7 | ||
|
|
81eb336add | ||
|
|
37b1a0a9f3 | ||
|
|
283063f3da | ||
|
|
f393300da1 | ||
|
|
7ba52783fb | ||
|
|
a0ff4828cf | ||
|
|
bc6f710b23 | ||
|
|
c8bcfedae0 | ||
|
|
de0d100d67 | ||
|
|
bf78ef08e1 | ||
|
|
9048ab1860 | ||
|
|
b24fd337ba | ||
|
|
109569e38c | ||
|
|
88c74dc07f | ||
|
|
bc62e8abca | ||
|
|
3c35bad530 | ||
|
|
d401cf0d31 | ||
|
|
84a49e93ad | ||
|
|
fc8e537f20 | ||
|
|
c5787aa9a9 | ||
|
|
806a15da01 | ||
|
|
50de6bd8fb | ||
|
|
b74cd9c612 | ||
|
|
129b62e708 | ||
|
|
aff0ea5760 | ||
|
|
9a11690f81 | ||
|
|
d18c2d27f2 | ||
|
|
825cbcdb47 | ||
|
|
290306d1f8 | ||
|
|
ebc9158ca4 | ||
|
|
a0a68d56d5 | ||
|
|
0eb33e69c7 | ||
|
|
e1a327ca4f | ||
|
|
db902afbe4 | ||
|
|
efdd43cf66 | ||
|
|
780a2467aa | ||
|
|
6e69491f4a | ||
|
|
e82e3a35fe | ||
|
|
f76e530f90 | ||
|
|
a5e8e10acf | ||
|
|
f22769a80f | ||
|
|
f65b8f564f | ||
|
|
8b60466916 | ||
|
|
cf8f24710b | ||
|
|
f7e714894a | ||
|
|
26d24dbd0b | ||
|
|
ee406b06a4 | ||
|
|
c2d3a3d0c2 | ||
|
|
fce8185467 | ||
|
|
f9e7e5199d | ||
|
|
dd8a25524a | ||
|
|
5b0d34c3ad | ||
|
|
831e407298 | ||
|
|
eea52e4384 | ||
|
|
dc968d4dc9 | ||
|
|
78720d5d9c | ||
|
|
27e01e081b | ||
|
|
9b4898ee57 | ||
|
|
a91838937f | ||
|
|
3435fcc010 | ||
|
|
4d215b5c95 | ||
|
|
ce83a78271 | ||
|
|
b24052d2dc | ||
|
|
fb9e848d5b | ||
|
|
8e18e5b3aa | ||
|
|
6297c40423 | ||
|
|
0b06d55f5f | ||
|
|
bcccfd90b8 | ||
|
|
dfb217ad0e | ||
|
|
b495576c83 | ||
|
|
168f329491 | ||
|
|
90ad9fac1a | ||
|
|
623dc19d22 | ||
|
|
b68b42c6e8 | ||
|
|
256a54ce6c | ||
|
|
eed98b2bf9 | ||
|
|
877b8ed0a0 | ||
|
|
af4ceea12c | ||
|
|
fef4e7b23e | ||
|
|
7c64fe0f60 | ||
|
|
2acc8b6a08 | ||
|
|
f9fb02b1d7 | ||
|
|
36a5dbdfff | ||
|
|
cecfec82a8 | ||
|
|
d1febb5fc2 | ||
|
|
207b061e22 | ||
|
|
1ba8502bdd | ||
|
|
b464ff6bd7 | ||
|
|
bea7afcbd3 | ||
|
|
004a472c52 | ||
|
|
84aa1f8ff5 | ||
|
|
dc70b621a5 | ||
|
|
75df29a333 | ||
|
|
7e0440433a | ||
|
|
8496e88a10 | ||
|
|
6af6789f65 | ||
|
|
b621929f9b | ||
|
|
0b8fb49a38 | ||
|
|
94bb169ac5 | ||
|
|
0ea07517fb | ||
|
|
0c879cdf62 | ||
|
|
1c6acfbc20 | ||
|
|
b8c44aaf2c | ||
|
|
ed4cca814a | ||
|
|
e84b0714d3 | ||
|
|
a1da4b716c | ||
|
|
4d5f9d3cb3 | ||
|
|
87410b1d25 | ||
|
|
a025ce30ff | ||
|
|
17c6d0feb2 | ||
|
|
5c480ffd50 | ||
|
|
a9ba6290b9 | ||
|
|
ed2acc135c | ||
|
|
34d3b5d386 | ||
|
|
ed734c389f | ||
|
|
273b9fba4d | ||
|
|
1aa13e4f23 | ||
|
|
57f8e69c13 | ||
|
|
c0d0bab0d8 | ||
|
|
f5501ed725 | ||
|
|
2f6b30cdb4 | ||
|
|
7cf6181ff4 | ||
|
|
5225f60194 | ||
|
|
9ac9e3ba91 | ||
|
|
4d19b4732e | ||
|
|
13f46a0c0a | ||
|
|
231966753d | ||
|
|
bcfa68347f | ||
|
|
c903d9f640 | ||
|
|
9031b26cf8 | ||
|
|
15bd09dd24 | ||
|
|
5e6d9dbbc6 | ||
|
|
705fbb3818 | ||
|
|
2a8683202e | ||
|
|
1411b03c4f | ||
|
|
31c6d1d3d6 | ||
|
|
3fa6b7e59e | ||
|
|
28d821bd0f | ||
|
|
69edfa25cb | ||
|
|
0eddb4d3e3 | ||
|
|
542b2d017e | ||
|
|
cadd031c81 | ||
|
|
1e5c28279e | ||
|
|
7ede84cb1d | ||
|
|
2557df87f5 | ||
|
|
e9ac0c70c8 | ||
|
|
42fd19dc5c | ||
|
|
345d5315e5 | ||
|
|
c978d1664f | ||
|
|
53095c7239 | ||
|
|
48f9d8a56d | ||
|
|
775051c5d2 | ||
|
|
ecd600f38b | ||
|
|
70322348f8 | ||
|
|
63b805a5a4 | ||
|
|
d4ebb76e45 | ||
|
|
152dfae7bc | ||
|
|
34a58676ce | ||
|
|
08edcb43ea | ||
|
|
8df5bcc533 | ||
|
|
ac535b6338 | ||
|
|
03d3a94038 | ||
|
|
ee2af75bff | ||
|
|
27a21cc8aa | ||
|
|
48bcbc316c | ||
|
|
64091c9a51 | ||
|
|
e22c6c8438 | ||
|
|
def635ad7d | ||
|
|
39e32c5998 | ||
|
|
e0af1a2e75 | ||
|
|
143a2f87a7 | ||
|
|
75820422a4 | ||
|
|
28f3037581 | ||
|
|
7173bb6cac | ||
|
|
b64c4e5708 | ||
|
|
6317fdd9df | ||
|
|
f2de345b09 | ||
|
|
180e06112f | ||
|
|
57ab56cce2 | ||
|
|
4eec984159 | ||
|
|
8a97d94725 | ||
|
|
372ab68056 | ||
|
|
e8ae7cb711 | ||
|
|
6240ad40aa | ||
|
|
30d3479782 | ||
|
|
af4a030997 | ||
|
|
a6b83a6ed7 | ||
|
|
f579e03b16 | ||
|
|
99b1bfbdfd | ||
|
|
cf5467e4cc | ||
|
|
9b64634652 | ||
|
|
746d12b2d2 | ||
|
|
9cd6c68623 | ||
|
|
32718da5a5 | ||
|
|
8f2e98a475 | ||
|
|
d613cf7b0b | ||
|
|
f6d23422aa | ||
|
|
407d175f5d | ||
|
|
34d53549f3 | ||
|
|
9077a89f17 | ||
|
|
83f5e30610 | ||
|
|
3fdbe01157 | ||
|
|
dfd3ad267e | ||
|
|
13933f9db8 | ||
|
|
afb861dc0c | ||
|
|
d2fec82411 | ||
|
|
7f1974b0f6 | ||
|
|
8d857ab794 | ||
|
|
4edc5c2d33 | ||
|
|
6b5cb9a69c |
8
.gitignore
vendored
8
.gitignore
vendored
@@ -20,6 +20,14 @@ 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
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
cmake_minimum_required (VERSION 3.16)
|
||||
project (OpenAirInterface LANGUAGES C CXX)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(OAI_VERSION 2.4.0)
|
||||
|
||||
#########################################################
|
||||
# Base directories, compatible with legacy OAI building #
|
||||
@@ -61,6 +62,15 @@ 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)
|
||||
@@ -87,8 +97,6 @@ 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)
|
||||
|
||||
@@ -222,9 +230,16 @@ endif()
|
||||
|
||||
add_definitions("-DASN_DISABLE_OER_SUPPORT -DHAVE_CONFIG_H -DHAVE_CONFIG_H_")
|
||||
|
||||
#########################
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ggdb2 -Wl,-rpath -Wl,${CMAKE_CURRENT_BINARY_DIR}")
|
||||
#########################
|
||||
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 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")
|
||||
@@ -1789,6 +1804,24 @@ 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
|
||||
###################################################
|
||||
|
||||
@@ -1872,6 +1905,7 @@ 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
|
||||
@@ -2162,3 +2196,8 @@ add_subdirectory(openair2)
|
||||
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")
|
||||
endif()
|
||||
|
||||
1
ci-scripts/Jenkinsfile
vendored
1
ci-scripts/Jenkinsfile
vendored
@@ -115,6 +115,7 @@ pipeline {
|
||||
} else {
|
||||
sh "git fetch"
|
||||
sh "git checkout -f ${commitID}"
|
||||
sh "git reset --hard origin/${commitID}"
|
||||
}
|
||||
} else {
|
||||
echo "\u274C Some parameters are missing"
|
||||
|
||||
@@ -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('all', self.imageKind)
|
||||
result = re.search('x86', self.imageKind)
|
||||
if result is not None:
|
||||
imageNames.append(('oai-enb', 'eNB', 'oai-enb', ''))
|
||||
imageNames.append(('oai-gnb', 'gNB', 'oai-gnb', ''))
|
||||
@@ -315,7 +315,6 @@ 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"'))
|
||||
@@ -325,6 +324,7 @@ 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:
|
||||
elif "fhi72" in name or name == "oai-nr-oru":
|
||||
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.2025.10.09.tar.gz .')
|
||||
cmd.run('cp -f /opt/nvidia-ipc/nvipc_src.2026.01.07.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.2025.10.09.tar.gz')
|
||||
cmd.run('rm -f nvipc_src.2026.01.07.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(self.imageKind, 'KO', CONST.ALL_PROCESSES_OK)
|
||||
HTML.CreateHtmlTestRow("Unit test build failed", 'KO', CONST.ALL_PROCESSES_OK)
|
||||
return False
|
||||
|
||||
# build ran-unittests image
|
||||
|
||||
@@ -200,9 +200,11 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
|
||||
@@ -233,9 +233,11 @@ RUs =
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
THREAD_STRUCT =
|
||||
(
|
||||
|
||||
@@ -233,9 +233,11 @@ RUs =
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
THREAD_STRUCT =
|
||||
(
|
||||
|
||||
@@ -233,9 +233,11 @@ RUs =
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
THREAD_STRUCT =
|
||||
(
|
||||
|
||||
@@ -233,9 +233,11 @@ RUs =
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
THREAD_STRUCT =
|
||||
(
|
||||
|
||||
@@ -362,9 +362,11 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
|
||||
@@ -197,13 +197,15 @@ 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,14 +27,15 @@ 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,16 +13,7 @@ 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;
|
||||
|
||||
@@ -186,19 +177,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;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -222,13 +213,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,10 +191,11 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -200,10 +200,11 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -234,14 +234,15 @@ 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,14 +242,15 @@ 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 = 2071387;
|
||||
dl_frequencyBand = 261;
|
||||
absoluteFrequencySSB = 2078299;
|
||||
dl_frequencyBand = 257;
|
||||
# this is 27.900 GHz
|
||||
dl_absoluteFrequencyPointA = 2071001;
|
||||
dl_absoluteFrequencyPointA = 2077963;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 3;
|
||||
dl_carrierBandwidth = 32;
|
||||
dl_carrierBandwidth = 66;
|
||||
#initialDownlinkBWP
|
||||
#genericParameters
|
||||
# this is RBstart=0,L=32 (275*(L-1))+RBstart
|
||||
initialDLBWPlocationAndBandwidth = 8525;
|
||||
initialDLBWPlocationAndBandwidth = 6349;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 3;
|
||||
#pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 1;
|
||||
initialDLBWPcontrolResourceSetZero = 4;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
#uplinkConfigCommon
|
||||
#frequencyInfoUL
|
||||
ul_frequencyBand = 261;
|
||||
ul_frequencyBand = 257;
|
||||
#scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 3;
|
||||
ul_carrierBandwidth = 32;
|
||||
ul_carrierBandwidth = 66;
|
||||
pMax = 20;
|
||||
#initialUplinkBWP
|
||||
#genericParameters
|
||||
initialULBWPlocationAndBandwidth = 8525;
|
||||
initialULBWPlocationAndBandwidth = 6349;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 3;
|
||||
@@ -143,6 +143,11 @@ gNBs =
|
||||
|
||||
);
|
||||
|
||||
first_active_bwp = 1;
|
||||
bwp_list = (
|
||||
{ scs = 3; bwpStart = 0; bwpSize = 66;}
|
||||
);
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
@@ -197,9 +202,11 @@ RUs = ({
|
||||
eNB_instances = [0];
|
||||
});
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
@@ -205,14 +205,15 @@ 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 = 9600;
|
||||
mtu = 9216;
|
||||
fh_config = ({
|
||||
T1a_cp_dl = (285, 470);
|
||||
T1a_cp_ul = (285, 429);
|
||||
|
||||
@@ -208,9 +208,11 @@ RUs = (
|
||||
);
|
||||
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -197,9 +197,11 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -204,13 +204,15 @@ 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 = "CI_GNB_IP_ADDR";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "CI_GNB_IP_ADDR";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
@@ -217,14 +217,15 @@ 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: 0
|
||||
prach_msg1_FDM: 1
|
||||
prach_msg1_FrequencyStart: 0
|
||||
zeroCorrelationZoneConfig: 12
|
||||
preambleReceivedTargetPower: -104
|
||||
@@ -99,7 +99,7 @@ gNBs:
|
||||
pucchGroupHopping: 0
|
||||
hoppingId: 40
|
||||
p0_nominal: -90
|
||||
ssb_PositionsInBurst_Bitmap: 1
|
||||
ssb_PositionsInBurst_Bitmap: 2
|
||||
# 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,10 +203,11 @@ 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 = 9600;
|
||||
mtu = 9216;
|
||||
fh_config = ({
|
||||
T1a_cp_dl = (419, 470);
|
||||
T1a_cp_ul = (285, 336);
|
||||
|
||||
@@ -203,14 +203,15 @@ RUs = (
|
||||
);
|
||||
|
||||
|
||||
rfsimulator :
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
5
ci-scripts/conf_files/lteue.rfsim.conf
Normal file
5
ci-scripts/conf_files/lteue.rfsim.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "127.0.0.1";
|
||||
}
|
||||
);
|
||||
@@ -12,8 +12,7 @@ uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
|
||||
MACRLCs = (
|
||||
|
||||
@@ -87,3 +87,9 @@ PRSs =
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "127.0.0.1";
|
||||
}
|
||||
);
|
||||
|
||||
17
ci-scripts/conf_files/nrue.uicc.2pdu.conf
Normal file
17
ci-scripts/conf_files/nrue.uicc.2pdu.conf
Normal file
@@ -0,0 +1,17 @@
|
||||
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,8 +2,7 @@ uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
|
||||
position0 = {
|
||||
@@ -14,6 +13,12 @@ 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) */
|
||||
@@ -40,4 +45,4 @@ channelmod = {
|
||||
ds_tdl = 0;
|
||||
}
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
@@ -2,8 +2,7 @@ uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
|
||||
position0 = {
|
||||
@@ -14,6 +13,40 @@ 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,11 +2,15 @@ uicc0:
|
||||
imsi: 208990100001100
|
||||
key: fec86ba6eb707ed08905757b1bb44b8f
|
||||
opc: C42449363BBAD02B66D16BC975D77CC1
|
||||
dnn: oai
|
||||
nssai_sst: 1
|
||||
pdu_sessions:
|
||||
- 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,8 +2,9 @@ uicc0:
|
||||
imsi: 208990100001100
|
||||
key: fec86ba6eb707ed08905757b1bb44b8f
|
||||
opc: C42449363BBAD02B66D16BC975D77CC1
|
||||
dnn: oai
|
||||
nssai_sst: 1
|
||||
pdu_sessions:
|
||||
- dnn: oai
|
||||
nssai_sst: 1
|
||||
|
||||
thread-pool: "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
|
||||
|
||||
@@ -2,8 +2,7 @@ uicc0 = {
|
||||
imsi = "208970100001127";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "c42449363bbad02b66d16bc975d77cc1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
|
||||
thread-pool = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
|
||||
@@ -12,9 +12,7 @@ uicc0 = {
|
||||
imsi = "208950000000031";
|
||||
key = "0c0a34601d4f07677303652c0462535b";
|
||||
opc= "63bfa50ee6523365ff14c1f45f88737d";
|
||||
dnn= "oai";
|
||||
nssai_sst=222;
|
||||
nssai_sd=123;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 222; nssai_sd = 123; });
|
||||
}
|
||||
|
||||
MACRLCs = (
|
||||
|
||||
@@ -12,9 +12,7 @@ uicc0 = {
|
||||
imsi = "2089900007487";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
nssai_sd=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; nssai_sd = 1; });
|
||||
}
|
||||
|
||||
MACRLCs = (
|
||||
|
||||
@@ -205,14 +205,15 @@ RUs = (
|
||||
);
|
||||
|
||||
|
||||
rfsimulator :
|
||||
{
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -200,14 +200,15 @@ RUs = (
|
||||
);
|
||||
|
||||
|
||||
rfsimulator :
|
||||
rfsimulator = (
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -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 1 | ncat 192.168.71.150 9090 | grep "3585"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | 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 1 | ncat 192.168.71.150 9090 | grep "3584"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | 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 1 | ncat 192.168.71.150 9090 | grep "3585"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 192.168.71.150 9090 | grep "3585"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>rfsim-fr2-32prb-5gnr-tdd</htmlTabRef>
|
||||
<htmlTabRef>rfsim-fr2-66prb-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_32prb</yaml_path>
|
||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_fr2_66prb</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_32prb</yaml_path>
|
||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_fr2_66prb</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_32prb</yaml_path>
|
||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_fr2_66prb</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 1 | ncat 192.168.71.180 9090 | grep "1234"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | 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 1 | ncat 192.168.71.150 9090 | grep "3584"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | 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 1 | ncat 192.168.71.180 9090 | grep "1234"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 192.168.71.180 9090 | grep "1234"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
<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>all</kind>
|
||||
<kind>x86</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</iperf_args>
|
||||
<iperf_args>-u -b 800M -t 30 -R -l 1428</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</iperf_args>
|
||||
<iperf_args>-u -b 1000M -t 30 -R -l 1428</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</iperf_args>
|
||||
<iperf_args>-u -b 200M -t 30 -R -l 1428</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 1 | ncat 127.0.0.1 9090 | grep "3585"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | 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 1 | ncat 127.0.0.1 9090 | grep "3584"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | 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 1 | ncat 127.0.0.1 9090 | grep "3585"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | 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 1 | ncat 127.0.0.1 9090 | grep "3585"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | 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 1 | ncat 127.0.0.1 9090 | grep "3584"</command>
|
||||
<command>echo ci fetch_du_by_ue_id | ncat 127.0.0.1 9090 | grep "3584"</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
|
||||
@@ -208,9 +208,10 @@ 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.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.[0].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,9 +30,10 @@ 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.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.[0].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,9 +208,10 @@ 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.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.[0].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,9 +208,10 @@ 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.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.[0].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,9 +28,10 @@ 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.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.[0].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,9 +33,10 @@ 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.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.[0].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,9 +208,10 @@ 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.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.[0].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.options chanmod
|
||||
--rfsimulator.[0].options chanmod
|
||||
--telnetsrv --telnetsrv.listenaddr 192.168.71.171
|
||||
--telnetsrv.shrmod ci
|
||||
--rfsimulator.serveraddr 192.168.71.181
|
||||
--rfsimulator.[0].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.serveraddr 192.168.71.181
|
||||
--rfsimulator.[0].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.options chanmod
|
||||
--rfsimulator.serveraddr server
|
||||
--rfsimulator.[0].options chanmod
|
||||
--rfsimulator.[0].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.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.[0].serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
devices:
|
||||
@@ -518,8 +518,7 @@ uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ 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.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.[0].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.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.[0].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.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.[0].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.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.[0].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.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.[0].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.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.[0].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.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.[0].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.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.[0].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.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.[0].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.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.[0].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.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.[0].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.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
--rfsimulator.[0].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.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.[0].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.serveraddr oai-du
|
||||
--rfsimulator.[0].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.nssai_sst 2
|
||||
--rfsimulator.serveraddr 192.168.78.3
|
||||
--uicc0.imsi 208990100001101 --uicc0.pdu_sessions.[0].nssai_sst 2
|
||||
--rfsimulator.[0].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.nssai_sst 3
|
||||
--rfsimulator.serveraddr 192.168.78.4
|
||||
--uicc0.imsi 208990100001102 --uicc0.pdu_sessions.[0].nssai_sst 3
|
||||
--rfsimulator.[0].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.wait_timeout 20 --noS1 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --rfsimulator.[0].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.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.[0].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.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.[0].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.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.[0].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.band261.u3.32prb.rfsim.conf:/opt/oai-gnb/etc/gnb.conf
|
||||
- ../../conf_files/gnb.sa.band257.u3.66prb.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.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
-r 32 --numerology 3 --band 261 -C 27533160000 --ssb 73
|
||||
--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
|
||||
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 -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
|
||||
USE_ADDITIONAL_OPTIONS: -E --rfsim --log_config.global_log_options level,nocolor,time --num-ues 10
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
|
||||
@@ -2,74 +2,193 @@ uicc0 = {
|
||||
imsi = "208990100001100";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
uicc1 = {
|
||||
imsi = "208990100001101";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
uicc2 = {
|
||||
imsi = "208990100001102";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
uicc3 = {
|
||||
imsi = "208990100001103";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
uicc4 = {
|
||||
imsi = "208990100001104";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
uicc5 = {
|
||||
imsi = "208990100001105";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
uicc6 = {
|
||||
imsi = "208990100001106";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
uicc7 = {
|
||||
imsi = "208990100001107";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
uicc8 = {
|
||||
imsi = "208990100001108";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ dnn = "oai"; nssai_sst = 1; });
|
||||
}
|
||||
uicc9 = {
|
||||
imsi = "208990100001109";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
pdu_sessions = ({ 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.serveraddr 192.168.71.190
|
||||
--rfsimulator.[0].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.serveraddr server
|
||||
USE_ADDITIONAL_OPTIONS: --rfsim --rfsimulator.[0].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.serveraddr 192.168.71.190
|
||||
--rfsimulator.[0].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.prop_delay 238.74 --rfsimulator.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.[0].prop_delay 238.74 --rfsimulator.[0].serveraddr 192.168.71.140 --num-ul-actors 1 --log_config.global_log_options level,nocolor,time
|
||||
depends_on:
|
||||
- oai-gnb
|
||||
networks:
|
||||
|
||||
@@ -121,13 +121,10 @@ services:
|
||||
- NET_RAW # for ping
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS:
|
||||
--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
|
||||
--rfsim --rfsimulator.[0].serveraddr 192.168.71.140
|
||||
--time-sync-I 0.1 --ntn-initial-time-drift -46
|
||||
--initial-fo 57340 --cont-fo-comp 2
|
||||
--initial-fo 57340 --cont-fo-comp 3
|
||||
--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.serveraddr 192.168.71.140
|
||||
--rfsimulator.[0].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.serveraddr server --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --sl-mode 2 --sync-ref 4 --rfsim --rfsimulator.[0].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.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --sl-mode 2 --rfsim --rfsimulator.[0].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.wait_timeout 20 --noS1 --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --rfsimulator.[0].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.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.[0].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.serveraddr 192.168.71.141 --extra-pdu-id 2 --log_config.global_log_options level,nocolor,time
|
||||
--rfsimulator.[0].serveraddr 192.168.71.141 --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.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
||||
- ../../conf_files/nrue.uicc.2pdu.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
||||
start_period: 10s
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
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
|
||||
@@ -14,7 +12,7 @@ export CUDA_MPS_PIPE_DIRECTORY=/var
|
||||
export CUDA_MPS_LOG_DIRECTORY=/var
|
||||
|
||||
# Stop existing MPS
|
||||
sudo -E echo quit | sudo -E nvidia-cuda-mps-control
|
||||
echo quit | sudo -E nvidia-cuda-mps-control
|
||||
|
||||
# Start MPS
|
||||
sudo -E nvidia-cuda-mps-control -d
|
||||
@@ -24,11 +22,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_FXN_GH"
|
||||
argument="P5G_WNC_GH"
|
||||
else
|
||||
# Argument provided, use it
|
||||
argument="$1"
|
||||
fi
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
@@ -0,0 +1,243 @@
|
||||
# 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,12 +18,13 @@ 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-2.1
|
||||
image: cubb-build:25-3
|
||||
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"
|
||||
@@ -45,7 +46,7 @@ services:
|
||||
- IPC_LOCK
|
||||
ipc: "container:nv-cubb"
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,utc_time
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
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
|
||||
@@ -14,7 +12,7 @@ export CUDA_MPS_PIPE_DIRECTORY=/var
|
||||
export CUDA_MPS_LOG_DIRECTORY=/var
|
||||
|
||||
# Stop existing MPS
|
||||
sudo -E echo quit | sudo -E nvidia-cuda-mps-control
|
||||
echo quit | sudo -E nvidia-cuda-mps-control
|
||||
|
||||
# Start MPS
|
||||
sudo -E nvidia-cuda-mps-control -d
|
||||
@@ -24,11 +22,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_FXN_GH"
|
||||
argument="P5G_WNC_GH"
|
||||
else
|
||||
# Argument provided, use it
|
||||
argument="$1"
|
||||
fi
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
@@ -0,0 +1,243 @@
|
||||
# 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,12 +18,13 @@ 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-2.1_srs-ul-heavy
|
||||
image: cubb-build:25-3
|
||||
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"
|
||||
@@ -45,7 +46,7 @@ services:
|
||||
- IPC_LOCK
|
||||
ipc: "container:nv-cubb"
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,time
|
||||
USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,utc_time
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
|
||||
@@ -82,6 +82,8 @@ 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
|
||||
@@ -227,6 +229,11 @@ 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"
|
||||
@@ -452,7 +459,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 ]]; then
|
||||
if [[ $gNB == 1 || $eNB == 1 || $UE == 1 || $nrUE == 1 || $SIMUS_PHY == 1 || $RU == 1 || $NRRU == 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 python-tk $boost_libs_ubuntu libusb-1.0-0-dev
|
||||
$SUDO apt-get -y install python3-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 libusb-devel libusbx-devel python3-mako python3-docutils python3-pip $CMAKE
|
||||
$SUDO $INSTALLER -y install python3 $boost_libs_fedora libusb1-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..94c2d7c 100644
|
||||
index ac5f471..b1acb26 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..94c2d7c 100644
|
||||
#include <rte_mbuf.h>
|
||||
|
||||
-#define VERSIONX "oran_f_release_v1.0"
|
||||
+#define VERSIONX "oran_f_release_v1.6"
|
||||
+#define VERSIONX "oran_f_release_v1.8"
|
||||
|
||||
#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..2aeaaae 100644
|
||||
index bacf597..18597d6 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..2aeaaae 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 (6) /**< Max number of fragmentations in single symbol */
|
||||
+#define XRAN_MAX_FRAGMENT (7) /**< 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 */
|
||||
@@ -530,7 +530,7 @@ index 59b6850..322d238 100644
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/fhi_lib/lib/src/xran_cb_proc.c b/fhi_lib/lib/src/xran_cb_proc.c
|
||||
index 08660f3..2bb5187 100644
|
||||
index 08660f3..b5de607 100644
|
||||
--- a/fhi_lib/lib/src/xran_cb_proc.c
|
||||
+++ b/fhi_lib/lib/src/xran_cb_proc.c
|
||||
@@ -25,7 +25,10 @@
|
||||
@@ -544,6 +544,55 @@ index 08660f3..2bb5187 100644
|
||||
#include <rte_common.h>
|
||||
#include <rte_eal.h>
|
||||
#include <rte_errno.h>
|
||||
@@ -106,6 +109,12 @@ void xran_timer_arm_for_deadline(struct rte_timer *tim, void* arg, void *p_dev_
|
||||
+ nSubframeIdx*SLOTNUM_PER_SUBFRAME(p_xran_dev_ctx->interval_us_local)
|
||||
+ nSlotIdx;
|
||||
|
||||
+ /* correction to rx_tti for Ta4 values larger than a TTI */
|
||||
+ rx_tti -= p_xran_dev_ctx->offset_num_slots_up_ul;
|
||||
+ if (rx_tti < 0) {
|
||||
+ rx_tti += (SUBFRAMES_PER_SYSTEMFRAME*SLOTNUM_PER_SUBFRAME(p_xran_dev_ctx->interval_us_local)*1024);
|
||||
+ }
|
||||
+
|
||||
p_xran_dev_ctx->cb_timer_ctx[p_xran_dev_ctx->timer_put % MAX_CB_TIMER_CTX].tti_to_process = rx_tti;
|
||||
if (xran_if_current_state == XRAN_RUNNING){
|
||||
rte_timer_cb_t fct = (rte_timer_cb_t)arg;
|
||||
@@ -195,6 +204,7 @@ xran_timing_create_cbs(void *args)
|
||||
max_dl_delay_offset += interval_us_local;
|
||||
numSlots++;
|
||||
}
|
||||
+ p_dev_ctx->offset_num_slots_cp_dl = numSlots;
|
||||
|
||||
/* Delay from start of 'a' slot */
|
||||
delay_cp_dl_max = max_dl_delay_offset - p_dev_ctx->fh_cfg.T1a_max_cp_dl;
|
||||
@@ -227,6 +237,7 @@ xran_timing_create_cbs(void *args)
|
||||
ul_delay_offset += interval_us_local;
|
||||
numSlots++;
|
||||
}
|
||||
+ p_dev_ctx->offset_num_slots_cp_ul = numSlots;
|
||||
delay_cp_ul = ul_delay_offset - p_dev_ctx->fh_cfg.T1a_max_cp_ul;
|
||||
sym_cp_ul = (delay_cp_ul*1000/(interval_us_local*1000/N_SYM_PER_SLOT)+1);
|
||||
uint8_t ul_offset_sym = (numSlots+1)*N_SYM_PER_SLOT - sym_cp_ul;
|
||||
@@ -242,8 +253,18 @@ xran_timing_create_cbs(void *args)
|
||||
|
||||
delay_up = p_dev_ctx->fh_cfg.T1a_max_up;
|
||||
time_diff_us = p_dev_ctx->fh_cfg.Ta4_max;
|
||||
+ uint32_t ul_up_delay_offset=interval_us_local;
|
||||
+ numSlots=0;
|
||||
+ while(time_diff_us > ul_up_delay_offset) {
|
||||
+ ul_up_delay_offset += interval_us_local;
|
||||
+ numSlots++;
|
||||
+ }
|
||||
+ p_dev_ctx->offset_num_slots_up_ul = numSlots;
|
||||
+
|
||||
+ printf("offset_num_slots_cp_dl=%d, offset_num_slots_cp_ul=%d, offset_num_slots_up_ul=%d\n",
|
||||
+ p_dev_ctx->offset_num_slots_cp_dl, p_dev_ctx->offset_num_slots_cp_ul, p_dev_ctx->offset_num_slots_up_ul);
|
||||
|
||||
- delay_cp2up = delay_up-delay_cp_dl_max;
|
||||
+ delay_cp2up = p_dev_ctx->fh_cfg.T1a_max_cp_dl - p_dev_ctx->fh_cfg.T1a_max_up;
|
||||
|
||||
|
||||
time_diff_nSymb = time_diff_us*1000/(interval_us_local*1000/N_SYM_PER_SLOT);
|
||||
diff --git a/fhi_lib/lib/src/xran_common.c b/fhi_lib/lib/src/xran_common.c
|
||||
index dc40ad9..1b88013 100644
|
||||
--- a/fhi_lib/lib/src/xran_common.c
|
||||
@@ -1032,7 +1081,7 @@ index 4acade1..c939edc 100644
|
||||
for(i = 0; i < xran_ports_num; i++){
|
||||
g_xran_dev_ctx[i] = pCtx;
|
||||
diff --git a/fhi_lib/lib/src/xran_dev.h b/fhi_lib/lib/src/xran_dev.h
|
||||
index 0371a53..dd76b49 100644
|
||||
index 0371a53..778b38d 100644
|
||||
--- a/fhi_lib/lib/src/xran_dev.h
|
||||
+++ b/fhi_lib/lib/src/xran_dev.h
|
||||
@@ -201,6 +201,7 @@ struct __rte_cache_aligned xran_device_ctx
|
||||
@@ -1043,6 +1092,18 @@ index 0371a53..dd76b49 100644
|
||||
int64_t offset_sec;
|
||||
int64_t offset_nsec; //offset to GPS time calcuated based on alpha and beta
|
||||
uint32_t interval_us_local;
|
||||
@@ -254,6 +255,11 @@ struct __rte_cache_aligned xran_device_ctx
|
||||
int32_t sym_up; /**< when we start sym 0 of up with respect to OTA time as measured in symbols */
|
||||
int32_t sym_up_ul;
|
||||
|
||||
+ /* used to support large T1a/Ta4 values */
|
||||
+ int32_t offset_num_slots_cp_dl;
|
||||
+ int32_t offset_num_slots_cp_ul;
|
||||
+ int32_t offset_num_slots_up_ul;
|
||||
+
|
||||
xran_fh_tti_callback_fn ttiCb[XRAN_CB_MAX];
|
||||
void *TtiCbParam[XRAN_CB_MAX];
|
||||
uint32_t SkipTti[XRAN_CB_MAX];
|
||||
diff --git a/fhi_lib/lib/src/xran_frame_struct.c b/fhi_lib/lib/src/xran_frame_struct.c
|
||||
index fbb1298..44aaf92 100644
|
||||
--- a/fhi_lib/lib/src/xran_frame_struct.c
|
||||
@@ -1082,7 +1143,7 @@ index 7ed0a3a..8e66945 100644
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
diff --git a/fhi_lib/lib/src/xran_main.c b/fhi_lib/lib/src/xran_main.c
|
||||
index 7c472d7..7c7cf91 100644
|
||||
index 7c472d7..db03d94 100644
|
||||
--- a/fhi_lib/lib/src/xran_main.c
|
||||
+++ b/fhi_lib/lib/src/xran_main.c
|
||||
@@ -35,7 +35,11 @@
|
||||
@@ -1132,7 +1193,42 @@ index 7c472d7..7c7cf91 100644
|
||||
print_dbg("PRACH eAxC_offset %d\n", pPrachCPConfig->eAxC_offset);
|
||||
|
||||
/* Save some configs for app */
|
||||
@@ -1169,6 +1192,10 @@ xran_prepare_cp_ul_slot(uint16_t xran_port_id, uint32_t nSlotIdx, uint32_t nCcS
|
||||
@@ -623,6 +646,8 @@ xran_prepare_cp_dl_slot(uint16_t xran_port_id, uint32_t nSlotIdx, uint32_t nCcS
|
||||
return ret;
|
||||
}
|
||||
|
||||
+uint32_t prev_dl_tti = -1;
|
||||
+
|
||||
void
|
||||
tx_cp_dl_cb(struct rte_timer *tim, void *arg)
|
||||
{
|
||||
@@ -655,7 +680,7 @@ tx_cp_dl_cb(struct rte_timer *tim, void *arg)
|
||||
|
||||
if(first_call && p_xran_dev_ctx->enableCP)
|
||||
{
|
||||
- tti = pTCtx[(xran_lib_ota_tti[PortId] & 1) ^ 1].tti_to_process;
|
||||
+ tti = pTCtx[(xran_lib_ota_tti[PortId] & 1) ^ 1].tti_to_process + p_xran_dev_ctx->offset_num_slots_cp_dl;
|
||||
buf_id = tti % XRAN_N_FE_BUF_LEN;
|
||||
|
||||
slot_id = XranGetSlotNum(tti, SLOTNUM_PER_SUBFRAME(interval_us_local));
|
||||
@@ -665,6 +690,16 @@ tx_cp_dl_cb(struct rte_timer *tim, void *arg)
|
||||
{
|
||||
/* Wrap around to next second */
|
||||
frame_id = (frame_id + NUM_OF_FRAMES_PER_SECOND) & 0x3ff;
|
||||
+ prev_dl_tti = -1;
|
||||
+ }
|
||||
+ else if (p_xran_dev_ctx->offset_num_slots_cp_dl > 0 && prev_dl_tti == xran_fs_get_max_slot(PortId) - 1 + p_xran_dev_ctx->offset_num_slots_cp_dl)
|
||||
+ {
|
||||
+ prev_dl_tti = tti;
|
||||
+ tti = xran_fs_get_max_slot(PortId) + p_xran_dev_ctx->offset_num_slots_cp_dl;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ prev_dl_tti = tti;
|
||||
}
|
||||
|
||||
ctx_id = tti % XRAN_MAX_SECTIONDB_CTX;
|
||||
@@ -1169,6 +1204,10 @@ xran_prepare_cp_ul_slot(uint16_t xran_port_id, uint32_t nSlotIdx, uint32_t nCcS
|
||||
uint8_t seqid = xran_get_cp_seqid(pHandle, XRAN_DIR_UL, cc_id, port_id);
|
||||
|
||||
beam_id = xran_get_beamid(pHandle, XRAN_DIR_UL, cc_id, port_id, slot_id);
|
||||
@@ -1143,7 +1239,45 @@ index 7c472d7..7c7cf91 100644
|
||||
ret = generate_cpmsg_prach(pHandle, ¶ms, sect_geninfo, mbuf, p_xran_dev_ctx,
|
||||
frame_id, subframe_id, slot_id, tti,
|
||||
beam_id, cc_id, port_id, occasionid, seqid);
|
||||
@@ -1338,6 +1365,10 @@ tx_cp_ul_cb(struct rte_timer *tim, void *arg)
|
||||
@@ -1213,6 +1252,7 @@ xran_prepare_cp_ul_slot(uint16_t xran_port_id, uint32_t nSlotIdx, uint32_t nCcS
|
||||
return ret;
|
||||
}
|
||||
|
||||
+uint32_t prev_ul_tti = -1;
|
||||
|
||||
void
|
||||
tx_cp_ul_cb(struct rte_timer *tim, void *arg)
|
||||
@@ -1254,7 +1294,7 @@ tx_cp_ul_cb(struct rte_timer *tim, void *arg)
|
||||
pTCtx = &p_xran_dev_ctx->timer_ctx[0];
|
||||
interval = p_xran_dev_ctx->interval_us_local;
|
||||
PortId = p_xran_dev_ctx->xran_port_id;
|
||||
- tti = pTCtx[(xran_lib_ota_tti[PortId] & 1) ^ 1].tti_to_process;
|
||||
+ tti = pTCtx[(xran_lib_ota_tti[PortId] & 1) ^ 1].tti_to_process + p_xran_dev_ctx->offset_num_slots_cp_ul;
|
||||
|
||||
buf_id = tti % XRAN_N_FE_BUF_LEN;
|
||||
ctx_id = tti % XRAN_MAX_SECTIONDB_CTX;
|
||||
@@ -1264,7 +1304,20 @@ tx_cp_ul_cb(struct rte_timer *tim, void *arg)
|
||||
|
||||
/* Wrap around to next second */
|
||||
if(tti == 0)
|
||||
+ {
|
||||
frame_id = (frame_id + NUM_OF_FRAMES_PER_SECOND) & 0x3ff;
|
||||
+ prev_ul_tti = tti;
|
||||
+ }
|
||||
+ else if (p_xran_dev_ctx->offset_num_slots_cp_ul > 0 && prev_ul_tti == xran_fs_get_max_slot(PortId) - 1 + p_xran_dev_ctx->offset_num_slots_cp_ul)
|
||||
+ {
|
||||
+ prev_ul_tti = tti;
|
||||
+ tti = xran_fs_get_max_slot(PortId) + p_xran_dev_ctx->offset_num_slots_cp_ul;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ prev_ul_tti = tti;
|
||||
+ }
|
||||
+
|
||||
if(xran_get_ru_category(pHandle) == XRAN_CATEGORY_A)
|
||||
num_eAxc = xran_get_num_eAxc(pHandle);
|
||||
else
|
||||
@@ -1338,6 +1391,10 @@ tx_cp_ul_cb(struct rte_timer *tim, void *arg)
|
||||
uint8_t seqid = xran_get_cp_seqid(pHandle, XRAN_DIR_UL, cc_id, port_id);
|
||||
|
||||
beam_id = xran_get_beamid(pHandle, XRAN_DIR_UL, cc_id, port_id, slot_id);
|
||||
@@ -1154,7 +1288,7 @@ index 7c472d7..7c7cf91 100644
|
||||
ret = generate_cpmsg_prach(pHandle, ¶ms, sect_geninfo, mbuf, p_xran_dev_ctx,
|
||||
frame_id, subframe_id, slot_id, tti,
|
||||
beam_id, cc_id, port_id, occasionid, seqid);
|
||||
@@ -1570,6 +1601,7 @@ int32_t handle_ecpri_ethertype(struct rte_mbuf* pkt_q[], uint16_t xport_id, stru
|
||||
@@ -1570,6 +1627,7 @@ int32_t handle_ecpri_ethertype(struct rte_mbuf* pkt_q[], uint16_t xport_id, stru
|
||||
{
|
||||
case ECPRI_IQ_DATA:
|
||||
pkt_data[num_data++] = pkt;
|
||||
@@ -1162,7 +1296,7 @@ index 7c472d7..7c7cf91 100644
|
||||
break;
|
||||
// For RU emulation
|
||||
case ECPRI_RT_CONTROL_DATA:
|
||||
@@ -1587,7 +1619,7 @@ int32_t handle_ecpri_ethertype(struct rte_mbuf* pkt_q[], uint16_t xport_id, stru
|
||||
@@ -1587,7 +1645,7 @@ int32_t handle_ecpri_ethertype(struct rte_mbuf* pkt_q[], uint16_t xport_id, stru
|
||||
break;
|
||||
default:
|
||||
if (p_dev_ctx->fh_init.io_cfg.id == O_DU) {
|
||||
@@ -1171,7 +1305,7 @@ index 7c472d7..7c7cf91 100644
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1876,7 +1908,7 @@ xran_sector_get_instances (uint32_t xran_port, void * pDevHandle, uint16_t nNumI
|
||||
@@ -1876,7 +1934,7 @@ xran_sector_get_instances (uint32_t xran_port, void * pDevHandle, uint16_t nNumI
|
||||
for (i = 0; i < nNumInstances; i++) {
|
||||
|
||||
/* Allocate Memory for CC handles */
|
||||
@@ -1180,7 +1314,7 @@ index 7c472d7..7c7cf91 100644
|
||||
|
||||
if(pCcHandle == NULL)
|
||||
return XRAN_STATUS_RESOURCE;
|
||||
@@ -2347,8 +2379,7 @@ ring_processing_func_per_port(void* args)
|
||||
@@ -2347,8 +2405,7 @@ ring_processing_func_per_port(void* args)
|
||||
for (i = 0; i < ctx->io_cfg.num_vfs && i < XRAN_VF_MAX; i = i+1) {
|
||||
if (ctx->vf2xran_port[i] == port_id) {
|
||||
for(qi = 0; qi < ctx->rxq_per_port[port_id]; qi++){
|
||||
@@ -1190,7 +1324,7 @@ index 7c472d7..7c7cf91 100644
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2414,9 +2445,6 @@ xran_spawn_workers(void)
|
||||
@@ -2414,9 +2471,6 @@ xran_spawn_workers(void)
|
||||
nWorkerCore = nWorkerCore << 1;
|
||||
}
|
||||
|
||||
@@ -1200,7 +1334,7 @@ index 7c472d7..7c7cf91 100644
|
||||
printf("O-XU %d\n", eth_ctx->io_cfg.id);
|
||||
printf("HW %d\n", icx_cpu);
|
||||
printf("Num cores %d\n", total_num_cores);
|
||||
@@ -2453,7 +2481,7 @@ xran_spawn_workers(void)
|
||||
@@ -2453,7 +2507,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->time_wrk_cfg.arg = NULL;
|
||||
eth_ctx->time_wrk_cfg.state = 1;
|
||||
|
||||
@@ -1209,7 +1343,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2475,7 +2503,7 @@ xran_spawn_workers(void)
|
||||
@@ -2475,7 +2529,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 **/
|
||||
@@ -1218,7 +1352,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2502,7 +2530,7 @@ xran_spawn_workers(void)
|
||||
@@ -2502,7 +2556,7 @@ xran_spawn_workers(void)
|
||||
}
|
||||
|
||||
/** 1 - CP GEN **/
|
||||
@@ -1227,7 +1361,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2536,7 +2564,7 @@ xran_spawn_workers(void)
|
||||
@@ -2536,7 +2590,7 @@ xran_spawn_workers(void)
|
||||
else
|
||||
p_dev->tx_sym_gen_func = xran_process_tx_sym_cp_on_opt;
|
||||
|
||||
@@ -1236,7 +1370,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2559,7 +2587,7 @@ xran_spawn_workers(void)
|
||||
@@ -2559,7 +2613,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 **/
|
||||
@@ -1245,7 +1379,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2586,7 +2614,7 @@ xran_spawn_workers(void)
|
||||
@@ -2586,7 +2640,7 @@ xran_spawn_workers(void)
|
||||
}
|
||||
|
||||
/** 1 - CP GEN **/
|
||||
@@ -1254,7 +1388,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2613,7 +2641,7 @@ xran_spawn_workers(void)
|
||||
@@ -2613,7 +2667,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 **/
|
||||
@@ -1263,7 +1397,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2628,7 +2656,7 @@ xran_spawn_workers(void)
|
||||
@@ -2628,7 +2682,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 1 - CP GEN **/
|
||||
@@ -1272,7 +1406,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2643,7 +2671,7 @@ xran_spawn_workers(void)
|
||||
@@ -2643,7 +2697,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 2 UP GEN **/
|
||||
@@ -1281,7 +1415,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2682,7 +2710,7 @@ xran_spawn_workers(void)
|
||||
@@ -2682,7 +2736,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 **/
|
||||
@@ -1290,7 +1424,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2697,7 +2725,7 @@ xran_spawn_workers(void)
|
||||
@@ -2697,7 +2751,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 1 - CP GEN **/
|
||||
@@ -1299,7 +1433,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2712,7 +2740,7 @@ xran_spawn_workers(void)
|
||||
@@ -2712,7 +2766,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 2 UP GEN **/
|
||||
@@ -1308,7 +1442,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2727,7 +2755,7 @@ xran_spawn_workers(void)
|
||||
@@ -2727,7 +2781,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 3 UP GEN **/
|
||||
@@ -1317,7 +1451,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2766,7 +2794,7 @@ xran_spawn_workers(void)
|
||||
@@ -2766,7 +2820,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 **/
|
||||
@@ -1326,7 +1460,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2781,7 +2809,7 @@ xran_spawn_workers(void)
|
||||
@@ -2781,7 +2835,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 1 Eth Tx **/
|
||||
@@ -1335,7 +1469,7 @@ index 7c472d7..7c7cf91 100644
|
||||
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
@@ -2797,7 +2825,7 @@ xran_spawn_workers(void)
|
||||
@@ -2797,7 +2851,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 2 - CP GEN **/
|
||||
@@ -1344,7 +1478,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2812,7 +2840,7 @@ xran_spawn_workers(void)
|
||||
@@ -2812,7 +2866,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 3 UP GEN **/
|
||||
@@ -1353,7 +1487,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2827,7 +2855,7 @@ xran_spawn_workers(void)
|
||||
@@ -2827,7 +2881,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 4 UP GEN **/
|
||||
@@ -1362,7 +1496,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2861,7 +2889,7 @@ xran_spawn_workers(void)
|
||||
@@ -2861,7 +2915,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 Eth RX */
|
||||
@@ -1371,7 +1505,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2876,7 +2904,7 @@ xran_spawn_workers(void)
|
||||
@@ -2876,7 +2930,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 1 FH RX and BBDEV */
|
||||
@@ -1380,7 +1514,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2891,7 +2919,7 @@ xran_spawn_workers(void)
|
||||
@@ -2891,7 +2945,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 2 FH RX and BBDEV */
|
||||
@@ -1389,7 +1523,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2906,7 +2934,7 @@ xran_spawn_workers(void)
|
||||
@@ -2906,7 +2960,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 3 FH RX and BBDEV */
|
||||
@@ -1398,7 +1532,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2921,7 +2949,7 @@ xran_spawn_workers(void)
|
||||
@@ -2921,7 +2975,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** FH TX and BBDEV */
|
||||
@@ -1407,7 +1541,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -2969,7 +2997,7 @@ xran_spawn_workers(void)
|
||||
@@ -2969,7 +3023,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* p_dev->tx_sym_gen_func = xran_process_tx_sym_cp_on_opt; */
|
||||
|
||||
@@ -1416,7 +1550,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3004,7 +3032,7 @@ xran_spawn_workers(void)
|
||||
@@ -3004,7 +3058,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 **/
|
||||
@@ -1425,7 +1559,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3031,7 +3059,7 @@ xran_spawn_workers(void)
|
||||
@@ -3031,7 +3085,7 @@ xran_spawn_workers(void)
|
||||
}
|
||||
|
||||
/** 1 - CP GEN **/
|
||||
@@ -1434,7 +1568,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3062,7 +3090,7 @@ xran_spawn_workers(void)
|
||||
@@ -3062,7 +3116,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 **/
|
||||
@@ -1443,7 +1577,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3089,7 +3117,7 @@ xran_spawn_workers(void)
|
||||
@@ -3089,7 +3143,7 @@ xran_spawn_workers(void)
|
||||
}
|
||||
|
||||
/** 1 - CP GEN **/
|
||||
@@ -1452,7 +1586,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3115,7 +3143,7 @@ xran_spawn_workers(void)
|
||||
@@ -3115,7 +3169,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 **/
|
||||
@@ -1461,7 +1595,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3130,7 +3158,7 @@ xran_spawn_workers(void)
|
||||
@@ -3130,7 +3184,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 1 - CP GEN **/
|
||||
@@ -1470,7 +1604,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3145,7 +3173,7 @@ xran_spawn_workers(void)
|
||||
@@ -3145,7 +3199,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 2 UP GEN **/
|
||||
@@ -1479,7 +1613,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3184,7 +3212,7 @@ xran_spawn_workers(void)
|
||||
@@ -3184,7 +3238,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 FH RX and BBDEV */
|
||||
@@ -1488,7 +1622,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3199,7 +3227,7 @@ xran_spawn_workers(void)
|
||||
@@ -3199,7 +3253,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 1 - CP GEN **/
|
||||
@@ -1497,7 +1631,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3214,7 +3242,7 @@ xran_spawn_workers(void)
|
||||
@@ -3214,7 +3268,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 2 UP GEN **/
|
||||
@@ -1506,7 +1640,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3229,7 +3257,7 @@ xran_spawn_workers(void)
|
||||
@@ -3229,7 +3283,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 3 UP GEN **/
|
||||
@@ -1515,7 +1649,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3266,7 +3294,7 @@ xran_spawn_workers(void)
|
||||
@@ -3266,7 +3320,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 **/
|
||||
@@ -1524,7 +1658,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3281,7 +3309,7 @@ xran_spawn_workers(void)
|
||||
@@ -3281,7 +3335,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 1 - CP GEN **/
|
||||
@@ -1533,7 +1667,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3296,7 +3324,7 @@ xran_spawn_workers(void)
|
||||
@@ -3296,7 +3350,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 2 UP GEN **/
|
||||
@@ -1542,7 +1676,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3311,7 +3339,7 @@ xran_spawn_workers(void)
|
||||
@@ -3311,7 +3365,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 3 UP GEN **/
|
||||
@@ -1551,7 +1685,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3326,7 +3354,7 @@ xran_spawn_workers(void)
|
||||
@@ -3326,7 +3380,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 4 UP GEN **/
|
||||
@@ -1560,7 +1694,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3348,7 +3376,7 @@ xran_spawn_workers(void)
|
||||
@@ -3348,7 +3402,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 Eth RX */
|
||||
@@ -1569,7 +1703,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3363,7 +3391,7 @@ xran_spawn_workers(void)
|
||||
@@ -3363,7 +3417,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 1 FH RX and BBDEV */
|
||||
@@ -1578,7 +1712,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3378,7 +3406,7 @@ xran_spawn_workers(void)
|
||||
@@ -3378,7 +3432,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 2 FH RX and BBDEV */
|
||||
@@ -1587,7 +1721,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3393,7 +3421,7 @@ xran_spawn_workers(void)
|
||||
@@ -3393,7 +3447,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 3 FH RX and BBDEV */
|
||||
@@ -1596,7 +1730,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3408,7 +3436,7 @@ xran_spawn_workers(void)
|
||||
@@ -3408,7 +3462,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** FH TX and BBDEV */
|
||||
@@ -1605,7 +1739,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3435,7 +3463,7 @@ xran_spawn_workers(void)
|
||||
@@ -3435,7 +3489,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 Eth RX */
|
||||
@@ -1614,7 +1748,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3450,7 +3478,7 @@ xran_spawn_workers(void)
|
||||
@@ -3450,7 +3504,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 1 FH RX and BBDEV */
|
||||
@@ -1623,7 +1757,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3465,7 +3493,7 @@ xran_spawn_workers(void)
|
||||
@@ -3465,7 +3519,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 2 FH RX and BBDEV */
|
||||
@@ -1632,7 +1766,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3480,7 +3508,7 @@ xran_spawn_workers(void)
|
||||
@@ -3480,7 +3534,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 3 FH RX and BBDEV */
|
||||
@@ -1641,7 +1775,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3495,7 +3523,7 @@ xran_spawn_workers(void)
|
||||
@@ -3495,7 +3549,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 4 FH RX and BBDEV */
|
||||
@@ -1650,7 +1784,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3510,7 +3538,7 @@ xran_spawn_workers(void)
|
||||
@@ -3510,7 +3564,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** FH TX and BBDEV */
|
||||
@@ -1659,7 +1793,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3537,7 +3565,7 @@ xran_spawn_workers(void)
|
||||
@@ -3537,7 +3591,7 @@ xran_spawn_workers(void)
|
||||
|
||||
/* workers */
|
||||
/** 0 **/
|
||||
@@ -1668,7 +1802,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3562,7 +3590,7 @@ xran_spawn_workers(void)
|
||||
@@ -3562,7 +3616,7 @@ xran_spawn_workers(void)
|
||||
}
|
||||
|
||||
/** 1 - CP GEN **/
|
||||
@@ -1677,7 +1811,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3577,7 +3605,7 @@ xran_spawn_workers(void)
|
||||
@@ -3577,7 +3631,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 2 UP GEN **/
|
||||
@@ -1686,7 +1820,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3602,7 +3630,7 @@ xran_spawn_workers(void)
|
||||
@@ -3602,7 +3656,7 @@ xran_spawn_workers(void)
|
||||
}
|
||||
|
||||
/** 3 UP GEN **/
|
||||
@@ -1695,7 +1829,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3627,7 +3655,7 @@ xran_spawn_workers(void)
|
||||
@@ -3627,7 +3681,7 @@ xran_spawn_workers(void)
|
||||
}
|
||||
|
||||
/** 4 UP GEN **/
|
||||
@@ -1704,7 +1838,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3642,7 +3670,7 @@ xran_spawn_workers(void)
|
||||
@@ -3642,7 +3696,7 @@ xran_spawn_workers(void)
|
||||
eth_ctx->pkt_wrk_cfg[pThCtx->worker_id].arg = pThCtx;
|
||||
|
||||
/** 5 UP GEN **/
|
||||
@@ -1713,7 +1847,7 @@ index 7c472d7..7c7cf91 100644
|
||||
if(pThCtx == NULL){
|
||||
print_err("pThCtx allocation error\n");
|
||||
return XRAN_STATUS_FAIL;
|
||||
@@ -3754,6 +3782,7 @@ xran_open(void *pHandle, struct xran_fh_config* pConf)
|
||||
@@ -3754,6 +3808,7 @@ xran_open(void *pHandle, struct xran_fh_config* pConf)
|
||||
p_xran_dev_ctx->puschMaskSlot = pConf->puschMaskSlot;
|
||||
p_xran_dev_ctx->DynamicSectionEna = pConf->DynamicSectionEna;
|
||||
p_xran_dev_ctx->RunSlotPrbMapBySymbolEnable = pConf->RunSlotPrbMapBySymbolEnable;
|
||||
@@ -1721,7 +1855,7 @@ index 7c472d7..7c7cf91 100644
|
||||
p_xran_dev_ctx->dssEnable = pConf->dssEnable;
|
||||
p_xran_dev_ctx->dssPeriod = pConf->dssPeriod;
|
||||
for(i=0; i<pConf->dssPeriod; i++) {
|
||||
@@ -4034,6 +4063,24 @@ xran_get_slot_idx (uint32_t PortId, uint32_t *nFrameIdx, uint32_t *nSubframeIdx,
|
||||
@@ -4034,6 +4089,24 @@ xran_get_slot_idx (uint32_t PortId, uint32_t *nFrameIdx, uint32_t *nSubframeIdx,
|
||||
return tti;
|
||||
}
|
||||
|
||||
@@ -1746,7 +1880,7 @@ index 7c472d7..7c7cf91 100644
|
||||
int32_t
|
||||
xran_set_debug_stop(int32_t value, int32_t count)
|
||||
{
|
||||
@@ -4208,7 +4255,7 @@ int32_t xran_init_PrbMap_by_symbol_from_cfg(struct xran_prb_map* p_PrbMapIn, str
|
||||
@@ -4208,7 +4281,7 @@ int32_t xran_init_PrbMap_by_symbol_from_cfg(struct xran_prb_map* p_PrbMapIn, str
|
||||
int32_t i = 0, j = 0, nPrbElm = 0;
|
||||
int16_t iqwidth = p_PrbMapIn->prbMap[0].iqWidth;
|
||||
struct xran_prb_elm *p_prb_elm_src, *p_prb_elm_dst;
|
||||
@@ -1755,7 +1889,7 @@ index 7c472d7..7c7cf91 100644
|
||||
int32_t nRBStart_tmp, nRBremain, nStartSymb, nEndSymb, nRBStart, nRBEnd, nRBSize;
|
||||
// int32_t eth_xran_up_headers_sz = sizeof(struct eth_xran_up_pkt_hdr);
|
||||
// int32_t nmaxRB = (mtu - eth_xran_up_headers_sz - RTE_PKTMBUF_HEADROOM)/XRAN_PAYLOAD_1_RB_SZ(iqwidth);
|
||||
@@ -4217,7 +4264,6 @@ int32_t xran_init_PrbMap_by_symbol_from_cfg(struct xran_prb_map* p_PrbMapIn, str
|
||||
@@ -4217,7 +4290,6 @@ int32_t xran_init_PrbMap_by_symbol_from_cfg(struct xran_prb_map* p_PrbMapIn, str
|
||||
if (mtu==9600)
|
||||
nmaxRB--; //for some reason when mtu is 9600, only 195 RB can be sent, not 196
|
||||
|
||||
@@ -1763,7 +1897,7 @@ index 7c472d7..7c7cf91 100644
|
||||
memcpy(p_PrbMapOut, p_PrbMapIn, sizeof(struct xran_prb_map));
|
||||
for(i = 0; i < XRAN_NUM_OF_SYMBOL_PER_SLOT; i++)
|
||||
{
|
||||
@@ -4292,26 +4338,30 @@ int32_t xran_init_PrbMap_by_symbol_from_cfg(struct xran_prb_map* p_PrbMapIn, str
|
||||
@@ -4292,26 +4364,30 @@ int32_t xran_init_PrbMap_by_symbol_from_cfg(struct xran_prb_map* p_PrbMapIn, str
|
||||
|
||||
for(; i < XRAN_NUM_OF_SYMBOL_PER_SLOT; i++)
|
||||
{
|
||||
@@ -2045,7 +2179,7 @@ index 72249bc..6b30084 100644
|
||||
#include <rte_config.h>
|
||||
|
||||
diff --git a/fhi_lib/lib/src/xran_tx_proc.c b/fhi_lib/lib/src/xran_tx_proc.c
|
||||
index 45a17a8..85ce6fa 100644
|
||||
index 45a17a8..cca2dcc 100644
|
||||
--- a/fhi_lib/lib/src/xran_tx_proc.c
|
||||
+++ b/fhi_lib/lib/src/xran_tx_proc.c
|
||||
@@ -35,7 +35,11 @@
|
||||
@@ -2060,7 +2194,19 @@ index 45a17a8..85ce6fa 100644
|
||||
|
||||
#include <rte_common.h>
|
||||
#include <rte_eal.h>
|
||||
@@ -1514,7 +1518,11 @@ xran_process_tx_sym_cp_on_opt(void* pHandle, uint8_t ctx_id, uint32_t tti, int32
|
||||
@@ -1399,6 +1403,11 @@ xran_process_tx_sym_cp_on_opt(void* pHandle, uint8_t ctx_id, uint32_t tti, int32
|
||||
|
||||
if(0!=ptr_sect_elm->cur_index)
|
||||
{
|
||||
+ /* prevent xran from sending DL U-plane packets when it should not */
|
||||
+ if(p_xran_dev_ctx->fh_init.io_cfg.id == O_DU && xran_fs_get_slot_type(xran_port_id, 0, tti, XRAN_SLOT_TYPE_DL) != 1)
|
||||
+ {
|
||||
+ return 0;
|
||||
+ }
|
||||
num_sections = ptr_sect_elm->cur_index;
|
||||
/* iterate C-Plane configuration to generate corresponding U-Plane */
|
||||
vf_id = p_xran_dev_ctx->map2vf[direction][cc_id][ant_id][XRAN_UP_VF];
|
||||
@@ -1514,7 +1523,11 @@ xran_process_tx_sym_cp_on_opt(void* pHandle, uint8_t ctx_id, uint32_t tti, int32
|
||||
mb_oran_hdr_ext->buf_addr = ext_buff;
|
||||
mb_oran_hdr_ext->buf_iova = ((struct rte_mempool_objhdr*)RTE_PTR_SUB(mb_base, rte_mempool_objhdr_size))->iova + RTE_PTR_DIFF(ext_buff, mb_base);
|
||||
mb_oran_hdr_ext->buf_len = ext_buff_len;
|
||||
@@ -2072,7 +2218,7 @@ index 45a17a8..85ce6fa 100644
|
||||
mb_oran_hdr_ext->shinfo = p_share_data;
|
||||
mb_oran_hdr_ext->data_off = (uint16_t)RTE_MIN((uint16_t)RTE_PKTMBUF_HEADROOM, (uint16_t)mb_oran_hdr_ext->buf_len) - rte_ether_hdr_size;
|
||||
mb_oran_hdr_ext->data_len = (uint16_t)(mb_oran_hdr_ext->data_len + rte_ether_hdr_size);
|
||||
@@ -1532,8 +1540,13 @@ xran_process_tx_sym_cp_on_opt(void* pHandle, uint8_t ctx_id, uint32_t tti, int32
|
||||
@@ -1532,8 +1545,13 @@ xran_process_tx_sym_cp_on_opt(void* pHandle, uint8_t ctx_id, uint32_t tti, int32
|
||||
|
||||
/* Fill in the ethernet header. */
|
||||
#ifndef TRANSMIT_BURST
|
||||
@@ -2086,7 +2232,7 @@ index 45a17a8..85ce6fa 100644
|
||||
((struct rte_ether_hdr*)pStart)->ether_type = ETHER_TYPE_ECPRI_BE; /* ethertype */
|
||||
#endif
|
||||
nPktSize = sizeof(struct rte_ether_hdr)
|
||||
@@ -1878,7 +1891,11 @@ xran_process_tx_srs_cp_on(void* pHandle, uint8_t ctx_id, uint32_t tti, int32_t s
|
||||
@@ -1878,7 +1896,11 @@ xran_process_tx_srs_cp_on(void* pHandle, uint8_t ctx_id, uint32_t tti, int32_t s
|
||||
mb_oran_hdr_ext->buf_addr = ext_buff;
|
||||
mb_oran_hdr_ext->buf_iova = ((struct rte_mempool_objhdr*)RTE_PTR_SUB(mb_base, rte_mempool_objhdr_size))->iova + RTE_PTR_DIFF(ext_buff, mb_base);
|
||||
mb_oran_hdr_ext->buf_len = ext_buff_len;
|
||||
@@ -2098,7 +2244,7 @@ index 45a17a8..85ce6fa 100644
|
||||
mb_oran_hdr_ext->shinfo = p_share_data;
|
||||
mb_oran_hdr_ext->data_off = (uint16_t)RTE_MIN((uint16_t)RTE_PKTMBUF_HEADROOM, (uint16_t)mb_oran_hdr_ext->buf_len) - rte_ether_hdr_size;
|
||||
mb_oran_hdr_ext->data_len = (uint16_t)(mb_oran_hdr_ext->data_len + rte_ether_hdr_size);
|
||||
@@ -1887,8 +1904,13 @@ xran_process_tx_srs_cp_on(void* pHandle, uint8_t ctx_id, uint32_t tti, int32_t s
|
||||
@@ -1887,8 +1909,13 @@ xran_process_tx_srs_cp_on(void* pHandle, uint8_t ctx_id, uint32_t tti, int32_t s
|
||||
pStart = (char*)((char*)mb_oran_hdr_ext->buf_addr + mb_oran_hdr_ext->data_off);
|
||||
|
||||
/* Fill in the ethernet header. */
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
#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"
|
||||
@@ -144,7 +143,7 @@ int config_cmdlineonly_getlist(configmodule_interface_t *cfg,
|
||||
paramlist_def_t *ParamList,
|
||||
paramdef_t *params,
|
||||
int numparams,
|
||||
char *prefix)
|
||||
const 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, char *prefix);
|
||||
*configmodule_getlistfunc_t)(struct configmodule_interface *, paramlist_def_t *, paramdef_t *, int numparams, const 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, char *prefix)
|
||||
int config_getlist(configmodule_interface_t *cfg, paramlist_def_t *ParamList, paramdef_t *params, int numparams, const 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, char *prefix);
|
||||
int config_getlist(configmodule_interface_t *cfg, paramlist_def_t *ParamList, paramdef_t *params, int numparams, const 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);
|
||||
|
||||
@@ -319,6 +319,32 @@ int config_libconfig_set(configmodule_interface_t *cfg, paramdef_t *cfgoptions,
|
||||
}
|
||||
}
|
||||
|
||||
static const char *config_type_to_name(int type)
|
||||
{
|
||||
switch (type) {
|
||||
case CONFIG_TYPE_NONE:
|
||||
return "none";
|
||||
case CONFIG_TYPE_GROUP:
|
||||
return "group";
|
||||
case CONFIG_TYPE_INT:
|
||||
return "integer";
|
||||
case CONFIG_TYPE_INT64:
|
||||
return "64-bit integer";
|
||||
case CONFIG_TYPE_FLOAT:
|
||||
return "float";
|
||||
case CONFIG_TYPE_STRING:
|
||||
return "string";
|
||||
case CONFIG_TYPE_BOOL:
|
||||
return "boolean";
|
||||
case CONFIG_TYPE_ARRAY:
|
||||
return "array";
|
||||
case CONFIG_TYPE_LIST:
|
||||
return "list";
|
||||
default:
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
int config_libconfig_get(configmodule_interface_t *cfg, paramdef_t *cfgoptions, int numoptions, char *prefix)
|
||||
{
|
||||
config_setting_t *setting;
|
||||
@@ -348,17 +374,26 @@ int config_libconfig_get(configmodule_interface_t *cfg, paramdef_t *cfgoptions,
|
||||
|
||||
switch(cfgoptions[i].type) {
|
||||
case TYPE_STRING:
|
||||
if ( config_lookup_string(&(libconfig_privdata.cfg), cfgpath, (const char**)&str)) {
|
||||
config_check_valptr(cfg, &cfgoptions[i], 1, strlen(str) + 1);
|
||||
if ( strlen(str)+1 > cfgoptions[i].numelt )
|
||||
fprintf(stderr,"[LIBCONFIG] %s: %s exceeds maximum length of %i bytes, value truncated\n",
|
||||
cfgpath,str,cfgoptions[i].numelt);
|
||||
snprintf( *cfgoptions[i].strptr , cfgoptions[i].numelt, "%s", str);
|
||||
printf_params(cfg, "[LIBCONFIG] %s: \"%s\"\n", cfgpath, *cfgoptions[i].strptr);
|
||||
} else {
|
||||
setting = config_lookup(&(libconfig_privdata.cfg), cfgpath);
|
||||
if (setting != NULL) {
|
||||
int type = config_setting_type(setting);
|
||||
if (type == CONFIG_TYPE_STRING) {
|
||||
const char *strng = config_setting_get_string(setting);
|
||||
config_check_valptr(cfg, &cfgoptions[i], 1, strlen(strng) + 1);
|
||||
if (strlen(strng) + 1 > cfgoptions[i].numelt)
|
||||
fprintf(stderr,
|
||||
"[LIBCONFIG] %s: %s exceeds maximum length of %i bytes, value truncated\n",
|
||||
cfgpath,
|
||||
strng,
|
||||
cfgoptions[i].numelt);
|
||||
snprintf(*cfgoptions[i].strptr, cfgoptions[i].numelt, "%s", strng);
|
||||
printf_params(cfg, "[LIBCONFIG] %s: \"%s\"\n", cfgpath, *cfgoptions[i].strptr);
|
||||
} else {
|
||||
fprintf(stderr,"[LIBCONFIG] expected a string input for %s but got type %s\n", cfgpath, config_type_to_name(type));
|
||||
fatalerror = 1;
|
||||
}
|
||||
} else
|
||||
defval = config_common_getdefault(cfg, &cfgoptions[i], prefix);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case TYPE_STRINGLIST:
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
# 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,39 +27,30 @@
|
||||
|
||||
#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 */
|
||||
@@ -85,12 +76,10 @@
|
||||
// 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"
|
||||
@@ -100,5 +89,8 @@
|
||||
// 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 tun_if.c)
|
||||
add_library(utils utils.c system.c time_meas.c time_stat.c tuntap_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.serveraddr server --rfsim -E
|
||||
./$binary_path -O $configuration_file PARALLEL_SINGLE_THREAD --rfsimulator.[0].serveraddr server --rfsim -E
|
||||
```
|
||||
|
||||
## Verifying Tracepoints
|
||||
|
||||
@@ -31,8 +31,6 @@
|
||||
#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,22 +302,6 @@ 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,
|
||||
@@ -333,7 +317,6 @@ 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,5 +16,8 @@ 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,4 +17,5 @@ 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)
|
||||
|
||||
102
common/utils/T/DOC/T/csv.md
Normal file
102
common/utils/T/DOC/T/csv.md
Normal file
@@ -0,0 +1,102 @@
|
||||
# csv
|
||||
|
||||
This tracer is used to dump information of a single trace to a CSV.
|
||||
|
||||
The basic usage is:
|
||||
|
||||
```shell
|
||||
cd common/utils/T/tracer
|
||||
./csv -d ../T_messages.txt <TRACE> <fields>
|
||||
```
|
||||
|
||||
The available options include `-t` to print a timestamp (from the event
|
||||
timestamp, i.e., it also works with trace files procuded by `record`, showing
|
||||
the time when the event has been recorded initially) and `-s` to specify a
|
||||
separator between fields (use `-s $'\t'` to pass a TAB character; this is
|
||||
shell dependent, may be different on your setup).
|
||||
|
||||
To print a timestamp, you choose the name with `-t` and use the chosen
|
||||
name in `<fields>`.
|
||||
|
||||
For example, with the gNB trace `GNB_PHY_DL_TICK`, if you run:
|
||||
|
||||
```
|
||||
./csv -d ../T_messages.txt GNB_PHY_DL_TICK frame slot
|
||||
```
|
||||
|
||||
You get the following output:
|
||||
|
||||
```
|
||||
frame,slot
|
||||
974,12
|
||||
974,13
|
||||
974,14
|
||||
974,15
|
||||
974,16
|
||||
974,17
|
||||
974,18
|
||||
974,19
|
||||
975,0
|
||||
[...]
|
||||
```
|
||||
|
||||
Now, to add a timestamp, you can run:
|
||||
|
||||
```
|
||||
./csv -d ../T_messages.txt -t time GNB_PHY_DL_TICK time frame slot
|
||||
```
|
||||
|
||||
Producing:
|
||||
|
||||
```
|
||||
time,frame,slot
|
||||
11:12:30.894336,49,17
|
||||
11:12:30.894856,49,18
|
||||
11:12:30.895341,49,19
|
||||
11:12:30.895864,50,0
|
||||
11:12:30.896394,50,1
|
||||
11:12:30.896875,50,2
|
||||
11:12:30.897378,50,3
|
||||
11:12:30.897876,50,4
|
||||
11:12:30.898427,50,5
|
||||
11:12:30.898876,50,6
|
||||
[...]
|
||||
```
|
||||
|
||||
You can use whatever name you want and you can print the timestamp at any position.
|
||||
|
||||
For example, running (we also set the separator as `/` instead of the default `,`):
|
||||
|
||||
```
|
||||
./csv -d ../T_messages.txt -s '/' -t ts GNB_PHY_DL_TICK frame ts slot
|
||||
```
|
||||
|
||||
Prints:
|
||||
|
||||
```
|
||||
frame/ts/slot
|
||||
100/11:20:14.525125/6
|
||||
100/11:20:14.525650/7
|
||||
100/11:20:14.526137/8
|
||||
100/11:20:14.526616/9
|
||||
100/11:20:14.527116/10
|
||||
100/11:20:14.527614/11
|
||||
100/11:20:14.528142/12
|
||||
100/11:20:14.528648/13
|
||||
100/11:20:14.529130/14
|
||||
[...]
|
||||
```
|
||||
|
||||
Note: to generate those traces, the gNB was run as:
|
||||
|
||||
```
|
||||
sudo ./nr-softmodem -E -O ~/b78.conf --T_stdout 2
|
||||
```
|
||||
|
||||
The important part is `--T_stdout 2` to activate the T tracer and allow
|
||||
`csv` to collect logs.
|
||||
|
||||
For more help, run:
|
||||
```shell
|
||||
./csv -h
|
||||
```
|
||||
@@ -14,7 +14,6 @@
|
||||
/* T message IDs */
|
||||
#include "T_IDs.h"
|
||||
|
||||
#define T_ACTIVE_STDOUT 2
|
||||
|
||||
/* known type - this is where you add new types */
|
||||
#define T_INT(x) int, (x)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user