Testing Openflow/SDN Controller Application

Tag: networking , testing , network-programming , openflow Author: ritadeye Date: 2012-12-04

Openflow/SDN networks gives a remote controller the ability to manage the behavior of network devices i.e. configurations. They can forward instruction sets to dynamically change network configuration. But there is always some room for bugs and failures in your SDN controller application. What i am getting is that i had to painstakingly dig through logs to find the one or two inputs that lead my controller software to break. What are the best testing practices for controller code i.e. traffic simulator, stress testing etc

Best Answer

there is a company called Ixia who provides Ethernet testing SW and HW. They have a comprehensive portfolio to test OpenFlow/SDN. They are also the chair of Openflow industry body.

http://www.ixiacom.com/solutions/sdn-openflow/index.php

Other Answer1

Why not use Mininet for testing your controller/application. You can direct Mininet to not use its own controller and instead use the controller/application running on localhost..

Other Answer2

You can use remote controllers with mininet.

For example,

  1. Start a VM, start flood light controller
  2. After the floodlight is up and running, you can go to your browser and type in a URL as follows http://192.168.110.2:8080/ui/index.html (Replace 192.168.110.2 with the proper inet address).
  3. Start a VM, start mininet with following topology sudo mn --topo linear,2 --controller=remote,ip=ip_floodlight_controller,port=6633

So now you can emulate any topology in mininet and test controller for bugs and failures.

In summary, you can use any other controller with mininet, emulate any topology in mininet and test your controller for bugs and failures in different scenarios.

Other Answer3

Try the below link that contains a tutorial named as OpenFlowTutorial.

http://archive.openflow.org/wk/index.php/OpenFlow_Tutorial

It is one of the best tutorials for SDNs implementation. It explains about setting up mininet,wireshark(for monitoring),which controller APIs are available, how to implement a controller and so on.