MultiPathRouting module is a Floodlight Module, using the dijkstra algorithm to find multiple shortest path over a network. It also modify the original forwarding modules and make it use the MultiPathRouting to forward packet. The cost of each link is 1 by default and you can use the IMultiPathRoutingService API to modify the link cost dynamically.
This project collect the link information whenever the link's status has changed and use the guava cache to cache.
This module use the RoundRobin to dispatch multiple shortest path, you can find it and modify it here
- Copy the multipathrouting directory into floodlight/src/main/java/net/floodlightcontroller/.
- Replace the original Forwarding.java with forwarding/Forwarding.jave.
- Append the
net.floodlightcontroller.multipathrouting.MultiPathRouting
intosrc/main/resources/META-INF/services /net.floodlightcontroller.core.module.IFloodlightModule
- Modfiy the floodlight config file, default is
src/main/resources/floodlightdefault.properties
- Append
net.floodlightcontroller.multipathrouting.MultiPathRouting
to the optionfloodlight.modules
- Append
- Rebuild and restart Floodlight controller
This module provides a floodlight service interface which offers two functions now.
- modifyLinkCost(Long srcDpid,Long dstDpid,short cost); You can call this function to modify the cost of the link between two switches.
- getRoute(long srcDpid,short srcPort,long dstDpid,short dstPort); You can caa this function to get one of the shortest path and it depends on the dispatch algorithm.
This module has been tested with Mininet, you can find the testing topology on the script directory.
- Adding Restful API
Hung-Wei Chiu hwchiu@cs.nctu.edu.tw