[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