3
•
Instructions
—To modify the action set or pipeline processing. These include the following types:
{
Meter
—Directs the packets to the specified meter to limit the rate of the packets.
{
Apply-Actions
—Applies the specified actions in the action list immediately.
{
Clear-Actions
—Clears all the actions in the action set immediately.
{
Write-Actions
—Modifies all the actions in the action set immediately.
{
Goto-Table
—Indicates the next flow table in the processing line.
Actions are executed in one of the following ways:
{
Action Set
—When the instruction set of a flow entry does not contain a
Goto-Table
instruction,
pipeline processing stops and the actions in the action set are executed. An action set contains
a maximum of one action of each type.
{
Action List
—The actions in the action list are executed immediately in the order specified by the
action list. The effect of those actions is cumulative.
•
Timeouts
—Maximum amount of idle time or hard time for the flow entry.
{
idle Time
—The flow entry is removed when it has matched no packets during the idle time.
{
hard Time
—The flow entry is removed when the hard time timeout is exceeded, regardless of
whether or not it has matched packets.
•
Cookie
—Flow entry identifier specified by the controller.
Table-miss flow entry
Every flow table must support a table-miss flow entry to process table misses. The table-miss flow entry
specifies how to process packets unmatched by other flow entries in the flow table. The table-miss flow
entry wildcards all match fields (all fields omitted) and has the lowest priority 0. The table-miss flow entry
behaves in most ways like any other flow entry.
OpenFlow pipeline
The OpenFlow pipeline processing defines how packets interact with flow tables contained by a switch.
The flow tables of an OpenFlow switch are sequentially numbered, starting at 0. The packet is first
matched against flow entries of first flow table: flow table 0. A flow entry can only direct a packet to a
flow table number which is greater than its own flow table number.
When a packet matches a flow entry, the OpenFlow switch updates the action set for the packet and
passes the packet to the next flow table. In the last flow table, the OpenFlow switch executes all actions
to modify packet contents and specify the output port for packet forwarding. If the instruction set of one
of the flow tables contains an action list, the OpenFlow switch executes the actions to modify a copy of
the packet immediately in this table.
Figure 3
OpenFlow forwarding workflow