Changes between Initial Version and Version 1 of NOX

12/17/10 10:39:35 (10 years ago)
Josh Smift



  • NOX

    v1 v1  
     3= Overview =
     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'.)
     7= Building NOX =
     9This is known to work on Ubuntu 10.04.
     11These steps are based on the docs at
     13Update the version number below before you start building (in the version and description strings in the Debian manifest).
     15== Install depended-upon packages ==
     18cd /etc/apt/sources.list.d
     19sudo wget
     20sudo apt-get update
     21sudo apt-get install nox-dependencies git-core subversion
     22sudo rm nox.list
     25== Build NOX ==
     28mkdir -p ~/src
     29cd ~/src
     30rm -rf nox
     31git clone git://
     32cd nox
     34mkdir build
     35cd build
     36../configure --prefix=/usr --with-python=yes
     37make -j 5
     38make check
     41== Package it up ==
     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
     48cd ~/pkgbuild/root/etc/init.d
     49svn export nox
     50chmod 544 nox
     52mkdir ~/pkgbuild/root/DEBIAN
     53cd ~/pkgbuild/root/DEBIAN
     54echo "Package: nox" > control
     55echo "Version:" >> control
     56echo "Architecture: i386" >> control
     57echo "Maintainer: GPO Ops <>" >> 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
     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
     69cd ..
     71pkgname=$(grep "^Package:" ${ctlfile} | awk '{print $2}')
     72version=$(grep "^Version:" ${ctlfile} | awk '{print $2}')
     73arch=$(grep "^Architecture:" ${ctlfile} | awk '{print $2}')
     76dpkg -b root $tgtfile