GithubHelp home page GithubHelp logo

rubiruchi / sdn-qos-poc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gradiant/sdn-qos-poc

0.0 1.0 0.0 331 KB

License: MIT License

Makefile 0.32% Python 94.23% Roff 0.21% C 0.97% Shell 4.27%

sdn-qos-poc's Introduction

OpenFlow QoS Proof of Concept

This code provides a emulated network to test Programable Network QoS through OpenFlow 1.3 Queues.

Instructions

The following instructions are designed to work in an Ubuntu 16.04. It should work in other linux OS with the correct packages installed.

Requirements

  • Modified Mininet Network Emulator. We provide a modified Mininet that allows the use of TCLinks (mininet emulated links with a fixed bandwidth and/or delay) along with virtual switches with queues (openvswitch).
  • openvswitch-switch.
  • SDN Controller (openvswitch-testcontroller).

Installation

To install the modified mininet network emulator:

cd mininet
./util install -n

To install openvswitch-switch:

sudo apt-get update && sudo apt-get install openvswitch-switch

To install SDN Controller:

sudo apt-get install openvswitch-testcontroller

Stop the SDN controller and disable it on boot. The provided upgrade_QoS.py script will manage the controller lifecycle:

sudo systemctl stop openvswitch-testcontroller
sudo systemctl disable openvswitch-testcontroller

Running

Mininet is configured to run the following network topology. Network Topology

We launch the mininet topology with a python script:

sudo python upgrade_QoS.py 

This command opens three terminals and two vlc clients.

We use the big buck bunny MP4+H264 FullHD Video in this proof of concept.

We start the Video Stream emission running in the "RTP Stream Emiter" terminal the following command:

./send_video.sh PATH_TO_VIDEO_FILE

Both vlc clients (regular and premium user) should start playing the video.

We generate a low priority UDP dataflow that will compete for bandwidth with the regular user (during 300 seconds). We do that by typing in the UDP Noise Sender terminal the command:

iperf -u -c 10.0.0.5 -b 5M -t 300

The regular user will start experimenting quality problems: his video flow shares the output queue of 'core2' switch with the UDP noise dataflow.

We can dynamically reassign the regular user to the high priority queue at core2 switch to improve his quality of experience. We send an OpenFlow rule to do this reassignment. We open a terminal and execute the set_priority script:

./set_priority.sh 10.0.0.1 10.0.0.4 hi

We can also decrease the QoE of the premium user with the same script:

./set_priority.sh 10.0.0.1 10.0.0.3 lo

The last command will make the premium user start experimenting video problems, because we have dynamically reassigned hos video flow to the regular queue.

sdn-qos-poc's People

Contributors

cgiraldo avatar

Watchers

 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.