NOX Components - noxrepo/nox-classic GitHub Wiki
NOX at its core only provides very low-level methods for interfacing with the network. All higher-level functions and events are created and provided by network applications (aka components). A component is really just an encapsulation of functionality with some additional frills to allow declaration of dependencies. For example, routing can be (and is) implemented as a component within NOX. Any function which requires routing must declare it as a dependency to ensure its availability at runtime.
This page lists the NOX applications that come with the current NOX distribution. The list is non-exhaustive. If an updated list is desired, look at the doxygen documentation shipped with NOX.
Coreapps provided functionalities for network applications and web services.
- messenger: provide TCP/SSL server sockets for communications with other devices, such as hosts.
- snmp: handle snmptrap using a Python script as trap handler through NetSNMP.
This is the list of network applications that actually manage the network:
- Discovery keeps track of links between controlled switches.
- Topology provides an in-memory record of all links currently up in the network.
- Authenticator keeps track of the location of hosts and switches on the network.
- Routing is the component responsible for path calculation.
- Monitoring periodically queries switches for statistics and exposes that info.
NOX Web applications are used for managing NOX through web services.
- Webservice provides the web services interface for NOX applications.
- Webserver is the app hosting the control interface.
- Webserviceclient .
The components listed above are only those that come with the current NOX packaging. However it should be clear that NOX core is only the platform for programming network behaviour, and its power lies in its extensibility. The network behaviour itself is defined by the applications that NOX runs. Many extensions to NOX have been developed by various developers and researchers. Below is a non-extensive list with examples of third party NOX applications and projects that utilize NOX:
- OVN is a network virtualization framework based on NOX/Openflow.
- Basic Spanning Tree is a NOX module that constructs a spanning-tree for an OpenFlow network
- Mobile VMs is a demo application that won the award for best demonstration at SIGCOMM 2008
- RipCord is a modular platform for datacenter networking
- LAVI is a backend for network visualization.
- OpenRoads is a platform for innovation on SDN in mixed environments (fixed and wireless networks).
For a guide to building your own Components, take a look at Developing in NOX