OpenFlow 1.x

Prototyping OpenFlow 1.2 and 1.3 software switch, controller, and testing platforms. (02/2011 – 06/2013)

In order to strengthen OpenFlow as a future-proof technology, this research project should contribute to the prototype implementation of an OpenFlow version 1.2 protocol stack and switch implementation. In addition, new protocol encapsulations (e.g., Ethernet PBB frame format) and additional OAM capabilities shall be researched in the context of OpenFlow support. The high-level objectives of the proposed project are two-fold: Firstly, advancing the OpenFlow protocol by contributing to the prototype implementation of version 1.2 of the OpenFlow specification, and experimenting new features to be discussed for the subsequent protocol versions. Secondly, leverage the extensibility capabilities native in version 1.2 (e.g. OXM flow match and experimental actions) to embrace extensions from the PBB-TE (Provider Backbone Bridge Traffic Engineering), and leverage OpenFlow with generic OAM (Operations and Management) capabilities. PBB-TE introduces a connection-oriented forwarding mode to the dataplane of traditional connectionless Ethernet networks. PBB-TE assumes that the forwarding tables of PBB-TE switches are populated via an external control/management plane. The research question relates to the assessment of OpenFlow v1.2 to act as the converged control plane that sets up, modifies, and tears down Ethernet Switched Path (ESP). The project will develop the required OpenFlow protocol extensions to program OpenFlow-capable edge virtual switches with the VLAN tag and SID information implementing the required flow matching and instructions to inter-work with 802.1aq Shortest Path Bridging (SPB) domains. With respect to OAM functions such as fault-management (e.g, continuity check via BFD or VCCV-count CCM packets) and the associated triggers (e.g., fast protection on exceptions), the research question would be the investigation of a general module that could accommodate standard OpenFlow actions and OAM protocol specifics, and could maintain state for a parti.

More info and code: