NOX is an open-source platform that simplifies the creation of software for controlling or monitoring networks. Programs written within NOX (using either C++ or Python) have flow-level control of the network. This means that they can determine which flows are allowed on the network and the path they take. In addition, NOX provides programs with access to the network state including the network topology and the location of all detected hosts.
NOX was designed to support both large enterprise networks of hundreds of switches (supporting many thousands of hosts) and home networks with a single switch running on a low-performance embedded platform.
The primary goals of NOX are:
NOX is currently undergoing heavy development with bug fixes and features added daily. We currently recommend that developers obtain NOX directly from git. To do so:
git clone git://noxrepo.org/noxcore
Periodically we issue releases which are likely to be more stable than what is available through git. You can download the latest release here. To run NOX you'll also need an OpenFlow switch. NOX should work with the most current OpenFlow reference implementation.
See the NOX manual for build instructions.
The best place to start learning about NOX is from the users manual which contains instructions for installing, configuring and running NOX. New users may also be interested to read a short editorial which provides a high level overview of NOX and a brief justification of its design.
All NOX source and documentation is released under version three of the GNU General Public License (GPLv3).