- Govind Garg 202111032
- Gunal Gupta 202111033
- Md Khalilul Rahman 202111052
- Rohit Shirsat 202111071
- Rohith M 202111072
Project Report Link
Video Demo Link
This project demonstrates the simulation of a 5G network using Open5GS as the 5G core and UERANSIM for User Equipment (UE) and Radio Access Network (RAN) emulation. It includes configurations for deploying a fully functional 5G setup, testing connectivity, and analyzing network performance.
- 5G Core Simulation: Implemented using Open5GS.
- UE and RAN Emulation: Managed with UERANSIM.
- Subscriber Management: Configured via Open5GS WebUI.
- Testing Tools: Ping and iperf for validating network performance.
- Automated Configuration: Scripts and configuration files for seamless setup.
- Open5GS: Open-source implementation of 5G core.
- UERANSIM: Open-source 5G UE and RAN simulator.
- Ubuntu VirtualBox: Virtualized environment for the deployment.
- iperf: Bandwidth testing.
- Ubuntu VirtualBox installed.
- Basic knowledge of networking and 5G concepts.
- Dependencies installed:
- Open5GS
- UERANSIM
- MongoDB
- NodeJS
-
Update System Packages:
sudo apt-get update sudo apt-get install -y gnupg wget curl
-
Install MongoDB:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list sudo apt update sudo apt install -y mongodb-org mongodb-org-database sudo systemctl start mongodb sudo systemctl enable mongodb
-
Install Node.js:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install nodejs
-
Install Open5GS:
add-apt-repository ppa:open5gs/latest apt-get install -y software-properties-common apt-get -y update && apt install -y open5gs
-
Install the WebUI:
curl -fsSL https://open5gs.org/open5gs/assets/webui/install | sudo -E bash -
-
Install UERANSIM:
sudo apt install make gcc g++ libsctp-dev lksctp-tools iproute2 git sudo snap install cmake --classic git clone https://github.com/aligungr/UERANSIM cd UERANSIM make
-
Add Subscriber in Open5GS WebUI:
- Access the WebUI at
http://<server-ip>:3000
. - Add a new subscriber with the appropriate IMSI, Key, and OP/OPc values.
- Access the WebUI at
-
Configure gNodeB and UE:
- Place the configuration files (
gnb.yaml
,ue.yaml
) in the respective directories.
- Place the configuration files (
-
Start the Simulation:
./nr-gnb -c gnb.yaml ./nr-ue -c ue.yaml
-
Ping Test: Verify connectivity between the UE and gNodeB:
ping -I <ue-ip> <gNodeB-ip>
-
Iperf Test: Measure bandwidth between UE and gNodeB:
- Start iperf server on the gNodeB:
iperf3 -s -B <gNodeB-ip>
- Run the iperf client on the UE:
iperf3 -c <gNodeB-ip> -B <ue-ip>
- Start iperf server on the gNodeB:
- Core Network: Open5GS handles Authentication, Session Management, and Data Network communication.
- RAN Simulation: UERANSIM provides NR gNodeB and NR UE functionalities.
5g-simulator/
├── config/
│ ├── gnb.yaml
│ ├── ue.yaml
├── build/
│ ├── nr-gnb
│ ├── nr-ue
.
.
.
- Basic Connectivity: Ping test between UE and gNodeB.
- Bandwidth Analysis: Iperf tests under varying configurations.
- Subscriber Variants: Test with different subscriber profiles in MongoDB.
- Integration of additional 5G features like slicing.
- Automated deployment scripts for multi-node setups.
- Performance benchmarking for various test scenarios.
Contributions are welcome!
Feel free to explore, test, and contribute to this project!