From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yongseok Koh Subject: Re: [PATCH 2/4] net/mlx5: add definitions for DV encap and decap Date: Wed, 3 Oct 2018 02:58:42 +0000 Message-ID: <20181003025829.GC10028@mtidpdk.mti.labs.mlnx> References: <1538059845-35896-1-git-send-email-dekelp@mellanox.com> <1538059845-35896-3-git-send-email-dekelp@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Cc: "dev@dpdk.org" , Shahaf Shuler , Ori Kam To: Dekel Peled Return-path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0080.outbound.protection.outlook.com [104.47.2.80]) by dpdk.org (Postfix) with ESMTP id B0EB2239 for ; Wed, 3 Oct 2018 04:58:44 +0200 (CEST) In-Reply-To: <1538059845-35896-3-git-send-email-dekelp@mellanox.com> Content-Language: en-US Content-ID: <6FC57F05B9E0CD45A24E97CB9675AECC@eurprd05.prod.outlook.com> 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 Thu, Sep 27, 2018 at 05:50:43PM +0300, Dekel Peled wrote: > This patch add the required definitions for DV encap/decap actions. > It also adds usage of the new actions definition in validation > function of existing drop operation. >=20 > Signed-off-by: Dekel Peled > --- > drivers/net/mlx5/mlx5_flow.c | 10 ++++++++++ > drivers/net/mlx5/mlx5_flow.h | 7 +++++++ > 2 files changed, 17 insertions(+) >=20 > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index 79a06df..fed0d29 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -768,6 +768,16 @@ uint32_t mlx5_flow_adjust_priority(struct rte_eth_de= v *dev, int32_t priority, > RTE_FLOW_ERROR_TYPE_ACTION, NULL, > "can't have 2 fate actions in" > " same flow"); > + if (action_flags & (MLX5_ACTION_TUNNEL_DECAP | > + MLX5_ACTION_TUNNEL_DECAP_L3 | > + MLX5_ACTION_TUNNEL_ENCAP | > + MLX5_ACTION_TUNNEL_ENCAP_L3)) > + return rte_flow_error_set(error, > + ENOTSUP, Shouldn't it be EINVAL? > + RTE_FLOW_ERROR_TYPE_ACTION, > + NULL, > + "can't encap or decap and drop in" > + " same flow"); > if (attr->egress) > return rte_flow_error_set(error, ENOTSUP, > RTE_FLOW_ERROR_TYPE_ATTR_EGRESS, > diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h > index a353d07..4a4f923 100644 > --- a/drivers/net/mlx5/mlx5_flow.h > +++ b/drivers/net/mlx5/mlx5_flow.h > @@ -90,6 +90,10 @@ > #define MLX5_ACTION_OF_PUSH_VLAN (1u << 8) > #define MLX5_ACTION_OF_SET_VLAN_VID (1u << 9) > #define MLX5_ACTION_OF_SET_VLAN_PCP (1u << 10) > +#define MLX5_ACTION_TUNNEL_ENCAP (1u << 11) > +#define MLX5_ACTION_TUNNEL_DECAP (1u << 12) > +#define MLX5_ACTION_TUNNEL_ENCAP_L3 (1u << 13) > +#define MLX5_ACTION_TUNNEL_DECAP_L3 (1u << 14) Please rebase it on top of my multi-table patchset, which is PR #878 becaus= e it also adds new actions. > =20 > /* possible L3 layers protocols filtering. */ > #define MLX5_IP_PROTOCOL_TCP 6 > @@ -175,6 +179,9 @@ struct mlx5_flow_dv { > #ifdef HAVE_IBV_FLOW_DV_SUPPORT > struct mlx5dv_flow_action_attr actions[MLX5_DV_MAX_NUMBER_OF_ACTIONS]; > /**< Action list. */ > + No blank line. > + struct ibv_flow_action *encap_verb; /**< Verbs object of encap. */ > + struct ibv_flow_action *decap_verb; /**< Verbs object of decap. */ > #endif > int actions_n; /**< number of actions. */ > }; > --=20 > 1.8.3.1 >=20