OpenFlow is a Software-Defined Networking (SDN) protocol used for southbound communications from an SDN controller to and from a network device. OpenFlow is the protocol used to inform the topology of network switches on which flows should be added to their flow tables and advise switches how they should handle traffic flows that are not in the current flow tables. Initially, OpenFlow did not have any definition for handling IPv6 communications. Now, newer OpenFlow versions have IPv6 capabilities and more vendors are deploying products that use the newer OpenFlow versions. This article goes over the IPv6 functions within the OpenFlow protocol and describes how these are being used.
OpenFlow History and Lineage:
OpenFlow started out as a Stanford University research project in 2008 just as the concept of SDN and control-plane separation was being developed. In 2011, the Open Networking Foundation (ONF) was formed as an SDN industry organization to standardize OpenFlow and help speed innovation and coordination between its member companies.
In 2009, the first editions of OpenFlow were focused on IPv4 and did not have any IPv6 flow support. Then in early 2011 the ONF published its first OpenFlow Switch Specification 1.1.0 but it failed to have any provisions for defining IPv6 flows. Then, in mid-2011, there was work being done to consider how to extend the functionality of OpenFlow to include IPv6. The problem is that many early implementations of OpenFlow support these earlier versions and thus lacked any IPv6 forwarding capabilities.
On the heels of OpenFlow version 1.1, the ONF started to consider proposals for the next version and how IPv6 flows could be accommodated. In late 2011, the ONF published their OpenFlow Switch Specification for version 1.2. This was the first version that supported IPv6 packet matching. An OpenFlow 1.2 compliant switch could match on IP protocol number (Ethernet type 0x86dd = IPv6), IPv6 source/destination address, traffic class, flow label, and ICMPv6 types/codes. This was at least a start at allowing IPv6 unicast and multicast traffic to match and OpenFlow table in a switch.
When the ONF published the OpenFlow 1.3 specification in March 2012 there were a few more IPv6 functions added. OpenFlow 1.3 added the ability to rewrite packet headers via flexible match support. OpenFlow 1.3 had the same ability to match on IPv6 header fields such as source/destination address, protocol number (next header, extension header), hop-limit, traffic class, flow label, and ICMPv6 type/code (e.g. Neighbor Discovery Protocol (NDP)). Researchers in Brazil and Hungary released a paper titled "On IPv6 support in OpenFlow via Flexible Match Structures" which leverages these new features in OpenFlow 1.3.
Sign up for CIO Asia eNewsletters.