From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?iso-8859-1?Q?N=E9lio?= Laranjeiro Subject: Re: [PATCH 2/2] net/mlx5: add hardware TSO support for VXLAN and GRE Date: Wed, 1 Mar 2017 15:51:24 +0100 Message-ID: <20170301145124.GY22756@autoinstall.dev.6wind.com> References: <1488297228-45713-1-git-send-email-shahafs@mellanox.com> <1488297228-45713-3-git-send-email-shahafs@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Cc: adrien.mazarguil@6wind.com, dev@dpdk.org To: Shahaf Shuler Return-path: Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) by dpdk.org (Postfix) with ESMTP id 43017559A for ; Wed, 1 Mar 2017 15:51:32 +0100 (CET) Received: by mail-wm0-f46.google.com with SMTP id n11so1197541wma.1 for ; Wed, 01 Mar 2017 06:51:32 -0800 (PST) Content-Disposition: inline In-Reply-To: <1488297228-45713-3-git-send-email-shahafs@mellanox.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 Tue, Feb 28, 2017 at 05:53:48PM +0200, Shahaf Shuler wrote: > This commit adds support for hardware TSO for tunneled packets. > > Signed-off-by: Shahaf Shuler > --- > drivers/net/mlx5/mlx5_ethdev.c | 4 +++- > drivers/net/mlx5/mlx5_rxtx.c | 9 +++++++++ > 2 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c > index 3edfd49..4de3595 100644 > --- a/drivers/net/mlx5/mlx5_ethdev.c > +++ b/drivers/net/mlx5/mlx5_ethdev.c > @@ -696,7 +696,9 @@ struct priv * > if (priv->tso) > info->tx_offload_capa |= DEV_TX_OFFLOAD_TCP_TSO; > if (priv->tunnel_en) > - info->tx_offload_capa |= DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM; > + info->tx_offload_capa |= (DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM | > + DEV_TX_OFFLOAD_VXLAN_TNL_TSO | > + DEV_TX_OFFLOAD_GRE_TNL_TSO); > if (priv_get_ifname(priv, &ifname) == 0) > info->if_index = if_nametoindex(ifname); > /* FIXME: RETA update/query API expects the callee to know the size of > diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c > index 145daa0..98e7205 100644 > --- a/drivers/net/mlx5/mlx5_rxtx.c > +++ b/drivers/net/mlx5/mlx5_rxtx.c > @@ -488,9 +488,18 @@ > (1 << txq->wqe_n) * > MLX5_WQE_SIZE); > unsigned int copy_b; > + const uint64_t is_tunneled = > + buf->ol_flags & > + (PKT_TX_TUNNEL_GRE | > + PKT_TX_TUNNEL_VXLAN); > > tso_header_sz = buf->l2_len + buf->l3_len + > buf->l4_len; > + > + if (is_tunneled && txq->tunnel_en) { > + tso_header_sz += buf->outer_l2_len + > + buf->outer_l3_len; > + } > if (unlikely(tso_header_sz > > MLX5_MAX_TSO_HEADER)) > break; > -- > 1.8.3.1 Acked-by: Nelio Laranjeiro -- Nélio Laranjeiro 6WIND