🤯100+ Opensource 5G project’s that you can get your hands dirty with.

Ramkumar
9 min readMay 8, 2022

--

Photo by Jeremy Bezanger on Unsplash

No, it’s not a clickbait title, I’m really gonna give reference to 100+ opensource projects related to 5G that you can clone right away and start hacking, these projects will be useful for anyone from student to research scholar to telecom working professionals.

One good reason that we should be excited about all these projects is that telecom is no longer out of reach for most of us, we all studied about GSM, CDMA only on textbook, lucky few might have read the standards and few legends might have built early 2G and 3G but the current ecosystem has made 5G open to anyone who want to dig in and get their hands dirty, from edge to RAN to Core there is something for everyone.

I have categorized based on the system components and highlighted my personal handpicked ones.

Disclaimer: Most of the projects here are taken from this awesome github repo.

RAN:

My handpicked projects:

SD-RAN From ONF :https://opennetworking.org/sd-ran/

~has code for near real-time RIC, easy sandbox to onboard and test xapps

OAI https://openairinterface.org/oai-5g-ran-project/

~has code for non standalone gNB and standalone along with UE

srsRAN https://www.srsran.com/

~ has code for full stack gNB and UE

oransc — seed code from oran alliance

gnbsim — gnbsim is a 5G SA gNB/UE simulator for testing 5GC system. (The origin repo has been deleted. You can find backup here. Refer to issue#9.)

eNB emulator — https://github.com/fasferraz/eNB

pfm — DPDK implementation of a prototype on gNB-CU-UP.

UERANSIM — Open source 5G UE and RAN (gNodeB) implementation.

free5GRAN — free5GRAN is an open-source 5G RAN stack.

pfm — DPDK implementation of a prototype on gNB-CU-UP.

sionna — An Open-Source Library for Next-Generation Physical Layer Research

My5g Rantester — my5G-RANTester is a tool for emulating control and data planes of the UE (user equipment) and gNB (5G base station).

5g Nr Planning And Dimensioning — Simulations and figures for 5G NR radio resource properties planning. Built for educational purposes

Mmwave Localization Learning — ML-based positioning method from mmWave transmissions — with high accuracy and energy efficiency

NgToolset — is set of userful NPO tool for 4G/LTE and 5G/NR, written with Python/PyQt.

RAN slicing simulation — RAN-Slicing-Simulation

5G RAN Operators — From canonical, 5G Ran Emulator is implemented as microk8s applications using Juju Charms and Microk8s Contains charm folder consisting of 2 k8s charm applications (ue app and ran)

5G-RAN SCHED — This is a simple 5G RAN scheduler that uses the scheduler environment build using OpenAI Gym

MLRAN — This project is made to work on 5G/LTE RAN data and build a ML prediction model

ORAN Fronthaul mini switchhttps://github.com/diogo-marques/ORAN_FH_SW

https://openrangym.com/

CORE:

My handpicked projects:

free5GC — Open source 5G core network base on 3GPP R15.

Magma — Open source 4G and 5G core built on k8s.

open5gs — Open5GS is a C-language Open Source implementation of 5GC and EPC, i.e. the core network of NR/LTE network (Release-16).

https://github.com/fenar/cnvopen5gcore - 5G Core with RAN + UE simulator deployment on Red Hat Openshift with Service Mesh

Internship-5GCN — Implementation of RESTful Web Services between 5G Control Plane Nodes(AMF,NRF,SMF,UDM).

OAI-CN — This project implements a 4G LTE Evolved Packet Core (EPC) and 5G Core Network.

5GCore — 5G system written in python.

5GC_APIs https://github.com/jdegre/5GC_APIs

go-gtp — GTP in Golang Package gtp provides simple and painless handling of GTP(GPRS Tunneling Protocol), implemented in the Go Programming Language.

5G UPF — using BPF/XDP An open source C++ library powered by BPF/XDP for user planes in the mobile core network (5G/LTE).

upf — upf implementation from OMEC.

SD-CORE — OMEC implementation of 5g/4g core.

upg based on VPP — UPG implements a GTP-U user plane based on 3GPP TS 23.214 and 3GPP TS 29.244 Release 15. It is implemented as an out-of-tree plugin for FD.io VPP.

go-pfcp — PFCP implementation in Golang.

Towards5gs Helm Open-source project providing Helm charts for deploying Free5GC and UERANSIM on a Kubernetes cluster.

my5G-core — fork of free5gc with few changes.

My5g Rantester my5G-RANTester is a gNB/UE simulator for testing 3GPP standards and stressing a 5G core.

Openupf — A 3GPP R16 compliant open source 5G core UPF (User Plane Function).

Upf_p4_poc — This project is a proof of concept for 5g upf based on p4.

Up4 ONOS — app and P4 program abstracting a network of switches as one big 4G/5G UPF.

Gtp5g — GTP-U Linux Kernel Module.

My5g Non3gpp Access — Implements a security connection using untrusted non3GPP.

Kubesim_5gc 5GC — core node kubedge simulator.

corescope — 5G core testing solution.

PLATFORMS:

My handpicked projects:

ONAP — Open Network Automation Platform.

Open Source MANO — OSM is delivering an open source Management and Orchestration (MANO) stack aligned with ETSI NFV Information Models

x-k8s — ITRI’s Kubernetes platform for 5G Edge VNF.

Polycube — eBPF/XDP-based software framework for fast network services running in the Linux kernel.

DANM — TelCo grade network management in a Kubernetes cluster.

5G-EmPOWER — 5G-EmPOWER is a mobile network operating system designed for heterogeneous wireless/mobile networks.

free5gmano — This is a 5G MANO (Management and Network Orchestration) project developed that refer to 3GPP TS 28.531, TS 28.532 Release 15 (R15).

opnfv — Open Platform for NFV (OPNFV) facilitates the development and evolution of NFV components across various open source ecosystems.

Miscellaneous :

katana-slice_manager — 5G Network E2E Slice Manager.

OpenNESS — This repository includes the literature related to OpenNESS solution.

5G Mobile Networks: A Systems Approach — Open source eBook for 5G system.

LF Edge https://www.lfedge.org/

5G-Core-gRPC-SBA — This repository is the proof of concept for Service Based Architecture of 5G using gRPC.

USIM https server API for AKA authentication https://github.com/fasferraz/USIM-https-server

5GMdata — Datasets and code for machine learning in 5G mmWave MIMO systems involving mobility (5GMdata).

Beamformed Fingerprint Learning — ML-based positioning method from mmWave transmissions — with high accuracy and energy efficiency.

Network Function Framework for Go (former YANFF) — NFF-Go -Network Function Framework for GO (former YANFF).

SliceSim — 5G Network Slicing Simulation.

Sub-6 Predicts mmWave Beam-forming Vectors — Using sub-6 GHz channels to predict mmWave beams and link blockage.

3gpp.guru — Look up 3GPP abbreviations.

3GPP Bibtex entry generator — Generate .bib-file for 3GPP specifications.

5G Trace Visualizer — Tools to generate call flows from pcap.

5GC_APIs — RESTful APIs of main Network Functions in the 3GPP 5G Core Network.

5G_ciphered_NAS_decipher_tool — A python tool to decipher/decrypt 5G ciphered NAS message and export plain 5G NAS into wireshark pcap file.

5GC build — Project to use OpenAPI generators to build code from 5GC_API.

5g ldpc codes — 5g ldpc codes.

MCC_MNC — Providing accurate JSON and Python dicts about the many public information available about MNO.

MilenageTest — 3G/4G/5G authentication test troubleshooting tool.

New Radio 5G Physical layer utilities — This repository contains Physical layer utilities based on 3GPP specs for NR 5G.

pysim5g — Open-source techno-economic assessment framework for 5G deployment.

tesetbeds — List of available testbeds.

speX — A WebService to deliver 3GPP specifications.

go-diameter — Diameter stack and Base Protocol (RFC 6733) for the Go programming language.

Kamailio — The Open Source SIP Server for large VoIP and real-time communication platforms.

strongswan-eap-5g-plugin — EAP-5g plugin for strongswan.

dpdk_gtp_gateway — DPDK based GTPv1 gateway.

ishidawataru/sctp — SCTP library for the Go programming language.

usrsctp — A portable SCTP userland stack.

Simulation for 5G and 6G Edge Computing — A Mobile Resource-sharing Framework for 5G/6G Edge Computing in Massive IoT Systems.

EMQX broker — is a fully open source, highly scalable, highly available distributed MQTT messaging broker for IoT, M2M and Mobile applications that can handle tens of millions of concurrent clients.

OpenHarmony — Huawei Hongmeng distributed operating system (Huawei OpenHarmony).

Nokia book — Books from nokia.

mmWave-MU-MIMO- Matlab project.

Deepslice — Research on network slicing.

III-5GC-Free-Trial new — 5G end to end demonstration for education purpose.

NEF-Emulator — Configurable, emulated environment for providing Network Exposure Function (NEF) APIs

5G speed — 5G Speed Calculator — Support for all of the latest FDD, TDD, SDL & SUL NR bands.

Researchmethods 5g Assignments relating to 4th Year Software Development module Research Methods in Computing and IT.

3gpp Asn1 Navigator — ASN.1 utilities, especially targeted 3GPP.

5g Lena — This is an ns-3 3GPP NR module for the simulation of 5G NR non-standalone cellular networks.

Xran Demo — A collection of material showing how NSO and Confd can be used to exercise the set of xRAN YANG models used to support its split RAN architecture.

5G Replay — Tool for modifying and replaying 5G protocol network traffic.

Daedalus Exploring various defensive response options for effectively securing a 5G core-network.

Intel k8s plugins — plugins for cnf based 5g.

5G-Slicer: An emulator for mobile IoT applications deployed over 5G network slices

app_aware_5g — A cloud-native 5G Network based on OAI platform, fully deployed on Kubernetes, enhanced with AI Unit to forecast the interactions between end-users and applications, and to improve the Quality of Experience of the users in real-time by utilizing the FlexRAN Controller.

cran — Implementação de uma CRAN (Cloud Radio Access Network) utilizando Matlab.

5gc-config — Configuration for setting up 5G SA Testbed.

nrphypy — Python module for 5G NR sync signals and decoding.

coverage-mapper — Cellular radio coverage mapping tool written in Python.

SimuTorino— Simulating 5G-enabled vehicular networks in a Turin urban context.

Interactive Spectrum Allocation Diagram — Interactive Spectrum Allocation Diagram in Germany.

tplg-cli— Command Line Interface to API Topology Browser Ericsson ENM.

hms-5g-modem-demohttps://github.com/HMS-Core/hms-5g-modem-demo.

stateless5g— Modules used for the evaluation of “The Cost of Stateless Network Functions in 5G”

DeepSARA— Admission Control and Resource Allocation mechanism for 5G Core Network Slicing based on Reinforcement Learning and Deep Learning.

5G_IITM — Matlab codes for course “LDPC and Polar Codes in 5G Standard” by IITM. Coded by Teddy van Jerry.

MilenageKT — A MILENAGE algorithm implementation in Kotlin.

OPENRAN — This repository contains the two different algorithms to synchronize the data path of the up- and downlink of 5G Radio Access Networks.

cucp5g — CUCP implementation of 5G.

Multiagent-5GMEC — Three Agent-Based Simulation for Edge Computing in 5G and Beyond for the recent paper titled “Design and Simulation of a Hybrid Architecture for Edge Computing in 5G and Beyond” by Hamed Rahimi et al.

Qos-slicing — Onos application for deploying network slicing and performance isolation, in terms of both connectivity and performance.

Telco-5G-Guide — Telco 5G Guide.

Project5G-ansible-deployment — In this project, we demonstrate how mobile network operators can deploy full 5G networks using (open source) Ansible and container orchestration tools such as docker and Kubernetes on the cloud and a local setup.

NetworkCellAnalyzer — This is a university team project. It was done by Jason Diab (Me), Peter Farah, and Anthony Saab for the EECE451 course at the American University of Beirut. (Fall 2020–2021)

5G-positioning- 5G-positioning matlab

colte — Community LTE Project.

5GNR_slot_detection — Let’s see how fast and accurate we could detect 5G NR slot boundary.

5g-cyber-security-for-splunk-phantom-soar — 5G Cyber Security application for Splunk Phantom SOAR (Security Orchestration, Automation, and Response) system. This app performs verification of the check digits of an eSIM (embedded SIM) eUICC IDentifier (EID) according to GSM Association Official Document SGP.29 ‘EID Definition and Assignment Process’, version 1.0, 31 July 2020.

network-slicing — Network Slice Management Interface.

Esim — This Go eSIM module processes eUICC IDentifier (EID) used in the context of Remote Provisioning and Management of the eUICC (eSIM) in according to GSM Association Official Document SGP.02 (Remote Provisioning of Embedded UICC Technical Specification) and SGP.22 (RSP Technical Specification) for EID using the ITU-T E.118.

https://open5g.info/- Collection of nice tools (some are already mentioned here) from northwestern university.

Hope you enjoyed the list, comment if you want to learn about any specific project or want to add something to the list.

Helps me keep active during writing😊

https://www.buymeacoffee.com/ram_rattle

--

--