OpenFlow is an open standard
to deploy innovative protocols
in production networks.
What is OpenFlow?
OpenFlow is an open standard that enables researchers to run experimental protocols in the campus networks we use every day. OpenFlow is added as a feature to commercial Ethernet switches, routers and wireless access points – and provides a standardized hook to allow researchers to run experiments, without requiring vendors to expose the internal workings of their network devices. OpenFlow is currently being implemented by major vendors, with OpenFlow-enabled switches now commercially available.
How does OpenFlow work?
In a classical router or switch, the fast packet forwarding (data path) and the high level routing decisions (control path) occur on the same device. An OpenFlow Switch separates these two functions. The data path portion still resides on the switch, while high-level routing decisions are moved to a separate controller, typically a standard server. The OpenFlow Switch and Controller communicate via the OpenFlow protocol, which defines messages, such as packet-received, send-packet-out, modify-forwarding-table, and get-stats.
The data path of an OpenFlow Switch presents a clean flow table abstraction; each flow table entry contains a set of packet fields to match, and an action (such as send-out-port, modify-field, or drop). When an OpenFlow Switch receives a packet it has never seen before, for which it has no matching flow entries, it sends this packet to the controller. The controller then makes a decision on how to handle this packet. It can drop the packet, or it can add a flow entry directing the switch on how to forward similar packets in the future.
What can I do with OpenFlow?
OpenFlow allows you to easily deploy innovative routing and switching protocols in your network. It is used for applications such as virtual machine mobility, high-security networks and next generation ip based mobile networks.
Where can I learn more?
Here are some suggestions for further reading on OpenFlow:
Would you like to join the community?
Become involved to help develop the spec?
Where can I participate in discussions?
You can browse past mailing list postings or subscribe via the following links:
- OpenFlow Announce: Announcements about releases, events and OpenFlow news.
- OpenFlow Discuss: Discussions of general OpenFlow topics.
- OpenFlow Spec: Discussions related to the OpenFlow specification.
- OpenFlow Development: Questions and answers for OpenFlow developers.
- OpenFlow Testing: Discussions and announcements related to testing OpenFlow switches and controllers.
- OpenFlow Meeting: More information about the weekly OpenFlow meeting held at Stanford.