[ovs-dev] [PATCH v3] net: openvswitch: Support masked set actions.
Jesse Gross
jesse at nicira.com
Fri Feb 6 03:21:36 UTC 2015
On Thu, Feb 5, 2015 at 1:40 PM, Jarno Rajahalme <jrajahalme at nicira.com> wrote:
> OVS userspace already probes the openvswitch kernel module for
> OVS_ACTION_ATTR_SET_MASKED support. This patch adds the kernel module
> implementation of masked set actions.
>
> The existing set action sets many fields at once. When only a subset
> of the IP header fields, for example, should be modified, all the IP
> fields need to be exact matched so that the other field values can be
> copied to the set action. A masked set action allows modification of
> an arbitrary subset of the supported header bits without requiring the
> rest to be matched.
>
> Masked set action is now supported for all writeable key types, except
> for the tunnel key. The set tunnel action is an exception as any
> input tunnel info is cleared before action processing starts, so there
> is no tunnel info to mask.
>
> The kernel module converts all (non-tunnel) set actions to masked set
> actions. This makes action processing more uniform, and results in
> less branching and duplicating the action processing code. When
> returning actions to userspace, the fully masked set actions are
> converted back to normal set actions. We use a kernel internal action
> code to be able to tell the userspace provided and converted masked
> set actions apart.
>
> Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
> ---
> v3: Clean up code and remove flow key transport port checks from
> validate_set(), as suggested by Jesse Gross.
Looks good to me now.
More information about the dev
mailing list