Based on the blueprints described in NIST TN 2311 [1], this automation tool facilitates the deployment and configuration of 5G Open Radio Access Network (O-RAN) testbeds. Designed to operate in both bare metal and virtualized environments, it simplifies setting up the components required for a 5G O-RAN testbed, including the 5G Core; Next Generation Node B (gNodeB) composed of Radio Unit (RU), Distributed Unit (DU), and Centralized Unit (CU); User Equipment (UE); RAN Intelligent Controller (RIC); and a series of xApps that can be installed in the RIC. This reduces the complexity and time required to operationalize the testbeds described in the report above, and enables more efficient testing and validation to facilitate research and development in 5G technologies.
The automation tool can be used in virtual machines and physical machines with the list of open-source components and minimum system requirements specified below. For additional details on the configuration of physical hardware and individual software components, refer to [1].
This tool supports the deployment of 5G O-RAN testbeds using open-source components in two main scenarios: Software Radio Systems with O-RAN SC's Near-RT RIC, and OpenAirInterface with Mosaic5G's FlexRIC. Below is the list of the supported testbed open-source components.
CU/DU
├── srsRAN_Project gNB: release_25.04
├── OpenAirInterface gNB: 2025.w38
└── O-RAN SC E2 Simulator: L-release
RICs
├── O-RAN SC Near-RT RIC: L-release
│ └── xApps
│ ├── Hello World xApps (Go, Python, and Rust)
│ ├── KPM Monitor xApp
│ ├── 5G Cell Anomaly Detection xApp
│ ├── Anomaly Detection xApp
│ ├── Quality of Experience Predictor xApp
│ ├── RIC Control xApp
│ └── Traffic Steering xApp
├── FlexRIC: v2.0.0
│ └── xApps
│ ├── KPM Monitor xApp (to console, CSV, or InfluxDB)
│ ├── MAC + RLC + PDCP + GTP Monitor xApp
│ ├── RIC Control xApp
│ └── RIC Control Monitor xApp
└── O-RAN SC Non-RT RIC: L-release
└── Minimal prototype with no rApp support.
5G Core
└── Open5GS: v2.7.6
UEs
├── srsRAN_4G: release_23_11
└── OpenAirInterface 5G UE: 2025.w38
The components that have been verified to support or not support connectivity are included below.
Before beginning the installation and setup of the testbed, verify that the system meets the following minimum specifications to prevent issues like pods remaining in pending or crash loop states if using an O-RAN SC RIC.
- Operating System: Linux distributions based on Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, and Ubuntu 24.04 LTS are supported.
- Recommendation: Ubuntu 22.04.
- Hard Drive Storage: Must be
≥ 57GB. - Base Memory/RAM: Must be
≥ 6000MB. - Number of Processors: Must be
≥ 2processors.- Recommendation:
≥ 6processors.
- Recommendation:
- Internet Connectivity: A stable internet connection must be maintained during the installation otherwise the process may fail and require restarting.
For users using a virtual machine, e.g., VirtualBox, the following configuration parameters may be considered.
- System
- Extended Features: Check
Enable I/O APICto improve interrupt handling. - Extended Features: Check
Enable PAE/NXand if possible, also checkEnable Nested VT-x/AMD-V. - Paravirtualization Interface: Select
Default. - Hardware Virtualization: Check
Enabled Nested Paging.
- Extended Features: Check
- Display
- Video Memory: Set the slider to the maximum if using a Desktop environment.
- Storage
- Check the SATA controller's
Solid-state Driveoption if using an SSD hard drive.
- Check the SATA controller's
- Network
- Attached to: Select
NATto allow the components to communicate locally.
- Attached to: Select
Run the Update Manager to get packages up-to-date, then reboot.
sudo apt-get update && sudo apt-get upgrade -yIf using VirtualBox, insert the Guest Additions CD image and install the Guest Additions with the on-screen prompt or the following commands, then reboot.
sudo apt-get install -y dkms build-essential linux-headers-generic linux-headers-$(uname -r)
sudo mkdir /media/cdrom
sudo mount /dev/cdrom /media/cdrom
cd /media/cdrom
sudo ./VBoxLinuxAdditions.run
sudo adduser $USER vboxsfNext, install Git and clone the O-RAN-Testbed-Automation repository over HTTPS.
sudo apt-get install -y git
git clone https://github.com/USNISTGOV/O-RAN-Testbed-Automation.git
cd O-RAN-Testbed-AutomationAlternatively, the repository may be cloned over SSH: git clone git@github.com:USNISTGOV/O-RAN-Testbed-Automation.git
Important
The deployment scenario based on OpenAirInterface with FlexRIC can be installed from the OpenAirInterface_Testbed directory, while the deployment scenario based on srsRAN and O-RAN SC's Near-RT RIC can be installed from the base directory.
Begin the installation process, recommended to be run as the current user rather than as root:
./full_install.shTip
Due to set -e, the scripts will halt upon encountering an error so that it can be corrected before trying again. Since the scripts are idempotent, only the incomplete steps of the installation process will be executed unless specified otherwise. Please be patient until an error occurs or the testbed installation completes successfully.
################################################################################
# Successfully installed the Near-RT RIC, 5G Core, gNodeB, and UE. #
################################################################################
Software Radio Systems and O-RAN SC Near-RT RIC Output
Run the testbed with ./run.sh to start the 5G Core and gNodeB as background processes, and the UE in the foreground. Use ./is_running.sh to check if the components are running, and ./stop.sh to stop the components. The RIC starts automatically on boot and can be accessed with k9s -A.
Attaching UE...
Random Access Transmission: prach_occasion=0, preamble_index=0, ra-rnti=0x39, tti=4174
Random Access Complete. c-rnti=0x4601, ta=0
RRC Connected
PDU Session Establishment successful. IP: 10.45.0.2
RRC NR reconfiguration successful.Supplementary Network Monitoring, Visualization, and Control
See this section for the set up guide.
OpenAirInterface and FlexRIC Output
Run the testbed with ./run.sh to start the 5G Core, FlexRIC, gNodeB, and UE as background processes, and the KPM monitoring xApp in the foreground. Use ./is_running.sh to check if the components are running, and ./stop.sh to stop the components.
8 KPM ind_msg latency = 600 [μs]
UE ID type = gNB, amf_ue_ngap_id = 1
ran_ue_id = 1
DRB.PdcpSduVolumeDL = 0 [kb]
DRB.PdcpSduVolumeUL = 0 [kb]
DRB.RlcSduDelayDl = 0.00 [μs]
DRB.UEThpDl = 0.00 [kbps]
DRB.UEThpUl = 0.00 [kbps]
RRU.PrbTotDl = 15 [PRBs]
RRU.PrbTotUl = 140 [PRBs]
RSRP = -44.00 [dBm]
...Supplementary Dashboard for KPM Visualization
See this section for the set up guide.
For stability of software dependencies, all git clone calls are routed through commit_hashes.json which specifies a branch and/or commit hash for each repository. This file can be updated manually, or with ./Additional_Scripts/update_commit_hashes.sh to fetch the latest commit hashes. For information about the automation tool versions, please see the releases page [2].
For more information about a specific component, refer to the README.md files in the respective subdirectories:
- README.md [3]
- 5G_Core_Network/README.md [4]
- 5G_Core_Network/Additional_Cores_5GDeploy/README.md [5]
- Next_Generation_Node_B/README.md [6]
- User_Equipment/README.md [7]
- RAN_Intelligent_Controllers/Near-Real-Time-RIC/README.md [8]
- RAN_Intelligent_Controllers/Non-Real-Time-RIC/README.md [9]
- OpenAirInterface_Testbed/README.md [10]
- OpenAirInterface_Testbed/Next_Generation_Node_B/README.md [11]
- OpenAirInterface_Testbed/User_Equipment/README.md [12]
- OpenAirInterface_Testbed/RAN_Intelligent_Controllers/Flexible-RIC/README.md [13]
USNISTGOV/O-RAN-Testbed-Automation is developed and maintained by the NIST Wireless Networks Division [14], as part of their Open RAN Research Program [15]. Contacts for this software:
- Simeon J. Wuthier, @Simewu
- Fernando J. Cintrón, @fjcintron
- Doug Montgomery, @dougm-nist
- Liu, Peng, Lee, Kyehwan, Cintrón, Fernando J., Wuthier, Simeon, Savaliya, Bhadresh, Montgomery, Douglas, Rouil, Richard (2024). Blueprint for Deploying 5G O-RAN Testbeds: A Guide to Using Diverse O-RAN Software Stacks. National Institute of Standards and Technology. https://doi.org/10.6028/NIST.TN.2311.
- Releases, Automation Tool for Deploying 5G O-RAN Testbeds. GitHub. https://github.com/USNISTGOV/O-RAN-Testbed-Automation/releases.
- Documentation of Base Directory. https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/README.md
- Documentation of 5G Core Network (Open5GS). https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/5G_Core_Network/README.md.
- Documentation of Additional Cores for 5G Deployment. https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/5G_Core_Network/Additional_Cores_5GDeploy/README.md.
- Documentation of Next Generation Node B (srsRAN_Project). https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/Next_Generation_Node_B/README.md.
- Documentation of User Equipment (srsRAN_4G). https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/User_Equipment/README.md.
- Documentation of Near-Real Time RAN Intelligent Controller (O-RAN SC). https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/RAN_Intelligent_Controllers/Near-Real-Time-RIC/README.md.
- Documentation of Non-Real Time RAN Intelligent Controller (O-RAN SC). https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/RAN_Intelligent_Controllers/Non-Real-Time-RIC/README.md.
- Documentation of OpenAirInterface Testbed. https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/OpenAirInterface_Testbed/README.md.
- Documentation of Next Generation Node B (OpenAirInterface). https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/OpenAirInterface_Testbed/Next_Generation_Node_B/README.md.
- Documentation of User Equipment (OpenAirInterface). https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/OpenAirInterface_Testbed/User_Equipment/README.md.
- Documentation of Near-Real Time RAN Intelligent Controller (FlexRIC). https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/OpenAirInterface_Testbed/RAN_Intelligent_Controllers/Flexible-RIC/README.md.
- Wireless Networks Division. National Institute of Standards and Technology. https://www.nist.gov/ctl/Wireless-Networks-Division.
- Open RAN Research at NIST. National Institute of Standards and Technology. https://www.nist.gov/programs-projects/Open-RAN-Research-NIST.
- NIST Software Disclaimer. https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/NIST Software Disclaimer.md.
- Fair Use and Licensing Statements of NIST Data/Works: https://github.com/usnistgov/O-RAN-Testbed-Automation/blob/main/LICENSE.

