<reponame>SpeedJack/anaws
\chapter{Introduction}\label{ch:intro}

Floodlight is an open source and Java based controller. It works with the
OpenFlow protocol in order to produce flow tables for network switches and is
used for the SDN (Software Defined Networks) architecture in order to improve
flexibility for large scale and complex network management.

Normally Floodlight makes use of the Dijkstra's algorithm to find the minimum
cost broadcast tree for the network topology according to a certain metric
(bandwidth for example).

For this project we implement a new module which manages routing, implementing a
different type of algorithm to replace Dijkstra based on the Dual Ascent
approach, that is a dual version of the minimum Steiner tree problem.

We will then collect statistics on the total cost of the broadcast tree produced
by Dijkstra and the Dual Ascent algorithm and we will compare them. We will also
compare the throughput between hosts when the two algorithms are used using the
\code{iperf} tool.
