On Wed, Apr 16, 2014 at 11:49 PM, Andy Zhou <az...@nicira.com> wrote:
> diff --git a/datapath/actions.c b/datapath/actions.c
> index 82cfd2d..820075f 100644
> --- a/datapath/actions.c
> +++ b/datapath/actions.c
> +static void execute_hash(struct sk_buff *skb, const struct nlattr *attr)
> +{
> +       struct sw_flow_key *key = OVS_CB(skb)->pkt_key;
> +       u32 hash = 0;
> +
> +       /* OVS_HASH_ALG_L4 is the only possible hash algorithm.  */
> +       hash = skb_get_rxhash(skb);
> +       if (!hash)
> +               hash = 0x1;
> +
> +       key->ovs_flow_hash = hash;

I just realized that this ignores the basis. Isn't that a problem?

We could potentially rehash the hash - we do this in
flow_table.c:find_bucket() although it's not a perfect solution.

> @@ -511,7 +524,7 @@ static int do_execute_actions(struct datapath *dp, struct 
> sk_buff *skb,
>                         const struct nlattr *attr, int len, bool keep_skb)
>  {
>         /* Every output action needs a separate clone of 'skb', but the common
> -        * case is just a single output action, so that doing a clone and
> +        * case is just a single output action, so that doin a clone and

This introduces a typo.

> diff --git a/datapath/flow_netlink.c b/datapath/flow_netlink.c
> index 5c32cd0..f464a5b 100644
> --- a/datapath/flow_netlink.c
> +++ b/datapath/flow_netlink.c
> @@ -123,6 +123,7 @@ static bool match_validate(const struct sw_flow_match 
> *match,
>                         | (1ULL << OVS_KEY_ATTR_ICMP)
>                         | (1ULL << OVS_KEY_ATTR_ICMPV6)
>                         | (1ULL << OVS_KEY_ATTR_ARP)
> +                       | (1ULL << OVS_KEY_ATTR_DP_HASH)

I don't think this should be in the list, since these are for things
that require additional validation.

> @@ -130,7 +131,6 @@ static bool match_validate(const struct sw_flow_match 
> *match,
>                        | (1ULL << OVS_KEY_ATTR_IN_PORT)
>                        | (1ULL << OVS_KEY_ATTR_ETHERTYPE));
>
> -       /* Check key attributes. */

I think this comment should remain.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to