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
5 Answers
Veryx PktBlaster is excellent for with following features
1.Simulating mix of OpenFlow switch versions
2.Throughput, Latency Measurement for both Fixed Load and Varying Load and plenty more Features
Reference: http://sdn.veryxtech.com
You can use remote controllers with mininet.
For example,
- Start a VM, start flood light controller
- 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).
- 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.
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.