From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH v3 3/4] net/mlx5: add rte_flow rule creation Date: Fri, 23 Dec 2016 12:21:10 +0000 Message-ID: <1f1d914a-143b-94cd-9ade-f09e84c05df3@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Cc: Adrien Mazarguil To: Nelio Laranjeiro , dev@dpdk.org Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 7C9222BB9 for ; Fri, 23 Dec 2016 13:21:14 +0100 (CET) In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 12/21/2016 3:19 PM, Nelio Laranjeiro wrote: > Convert Ethernet, IPv4, IPv6, TCP, UDP layers into ibv_flow and create > those rules when after validation (i.e. NIC supports the rule). > > VLAN is still not supported in this commit. > > Signed-off-by: Nelio Laranjeiro <...> > +static struct rte_flow * > +priv_flow_create(struct priv *priv, > + const struct rte_flow_attr *attr, > + const struct rte_flow_item items[], > + const struct rte_flow_action actions[], > + struct rte_flow_error *error) > +{ > + struct rte_flow *rte_flow = NULL; Unnecessary assignment. <...> > + action = (struct action) { > + .queue = -1, > + .drop = 0, > + }; > + for (; actions->type != RTE_FLOW_ACTION_TYPE_END; ++actions) { > + if (actions->type == RTE_FLOW_ACTION_TYPE_VOID) { > + continue; > + } else if (actions->type == RTE_FLOW_ACTION_TYPE_QUEUE) { > + action.queue = ((const struct rte_flow_action_queue *) > + actions->conf)->index; > + } else if (actions->type == RTE_FLOW_ACTION_TYPE_DROP) { > + action.drop = 1; > + } else { > + rte_flow_error_set(error, ENOTSUP, > + RTE_FLOW_ERROR_TYPE_ACTION, > + actions, "unsupported action"); > + goto exit; > + } > + } > + if (action.queue >= 0) { > + queue = action.queue; > + } else if (action.drop) { > + queue = MLX5_FLOW_DROP_QUEUE; > + } else { Not really so important, but as a note, ACTION_TYPE_VOID hits here. It pass from validation, but gives error in creation. > + rte_flow_error_set(error, ENOTSUP, > + RTE_FLOW_ERROR_TYPE_ACTION, > + actions, > + "no possible action found"); > + goto exit; > + } <...>