25 | | The dotted box (labeled sw_sb09) represents the !OpenFlow enabled NEC IP8800/S3640-48T2XW switch, currently running firmware supporting !OpenFlow v0.8.9. The switch is pre-configured so that ports 25-36 (the data VLAN, in red) is an !OpenFlow virtual switch that listens for a controller running on the SB9 Console. There exists a virtual connection between the controller and virtual switch, represented by the dotted red line. Two trunked connections exist - one connects the setup with the ORBIT network (through sw_sb_top), and the other not only allows the console to communicate with the nodes, but also provides the secure controller-switch VLAN needed for the !OpenFlow setup. The experimenter would be able to monitor and manipulate the setup from the Console. |
| 25 | The dotted box (labeled sw_sb09) represents the !OpenFlow enabled NEC IP8800/S3640-48T2XW switch, currently running firmware supporting !OpenFlow v0.8.9. The switch is pre-configured so that ports 25-36 (the data VLAN, in red) is an !OpenFlow virtual switch that listens for a controller running on the SB9 Console. There exists a virtual connection between the controller and virtual switch, represented by the dotted red line. Two trunked connections exist on the sw_sb09 - one connects the setup with the ORBIT network (through sw_sb_top), and the other not only allows the console to communicate with the nodes, but also provides the secure controller-switch VLAN needed for the !OpenFlow setup. The experimenter would be able to monitor and manipulate the setup from the Console. |
28 | | == The Console == |
29 | | We can run the controller on the console or on one of the nodes as they each can have equal access the the openflow controling vlan. |
30 | | |
31 | | === Installing the controller (on a node) === |
32 | | |
33 | | Two distinct controllers, one from the !OpenFlow reference System (v0.8.9r2) and another from NOX-core (v0.5.0), have been successfully installed and tested on the Console. These can be downloaded from the following places: |
| 28 | == The Controller == |
| 29 | We can run the controller on the Console or on one of the nodes as they each can have equal access the the !OpenFlow Control VLAN. Two distinct controllers, one from the !OpenFlow reference System (v0.8.9r2) and another from NOX-core (v0.5.0), have been successfully installed and tested on the Console. These may be installed in your userspace if you wish to run one of these controllers from the Console. |
| 30 | |
| 31 | === Installing the controller on a node === |
| 32 | The software can be downloaded from the following places: |
102 | | A sub-set of these instructions can be used to install a "custom" controller in userspace on the console. Most of the requsite libraries should already be installed. |
103 | | |
104 | | ''TODO'' list subset. |
| 101 | A sub-set of these instructions can be used to install a "custom" controller in userspace on the console. Most of the requisite libraries should already be installed. Use the following commands to install the Reference system in your userspace: |
| 102 | |
| 103 | '''for the !OpenFlow Reference System :'''[[BR]] |
| 104 | {{{ |
| 105 | cd |
| 106 | git clone http://openflowswitch.org/openflow |
| 107 | cd openflow |
| 108 | ./boot.sh |
| 109 | ./configure --with-l26=/lib/modules/`uname -r`/build |
| 110 | make |
| 111 | make install |
| 112 | }}} |
| 113 | |
| 114 | '''for NOX :'''[[BR]] |
| 115 | {{{ |
| 116 | cd |
| 117 | git clone git://noxrepo.org/noxcore |
| 118 | cd noxcore/ |
| 119 | ./boot.sh |
| 120 | mkdir build/ |
| 121 | cd build/ |
| 122 | ../configure --with-python=yes |
| 123 | make |
| 124 | make check |
| 125 | }}} |
| 126 | |
121 | | Some of these tools require root privlages and will thus require a custom installation on a node. Otherse can be run from the console directly in an unprivlaged mode. |
122 | | |
123 | | ''TODO'' indicate what credentails are required for each tool. |
124 | | |
125 | | === the Wireshark plugin === |
126 | | The !OpenFlow Reference system comes with an !OpenFlow wireshark dissector. glib is required for the plugin to work: |
| 145 | Some of these tools require root privileges and will thus require a custom installation on a node. Others can be run from the console directly in an unprivileged mode. |
| 146 | |
| 147 | === the Wireshark plugin === |
| 148 | The !OpenFlow Reference system comes with an !OpenFlow wireshark dissector. |
| 149 | |
| 150 | '''Permissions:''' [[BR]] |
| 151 | You must be root in order to use Wireshark; Therefore you must install it on a node. [[BR]] |
| 152 | |
| 153 | '''Prerequisites:''' [[BR]] |
| 154 | glib (and of course, wireshark) is required for the plugin to work: |
146 | | 192.168.x.y is the IP address block associated with the !OpenFlow VLAN. When setting the node IP addresses (i.e. using ifconfig), x.y should be made unique to each node. A caveat is that iperf cannot take real-time bandwidth measurements. Real-time bandwidth use can be monitored using BWM-ng. |
147 | | |
| 189 | |
| 190 | Where 192.168.x.y is the IP address of the iperf server. A caveat is that iperf cannot take real-time bandwidth measurements. Real-time bandwidth use can be monitored using BWM-ng. |
| 191 | |
| 192 | '''On the Console'''[[BR]] |
| 193 | Iperf is also installed on the Console. The interfaces available on the Console are the following: |
| 194 | * eth1 - 192.168.100.28 |
| 195 | * eth1.27 / Control - 10.19.0.10 |
| 196 | * eth1.28 / OF virtual switch - 192.168.1.28 |
| 197 | * eth1.100 / OFP interface - 172.16.100.1 |
| 198 | |
149 | | By default, the tool will monitor all interfaces on the Console. To monitor just the !OpenFlow interface, you must specify `eth1.100`. To output this to a csv, use the following command (-t specifies a sampling rate of 1000 msec, or 1 sample/sec): |
150 | | |
| 200 | BWM-ng is a tool capable of taking real-time throughput measurements of different interfaces of a host. |
| 201 | |
| 202 | '''Permissions:''' [[BR]] |
| 203 | BWM-ng does not require root access, and is installed on the Console. |
| 204 | |
| 205 | '''Usage:'''[[BR]] |
| 206 | By default, the tool will monitor all interfaces on the Console. To monitor just the !OpenFlow interface, you must specify `eth1.100`. To output this to a csv, use the following command: |