Changes between Initial Version and Version 1 of NOX


Ignore:
Timestamp:
12/17/10 10:39:35 (13 years ago)
Author:
Josh Smift
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NOX

    v1 v1  
     1[[PageOutline]]
     2
     3= Overview =
     4
     5NOX is "an open-source OpenFlow controller. Its purpose is to provide a simplified platform for writing network control software in C++ or Python." That second clause is important: "NOX itself" isn't really an OpenFlow controller per se; you always run NOX with one or more modules, and those modules are, more precisely, the OpenFlow controllers. NOX comes with some example controllers, including a C++ learning-switch controller called 'switch'. (Not to be confused with the Python learning-switch controller called 'pyswitch'.)
     6
     7= Building NOX =
     8
     9This is known to work on Ubuntu 10.04.
     10
     11These steps are based on the docs at http://noxrepo.org/noxwiki/index.php/NOX_Installation.
     12
     13Update the version number below before you start building (in the version and description strings in the Debian manifest).
     14
     15== Install depended-upon packages ==
     16
     17{{{
     18cd /etc/apt/sources.list.d
     19sudo wget http://openflowswitch.org/downloads/debian/nox.list
     20sudo apt-get update
     21sudo apt-get install nox-dependencies git-core subversion
     22sudo rm nox.list
     23}}}
     24
     25== Build NOX ==
     26
     27{{{
     28mkdir -p ~/src
     29cd ~/src
     30rm -rf nox
     31git clone git://noxrepo.org/nox
     32cd nox
     33./boot.sh
     34mkdir build
     35cd build
     36../configure --prefix=/usr --with-python=yes
     37make -j 5
     38make check
     39}}}
     40
     41== Package it up ==
     42
     43{{{
     44sudo rm -rf ~/pkgbuild/root
     45mkdir -p ~/pkgbuild/root/etc/init.d ~/pkgbuild/root/usr
     46make INSTALL='/usr/bin/install -C' prefix=~/pkgbuild/root/usr install
     47
     48cd ~/pkgbuild/root/etc/init.d
     49svn export http://groups.geni.net/svn/syseng/trunk/gposw/nox/noxctl/noxctl.sh nox
     50chmod 544 nox
     51
     52mkdir ~/pkgbuild/root/DEBIAN
     53cd ~/pkgbuild/root/DEBIAN
     54echo "Package: nox" > control
     55echo "Version: 0.9.0.20101110-0ubuntu1" >> control
     56echo "Architecture: i386" >> control
     57echo "Maintainer: GPO Ops <gpo-ops@geni.net>" >> control
     58echo "Section: misc" >> control
     59echo "Priority: optional" >> control
     60echo "Description: NOX Zaku 0.9.0 as of 2010-11-10." >> control
     61echo "Depends: libboost-filesystem1.40.0,libboost-test1.40.0" >> control
     62
     63cd ..
     64sudo chown -Rh root .
     65sudo chgrp -Rh root .
     66sudo find . \( -type f -o -type d \) -exec chmod ugo-w {} \;
     67sudo chmod u+w DEBIAN
     68
     69cd ..
     70ctlfile="root/DEBIAN/control"
     71pkgname=$(grep "^Package:" ${ctlfile} | awk '{print $2}')
     72version=$(grep "^Version:" ${ctlfile} | awk '{print $2}')
     73arch=$(grep "^Architecture:" ${ctlfile} | awk '{print $2}')
     74tgtfile="${pkgname}_${version}_${arch}.deb"
     75
     76dpkg -b root $tgtfile
     77}}}