OpenFlow actions

Each flow has a set of instructions that are executed when the packet matches the flow as per OpenFlow 1.3 specifications. Each flow can have a maximum of one instruction of each type.

A switch can reject a flow entry, if it is unable to execute the instructions associated with the flow entry. In this case, the switch returns an unsupported flow error. Flow tables may not support every match, every instruction, or every action.

Instructions for OpenFlow actions

Instruction Description
actions Adds specified actions to the action set
next-table-id Indicates the next table in pipeline processing (One table is supported.)
meter-id Directs the packet to the specified meter
apply-actions Applies the specified actions immediately. The packet is modified and subsequent matching in the pipeline is done on the modified packet.
clear-actions Clears all the actions in the action set
write-metadata Writes the metadata field from the mask

Brocade devices may support the actions listed in the following table.

OpenFlow actions supported on Brocade devices

OpenFlow action

ICX 6610

ICX 6450 (Mixed stack)

ICX 7750

ICX 7450

Process the packet through the specified group Yes No Yes Yes
Add and remove tag Yes Yes Yes Yes
Add newly inserted tags always as the outermost tags Yes Yes Yes Yes
No explicit drop action. Packet with empty action set should be dropped. Yes Yes Yes Yes
Modify the values of the packet header based on the field type Yes Yes Yes Yes
Modify the TTL value No No No No
Set the queue ID for the packet Yes Yes Yes Yes

Prerequisite for OpenFlow actions

The following prerequisites apply to the OpenFlow actions.

Decrement TTL

  • DMAC action is required, otherwise error is sent to controller.
  • DMAC in the packet should be router-mac of the device. This is not enforced as DMAC of the forwarding packet is unknown.
  • SMAC is modified to router-mac.
  • VLAN header will be stripped after the action.
  • VLAN modification is supported (Push VLAN is not supported for tagged packets).

Multiple ports

  • When action is to send the packets on multiple ports then packet modification is not supported and an error message will be generated if there are any actions.

Send to controller action

  • Send to Controller action can be combined with single port or multiple port action.
  • Send to controller action with single port does support packet modification.
  • Send to controller action with multiple ports does not support packet modification.

VLAN modification

  • The port on which the packet is to be forwarded with VLAN modification, needs to be part of the VLAN to be configured and the port has to be added as tagged.
Note: This is applicable only for ICX 6610 & ICX 6450.

Destination MAC modification

  • VLAN header will be stripped after DMAC modification.
  • VLAN modification is supported (Push VLAN is not supported for tagged packets).