The Next Generation Node B (gNodeB) is a 5G base station configured with OpenAirInterface [1], connecting User Equipments (UEs) to the 5G Core Network based on the specifications outlined in 3GPP TS 38.300 [2], 3GPP TS 38.401 [3], and 3GPP TS 38.413 [4].
- Compile: Use
./full_install.shto build and install the gNodeB software. - Generate Configurations: Use
./generate_configurations.shto create configuration files.- The script automatically retrieves the 5G Core Network's AMF address. If it is not found locally, the script will prompt the user to enter the address manually.
- Configuration files can be accessed and modified in the
configsdirectory.
- Start the gNodeB: Use
./run.shto start the gNodeB, or./run_background.shto run it as a background process where the output is redirected tologs/gnb_stdout.txt. - Stop the gNodeB: Terminate the gNodeB with
./stop.sh. - Status: Use
./is_running.shto check which gNodeB components are currently running (CU, DU, or gNodeB). - Logs: Access logs by navigating to the
logsdirectory. - Uninstall: Use
./uninstall.shto remove the gNodeB/UE software.
The gNodeB can be deployed in a split Central Unit (CU) and Distributed Unit (DU) configuration.
- Start the CU: Use
./run_split_cu.shor./run_background_split_cu.shto start the CU. - Start a DU Instance: Use
./run_split_du.sh <du_number>or./run_background_split_du.sh <du_number>to start a DU instance, wheredu_numberis an integer identifying the DU (e.g.,1or2).- In the RF simulator, DU 1 functions as the server by default. For handover scenarios where the UE must serve as the server, start DU 1 with the
--no-rfsim-serverargument to disable its server functionality.
- In the RF simulator, DU 1 functions as the server by default. For handover scenarios where the UE must serve as the server, start DU 1 with the
- Stop the CU/DU/gNodeB: Use
./stop.sh [selector]to terminate components. The optional[selector]argument specifies which instances to stop:cufor all Central Units,dufor all Distributed Units, a specific DU such asdu1ordu2, orgnbfor all gNodeBs. If no argument is provided, all nr-softmodem components will be stopped.
This gNodeB supports an optional telnet server for monitoring and controlling the gNodeB [5]. Enable it by setting TELNET_SERVER=true at the beginning of the full_install.sh script before running it. When starting the gNodeB, if the telnet server was installed, it will automatically start and can be accessed by directly typing into the gNodeB terminal or with telnet 127.0.0.1 9099. Use the help command within the telnet session to view available commands.
The gNodeB can also be monitored and controlled remotely using the OpenAirInterface O1 adapter [6], which runs as a Docker container. Management scripts for the O1 adapter container are located in the additional_scripts/ directory. Use ./install_o1_adapter.sh to configure and build the adapter, ./run_o1_adapter.sh to start the container which connects to the gNodeB's telnet server, ./stop_o1_adapter.sh to stop the container, and ./uninstall_o1_adapter.sh to uninstall it. While running, the endpoint 127.0.0.1:830 can be connected to over NETCONF for Non-RT RIC KPM monitoring and RIC control. Endpoints can be configured by updating the variables set in install_o1_adapter.sh (which modifies o1-adapter/docker/config/config.json), then re-installing the O1 adapter.
ImScope can be enabled for the gNodeB by setting NRSCOPE_GUI=true at the beginning of the full_install.sh script before running it. For more information about ImScope, see the OpenAirInterface documentation [7].
- OpenAirInterface 5G Wireless Implementation. OpenAirInterface. https://gitlab.eurecom.fr/oai/openairinterface5g
- 3GPP TS 38.300: NR; NR and NG-RAN Overall description; Stage-2. https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3191
- 3GPP TS 38.401: NG-RAN; Architecture description. https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3219
- 3GPP TS 38.413: NG-RAN; NG Application Protocol (NGAP). https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3223
- Starting the softmodem with the telnet server. OpenAirInterface. https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/common/utils/telnetsrv/DOC/telnetusage.md
- OAI O1 Adapter. OpenAirInterface. https://gitlab.eurecom.fr/oai/o1-adapter
- ImScope. OpenAirInterface. https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/openair1/PHY/TOOLS/readme.md?ref_type=heads#imscope
