Nowadays manufacturers usually keep algorithms used in network equipments secret, due to competition between the companies. This means that the firmware of these devices is a closed system, source codes are kept for the company, and there is little or no room left for developing new algorithms, and trying them on live hardware. OpenFlow addresses this problem by making switches programmable, thus we can influence the whole packet forwarding process. As the system is an open standard, it is possible to try algorithms that existed only on paper before.
The main topic of this essay is greedy routing, and its implementation in OpenFlow networks. The aim of greedy routing is to simplify routing, which results in network devices needing less computing resources and memory in order to perform their task. The number of messages sent by the routing protocols is also reduced. However this approach has its disadvantages as well, which will be addressed in the paper. I made a working implementation, which is attached to this document, and I also modified some development tools in order to make them work with the most recent OpenFlow standard (1.1).
After implementing the routing algorithm I tested the software in the Mininet system which enables the emulation of huge networks on a single computer. I also tested the implementation on real hardware in the university laboratories. The implementation created for this paper can be applied in datacenters, or other places where fast routing is important, and the network topology changes less frequently.