Understanding How the OpenFlow Group Action Works
The group action is supported only on Juniper Networks devices running OpenFlow v1.3.1 or later.
OpenFlow uses flow entries as a means to match flows and specify an action for incoming packets on logical OpenFlow interfaces. The action specified in one or more flow entries can direct packets to, or reference, a base action called a group action. The purpose of the group action is to further process these packets and assign a more specific forwarding action to them.
A group can include 1 to 32 buckets, and in turn, a bucket can have a set of actions (set, pop, or output).
For information about the specific actions that are supported for each base type, see the OpenFlow v1.3.1 Compliance Matrix for Devices Running Junos OS.
Juniper Networks Junos operating system (Junos OS) devices support the following group types, which define how buckets are implemented:
All—Multiple buckets are implemented for the handling of multicast and broadcast packets. Each incoming packet is replicated and processed by each bucket in the group.
Indirect—One bucket is implemented. An indirect group is typically referenced by multiple flow entries, thereby allowing each of these entities to have a centralized action that can be easily updated.
For example, an all group type with a unique OpenFlow-controller-assigned identifier, say, 50 can have two buckets: bucket 1 and bucket 2. The action associated with bucket 1 might be to set the VLAN ID field in the packet to 3022 and to output the packet to an OpenFlow port—for example, 118. The action associated with bucket 2 might be to set the VLAN ID field in the packet to—for example, 2022—and to output the packet to an OpenFlow port—for example, 117.
You can add a group with one or more buckets on the OpenFlow controller, and the controller pushes the group to the Junos OS devices with which it is connected. Each Junos OS device checks to see whether the group already exists. If it does not, the group is added to the group table on the Junos OS devices. After the group is in the group table, you can modify or delete it from the table by way of the OpenFlow controller.