Skip to main content

NOX

NOX is an open-source network control platform (software-defined networking controller) that provides a programmable controller for OpenFlow-based networks.

  • OpenFlow controller framework for building custom control applications (software-defined networking)
  • C++ and Python APIs for developing network control logic and applications (developer tooling)
  • Real-time event-driven processing of switch and host state for traffic control (network management)
  • Support for managing OpenFlow-enabled switches and flows (network control plane)
  • Extensible architecture for adding new network functions via controller modules (extensibility framework)

More About NOX

NOX is an open-source Software Defined Networking (SDN) controller (network control platform) that provides a programmable control plane for OpenFlow-based networks. It was developed to give researchers, operators, and developers a way to implement custom network control logic separate from the underlying forwarding hardware, using the OpenFlow protocol as the interface to switches.

At its core, NOX implements the controller-side functionality for OpenFlow (network protocol), maintaining state about connected OpenFlow switches and the flows installed on them. It communicates with OpenFlow-enabled devices, receives events such as new flows or topology changes, and installs or updates forwarding rules in switch flow tables. This places NOX in the SDN architecture as the central control-plane component that coordinates distributed forwarding elements.

The platform exposes C++ and Python APIs (developer tooling) for writing controller applications that process events and apply policies. Applications can register callbacks for events such as packet-in, flow-removed, or switch-join, and then compute forwarding decisions, access control behavior, or measurement logic. This event-driven model (application framework) allows multiple controller applications to run on top of the same NOX instance, each implementing a distinct control task.

NOX is typically used in environments where OpenFlow is deployed for research, prototyping, or controlled operational networks (network experimentation). Example uses include building custom routing or switching behaviors, implementing access control and security policies, performing Traffic Engineering (TE), and gathering measurement and monitoring data from the network. Because the controller logic runs in software, operators can modify or extend behavior without changing switch firmware.

The architecture of NOX emphasizes modularity (extensibility framework). Core services handle switch management, event dispatch, and communication with the OpenFlow protocol channel, while higher-level modules implement policy and control applications. This structure enables integration with other tools and experimental stacks, and it supports the layering of multiple applications that share access to network state.

For enterprises and institutions evaluating SDN technologies, NOX is relevant as an early and well-documented OpenFlow controller implementation. It can serve as a reference platform (reference implementation) for understanding controller design, for testing OpenFlow-capable equipment, or for building specialized control-plane functions tailored to lab, campus, or testbed networks. In a technical directory, NOX fits under SDN controllers, OpenFlow controllers, and network control-plane software.