GithubHelp home page GithubHelp logo

l25gc-plus's Introduction

L25GC+: A Low-latency, 3GPP-compliant 5G Core Network

About

In this work, we develop L25GC+. L25GC+ is a re-architected 5G Core (5GC) network, aimed at reducing latency and improving user experience. L25GC+ focuses on minimizing the impact of control plane operations on the data plane, while also enhancing data plane processing. It achieves this by exploiting shared memory (based on OpenNetVM), eliminating message serialization and HTTP processing overheads in 3GPP SBI, and using scalable packet classifiers for forwarding-rule lookups. L25GC+ re-designs OpenNetVM's shared-memory-based networking stack to support synchronous I/O between control plane functions, which allows it to distinguish different user sessions and maintains strict 3GPP compliance. L25GC+ also offers seamless integration with existing 5GC microservice implementations through equivalent SBI APIs, reducing code refactoring and porting efforts. Additionally, L25GC+ implements paging and an intelligent handover scheme to reduce delays and data loss. It also offers integrated failure resiliency for faster recovery from failures compared to standard 3GPP procedures.

L25GC+ is built on the open-source kernel-based 5GC implementation called free5GC. By leveraging shared memory I/O, L25GC+ optimizes the 5G control plane, enhancing latency, scalability, and overall user experience. L25GC+ achieves 2X lower data plane latency for paging and handover events compared to free5GC. We demonstrate the improved performance of L25GC+ on a 5G testbed with commercial basestations and UEs.

For more design details, please refer to:

Installation guideline and SIGCOMM artifact evaluation

To reproduce the experiment in our paper, please refer to artifact documentation.

Publication

@inproceedings{l25gc-sigcomm22,
author = {Jain, Vivek and Chu, Hao-Tse and Qi, Shixiong and Lee, Chia-An and Chang, Hung-Cheng and Hsieh, Cheng-Ying and Ramakrishnan, K. K. and Chen, Jyh-Cheng},
title = {L25GC: A Low Latency 5G Core Network Based on High-Performance NFV Platforms},
year = {2022},
isbn = {9781450394208},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3544216.3544267},
doi = {10.1145/3544216.3544267},
booktitle = {Proceedings of the ACM SIGCOMM 2022 Conference},
pages = {143โ€“157},
numpages = {15},
keywords = {cellular core, NFV, low latency 5G core, 5G cellular networks},
location = {Amsterdam, Netherlands},
series = {SIGCOMM '22}
}

Installation

clone L25GC+

cd ~
git clone https://github.com/nycu-ucr/L25GC-plus.git

install

cd ~/L25GC-plus
./install.sh

intallation in docker

clone nycu-ucr/onvm

sudo apt install libnuma-dev
git clone https://github.com/nycu-ucr/onvm.git
cd onvm
git checkout opensource
source ./build_testbed.sh

cd onvm-upf/scripts
./install.sh

press Y/N to bind DPDK NICs, you need at least 2 NICs to run L25GC+

pull and run docker images

sudo apt install docker.io
sudo docker pull linpoyi/l25gc-plus_v0
sudo docker run -it --privileged --name test_v1 linpoyi/l25gc-plus_v0

setup huge pages in container(in container's bash)

su linpoyi #password: wirelab020
cd ~/onvm/onvm-upf/dpdk/usertools
./dpdk-setup.sh
49 #setup huge pages
1024 #number of huge pages
62 # exit script

pull and run mongodb images(in new terminal)

sudo docker pull mongo
sudo docker run --name db mongo

check docker network

docker network inspect bridge

find the ipv4 address of container "db"

modified config in L25GC+(back to L25GC+'s bash)

vim ~/L25GC-plus/config/nrfcfg.yaml

change "MongoDBUrl" from 127.0.0.1 to the ip address of db container

Running and Testing

run onvm manager

cd ~/onvm
./run_manager.sh

run upf-u (in new terminal)

cd ~/onvm/onvm-upf/5gc/upf_u_complete
sudo ./go.sh 1

run upf-c (in new terminal)

cd ~/onvm/onvm-upf/5gc/upf_c_complete
sudo ./go.sh 2

run NFs (in new terminal)

cd ~/L25GC-plus
./run.sh

run Test (in new terminal)

cd ~/L25GC-plus
./select_test.sh

1) TestRegistration                 4) TestN2Handover
2) TestMultiRegistrationConcurrent  5) TestMultiN2HandoverConcurrent
3) TestMultiPagingConcurrent        6) Quit

stop L25GC+

cd ~/onvm
./force_kill.sh

Environment Setup

  • You could setup the experiment environment by running the provided scrips.
  • For more information about config file settings, please refer to this link.

Steps

  1. Adjust the parameters in scripts/set_nw_env.sh
    • Reference architecture ref_architecture
  2. Run the setup script in scripts with target environment
    ./setup.sh <ue|cn|dn>
    
  3. Follow the Running and Testing to run the L25GC+.

Communication

If you have any questions or comments, please feel free to email us ([email protected]) or join our Google group.

License

L25GC+ is now under Apache 2.0 license.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.