[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