OpenFlow 1 2 proposal

From OpenFlow Wiki

Jump to: navigation, search

Contents

OpenFlow 1.2 proposals

Jean Tourrilhes - HP-Labs

Introduction

This is Jean's list of features desired for OpenFlow 1.2, compiled from various sources. This is just a whishlist, there is no certainty in anything...

Note that the similar page done after 1.0 called Openflow 1.X Discussion is mostly obsolete.

Per-Flow Rate Limiters

  • Sponsor : HPL
  • Depend on :
  • Scope : 2
  • Status : partially implemented in OVS and ProCurve
  • Wiki : Rate Limiter Proposal

Description : Per-flow Rate Limiters enable to associate an abitrary number of flows with a rate limiter. It's different from priorities queue as the flows don't need to output the same port. The original Rate Limiter proposal should be extended for more flexibility, probably using a group to process packets over the limit. A new action to downgrade DiffServ ToS action must be added to the spec.

Flexible Match

  • Sponsor : Nicira/Ericsson/Google
  • Depend on :
  • Scope : 1
  • Status : implemented in Open vSwitch

Description : Replace the fixed 12/14 tupple match with a flexible structure. Enable experimenters to add experimenters fields. Enable to describe more flexibly headers to match, could match QinQ in one pass for example.

IPv6 support

  • Sponsor : Various
  • Depend on : flexible match
  • Scope : 2
  • Status : implemented in Open vSwitch

Description : enabling OpenFlow to match IPv6 packets, and enabling IPv6 header fields rewrite.

Multi layer switching

  • Sponsor : Stanford
  • Depend on : flexible match
  • Scope : 2
  • Status :

Description : enabling OpenFlow to match physical layer attributes of more WAN switching technologies, for example circuits and wavelengths.

Match on normal output port

  • Sponsor : HPL
  • Depend on : flexible match
  • Scope : 3
  • Status :

Description : a match field which value is the output port that the normal forwarding would have selected. In an hybrid switch, enable to trap all traffic going out a specific port.

Table match setting

  • Sponsor : Dan ?
  • Depend on : flexible match
  • Scope : 2
  • Status :

Description : Enable controller to modify the match characteristics of a specific table, in other words which fields will be used in the match. For example, the BroadCom TCAM can be set in full match or reduced match, enable to controller to select which mode applies.

OpenFlow configuration protocol

  • Sponsor : Nicira
  • Depend on :
  • Scope : 1
  • Status : implemented in Open vSwitch

Description : a robust and rich protocol to enable configuring hard state of the objects inside an OpenFlow switch instance. For example, enable to configure OpenFlow ports and OpenFlow queues. Offer greater flexibility and feature set than binary protocol used today.

Virtual Port Tunnel configuration protocol

  • Sponsor : Nicira
  • Depend on : OpenFlow configuration protocol
  • Scope : 2
  • Status : partially implemented in Open vSwitch

Description : A protocol enabling to configure virtual ports for using them as tunnels.

GRE/L3 tunnel support

  • Sponsor : Nicira/Google
  • Depend on : Virtual Ports Tunnel configuration protocol
  • Scope : 2
  • Status : partially implemented in Open vSwitch

Description : enable OpenFlow to configure a L3 tunnel or GRE tunnel and forwards packets to it.

PBB support (MAC in MAC)

  • Sponsor : Google
  • Depend on : Virtual Ports Tunnel configuration protocol
  • Scope : 2
  • Status :

Description : Support for PBB MAC-in-MAC encapsulation. Support for 24 bit VID.

Virtual Ports Tunnel loopback

  • Sponsor : HPL ?
  • Depend on : Virtual Port Tunnel configuration protocol
  • Scope : 1
  • Status :

Description : Bind two virtual ports and the encapsualted and decapsulated part of a tunnel endpoint. Enable OpenFlow to manipulate encapsualted packets.

OpenFlow over SCTP

  • Sponsor : Ericsson
  • Depend on :
  • Scope : 2
  • Status :

Description : Use SCTP for OpenFlow channel instead of TCP or SSL.

OpenFlow over UDP+IPsec

  • Sponsor : BigSwitch/HPL
  • Depend on :
  • Scope : 2
  • Status :

Description : Use UDP+IPsec for OpenFlow channel instead of TCP or SSL.

Controller master slave switch

  • Sponsor : Nicira
  • Depend on :
  • Scope : 2
  • Status : implemented in Open vSwitch

Description : Enable multi-controller setups managed by the controller. The OpenFlow switch connect to multiple active controllers, and one of them elect itself master.

Expose controller connections status

  • Sponsor : Paul Weissmann
  • Depend on : OpenFlow configuration protocol
  • Scope : 3
  • Status :

Description : Enable ovs-ofctl like tool to monitor the status of the connections to the controllers.

Flexible flow counters

  • Sponsor : HPL
  • Depend on :
  • Scope : 3
  • Status :

Description : flag/action to specify if counters should be active or not for a specific flow entry. Useful because flow counters became optional in 1.1.

Annex protocol demultiplexing

  • Sponsor : Google (Ed)
  • Depend on :
  • Scope : 1
  • Status :

Description : Remove protocol demultiplexing from the main spec and put it into separate document. The spec would only define match fields and not specify how those maps to real packets. The annex would specify how the OpenFlow match fields match to real packets.

Rewrite whole protocol as TLVs

  • Sponsor : Google (Ed)
  • Depend on : flexible match
  • Scope : 1
  • Status :

Description : Rewrite all aspect of the protocol as proper TLVs to make the protocol more consistent and provide maximum extensibility.

Redo flow-mod action semantic

  • Sponsor : HPL
  • Depend on :
  • Scope : 1
  • Status :

Description : The current semantic of flow-mod is very complex and brittle, resulting in fairly complex writeup in 1.1. The ADD and MODIFY actions overalp each other semantically, MODIFY can turns into an ADD, and ADD can overrride existing entries. Moreover, the controller does not control which fields of the flow-mod are used for matching and/or updating entries. Finally, the most efficient and useful way of updating the table, which is the current ADD semantic but without reseting the flow counters, is currently not possible.