[ovs-dev] [PATCH] OXM: Allow masking of IPv6 Flow Label
Simon Horman
horms at verge.net.au
Wed Jul 18 02:43:30 UTC 2012
Sorry, there is an error in this patch, I will repost shortly.
On Wed, Jul 18, 2012 at 11:30:24AM +0900, Simon Horman wrote:
> Signed-off-by: Simon Horman <horms at verge.net.au>
>
> ---
>
> v2:
> * Use MFM_FULL instead of a new mask-type for the lower 20 bits.
> This is to allow an all-one mask for all 32bits that are used to
> encode a Flow Label.
> * Increment FLOW_WC_SEQ
> ---
> lib/classifier.c | 17 ++++++++++++-----
> lib/classifier.h | 1 +
> lib/flow.c | 31 ++++++++++++++++++-------------
> lib/flow.h | 16 ++++++++--------
> lib/meta-flow.c | 17 +++++++++++++----
> lib/nx-match.c | 8 +++-----
> lib/ofp-util.c | 11 +++++------
> tests/ovs-ofctl.at | 10 ++++++++++
> 8 files changed, 70 insertions(+), 41 deletions(-)
>
> diff --git a/lib/classifier.c b/lib/classifier.c
> index 2d9fd0a..e049430 100644
> --- a/lib/classifier.c
> +++ b/lib/classifier.c
> @@ -436,8 +436,15 @@ cls_rule_set_ipv6_dst_masked(struct cls_rule *rule, const struct in6_addr *dst,
> void
> cls_rule_set_ipv6_label(struct cls_rule *rule, ovs_be32 ipv6_label)
> {
> - rule->wc.wildcards &= ~FWW_IPV6_LABEL;
> + cls_rule_set_ipv6_label_masked(rule, ipv6_label, htonl(UINT32_MAX));
> +}
> +
> +void
> +cls_rule_set_ipv6_label_masked(struct cls_rule *rule, ovs_be32 ipv6_label,
> + ovs_be32 mask)
> +{
> rule->flow.ipv6_label = ipv6_label;
The line above should be
rule->flow.ipv6_label = ipv6_label & mask;
> + rule->wc.ipv6_label_mask = mask;
> }
>
> void
More information about the dev
mailing list