On 25 March 2014 14:58, Andy Zhou <az...@nicira.com> wrote:
>
>      /* Metadata. */
> +    if (present_attrs & (UINT64_C(1) << OVS_KEY_ATTR_RECIRC_ID)) {
> +        flow->recirc_id = nl_attr_get_u32(attrs[OVS_KEY_ATTR_RECIRC_ID]);
> +        expected_attrs |= UINT64_C(1) << OVS_KEY_ATTR_RECIRC_ID;
> +    } else if (is_mask) {
> +        /* Always exact match recirc_id when datapath does not sepcify
> it. */
> +        flow->recirc_id = UINT32_MAX;
> +    }
> +
> +    if (present_attrs & (UINT64_C(1) << OVS_KEY_ATTR_DP_HASH)) {
> +        flow->dp_hash = nl_attr_get_u32(attrs[OVS_KEY_ATTR_DP_HASH]);
> +        expected_attrs |= UINT64_C(1) << OVS_KEY_ATTR_DP_HASH;
> +    }
>      if (present_attrs & (UINT64_C(1) << OVS_KEY_ATTR_PRIORITY)) {
>          flow->skb_priority =
> nl_attr_get_u32(attrs[OVS_KEY_ATTR_PRIORITY]);
>          expected_attrs |= UINT64_C(1) << OVS_KEY_ATTR_PRIORITY;
>

What's the reasoning behind the "else if (is_mask)" case for recirc_id, and
why does this not apply to dp_hash?
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to