NOX Events - noxrepo/nox-classic GitHub Wiki

Table of Contents

Events

In the abstract Components are really just a set of event handlers. Events are therefore what drive all execution in NOX. Many events roughly correlate to something which happens on the network that may be of interest to a NOX component. These section presents a high-level description of existing events. An up-to-date list is available through doxygen.

Core Events

NOX contains a number of built-in events which map directly to OpenFlow messages received by controlled switches. These include:

  • Datapath_join_event : Issued whenever a new switch is detected on the network.
  • Datapath_leave_event : Issued whenever a switch has left the network.
  • Packet_in_event : Called for each new packet received by NOX. The event includes the switch ID, the incoming port, and the packet buffer.
  • Flow_mod_event : Issued when a flow has been added or modified by NOX.
  • Flow_removed_event : Raised when a flow in the network expires or has been removed.
  • Port_status_event : Indicates a change in port status. Contains the current port state including whether it is disabled, speed, and the port name.
  • Port_stats_in : Raised when a Port_stats message is received by a controlled switch in response to a Port_stats_request message and includes the current counter values for a given port (such as rx,tx, and errors).

Application Events

In addition, components themselves may define and throw higher level events which may be handled by any other events. The following events are thrown by existing NOX components.

Building your own Events

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

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