OpenFlow is an open standard defined byt the Open Networking Foundation (ONF) that provides direct access to the switch forwarding plane. The OpenFlow concept was first introduced by Nick McKeown et al. in the paper "Enabling innovation in campus networks" published in 2008.
How does it work?
Looking inside an ethernet switch, two main parts can be found: A Control Path (Software) on top of a Data Path (Hardware).
OpenFlow is a feature added on top of the Data Path at the same level of the Control Path. An OpenFlow controller is placed somewhere outside in the network and talkes to the OpenFlow Client in the switch using a defined protocol. OpenFlow interface is based on three entries in the flow table: Rules, Actions and Stats. Rules are based on a given set of fields. An action is what we can do with a packet that matches a given rule.
Image taken from OpenFlow: Enabling Innovation in Campus Networks - White Paper.
Limitations of OpenFlow Switches
- OpenFlow v1.0 doesn't support per-packet networking. Using OpenFlow wouldn't make sense for example in Wireless Mesh Network;
- It is not possible with OpenFlow to use all the tables on a switch chip. (Broadcom has for example on a single chip as a layer 2 table, a layer 3 table, an ACL table etc etc). OpenFlow might not be able to match all the functionalities present in a switch. OpenFlow v1.1 will try to provide an interface that exposes more details about what the forwarding pipeline should be;
- It is not possible to forward primitives or defining new packet formats. Extensions for the definition of new packet formats should be provided in version 1.2;
- There is no way to represent TDM with OpenFlow, which means that can't be use on Optical Circuits;
- A flow set-up delay due to the fact that the first packet of the flow goes to the controller that installs the flow entries along the path.
- Brandon Heller ONS2012 - video
--AlessandraScicchitano - 2012-08-21