[ovs-dev] [PATCH 00/11] Geneve option matching

Jesse Gross jesse at nicira.com
Fri Jun 19 23:13:14 UTC 2015


This is the non-RFC version of the patch that I sent earlier this
week. At this point, I think it is still most important to discuss
the interface if there are ways to improve it. However, I've addressed the
outstanding issues that I mentioned previously and also rebased against
master, so I thought that it would be worth sending out the current
version for people that want to try it out.

Here is the original message with the areas that could use some review:

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.

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?

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 (11):
  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.
  metaflow: Extend size of mf_value to 128 bytes.
  odp-util: Pass down flow netlink attributes when translating masks.
  tunnel: Geneve TLV handling support for OpenFlow.
  pkt-metadata: Avoid introducing overhead for userspace tunnels.

 NEWS                          |   1 +
 build-aux/extract-ofp-fields  |  24 +-
 include/openflow/nicira-ext.h |  70 ++++
 lib/automake.mk               |   2 +
 lib/dpctl.c                   |   3 +-
 lib/dpif-netdev.c             |   3 +-
 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               | 217 +++++++++++-
 lib/nx-match.c                | 116 +++++--
 lib/nx-match.h                |   3 +
 lib/odp-util.c                |  97 +++---
 lib/odp-util.h                |  13 +-
 lib/ofp-errors.h              |  28 ++
 lib/ofp-msgs.h                |  12 +
 lib/ofp-parse.c               |  32 ++
 lib/ofp-parse.h               |   6 +
 lib/ofp-print.c               |  91 +++++
 lib/ofp-util.c                | 143 +++++++-
 lib/ofp-util.h                |  31 ++
 lib/packets.h                 |   7 +-
 lib/rconn.c                   |   3 +
 lib/tun-metadata.c            | 792 ++++++++++++++++++++++++++++++++++++++++++
 lib/tun-metadata.h            | 100 ++++++
 ofproto/ofproto-dpif-rid.h    |   2 +-
 ofproto/ofproto-dpif-upcall.c |   5 +-
 ofproto/ofproto-dpif-xlate.c  |   2 +-
 ofproto/ofproto.c             |  45 +++
 ovn/controller/ofctrl.c       |   3 +
 tests/learn.at                |   2 +-
 tests/ofproto.at              |  68 +++-
 tests/ovn.at                  |   1 -
 tests/ovs-ofctl.at            |   2 +
 tests/test-odp.c              |   4 +-
 tests/tunnel.at               |  65 ++++
 utilities/ovs-ofctl.8.in      |  51 +++
 utilities/ovs-ofctl.c         |  57 +++
 vswitchd/vswitch.xml          |   7 +-
 42 files changed, 2094 insertions(+), 129 deletions(-)
 create mode 100644 lib/tun-metadata.c
 create mode 100644 lib/tun-metadata.h

-- 
2.1.0




More information about the dev mailing list