SDN Controller Programming Guide

38
isHandled() returns true if a DIRECTOR has already instructed the Sequencer to send the
PACKET_OUT message.
failedToSend() returns true if the attempt to send the PACKET_OUT message failed.
toDebugString() returns a detailed, multi-line string representation of the message context.
Flow Tracker and Pipeline Manager
The Flow Tracker is a sub-component of the core controller that facilitates management of flow
rules, meters and groups across all datapaths managed by the controller. Its functionality is
accessed through the ControllerService API.
The Pipeline Manager is a sub-component that maintains an in-memory model of the flow table
capabilities of (1.3) datapaths. When an application attempts to install a flow, the flow tracker will
consult the pipeline manager to choose a suitable table in which to install the flow, if no explicit
table ID has been provided by the caller.
Flow Management
Flow management includes:
Getting flow statistics from a specified datapath, for one or all flow tables
Adding or modifying flows on a specified datapath
Deleting flows from a specified datapath
See the earlier Message Library section for an example of how to create a FLOW_MOD message.
Group Management
Group management includes:
Getting group descriptions from a datapath, for one or all groups.
Getting groups statistics from a datapath, for one or all groups.
Sending group configuration to a datapath.
Note that groups are only supported for OpenFlow 1.3 datapaths.
Meter Management
Meter management includes:
Getting meter configurations from a datapath, for one or all meters
Getting meter statistics from a datapath, for one or all meters.
Sending meter configuration to a datapath
Note that meters are only supported for OpenFlow 1.3 datapaths. However, some 1.0 datapaths
can support metering through the use of EXPERIMENTER messages.