Solution for the load balancer for Floodlight.
We have provided skeleton code for
Floodlight and an implementation of
Dijkstra's algorithm in Java. Your should call your package
edu.wisc.cs.bootcamp.sdn.routing
.
We have also provided skeleton code for POX users. POX uses are also welcome to use this implementation of Dijkstra's algorithm.
Floodlight users: be sure to remove your learning switch from floodlightdefault.properties, otherwise your learning switch application will install flow entries instead of your routing application.
If you start your controller before you start Mininet, then all hosts will be discovered by Floodlight's device service before you need to route any packets.
You will need to wait a few seconds after you start Mininet to allow Floodlight to discover the links in the network. If you try to send (and route) traffic before this, then you may not be able to find a path through the network.
You will need more than a single switch to test your routing application. Mininet provides two built-in topologies that you can use for this purpose:
sudo mn --topo tree,3 --mac --arp --switch ovsk --controller remote
sudo mn --topo linear,4 --mac --arp --switch ovsk --controller remote
You can also create your own custom topologies in mininet. We have provided two custom topologies. You can install these topologies by running the following commands in your VM:
cd ~/mininet/custom/ wget http://cs.wisc.edu/~agember/sdn/code/topos.tgz tar xzvf topos.tgz
sudo mn --custom ~/mininet/custom/fattree.py --topo fattree --mac --arp --switch ovsk --controller remote
sudo mn --custom ~/mininet/custom/mesh.py --topo mesh --mac --arp --switch ovsk --controller remote