Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
spbro
OpenXG-RAN
Commits
394431a5
Commit
394431a5
authored
Jul 12, 2024
by
Thomas Schlichter
Committed by
Robert Schmidt
Jul 13, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove nrqtscope
parent
ae2a79e5
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
6 additions
and
2051 deletions
+6
-2051
CMakeLists.txt
CMakeLists.txt
+0
-15
cmake_targets/build_oai
cmake_targets/build_oai
+1
-1
cmake_targets/tools/build_helper
cmake_targets/tools/build_helper
+0
-1
doc/BUILD.md
doc/BUILD.md
+2
-4
doc/Doxyfile
doc/Doxyfile
+0
-1
doc/README.md
doc/README.md
+1
-1
docker/Dockerfile.build.ubuntu22
docker/Dockerfile.build.ubuntu22
+1
-1
executables/nr-softmodem.c
executables/nr-softmodem.c
+0
-9
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+0
-4
executables/softmodem-common.c
executables/softmodem-common.c
+1
-5
executables/softmodem-common.h
executables/softmodem-common.h
+0
-4
openair1/PHY/TOOLS/nr_phy_qt_scope.cpp
openair1/PHY/TOOLS/nr_phy_qt_scope.cpp
+0
-1379
openair1/PHY/TOOLS/nr_phy_qt_scope.h
openair1/PHY/TOOLS/nr_phy_qt_scope.h
+0
-563
openair1/PHY/TOOLS/readme.md
openair1/PHY/TOOLS/readme.md
+0
-63
No files found.
CMakeLists.txt
View file @
394431a5
...
...
@@ -1885,21 +1885,6 @@ set (SIMUSRC
add_library
(
SIMU STATIC
${
SIMUSRC
}
)
target_include_directories
(
SIMU PUBLIC
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS
${
OPENAIR1_DIR
}
/SIMULATION/RF
)
# Qt-based scope
add_boolean_option
(
ENABLE_NRQTSCOPE OFF
"Build the Qt-Scope"
OFF
)
if
(
ENABLE_NRQTSCOPE
)
find_package
(
Qt5 REQUIRED COMPONENTS Widgets Charts
)
message
(
"Qt5 Widgets and Charts found for nrqtscope"
)
set
(
QTSCOPE_SOURCE_NR
${
OPENAIR1_DIR
}
/PHY/TOOLS/nr_phy_qt_scope.cpp
${
OPENAIR1_DIR
}
/PHY/TOOLS/phy_scope_interface.c
)
# Creates rules for calling the Meta-Object Compiler (moc) on the given source files
qt5_wrap_cpp
(
QTSCOPE_SOURCE_NR
${
OPENAIR1_DIR
}
/PHY/TOOLS/nr_phy_qt_scope.h
)
add_library
(
nrqtscope MODULE
${
QTSCOPE_SOURCE_NR
}
)
target_link_libraries
(
nrqtscope PRIVATE Qt5::Widgets Qt5::Charts
)
target_link_libraries
(
nrqtscope PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs
)
endif
()
add_library
(
SIMU_ETH STATIC
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/multicast_link.c
...
...
cmake_targets/build_oai
View file @
394431a5
...
...
@@ -46,7 +46,7 @@ BUILD_DOXYGEN=0
DISABLE_HARDWARE_DEPENDENCY
=
"False"
CMAKE_BUILD_TYPE
=
"RelWithDebInfo"
CMAKE_CMD
=
"
$CMAKE
"
OPTIONAL_LIBRARIES
=
"telnetsrv enbscope uescope nrscope
nrqtscope
ldpc_cuda ldpc_t2 websrv oai_iqplayer"
OPTIONAL_LIBRARIES
=
"telnetsrv enbscope uescope nrscope ldpc_cuda ldpc_t2 websrv oai_iqplayer"
TARGET_LIST
=
""
function
print_help
()
{
...
...
cmake_targets/tools/build_helper
View file @
394431a5
...
...
@@ -541,7 +541,6 @@ check_install_additional_tools (){
doxygen \
libgnutls28-dev \
libpthread-stubs0-dev \
libqt5charts5-dev \
tshark \
uml-utilities \
iperf3 \
...
...
doc/BUILD.md
View file @
394431a5
...
...
@@ -174,16 +174,14 @@ Using the help option of the build script you can get the list of available opti
```
bash
./build_oai
--build-lib
all
# build all
./build_oai
--build-lib
telnetsrv
# build only telnetsrv
./build_oai
--build-lib
"telnetsrv enbscope uescope nrscope nrqtscope"
./build_oai
--build-lib
telnetsrv
--build-lib
nrqtscope
./build_oai
--build-lib
"telnetsrv enbscope uescope nrscope"
```
The following libraries are build in CI and should always work:
`telnetsrv`
,
`enbscope`
,
`uescope`
,
`nrscope`
,
`nrqtscope`
.
`enbscope`
,
`uescope`
,
`nrscope`
.
Some libraries have further dependencies and might not build on every system:
-
`enbscope`
,
`uescope`
,
`nrscope`
: libforms/X
-
`nrqtscope`
: Qt5
-
`ldpc_cuda`
: CUDA
-
`websrv`
: npm and others
-
`ldpc_t2`
: DPDK with patch
...
...
doc/Doxyfile
View file @
394431a5
...
...
@@ -2291,7 +2291,6 @@ INPUT = \
@CMAKE_CURRENT_SOURCE_DIR@/../openair1/PHY/TOOLS/nr_phy_scope.c \
@CMAKE_CURRENT_SOURCE_DIR@/../openair1/PHY/TOOLS/nr_phy_scope.h \
@CMAKE_CURRENT_SOURCE_DIR@/../openair1/PHY/TOOLS/lte_phy_scope.c \
@CMAKE_CURRENT_SOURCE_DIR@/../openair1/PHY/TOOLS/nr_phy_qt_scope.h \
@CMAKE_CURRENT_SOURCE_DIR@/../openair1/PHY/TOOLS/cadd_vv.c \
@CMAKE_CURRENT_SOURCE_DIR@/../openair1/PHY/TOOLS/phy_scope.h \
@CMAKE_CURRENT_SOURCE_DIR@/../openair1/PHY/TOOLS/signal_energy.c \
...
...
doc/README.md
View file @
394431a5
...
...
@@ -105,7 +105,7 @@ The other SDRs (AW2S, LimeSDR, ...) have no READMEs.
## Special-purpose libraries
-
OAI has
two scopes, one based on Xforms, one on Qt5
, described in
[
this README
](
../openair1/PHY/TOOLS/readme.md
)
-
OAI has
a scope based on Xforms
, described in
[
this README
](
../openair1/PHY/TOOLS/readme.md
)
-
OAI comes with an integrated
[
telnet server
](
../common/utils/telnetsrv/DOC/telnethelp.md
)
to monitor and control
-
OAI comes with an integrated
[
web server
](
../common/utils/websrv/DOC/websrv.md
)
...
...
docker/Dockerfile.build.ubuntu22
View file @
394431a5
...
...
@@ -38,7 +38,7 @@ RUN /bin/sh oaienv && \
mkdir -p log && \
./build_oai -c --ninja \
--eNB --gNB --RU --UE --nrUE \
--build-lib "telnetsrv enbscope uescope nrscope
nrqtscope
" \
--build-lib "telnetsrv enbscope uescope nrscope" \
-w USRP -t Ethernet \
--build-e2 --cmake-opt -DXAPP_MULTILANGUAGE=OFF \
--noavx512 \
...
...
executables/nr-softmodem.c
View file @
394431a5
...
...
@@ -769,15 +769,6 @@ int main( int argc, char **argv ) {
load_softscope
(
"nr"
,
&
p
);
}
if
(
IS_SOFTMODEM_DOSCOPE_QT
)
{
scopeParms_t
p
;
p
.
argc
=
&
argc
;
p
.
argv
=
argv
;
p
.
gNB
=
RC
.
gNB
[
0
];
p
.
ru
=
RC
.
ru
[
0
];
load_softscope
(
"nrqt"
,
&
p
);
}
if
(
NFAPI_MODE
!=
NFAPI_MODE_PNF
&&
NFAPI_MODE
!=
NFAPI_MODE_VNF
&&
NFAPI_MODE
!=
NFAPI_MODE_AERIAL
)
{
printf
(
"Not NFAPI mode - call init_eNB_afterRU()
\n
"
);
init_eNB_afterRU
();
...
...
executables/nr-uesoftmodem.c
View file @
394431a5
...
...
@@ -594,10 +594,6 @@ int main(int argc, char **argv)
init_openair0
();
lock_memory_to_ram
();
if
(
IS_SOFTMODEM_DOSCOPE_QT
)
{
load_softscope
(
"nrqt"
,
PHY_vars_UE_g
[
0
][
0
]);
}
if
(
IS_SOFTMODEM_DOSCOPE
)
{
load_softscope
(
"nr"
,
PHY_vars_UE_g
[
0
][
0
]);
}
...
...
executables/softmodem-common.c
View file @
394431a5
...
...
@@ -98,7 +98,7 @@ void get_common_options(configmodule_interface_t *cfg, uint32_t execmask)
uint32_t
start_telnetsrv
=
0
,
start_telnetclt
=
0
;
uint32_t
start_websrv
=
0
;
uint32_t
noS1
=
0
,
nokrnmod
=
1
,
nonbiot
=
0
;
uint32_t
rfsim
=
0
,
do_forms
=
0
,
do_forms_qt
=
0
;
uint32_t
rfsim
=
0
,
do_forms
=
0
;
int
nfapi_index
=
0
;
char
*
logmem_filename
=
NULL
;
check_execmask
(
execmask
);
...
...
@@ -162,10 +162,6 @@ void get_common_options(configmodule_interface_t *cfg, uint32_t execmask)
set_softmodem_optmask
(
SOFTMODEM_DOSCOPE_BIT
);
}
if
(
do_forms_qt
)
{
set_softmodem_optmask
(
SOFTMODEM_DOSCOPE_QT_BIT
);
}
if
(
start_websrv
)
{
load_module_shlib
(
"websrv"
,
NULL
,
0
,
NULL
);
}
...
...
executables/softmodem-common.h
View file @
394431a5
...
...
@@ -70,7 +70,6 @@ extern "C"
#define CONFIG_HLP_SLF "Set the sidelink frequency for all component carriers\n"
#define CONFIG_HLP_CHOFF "Channel id offset\n"
#define CONFIG_HLP_SOFTS "Enable soft scope and L1 and L2 stats (Xforms)\n"
#define CONFIG_HLP_SOFTS_QT "Enable soft scope and L1 and L2 stats (QT)\n"
#define CONFIG_HLP_ITTIL "Generate ITTI analyzser logs (similar to wireshark logs but with more details)\n"
#define CONFIG_HLP_DLMCS "Set the maximum downlink MCS\n"
#define CONFIG_HLP_STMON "Enable processing timing measurement of lte softmodem on per subframe basis \n"
...
...
@@ -168,7 +167,6 @@ extern int usrp_tx_thread;
{"CO" , CONFIG_HLP_ULF, 0, .iptr=&(uplink_frequency_offset[0][0]), .defintval=0, TYPE_INT, 0}, \
{"a" , CONFIG_HLP_CHOFF, 0, .iptr=&CHAIN_OFFSET, .defintval=0, TYPE_INT, 0}, \
{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, .uptr=&do_forms, .defintval=0, TYPE_UINT, 0}, \
{"dqt" , CONFIG_HLP_SOFTS_QT, PARAMFLAG_BOOL, .uptr=&do_forms_qt, .defintval=0, TYPE_UINT, 0}, \
{"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, .iptr=&opp_enabled, .defintval=0, TYPE_INT, 0}, \
{"numerology" , CONFIG_HLP_NUMEROLOGY, 0, .iptr=&NUMEROLOGY, .defintval=1, TYPE_INT, 0}, \
{"band" , CONFIG_HLP_BAND, 0, .iptr=&BAND, .defintval=78, TYPE_INT, 0}, \
...
...
@@ -298,7 +296,6 @@ extern int usrp_tx_thread;
#define SOFTMODEM_4GUE_BIT (1<<22)
#define SOFTMODEM_5GUE_BIT (1<<23)
#define SOFTMODEM_NOSTATS_BIT (1<<24)
#define SOFTMODEM_DOSCOPE_QT_BIT (1<<25)
#define SOFTMODEM_FUNC_BITS (SOFTMODEM_ENB_BIT | SOFTMODEM_GNB_BIT | SOFTMODEM_5GUE_BIT | SOFTMODEM_4GUE_BIT)
#define MAPPING_SOFTMODEM_FUNCTIONS {{"enb",SOFTMODEM_ENB_BIT},{"gnb",SOFTMODEM_GNB_BIT},{"4Gue",SOFTMODEM_4GUE_BIT},{"5Gue",SOFTMODEM_5GUE_BIT}}
...
...
@@ -311,7 +308,6 @@ extern int usrp_tx_thread;
#define IS_SOFTMODEM_SIML1 ( get_softmodem_optmask() & SOFTMODEM_SIML1_BIT)
#define IS_SOFTMODEM_DLSIM ( get_softmodem_optmask() & SOFTMODEM_DLSIM_BIT)
#define IS_SOFTMODEM_DOSCOPE ( get_softmodem_optmask() & SOFTMODEM_DOSCOPE_BIT)
#define IS_SOFTMODEM_DOSCOPE_QT ( get_softmodem_optmask() & SOFTMODEM_DOSCOPE_QT_BIT)
#define IS_SOFTMODEM_IQPLAYER ( get_softmodem_optmask() & SOFTMODEM_RECPLAY_BIT)
#define IS_SOFTMODEM_IQRECORDER ( get_softmodem_optmask() & SOFTMODEM_RECRECORD_BIT)
#define IS_SOFTMODEM_TELNETCLT_BIT ( get_softmodem_optmask() & SOFTMODEM_TELNETCLT_BIT)
...
...
openair1/PHY/TOOLS/nr_phy_qt_scope.cpp
deleted
100644 → 0
View file @
ae2a79e5
This diff is collapsed.
Click to expand it.
openair1/PHY/TOOLS/nr_phy_qt_scope.h
deleted
100644 → 0
View file @
ae2a79e5
This diff is collapsed.
Click to expand it.
openair1/PHY/TOOLS/readme.md
View file @
394431a5
...
...
@@ -31,66 +31,3 @@ or
```
phy_scope_gNB(0, phy_vars_gnb, phy_vars_ru, UE_id)
```
# Qt-based Scope
## Building Instructions
For the new qt-based scope designed for NR, please consider the following:
1.
run the gNB or the UE with the option '--dqt'.
2.
make sure to install the Qt5 packages before running the scope. Otherwise, the scope will NOT be displayed! Note that Qt6 does NOT work.
3.
To build the new scope, add 'nrqtscope' after the '--build-lib' option. So, the complete command would be
```
./build_oai --gNB -w USRP --nrUE --build-lib nrqtscope
```
## New Features
1.
New KPIs for both gNB and UE, e.g., BLER, MCS, throughout, and number of scheduled RBs.
2.
For each of the gNB and UE, a main widget is created with a 3x2 grid of sub-widgets, each to display one KPI.
3.
Each of the sub-widgets has a drop-down list to choose the KPI to show in that sub-widget.
4.
Both of the gNB and UE scopes can be resized using the mouse movement.
## Troubleshoot
Similar as with the Xforms-based scope, you should allow root to open X
windows if using Xorg:
```
xhost +si:localuser:root
```
If you run on Wayland (e.g., Gnome on Ubuntu 22), you might get this error:
```
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Authorization required, but no authorization protocol specified
qt.qpa.xcb: could not connect to display :0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
```
We have to force the use of Wayland. Before that, make sure that the Qt-Wayland
plugin is installed. Also, there seems to be a problem with the qt5-gtk
platform theme, so remove it:
```
sudo apt-get install qtwayland5
sudo apt-get remove qt5-gtk-platformtheme
```
Now, force the Wayland plugin; also make sure to pass
`-E`
to sudo:
```
sudo -E QT_QPA_PLATFORM=wayland ./nr-softmodem --sa -O <conf> --dqt
```
Furthermore, if you get the following warning, _followed by a segfault_ (i.e.,
if it runs, you can ignore this)
```
QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 0
```
You can set the XDG runtime directory like one of the following options (try in
order, keep
`QT_QPA_PLATFORM`
if necessary)
```
sudo -E XDG_RUNTIME_DIR=/run/user/0 ./nr-softmodem ...
sudo -E XDG_RUNTIME_DIR=/tmp/runtime-root ./nr-softmodem ...
sudo -E XDG_RUNTIME_DIR= ./nr-softmodem ...
```
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment