2014/10/17 19:25 "Pravin Shelar" <pshe...@nicira.com>: > > On Fri, Oct 17, 2014 at 12:16 AM, Simon Horman > <simon.hor...@netronome.com> wrote: > > On Thu, Oct 16, 2014 at 04:50:10PM -0700, Andy Zhou wrote: > >> Simon, The change makes a lot of sense. > >> > >> I am just wondering if we should upstream the netlink.h change first? > >> To me, it seems to add a new compat API that does not exist upstream. > > > > Sure, I think that makes sense. Though I'm not sure if upstream likes > > to take new API calls that aren't used. Perhaps a good way forwards > > would be for me to re-submit this patch against the upstream net-next > > kernel. > > > > Pravin, how would you feel about that? > > > Yes, lets submit it upstream and then backport it.
Thanks, I'll cook up a patch for upstream. > >> On Wed, Sep 24, 2014 at 9:28 PM, Simon Horman > >> <simon.hor...@netronome.com> wrote: > >> > The original motivation for this change was to allow the > >> > helper to be used in files other than actions.c as part > >> > of work on an odp select group action. > >> > > >> > It was as pointed out by Thomas Graf that this helper would be best > >> > off living in netlink.h. Furthermore, I think that the generic nature of this > >> > helper means it is best off in netlink.h regardless of if it is used more than > >> > one .c file or not. Thus I would like it considered independent > >> > of the work on an odp select group action. > >> > > >> > Signed-off-by: Simon Horman <simon.hor...@netronome.com> > >> > --- > >> > datapath/actions.c | 11 +++-------- > >> > datapath/linux/compat/include/net/netlink.h | 4 ++++ > >> > 2 files changed, 7 insertions(+), 8 deletions(-) > >> > > >> > diff --git a/datapath/actions.c b/datapath/actions.c > >> > index b527cb6..535b87e 100644 > >> > --- a/datapath/actions.c > >> > +++ b/datapath/actions.c > >> > @@ -671,11 +671,6 @@ static int output_userspace(struct datapath *dp, struct sk_buff *skb, > >> > return ovs_dp_upcall(dp, skb, key, &upcall); > >> > } > >> > > >> > -static bool last_action(const struct nlattr *a, int rem) > >> > -{ > >> > - return a->nla_len == rem; > >> > -} > >> > - > >> > static int sample(struct datapath *dp, struct sk_buff *skb, > >> > struct sw_flow_key *key, const struct nlattr *attr) > >> > { > >> > @@ -710,7 +705,7 @@ static int sample(struct datapath *dp, struct sk_buff *skb, > >> > * user space. This skb will be consumed by its caller. > >> > */ > >> > if (likely(nla_type(a) == OVS_ACTION_ATTR_USERSPACE && > >> > - last_action(a, rem))) > >> > + nla_is_last(a, rem))) > >> > return output_userspace(dp, skb, key, a); > >> > > >> > skb = skb_clone(skb, GFP_ATOMIC); > >> > @@ -810,7 +805,7 @@ static int execute_recirc(struct datapath *dp, struct sk_buff *skb, > >> > } > >> > BUG_ON(!is_flow_key_valid(key)); > >> > > >> > - if (!last_action(a, rem)) { > >> > + if (!nla_is_last(a, rem)) { > >> > /* Recirc action is the not the last action > >> > * of the action list, need to clone the skb. > >> > */ > >> > @@ -897,7 +892,7 @@ static int do_execute_actions(struct datapath *dp, struct sk_buff *skb, > >> > > >> > case OVS_ACTION_ATTR_RECIRC: > >> > err = execute_recirc(dp, skb, key, a, rem); > >> > - if (last_action(a, rem)) { > >> > + if (nla_is_last(a, rem)) { > >> > /* If this is the last action, the skb has > >> > * been consumed or freed. > >> > * Return immediately. > >> > diff --git a/datapath/linux/compat/include/net/netlink.h b/datapath/linux/compat/include/net/netlink.h > >> > index a6dc584..de37058 100644 > >> > --- a/datapath/linux/compat/include/net/netlink.h > >> > +++ b/datapath/linux/compat/include/net/netlink.h > >> > @@ -63,4 +63,8 @@ static inline struct nlattr *nla_find_nested(struct nlattr *nla, int attrtype) > >> > } > >> > #endif > >> > > >> > +static inline bool nla_is_last(const struct nlattr *a, int rem) > >> > +{ > >> > + return a->nla_len == rem; > >> > +} > >> > #endif /* net/netlink.h */ > >> > -- > >> > 2.0.1 > >> > > >> > _______________________________________________ > >> > dev mailing list > >> > dev@openvswitch.org > >> > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev