2113 | | No site administrative features are available for this test case, so verified controller connections for known controllers. |
2114 | | The BBN InstaGENI !OpenFlow switch is ''06:d6:84:34:97:c6:c9:00'' and was connected to the following controller: |
2115 | | {{{ |
2116 | | lnevers@mallorea:~$ ./nox-console -n localhost -p 11018 getnodes | grep 06:d6:84:34:97:c6:c9:00 |
2117 | | 06:d6:84:34:97:c6:c9:00 |
2118 | | lnevers@mallorea:~$ ./nox-console -n localhost -p 11017 getnodes | grep 06:d6:84:34:97:c6:c9:00 |
2119 | | 06:d6:84:34:97:c6:c9:00 |
2120 | | lnevers@mallorea:~$ ./nox-console -n localhost -p 11018 getnodes | grep 06:d6:84:34:97:c6:c9:00 |
2121 | | 06:d6:84:34:97:c6:c9:00 |
2122 | | lnevers@mallorea:~$ ./nox-console -n localhost -p 11019 getnodes | grep 06:d6:84:34:97:c6:c9:00 |
2123 | | 06:d6:84:34:97:c6:c9:00 |
2124 | | lnevers@mallorea:~$ |
2125 | | }}} |
2126 | | |
2127 | | == 32. As Experimenter3, verify that traffic flows == |
2128 | | As Experimenter 3 (lnevers2@bbn.com) verified that traffic is only allowed for network resources ad defined for the slivers and no traffic can be exchanged across the different experiments. |
2129 | | |
2130 | | |
2131 | | == 33. Verify Controller settings == |
2132 | | |
2133 | | Verify that no default controller, switch fail-open behavior, or other resource other than experimenters' controllers, can control how traffic flows on network resources assigned to experimenters' slivers. |
2134 | | |
2135 | | == 34. Set the hard and soft timeout of flowtable entries == |
2136 | | |
2137 | | Flow timeout scenarios were verified by modifying the "idle_timeout" from "0" to "15" seconds and modifying the "hard_timeout" from "0" to 40 seconds in the file src/nox/coreapps/switch/switch.cc and tested in these scenarios: |
2138 | | |
2139 | | - Stopping the controller and starting a flow within the "idle_timeout" (15 sec) allow traffic delivery. |
2140 | | - Stopping the controller and starting a flow after the "hard_timeout" (40 sec) does not allow traffic delivery. |
2141 | | |
2142 | | == 35. Get switch statistics and flowtable entries == |
2143 | | |
2144 | | The goal of this step is to get switch statistics and flowtable entries for each of the experiments from the InstaGENI !OpenFlow switch. To gather this information switched from a NOX controller to a FloodLight Controller and gathered information in this test step. |
2145 | | |
2146 | | First a list of switches connected to the Floodlight controller running on port 33017 (experiment1): |
| 2113 | No site administrative features are available for this test case, so verified controller connections for known controllers with !FloodLight commands. Following is a list of switches connected to the Floodlight controller running on port 33017 (experiment1): |
| 2133 | |
| 2134 | If running NOX, user can show which switched are connected to a controller. For example, to run these the experiments in this test case, 3 NOX controllers were run: |
| 2135 | {{{ |
| 2136 | lnevers@mallorea:~$ ps -eaf|grep nox |
| 2137 | lnevers 1241 1 0 2012 ? 02:28:20 /home/lnevers/nox/build/src/.libs/lt-nox_core --info=/home/lnevers/nox-33019.info -i ptcp:33019 switch lavi_switches lavi_swlinks jsonmessenger tcpport=11019 sslport=0 |
| 2138 | lnevers 4324 1 0 2012 ? 02:27:39 /home/lnevers/nox/build/src/.libs/lt-nox_core --info=/home/lnevers/nox-33018.info -i ptcp:33018 switch lavi_switches lavi_swlinks jsonmessenger tcpport=11018 sslport=0 |
| 2139 | lnevers 12162 1 2 2012 ? 11:23:58 /home/lnevers/nox/build/src/.libs/lt-nox_core --info=/home/lnevers/nox-33020.info -i ptcp:33020 switch lavi_switches lavi_swlinks jsonmessenger tcpport=11020 sslport=0 |
| 2140 | }}} |
| 2141 | User can query the NOX controller to show switches connected. The BBN InstaGENI !OpenFlow switch is ''06:d6:84:34:97:c6:c9:00'' and was connected to the following the following each of the NOX Controllers: |
| 2142 | {{{ |
| 2143 | lnevers@mallorea:~$ ./nox-console -n localhost -p 11018 getnodes | grep 06:d6:84:34:97:c6:c9:00 |
| 2144 | 06:d6:84:34:97:c6:c9:00 |
| 2145 | lnevers@mallorea:~$ ./nox-console -n localhost -p 11017 getnodes | grep 06:d6:84:34:97:c6:c9:00 |
| 2146 | 06:d6:84:34:97:c6:c9:00 |
| 2147 | lnevers@mallorea:~$ ./nox-console -n localhost -p 11018 getnodes | grep 06:d6:84:34:97:c6:c9:00 |
| 2148 | 06:d6:84:34:97:c6:c9:00 |
| 2149 | lnevers@mallorea:~$ ./nox-console -n localhost -p 11019 getnodes | grep 06:d6:84:34:97:c6:c9:00 |
| 2150 | 06:d6:84:34:97:c6:c9:00 |
| 2151 | lnevers@mallorea:~$ |
| 2152 | }}} |
| 2153 | |
| 2154 | == 32. As Experimenter3, verify that traffic flows == |
| 2155 | |
| 2156 | As Experimenter 3 (lnevers2@bbn.com) verified that traffic is only allowed for network resources ad defined for the slivers and no traffic can be exchanged across the different experiments. |
| 2157 | |
| 2158 | |
| 2159 | == 33. Verify Controller settings == |
| 2160 | |
| 2161 | Verify that no default controller, switch fail-open behavior, or other resource other than experimenters' controllers, can control how traffic flows on network resources assigned to experimenters' slivers. |
| 2162 | |
| 2163 | == 34. Set the hard and soft timeout of flowtable entries == |
| 2164 | |
| 2165 | Flow timeout scenarios were verified by modifying the "idle_timeout" from "0" to "15" seconds and modifying the "hard_timeout" from "0" to 40 seconds in the file src/nox/coreapps/switch/switch.cc and tested in these scenarios: |
| 2166 | |
| 2167 | - Stopping the controller and starting a flow within the "idle_timeout" (15 sec) allow traffic delivery. |
| 2168 | - Stopping the controller and starting a flow after the "hard_timeout" (40 sec) does not allow traffic delivery. |
| 2169 | |
| 2170 | == 35. Get switch statistics and flowtable entries == |
| 2171 | |
| 2172 | The goal of this step is to get switch statistics and flowtable entries for each of the experiments from the InstaGENI !OpenFlow switch. To gather this information switched from a NOX controller to a FloodLight Controller and gathered information in this test step. |
| 2173 | |
| 2174 | First a list of switches connected to the Floodlight controller running on port 33017 (experiment1): |
| 2175 | {{{ |
| 2176 | $ curl http://localhost:9090/wm/core/controller/switches/json |
| 2177 | [{"dpid":"0e:84:00:12:e2:22:63:38"}, |
| 2178 | {"dpid":"06:d6:ac:16:2d:f5:2d:00"}, |
| 2179 | {"dpid":"06:d6:00:24:a8:d2:b8:40"}, |
| 2180 | {"dpid":"0e:84:00:12:e2:22:63:1d"}, |
| 2181 | {"dpid":"0e:84:00:12:e2:22:6f:e5"}, |
| 2182 | {"dpid":"0e:84:00:24:a8:d2:48:00"}, |
| 2183 | {"dpid":"06:d6:84:34:97:c6:c9:00"}, <<== GPO InstaGENI OF switch |
| 2184 | {"dpid":"0e:84:00:26:f1:40:a8:00"}, |
| 2185 | {"dpid":"0e:84:00:24:a8:d2:b8:40"}, |
| 2186 | {"dpid":"06:d6:00:12:e2:22:63:38"}, |
| 2187 | {"dpid":"0e:84:00:23:47:c8:bc:00"}, |
| 2188 | {"dpid":"0e:84:00:23:47:ca:bc:40"}, |
| 2189 | {"dpid":"06:d6:00:24:a8:5d:0b:00"}, |
| 2190 | {"dpid":"0e:84:00:12:e2:22:81:42"}, |
| 2191 | {"dpid":"06:d6:00:12:e2:b8:a5:d0"}, |
| 2192 | {"dpid":"0e:84:00:12:e2:22:63:6e"}] |
| 2193 | }}} |
2238 | | Get layer 2 topology information about slivers in each slice. |
2239 | | |
2240 | | == 37. Layer 2 flows == |
2241 | | |
2242 | | Following are flows that match only on layer 2, and confirm whether the matching is done in hardware, first the list of devices tracked by the FloodLight controller: |
2243 | | {{{ |
2244 | | $ curl http://localhost:9090/wm/device/ |
2245 | | [{"mac":["02:56:04:8d:72:f5"],"ipv4":[],"vlan":[],"attachmentPoint": |
2246 | | [{"switchDPID":"06:d6:00:12:e2:22:63:38","errorStatus":null,"port":12}, |
2247 | | {"switchDPID":"06:d6:00:12:e2:b8:a5:d0","errorStatus":null,"port":5}, |
2248 | | {"switchDPID":"06:d6:00:24:a8:5d:0b:00","errorStatus":null,"port":7}, |
2249 | | {"switchDPID":"06:d6:ac:16:2d:f5:2d:00","errorStatus":null,"port":21}],"lastSeen":1357741969672}, |
2250 | | |
2251 | | {"mac":["02:21:ba:c3:54:fc"],"ipv4":[],"vlan":[],"attachmentPoint": |
2252 | | [{"switchDPID":"0e:84:00:23:47:c8:bc:00","errorStatus":null,"port":49}, |
2253 | | {"switchDPID":"06:d6:84:34:97:c6:c9:00","errorStatus":null,"port":97}, |
2254 | | {"switchDPID":"06:d6:00:24:a8:5d:0b:00","errorStatus":null,"port":19},{"switchDPID":"06:d6:ac:16:2d:f5:2d:00","errorStatus":null,"port":22}],"lastSeen":1357741969858}] |
2255 | | }}} |
2256 | | |
2257 | | Now some topology information about the inter-switch links: |
| 2266 | |
| 2267 | Get layer 2 topology information about slivers for controller on port 33017 (experiment 1) topology information about the inter-switch links: |
2285 | | "src-port":16,"src-switch":"0e:84:00:12:e2:22:63:38","type":"DIRECT_LINK"}]lnevers@mallorea:~ |
2286 | | $ |
2287 | | }}} |
2288 | | |
2289 | | == 38. Install flows layer 3 flows == |
2290 | | |
2291 | | If supported, install flows that match only on layer 3 fields, and confirm whether the matching is done in hardware. |
| 2295 | "src-port":16,"src-switch":"0e:84:00:12:e2:22:63:38","type":"DIRECT_LINK"}]lnevers@mallorea:~ |
| 2296 | }}} |
| 2297 | |
| 2298 | == 37. Layer 2 flows == |
| 2299 | |
| 2300 | Following are flows that match only on layer 2, and confirm whether the matching is done in hardware, first the list of devices tracked by the FloodLight controller: |
| 2301 | {{{ |
| 2302 | $ curl http://localhost:9090/wm/device/ |
| 2303 | [{"mac":["02:56:04:8d:72:f5"],"ipv4":[],"vlan":[],"attachmentPoint": |
| 2304 | [{"switchDPID":"06:d6:00:12:e2:22:63:38","errorStatus":null,"port":12}, |
| 2305 | {"switchDPID":"06:d6:00:12:e2:b8:a5:d0","errorStatus":null,"port":5}, |
| 2306 | {"switchDPID":"06:d6:00:24:a8:5d:0b:00","errorStatus":null,"port":7}, |
| 2307 | {"switchDPID":"06:d6:ac:16:2d:f5:2d:00","errorStatus":null,"port":21}],"lastSeen":1357741969672}, |
| 2308 | |
| 2309 | {"mac":["02:21:ba:c3:54:fc"],"ipv4":[],"vlan":[],"attachmentPoint": |
| 2310 | [{"switchDPID":"0e:84:00:23:47:c8:bc:00","errorStatus":null,"port":49}, |
| 2311 | {"switchDPID":"06:d6:84:34:97:c6:c9:00","errorStatus":null,"port":97}, |
| 2312 | {"switchDPID":"06:d6:00:24:a8:5d:0b:00","errorStatus":null,"port":19},{"switchDPID":"06:d6:ac:16:2d:f5:2d:00","errorStatus":null,"port":22}],"lastSeen":1357741969858}] |
| 2313 | }}} |
| 2314 | |
| 2315 | |
| 2316 | == 38. Install flows layer2/layer 3 flows == |
| 2317 | |
| 2318 | Install flows that Layer 2 or 3 fields, and confirm whether the matching is done in hardware. |
| 2319 | |
| 2320 | First checked that there are no existing static flows: |
| 2321 | {{{ |
| 2322 | $ curl http://localhost:9090/wm/staticflowentrypusher/list/all/json |
| 2323 | {"success":false,"informational":false,"reasonPhrase":"Not Found", |
| 2324 | "uri":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5", |
| 2325 | "serverError":false,"connectorError":false,"clientError":true, |
| 2326 | "globalError":false,"redirection":false,"recoverableError":false, |
| 2327 | "name":"Not Found","error":true,"throwable":null,"description": |
| 2328 | "The server has not found anything matching the request URI","code":404} |
| 2329 | }}} |
| 2330 | |
| 2331 | Not able to generate a static flow entry that actually worked. |