[ovs-dev] Masked set actions. (Re: [PATCH 00/10] Maksed set actions.)

Jarno Rajahalme jrajahalme at nicira.com
Tue Apr 8 23:40:17 UTC 2014


Sorry for the typo in subject :-)

  Jarno

On Apr 8, 2014, at 4:38 PM, Jarno Rajahalme <jrajahalme at nicira.com> wrote:

> Currently, if any field in IP header is set with a set action, all the
> IP header fields need to be matched exactly in the megaflow.  This
> series adds support for masked set actions, requiring only the header
> bits actually read or set to be matched exactly by the resulting
> megaflow.
> 
> As an example, consider how the IP TTL decrement is implemented with
> OVS: OVS userspace flow translation code reads the incoming TTL value,
> decrements it, and if non-zero, generates a set action that writes the
> new value to the IP header.  Prior to this patch it was impossible to
> write just the ttl field, and all the field values were written.  The
> other than ttl values included in the set action are copied from the
> incoming IP header, and thus the action is only valid for only a
> packet having those header values.  Thus the megaflow must match all
> the IP header fields exactly, lest the action be performed on some
> other IP header field values.  After this patch, only the ttl field is
> written, and all other IP header fields can be wildcarded by the
> megaflow.
> 
> As it may be apparent, fields that are set without reading their
> values could also be left wildcarded to get even better megaflows.
> Work to that end involves bigger changes in the OVS userspace flow
> translation code, and is in progress.
> 
> Jarno Rajahalme (10):
>  lib/ofp-actions: Silently discard set ip ecn/ttl actions on
>    OpenFlow10.
>  ofproto: Fix wildcard masking with nw_tos.
>  Tests: Fix ofproto/trace and expose megaflows when having a set
>    action.
>  ofproto/xlate: Fix set field unwildcarding.
>  lib/odp: Masked set action execution and printing.
>  ofproto: Probe for masked set action support.
>  lib/odp: Use masked set actions.
>  openvswithch.h: Clarify use of key attributes.
>  datapath: Allow masks for set actions.
>  Clarify tunnel wildcarding.
> 
> datapath/actions.c           |  218 ++++++++++++++-----
> datapath/flow_netlink.c      |   51 ++++-
> include/linux/openvswitch.h  |   16 +-
> lib/odp-execute.c            |  241 +++++++++++++++++----
> lib/odp-util.c               |  486 +++++++++++++++++++++++++++++-------------
> lib/odp-util.h               |    8 +-
> lib/ofp-actions.c            |    4 +-
> ofproto/ofproto-dpif-xlate.c |   39 +++-
> ofproto/ofproto-dpif-xlate.h |    3 +-
> ofproto/ofproto-dpif.c       |   80 ++++++-
> ofproto/tunnel.c             |   44 ++--
> tests/ofproto-dpif.at        |   63 +++---
> tests/tunnel.at              |   20 +-
> 13 files changed, 945 insertions(+), 328 deletions(-)
> 
> -- 
> 1.7.10.4
> 




More information about the dev mailing list