== Running Floodlight with !MobilityFirst == The [https://mobilityfirst.orbit-lab.org/wiki/SystemPrototyping/Projects/ClickRouter 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: 1. Two images have to be loaded for the controller and source/destination nodes : a. Image '''aravind-mf1.ndz''' for the source and destination to be loaded on nodes ''node1-1 & node1-2'' b. Image '''floodlight-controller.ndz''' for the controller to be loaded on ''node1-11'' c. 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. d. 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).