- Soham Sitapara (202251131)
- Sudhanshu Bharti (202251134)
- Vasani Om (202251154)
- Ishan Raj (202251174)
This project explores the implementation and analysis of Open Radio Access Network (O-RAN) using the *ns-O-RAN simulation platform. The focus is on integrating *Near-RT RIC and Non-RT RIC components with custom xApps to enable closed-loop control for 5G networks. The study employs mmWave technology and E2 termination to achieve real-time communication between RAN components, emphasizing:
- Network optimization
- Resource management
- Low latency and high reliability
The project demonstrates the practical viability of O-RAN architecture and highlights its advantages over traditional RAN solutions, such as:
- Vendor neutrality
- Modularity and flexibility
- Integration of AI/ML solutions for dynamic resource allocation
- *ns-3 Integration: Utilizes the *ns3-mmWave version and ns-O-RAN module for detailed 5G simulations.
- E2 Interface: Supports real-time communication between RIC and RAN components.
- RIC and xApp Setup: Implements xApps for control logic and performance optimization.
- Closed-Loop Control: Simulates traffic steering and mobility management using E2 Service Models.
- e2term Terminal: Logs E2AP interactions for diagnostics and monitoring.
- xApp Terminal: Executes custom xApps for dynamic optimization.
- ns-o-ran Terminal: Integrates ns-3 with RIC components for seamless simulation.
- Central eNB: LTE-based central node.
- Four gNBs: Positioned at 1000m apart, connected via the ns-3 environment.
This part of the tutorial requires a working version of Docker for hosting the RIC on your localhost.
bash git clone -b ns-o-ran https://github.com/wineslab/colosseum-near-rt-ric cd colosseum-near-rt-ric/setup-scripts
bash ./import-wines-images.sh # import and tag ./setup-ric-bronze.sh # setup and launch
Check if the main entities of the RIC are up and running using: bash docker ps
Open two terminals for the RIC:
-
Terminal 1: Logs the E2Term bash docker logs e2term -f --since=1s 2>&1 | grep gnb:
-
Terminal 2: Builds and runs the xApp container bash cd colosseum-near-rt-ric/setup-scripts ./start-xapp-ns-o-ran.sh
Inside the Docker container, navigate to the xApp directory and run the xApp: bash cd /home/sample-xapp ./run_xapp.sh
In Ubuntu 20.04 LTS, install the necessary packages: bash sudo apt-get update
sudo apt-get install -y build-essential git cmake libsctp-dev autoconf automake libtool bison flex libboost-all-dev
sudo apt-get install g++ python3
bash git clone https://github.com/wineslab/ns-o-ran-e2-sim oran-e2sim cd oran-e2sim/e2sim/ mkdir build ./build_e2sim.sh 3
bash git clone https://github.com/wineslab/ns-o-ran-ns3-mmwave ns-3-mmwave-oran cd ns-3-mmwave-oran
bash cd ns-3-mmwave-oran/contrib git clone -b master https://github.com/o-ran-sc/sim-ns3-o-ran-e2 oran-interface cd .. # go back to the ns-3-mmwave-oran folder
bash ./waf configure --enable-examples --enable-tests ./waf build
bash ./waf --run scratch/scenario-zero.cc
Ensure the following messages flow between ns-3 and the RIC:
- E2 Setup Request (ns-O-RAN to E2 Term on RIC)
- E2 Setup Response (E2 Term on RIC to ns-O-RAN)
- E2 Subscription Request (xApp to ns-O-RAN through E2 Term on RIC)
- E2 Subscription Response (ns-O-RAN to xApp through E2 Term on RIC)
- E2SM RIC Indication Message (ns-O-RAN to xApp through E2 Term on RIC)
We acknowledge the guidance and support of Dr. Bhupendra Kumar and the resources provided by IIIT Vadodara, which were instrumental in the success of this project.
- ns-O-RAN Paper: Programmable and Customized Intelligence for Traffic Steering in 5G Networks Using Open RAN Architectures
- GitHub Repositories: