20 | | === The switch === |
21 | | One of the centerpieces to the setup is the !OpenFlow enabled NEC IP8800/S3640-48T2XW switch running firmware supporting !OpenFlow v0.8.9. The switch is pre-configured so that ports 25-36 (the data VLAN) is an !OpenFlow virtual switch that listens to a controller running on the Console. The configurations can be altered by using the `setvsi` command in the switch's command-line interface. |
22 | | The details behind configuring the virtual switch(es) on the IP8800 can be found [wiki:Documentation/OpenFlow/VirtualSwitch here]. |
23 | | |
24 | | === The Controller === |
25 | | ''' Installing the controller ''' [[BR]] |
26 | | The !OpenFlow reference System (v0.8.9r2) and NOX-core (v0.5.0) have been successfully installed and tested on the Console. These can be downloaded from the following places: |
| 21 | == Installing the controller == |
| 22 | Two 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: |
33 | | ''' Starting the controller ''' [[BR]] |
| 29 | Both can also be installed using Git. Git can be installed with the following command: |
| 30 | {{{ |
| 31 | apt-get install git-core |
| 32 | }}} |
| 33 | |
| 34 | === Installing the !OpenFlow Reference System === |
| 35 | While presented, it is not recommended to install from tarball. |
| 36 | The detailed instructions may be found here: http://www.openflowswitch.org/wp/getstarted/ |
| 37 | |
| 38 | 1. Download software and required packages. If using git: |
| 39 | {{{ |
| 40 | sudo apt-get install git-core automake m4 pkg-config libtool |
| 41 | git clone http://openflowswitch.org/openflow |
| 42 | cd openflow |
| 43 | ./boot.sh |
| 44 | }}} |
| 45 | if installing from tarball: |
| 46 | {{{ |
| 47 | mkdir openflow |
| 48 | cd openflow |
| 49 | wget http://openflowswitch.org/downloads/openflow-0.9.0.tar.gz |
| 50 | tar xzf openflow-0.9.0.tar.gz |
| 51 | cd openflow-0.9.0 |
| 52 | sudo apt-get install gcc linux-headers-`uname -r` |
| 53 | }}} |
| 54 | 2. Make and install. |
| 55 | {{{ |
| 56 | ./configure --with-l26=/lib/modules/`uname -r`/build |
| 57 | make |
| 58 | make install |
| 59 | }}} |
| 60 | |
| 61 | === Installing NOX === |
| 62 | It is not only recommended but also much simpler to use git to install NOX. Therefore the following instructions assume you are using git. The full instructions are found at noxrepo.org: http://noxrepo.org/manual/installation.html [[BR]] |
| 63 | |
| 64 | ''' Dependencies ''' [[BR]] |
| 65 | NOX requires the following packages to be installed on the Console: |
| 66 | * GNU Libtool (libtool) |
| 67 | * Boost C++ libraries (libboost1.35-dev) |
| 68 | * Apache HTTP Server (apache2) |
| 69 | * Xerces C++ parser (libxerces-c28) |
| 70 | * Xerces development files (libxerces-c2-dev) |
| 71 | * SSL development libraries (libssl-dev) |
| 72 | * SQLite 3 development files (libsqlite3-dev) |
| 73 | * Simple JSON for Python (python-simplejson) |
| 74 | |
| 75 | If all dependencies are taken care of, NOX will install with the following steps. |
| 76 | {{{ |
| 77 | cd |
| 78 | git clone git://noxrepo.org/noxcore |
| 79 | cd noxcore/ |
| 80 | ./boot.sh |
| 81 | mkdir build/ |
| 82 | cd build/ |
| 83 | ../configure --with-python=yes |
| 84 | make |
| 85 | make check |
| 86 | }}} |
| 87 | |
| 88 | == Starting the controller == |