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.

Table of Contents

Core apps

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.
'Core components are located in src/nox/coreapps/

Network apps

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.
Net components are located in src/nox/netapps/

Web apps

NOX Web applications are used for managing NOX through web services.

Web components are located in src/nox/webapps/

Third-party extensions

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
The following extensions have since been incorporated into NOX.
  • LAVI is a backend for network visualization.
  • OpenRoads is a platform for innovation on SDN in mixed environments (fixed and wireless networks).

Building your own Components

For a guide to building your own Components, take a look at Developing in NOX

⚠️ **GitHub.com Fallback** ⚠️