Final project for the course in Advanced Network Architectures and Wireless Systems @University of Pisa.
The objective of this project is to design and develop a Floodlight module that implements a traffic prioritization behaviour inside a network domain. The network should manage traffic flows according to the scenario "A. Traffic Prioritization" of paper [1]. Checkout the assignment and the report for all the information about the project.
floodlight
contains the code of the traffic prioritization floodlight module.mininet
contains the code to create an emulated network to test all the functionalities of the module.docs
contains the assignment and the report of the project.
Clone this repository:
$ git clone https://github.com/edoardoruffoli/SDN-TrafficPrioritization
Add the traffic prioritization module to the Floodlight controller on your system:
$ rsync -av $REPO_ROOT/floodlight/ $FLOODLIGHT_ROOT/
- Download the latest version of OvS:
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install openvswitch-switch
The following steps are mostly taken from https://github.com/CPqD/ofsoftswitch13.
- Download build requirements:
$ sudo apt-get update
$ sudo apt-get install cmake libpcap-dev libxerces-c3.2 libxerces-c-dev libpcre3 libpcre3-dev flex bison pkg-config autoconf libtool libboost-dev
- Setup Netbee:
$ git clone https://github.com/netgroup-polito/netbee.git
$ cd netbee/src
$ cmake .
$ make
$ sudo cp ../bin/libn*.so /usr/local/lib
$ sudo ldconfig
$ sudo cp -R ../include/* /usr/include/
- Build OfSoftSwitch13
$ git clone https://github.com/CPqD/ofsoftswitch13
$ ./boot.sh
$ ./configure
$ make
$ sudo make install
- Download pip:
$ sudo apt install python-pip
- Install requirements:
$ pip install -r requirements.txt
- Install Iperf:
$ sudo apt-get install iperf
- Install ethtool:
$ sudo apt install ethtool
Ethtool is needed to fix a bug with the usage of TCP with Iperf #653
- Build and run Floodlight
$ cd $FLOODLIGHT_ROOT
$ ant run
- Run the script to create the topology with:
$ python topology.py
- Choose one of the execution options:
┌─────────────────────────────────────────────────────────────────────────┐
│ │
│ SDN-based traffic prioritization │
│ │
│ Here you can run some simulations │
│ │
│ │
│ 1 - Test A: DSCP Remark │
│ 2 - Test B: QoS guarantees │
│ 3 - Test C: Traffic Prioritization │
│ 4 - Test D: Comprehensive tests
5 - Simulation without automatic test│
│ 6 - Clear Mininet Configuration │
│ 7 - Exit │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
>>
[1] H. Krishna, N. L. M. van Adrichem and F. A. Kuipers, "Providing bandwidth guarantees with OpenFlow," 2016 Symposium on Communications and Vehicular Technologies (SCVT), 2016, pp. 1-6, doi: 10.1109/SCVT.2016.7797664.
- Gianluca Cometa @gianlucacometa
- Edoardo Ruffoli @edoardoruffoli