Running Floodlight with MobilityFirst
The CLICK router project page has details on configurations in which the software router can be used. The file sender and file receiver configurations can be used as end hosts. A node running the router configuration can be used for the storage of chunks.
Before starting the controller, it has to be configured to load the MobilityFirst modules on start up and to listen for PACKET_IN messages.
Open the file src/main/resources/floodlightdefault.properties and add the following lines before the lines that mention the ports for floodlight and the REST API.
net.floodlightcontroller.guidtomacmapper.GUIDtoMACMapper,\ net.floodlightcontroller.mffunctions.MFFunctions
The file should look like
floodlight.modules = net.floodlightcontroller.staticflowentry.StaticFlowEntryPusher,\ net.floodlightcontroller.forwarding.Forwarding,\ net.floodlightcontroller.jython.JythonDebugInterface,\ net.floodlightcontroller.counter.CounterStore,\ net.floodlightcontroller.perfmon.PktInProcessingTime,\ net.floodlightcontroller.guidtomacmapper.GUIDtoMACMapper,\ net.floodlightcontroller.mffunctions.MFFunctions net.floodlightcontroller.restserver.RestApiServer.port = 8080 net.floodlightcontroller.core.FloodlightProvider.openflowport = 6633
Add the following two lines to src/main/resources/META_INF/services/net.floodlightcontroller.core.moduele.IFloodlightModule
net.floodlightcontroller.guidtomacmapper.GUIDtoMACMapper net.floodlightcontroller.mffunctions.MFFunctions
The last step is to edit src/main/java/net/floodlightcontroller/forwarding/Forwarding.java to not process MF packets, i.e, to include the condition
if (match.getDataLayerType == 0x27c0) return Command.CONTINUE;
Compile and run with,
ant java -jar target/floodlight.jar
Running the SDN MobilityFirst Prototype with Floodlight in SB9
The MobilityFirst SDN Prototype on SB9 can be set up using the following instructions:
- Two images have to be loaded for the controller and source/destination nodes :
- Image aravind-mf1.ndz for the source and destination to be loaded on nodes node1-1 & node1-2
- Image floodlight-controller.ndz for the controller to be loaded on node1-11
- On nodes with source & destination, run the scripts under the directory /usr/local/mobilityfirst/scripts/click : init_traf_gen.sh and init_sink.sh respectively.
- On the node with the controller, cd floodlight_mf and java -jar target/floodlight.jar for running the controller.
The configuration for the switch need not be changed except to make sure that the ports with the source and destination are OpenFlow enabled and set to version 1.0 and the controller contr-serv is 10.19.1.11 (This is already the setup in the switch except that OF 1.3 is enabled instead of 1.0).