[ovs-dev] [PATCH] [rfc] datapath: Clear rxhash when using an action that may affect it

Simon Horman horms at verge.net.au
Mon Feb 7 00:07:26 UTC 2011


On Mon, Jan 31, 2011 at 07:19:16PM -0800, Jesse Gross wrote:
> On Sun, Jan 30, 2011 at 1:14 PM, Simon Horman <horms at verge.net.au> wrote:
> > diff --git a/acinclude.m4 b/acinclude.m4
> > index 6fc1c7a..4999d05 100644
> > --- a/acinclude.m4
> > +++ b/acinclude.m4
> > @@ -186,6 +186,8 @@ AC_DEFUN([OVS_CHECK_LINUX26_COMPAT], [
> >                   [OVS_DEFINE([HAVE_SKBUFF_HEADER_HELPERS])])
> >   OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_warn_if_lro],
> >                   [OVS_DEFINE([HAVE_SKB_WARN_LRO])])
> > +  OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [rxhash],
> > +                  [OVS_DEFINE([HAVE_RXHASH])])
> 
> This isn't terribly important but usually we just use direct version
> checks unless we know of a distribution that is backporting it, just
> to keep the number of checks from getting too out of hand.  Do you
> know of a backport?

No, I'm not aware of a backport. I'll use the version as you suggest.

> > diff --git a/datapath/actions.c b/datapath/actions.c
> > index 3223c65..b8495aa 100644
> > --- a/datapath/actions.c
> > +++ b/datapath/actions.c
> > @@ -413,6 +423,7 @@ static int do_execute_actions(struct datapath *dp, struct sk_buff *skb,
> >
> >                case ODP_ACTION_ATTR_SET_TUNNEL:
> >                        OVS_CB(skb)->tun_id = nla_get_be64(a);
> > +                       skb_clear_rxhash(skb);
> 
> This needs to be done in the tunneling code on encap/decap.  On
> receive this action will never be used and it's not required to be
> used on transmit.

Thanks, I'll address that too.





More information about the dev mailing list