The current Geneve code in OVS only supports a feature set equal
to VXLAN - the ability to set and match on the VNI. This patch series
provides the more interesting part, which is the ability to use
options.

This series should be generally complete and stable but I thought that
it would be a good idea to send it out as an RFC series first to
get a review of the concept and usability, particularly from people
that will be writing Geneve flows, before going through the code level
details (although any comments there are welcome of course too).

In particular, some areas that it would be nice to have comments on:

OVN people:
As the presumable first user, any OpenFlow level interface issues that
might make it more complicated to use. In particular, I think it's
a little unfortunate that we don't have a better way to gracefully
handle changes to the mapping table when there are active flows but I
don't have a good idea there now.

Thomas:
I'm not intentionally trying to make this Geneve-specific although I
would like to be not so generic that we can't do helpful sanity checking.
If you have suggestions on ways to make it more generically useful, I
would be open to that.

Madhu:
I incorporated a bunch of your previous code into the second to last
patch, which was very helpful. Can you provide a signed-off-by for
that patch?

There are still a few areas that I know are rough:

Before this series goes in:
 * The revalidator tries to parse the option mask, which won't work.
 * Use a consistent mapping table during the course of translation.
 * Tests

Follow-up work in the near future:
 * The mapping table is shared across OpenFlow switches but should not be.
 * Support for zero-length options.
 * More sanity checking and informative messages.

Jesse Gross (9):
  metaflow: Allow fields to be marked as variable length.
  nx-match: Support variable length header lookup.
  nx-match: Handle receiving variable length fields.
  nx-match: Enable senders of NXM fields to specify length.
  nx-match: Trim variable length fields when encoding as actions.
  nx-match: Enable parsing string representations of variable fields.
  openflow: Table maintenance commands for Geneve options.
  tunnel: Geneve TLV handling support for OpenFlow.
  pkt-metadata: Avoid introducing overhead for userspace tunnels.

 NEWS                          |   6 +-
 build-aux/extract-ofp-fields  |  24 +-
 include/openflow/nicira-ext.h |  72 ++++
 lib/automake.mk               |   2 +
 lib/dpif-netdev.c             |   2 +-
 lib/flow.c                    |  25 +-
 lib/flow.h                    |   4 +-
 lib/learning-switch.c         |   3 +
 lib/match.c                   |   9 +-
 lib/match.h                   |   2 +
 lib/meta-flow.c               |  72 +++-
 lib/meta-flow.h               | 206 +++++++++++-
 lib/nx-match.c                | 116 +++++--
 lib/nx-match.h                |   3 +
 lib/odp-util.c                |  76 ++---
 lib/odp-util.h                |   5 +-
 lib/ofp-errors.h              |  28 ++
 lib/ofp-msgs.h                |  12 +
 lib/ofp-parse.c               |  32 ++
 lib/ofp-parse.h               |   6 +
 lib/ofp-print.c               |  94 ++++++
 lib/ofp-util.c                | 143 +++++++-
 lib/ofp-util.h                |  31 ++
 lib/packets.h                 |   7 +-
 lib/rconn.c                   |   3 +
 lib/tnl-ports.c               |   2 +-
 lib/tun-metadata.c            | 752 ++++++++++++++++++++++++++++++++++++++++++
 lib/tun-metadata.h            |  85 +++++
 ofproto/ofproto-dpif-rid.h    |   2 +-
 ofproto/ofproto-dpif-upcall.c |   2 +-
 ofproto/ofproto-dpif-xlate.c  |   2 +-
 ofproto/ofproto.c             |  45 +++
 tests/learn.at                |   2 +-
 tests/ofproto.at              |  68 +++-
 utilities/ovs-ofctl.8.in      |  56 ++++
 utilities/ovs-ofctl.c         |  66 ++++
 vswitchd/vswitch.xml          |   7 +-
 37 files changed, 1951 insertions(+), 121 deletions(-)
 create mode 100644 lib/tun-metadata.c
 create mode 100644 lib/tun-metadata.h

-- 
2.1.0

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to