Wednesday 27 April 2016

OpenFlow Concept

By using OpenFlow we can generalize data-paths(OFS) and controller them using any OpenFlow controller. The data-paths contain the flow tables and controller(OFC) is responsible for populating the FlowTable based on the version of OpenFlow protocol. Flow table consists of the match fields and the actions fields or Instructions. Below image shows the high-level overview of the component of Flow Table.

The OpenFlow controller has the ability to ADD/MODIFY/DELETE the flow entry into the switch based on the instruction issued by the Network Administrator


  • Match Fileds: This field contains the matching parameter with respect to the packet, to match against packets. These consist of the ingress port and packet headers, and optionally metadata specified by a previous table
  • Priority: The Flow table may have multiple flow entries for a packet. This field set the priority of Flow entry for a packet.
  • Counters:  Count of packets that hit the flow entry. Counters are managed per port, per queue , per flow entry etc.
  • Timeout: validity time for each flow entry or maximum amount of time or idle time before flow is expired by the switch
  • Cookie: opaque data value chosen by the controller. May be used by the controller to filter flow statistics, flow modification and flow deletion. Not used when processing packets.
  • Instructions: Instructions specify processing for packets that matched conditions or we can say modify the action set or pipeline processing.
A flow table entry is identified by its match fields and priority: the match fields and priority are taken together identify a unique flow entry in the flow table. The flow entry that wildcards all fields (all fields omitted) and has priority equal to 0 is called the table-miss flow entry.

Below Flow Chart shows the packet Flow through the OpenFlow Switch.


Flow Entry:
In traditional each networking device independently identifies the destination for the packet. The basis may be L2, L3 or L4 networking fields. OpenFlow controls traffic by adding rules, which is the combination of identifies of each layer. (L1-L4). Each of these rule is stored into the flow table and known as Flow Entry. A flow entry also consist of actions/Instructions along with maching rules.

There can be two types of flow entry:  
i) Exact Match: when all the parameters of the flow entry are uniquely defined and there is no wild card field. They always have highest priority.
ii) Wildcard Match: When any one parameter of the Flow entry is wildcard then it is known as wild card flow entry. A wild card flow entry can match more than one type of packets.

If a packet satisfy the matching condition of both exact and wildcard flow entries than It will hit the exact flow entry. 


No comments:

Post a Comment