Add support for O1 in O-DU via telnet
This change set adds a simple telnet interface to nr-softmodem. Together with oai/o1-adapter>, this implements a part of the O1 interface, for the DU only. Currently supported uses cases:
- some stats are send to an SMO (such as bandwidth, PLMN, frequency, ...)
- re-configuration of bandwidth, frequency
- stop/start of the softmodem, while keeping the CU and L2 running
- the o1-adapter implements two alarms, load overload and base station offline, using this interface.
It is possible to use the telnet interface by itself (i.e., "o1" without the o1-adapter). To do this, compile with telnet support (./build_oai --build-lib telnetsrv
) and start the nr-softmodem with O1 module (./nr-softmodem --telnetsrv --telnetsrv.shrmod o1
). You can then do the following:
- see some statistics as exposed to o1-adapter, in JSON:
echo o1 stats | nc 127.0.0.1 9090 && echo
- stop the L1:
echo o1 stop_modem | nc 127.0.0.1 9090 && echo
- reconfigure bandwidth: e.g.,
echo o1 bwconfig 20 | nc 127.0.0.1 9090 && echo
(also supported: 40, 60, 100) - start the L1:
echo o1 start_modem | nc 127.0.0.1 9090 && echo
Note that the reconfiguration works with split-8 radios. Notably, it does not work yet out-of-the-box with 7.2 radios, because they have to be manually reconfigured on bandwith/frequency switch. The planned M-plane should allow such use case, though.
To help with the above, this branch also includes fixes (for more information, refer to the corresponding commits):
- fixes for stopping the L1, notably stop threads in right order, stop thread pool of RU
- collect some general MAC metrics, fix some bugs in MAC
- fix problems in F1AP gNB-DU configuration update message, update test
- fix some problems in RRC
To be done:
-
test in F1 -
test with COTS UE -
resolve various issues in commits (see commits mentioning "TODO" etc) -
allow to wipe all UEs in MAC context via telnet -
re-read and clean up the documentation; provide links to o1-adapter