Development of a Minimum Spanning Tree algorithm as a Software-Defined Networking application

State: completed by Antonio Gallucio

One specific and universal application of Minimal Spanning Trees (MST) is the IEEE 802.1D standard, which governs the behavior of network bridges connecting segments of an Ethernet computer network. This standard calls for the bridges to collectively compute (an object related to) the     MST of the graph describing their connectivity, resulting in a unique path for data to be passed between any pair of bridges, which greatly simplifies the routing of data in the network. Typically, SPT algorithms implement the 802.1D IEEE algorithm by exchanging BPDU (Bridge Protocol Data Unit) messages with other switches to detect loops, and then removes the loop by shutting down selected bridge interfaces. This algorithm guarantees that there is one and only one active path between two network devices. 


In Software-Defined Networks (SDN) based on the OpenFlow protocol, the MST logic is implemented as an application running in and providing services a controller that uses LLDP (Link Layer Discovery Protocol) to find connections between the nodes in the network.     However, due to the characteristics of SDNs in which the intelligence of the switches is abstracted of the data plane to the control plane and its applications, it is necessary to develop an SDN application that allows computing the MST of looped networks. Therefore, this software project tackles problems related to the design and development of such algorithm taking in consideration existing algorithms, such as [3][4] to develop a solution.


The goal of this project is the development and evaluation of a spanning three algorithm in the SDN environment proposed in [5]. Therefore, the student should extend existing controller functionalities in order to build an MST, as well as improvements on the host discovery algorithm, which are essential capabilities towards the development of traffic engineering capabilities. Validation of the proposed tool developed during this project includes an evaluation in a ring topology in which distinct hosts are spread over its nodes.




[1] Perlman, Radia (1985). "An Algorithm for Distributed Computation of a Spanning Tree in an Extended LAN". ACM SIGCOMM Computer Communication Review. 15 (4): 44–53. doi:10.1145/318951.319004.


[2] White paper on Software-Defined Networking: The New Norm for Networks. URL: https://www.opennetworking.org/images/stories/downloads/sdn-resources/white-papers/wp-sdn-newnorm.pdf. Visited on October 2016.


[3] Prim Algorithm. URL: https://en.wikipedia.org/wiki/Prim%27s_algorithm. Visited on October 2016.


[4] Kruskall Algorithm. URL: https://en.wikipedia.org/wiki/Kruskal%27s_algorithm. Visited on October 2016.


[5] B. B. Rodrigues, A. C. Riekstin, G. C. Januário, V. T. Nascimento, T. C. M. B. Carvalho and C. Meirosu, "GreenSDN: Bringing energy efficiency to an SDN emulation environment," 2015 IFIP/IEEE International Symposium on Integrated Network Management (IM), Ottawa, ON, 2015, pp. 948-953.


[6] Mininet Network Emulator. URL: http://mininet.org/. Visited on November, 2016.


10% design, 50% implementation, 40% documentation
Python skills

Supervisors: Dr. Bruno Rodrigues

back to the main page