GithubHelp home page GithubHelp logo

jercymat / qualcomm-proj Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 5.0 37 KB

An SDN-based Network Slicing Platform of 5G Core Network

Python 100.00%
5g software-defined-network core-network mininet ryu-controller

qualcomm-proj's Introduction

SDN-based Network Slicing Platform of 5G Core Network

An SDN-based solution of Network Slicing in 5G Service Based Architecture (SBA) core network, constructed with multiple SDN subsystems. With full SBA Entities implementation, we can provide network slices of 5G scenarios (URLLC, eMBB, mMTC) for 5G UEs to comsume SBA core network resources.

Features

  • Built with multiple SDN controller-switch subsystems
  • Easy to scale and load balance inside subsystems, and free to add new subsystems into the platform
  • Same structure of 5G core network and transmitting protocols as 3GPP defines

Table of Contents

Getting Started

Requirements

  • Ubuntu 14.04โ†‘
  • Python 2.7 (2.7.12โ†‘)

Dependencies

  • Mininet 2.2.1 -> SDN Topology Emulator
  • Ryu 4.32 -> Openflow Controller Framework
  • hyper-h2 2.6.2 -> HTTP/2 Server Framework
  • hyper 0.7.0 -> HTTP/2 Client Framework

Installation

Just clone it into your host

git clone https://gitlab.com/jercymat/qualcomm-proj.git

Deployment

Clone to your ubuntu host, and make sure that all the dependencies are installed.

  1. Start up Mininet topology
cd qualcomm-proj/formal-version
sudo ./multi-sdn-topo.py
  1. Start up Ryu SDN controllers

There are 12 SDN subsystems constructing the whole system, which means there are 12 Ryu controllers to start.

If you want to run them in background:

ryu-manager ue-access-ctrl.py --ofp-tcp-listen-port 6661 --wsapi-port 6662 &

ryu-manager nfv-urllc-ctrl.py --ofp-tcp-listen-port 6671 --wsapi-port 6672 &
ryu-manager nfv-embb-ctrl.py --ofp-tcp-listen-port 6681 --wsapi-port 6682 &
ryu-manager nfv-mmtc-ctrl.py --ofp-tcp-listen-port 6691 --wsapi-port 6692 &

ryu-manager sba-nrf-ctrl.py --ofp-tcp-listen-port 7011 --wsapi-port 7012 &
ryu-manager sba-ausf-ctrl.py --ofp-tcp-listen-port 7021 --wsapi-port 7022 &
ryu-manager sba-udm-ctrl.py --ofp-tcp-listen-port 7031 --wsapi-port 7032 &
ryu-manager sba-amf-ctrl.py --ofp-tcp-listen-port 7041 --wsapi-port 7042 &
ryu-manager sba-smf-ctrl.py --ofp-tcp-listen-port 7051 --wsapi-port 7052 &
ryu-manager sba-pcf-ctrl.py --ofp-tcp-listen-port 7061 --wsapi-port 7062 &
ryu-manager sba-af-ctrl.py --ofp-tcp-listen-port 7071 --wsapi-port 7072 &

ryu-manager dp-upf-ctrl.py --ofp-tcp-listen-port 8001 --wsapi-port 8002 &

You can also open a new terminal window for each controller, just type the command above one line per window, but take the trailing & off.

It's highly recommended to use tmux.

  1. Start up host servers

Each subsystem has a server to handle incoming requests, start them in mininet command line:

uam_h0 python ./servers/uam_h0.py &

n_URLLC_h0 python ./servers/n_URLLC_h0.py &
n_eMBB_h0 python ./servers/n_eMBB_h0.py &
n_mMTC_h0 python ./servers/n_mMTC_h0.py &

s_NRF_h0 python ./servers/s_NRF_h0.py &
s_AUSF_h0 python ./servers/s_AUSF_h0.py &
s_UDM_h0 python ./servers/s_UDM_h0.py &
s_AMF_h0 python ./servers/s_AMF_h0.py &
s_SMF_h0 python ./servers/s_SMF_h0.py &
s_PCF_h0 python ./servers/s_PCF_h0.py &
s_AF_h0 python ./servers/s_AF_h0.py &

d_UPF_h0 python ./servers/d_UPF_h0.py &
d_DN_h0 python ./servers/d_DN_h0.py &

Now your system is ready for sending packets.

Running

You can now send packets, run the UEs in mininet command line:

URLLC Scenario

ue_URLLC_h python ./servers/ue_URLLC_h

eMBB Scenario

ue_eMBB_h python ./servers/ue_eMBB_h

mMTC Scenario

ue_mMTC_h python ./servers/ue_mMTC_h

Enjoy.

Authors

  • Han-Hsuan Lin - Dept. of computer science, National Chengchi University - [email protected]
  • Yu-Chiao Hsu - Dept. of computer science, National Chengchi University - [email protected]

Declaration

This system is built for Qualcomm Taiwan University Research Program.

qualcomm-proj's People

Contributors

jercymat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

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.