40 | | == 2. Installation == |
41 | | |
42 | | == 2.1 Required Packages == |
43 | | |
44 | | {{{ |
45 | | sudo apt-get install build-essential default-jdk ant python-dev eclipse git |
46 | | }}} |
47 | | |
48 | | == 2.2 Installing and Building Floodlight == |
49 | | |
50 | | {{{ |
51 | | git clone git://github.com/floodlight/floodlight.git |
52 | | cd floodlight |
53 | | git checkout fl-last-passed-build |
54 | | ant |
55 | | }}} |
56 | | Floodlight's installation guide can be found [http://www.openflowhub.org/display/floodlightcontroller/Installation+Guide here] |
57 | | |
58 | | The MobilityFirst modules for Floodlight can be downloaded using |
59 | | |
60 | | {{{ |
61 | | svn co https://svn.orbit-lab.org/mobilityfirst/trunk/code/prototype/openflow/floodlight_modules/ |
62 | | }}} |
63 | | Place the contents of floodlight_modules inside the src/main/java/net/floodlightcontroller/ folder. |
64 | | |
65 | | |
66 | | == 3. Running Floodlight with MobilityFirst == |
67 | | |
68 | | 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. |
69 | | |
70 | | Before starting the controller, it has to be configured to load the MobilityFirst modules on start up and to listen for PACKET_IN messages. |
71 | | |
72 | | 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. |
73 | | |
74 | | {{{ |
75 | | net.floodlightcontroller.guidtomacmapper.GUIDtoMACMapper,\ |
76 | | net.floodlightcontroller.mffunctions.MFFunctions |
77 | | }}} |
78 | | |
79 | | The file should look like |
80 | | {{{ |
81 | | floodlight.modules = net.floodlightcontroller.staticflowentry.StaticFlowEntryPusher,\ |
82 | | net.floodlightcontroller.forwarding.Forwarding,\ |
83 | | net.floodlightcontroller.jython.JythonDebugInterface,\ |
84 | | net.floodlightcontroller.counter.CounterStore,\ |
85 | | net.floodlightcontroller.perfmon.PktInProcessingTime,\ |
86 | | net.floodlightcontroller.guidtomacmapper.GUIDtoMACMapper,\ |
87 | | net.floodlightcontroller.mffunctions.MFFunctions |
88 | | net.floodlightcontroller.restserver.RestApiServer.port = 8080 |
89 | | net.floodlightcontroller.core.FloodlightProvider.openflowport = 6633 |
90 | | }}} |
91 | | |
92 | | Add the following two lines to src/main/resources/META_INF/services/net.floodlightcontroller.core.moduele.IFloodlightModule |
93 | | {{{ |
94 | | net.floodlightcontroller.guidtomacmapper.GUIDtoMACMapper |
95 | | net.floodlightcontroller.mffunctions.MFFunctions |
96 | | }}} |
97 | | |
98 | | 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 |
99 | | {{{ |
100 | | if (match.getDataLayerType == 0x27c0) |
101 | | return Command.CONTINUE; |
102 | | }}} |
103 | | |
104 | | Compile and run with, |
105 | | {{{ |
106 | | ant |
107 | | java -jar target/floodlight.jar |
108 | | }}} |
109 | | |
110 | | == 4. Running the SDN MobilityFirst Prototype with Floodlight in SB9== |
111 | | |
112 | | ''' MobilityFirst Prototype in OpenFlow ''' |
113 | | |
114 | | |
115 | | The MobilityFirst SDN Prototype in SB9 can be set up using the following instructions: |
116 | | 1. Two images have to be loaded for the controller and source/destination nodes : |
117 | | |
118 | | a. Image '''aravind-mf1.ndz''' for the source and destination to be loaded on nodes ''node1-1 & node1-2'' |
119 | | |
120 | | b. Image '''floodlight-controller.ndz''' for the controller to be loaded on ''node1-11'' |
121 | | |
122 | | 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. |
123 | | |
124 | | d. On the node with the controller, cd floodlight_mf and java -jar target/floodlight.jar for running the controller. |
125 | | |
126 | | 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). |
127 | | |
128 | | |
129 | | == 4. Performance == |