From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <nelio.laranjeiro@6wind.com>
Received: from mail-wr0-f196.google.com (mail-wr0-f196.google.com
 [209.85.128.196]) by dpdk.org (Postfix) with ESMTP id 05CE42BA4
 for <dev@dpdk.org>; Mon, 23 Apr 2018 17:04:26 +0200 (CEST)
Received: by mail-wr0-f196.google.com with SMTP id p5-v6so14447371wre.12
 for <dev@dpdk.org>; Mon, 23 Apr 2018 08:04:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=6wind-com.20150623.gappssmtp.com; s=20150623;
 h=date:from:to:cc:subject:message-id:references:mime-version
 :content-disposition:content-transfer-encoding:in-reply-to
 :user-agent; bh=f4Tybrx2NOUYdsEcYLGyVbUnBo5DiqO70gi3PpNcnrQ=;
 b=P0iwUQjthc9WD0AxS7e/bGYOJLX68C+eArQDEL/xxhTpFMR1535LKNWhCinuV5BflM
 0GW/ci/4/y5pOJqRTKHSL+4RVoizWZjCKaNKy//aJ7yc7j2L5VgOq12IxcepFW3d+WBS
 25Bmg/iGjIirMX7Ltony2ngaFi1dqpUfR0CWv6AhH+BSNQVibie8Lv2qbxnuzx0NHsNQ
 vgj7xKT4WvQVqJfy38lAJxLbegvsx8zbYWP+CV0cTATQu3GgX79mOa2L/+/99tL8MXi0
 oz10/cUmxE7A4OGrEnzUAQGQvuz5fO9KbSc+vH+51pMNNBr85u06x2yvpIBXjh+no5tH
 QtKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:date:from:to:cc:subject:message-id:references
 :mime-version:content-disposition:content-transfer-encoding
 :in-reply-to:user-agent;
 bh=f4Tybrx2NOUYdsEcYLGyVbUnBo5DiqO70gi3PpNcnrQ=;
 b=tgDMjBaXT49b4ANgX/rYy89OE6WWOXE6gzl6caIj0LoTxgCfUCuxXPtOFbZRdgi2QE
 nGlJ9g/3OFjSa8CBpjwevqI9CU50XgD7MjjHM5ufcu9rutogCxQLWkCWCJ0hR1KtBxG2
 RAEP8KsrDoahcA2CQRM+hVF8yVdF6bYcMNM5Qr/j8LoRgOrHcrvmQx+eOw1pZuNxL3Ey
 Shr2wnM3dXW3+uOHneXygXeYUeGE85w89xbtytkif9hP4ISX0YG+fGcf9oXOcxEqOkhO
 NobLrvXTzvNLp4vJwiuT448E9WayxxtGVZPzz//NMPBDkp/botmAA1ENrsAKu6KZ0Tb3
 vhcw==
X-Gm-Message-State: ALQs6tBfPywrMmtoDt2xiWcCZiURXE8QxxnGcGfuKR7B+EO1Pric44Gh
 Iu+kVdH8t/c9bhEcZgSOIsYkfBluhQ==
X-Google-Smtp-Source: AIpwx48WMYO9BPqdZCWWfQiI/t0RBTO8o0xTe/q/vr7Lu8jWMk7EBvE1ImhhvWt+h1oDBouO4GQKJQ==
X-Received: by 2002:adf:a690:: with SMTP id
 t16-v6mr17525511wrc.1.1524495865779; 
 Mon, 23 Apr 2018 08:04:25 -0700 (PDT)
Received: from laranjeiro-vm.dev.6wind.com
 (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78])
 by smtp.gmail.com with ESMTPSA id l53-v6sm29084932wrc.80.2018.04.23.08.04.24
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Mon, 23 Apr 2018 08:04:25 -0700 (PDT)
Date: Mon, 23 Apr 2018 17:05:10 +0200
From: =?iso-8859-1?Q?N=E9lio?= Laranjeiro <nelio.laranjeiro@6wind.com>
To: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Cc: Thomas Monjalon <thomas@monjalon.net>,
 Ferruh Yigit <ferruh.yigit@intel.com>, dev@dpdk.org,
 Xueming Li <xuemingl@mellanox.com>, Wenzhuo Lu <wenzhuo.lu@intel.com>,
 Jingjing Wu <jingjing.wu@intel.com>, Beilei Xing <beilei.xing@intel.com>,
 Qi Zhang <qi.z.zhang@intel.com>,
 Konstantin Ananyev <konstantin.ananyev@intel.com>,
 Yongseok Koh <yskoh@mellanox.com>,
 Andrew Rybchenko <arybchenko@solarflare.com>,
 Pascal Mazon <pascal.mazon@6wind.com>,
 Radu Nicolau <radu.nicolau@intel.com>, Akhil Goyal <akhil.goyal@nxp.com>
Message-ID: <20180423150510.zulkfqqp3ckxs4v2@laranjeiro-vm.dev.6wind.com>
References: <20180416150525.2817-1-adrien.mazarguil@6wind.com>
 <20180419100848.6178-1-adrien.mazarguil@6wind.com>
 <20180419100848.6178-8-adrien.mazarguil@6wind.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20180419100848.6178-8-adrien.mazarguil@6wind.com>
User-Agent: NeoMutt/20170113 (1.7.2)
Subject: Re: [dpdk-dev] [PATCH v5 07/16] ethdev: flatten RSS configuration
	in flow API
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Apr 2018 15:04:26 -0000

On Thu, Apr 19, 2018 at 12:16:39PM +0200, Adrien Mazarguil wrote:
> Since its inception, the rte_flow RSS action has been relying in part on
> external struct rte_eth_rss_conf for compatibility with the legacy RSS API.
> This structure lacks parameters such as the hash algorithm to use, and more
> recently, a method to tell which layer RSS should be performed on [1].
> 
> Given struct rte_eth_rss_conf will never be flexible enough to represent a
> complete RSS configuration (e.g. RETA table), this patch supersedes it by
> extending the rte_flow RSS action directly.
> 
> A subsequent patch will add a field to use a non-default RSS hash
> algorithm. To that end, a field named "types" replaces the field formerly
> known as "rss_hf" and standing for "RSS hash functions" as it was
> confusing. Actual RSS hash function types are defined by enum
> rte_eth_hash_function.
> 
> This patch updates all PMDs and example applications accordingly.
> 
> It breaks ABI compatibility for the following public functions:
> 
> - rte_flow_copy()
> - rte_flow_create()
> - rte_flow_query()
> - rte_flow_validate()
> 
> [1] commit 676b605182a5 ("doc: announce ethdev API change for RSS
>     configuration")
> 
> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
> Cc: Xueming Li <xuemingl@mellanox.com>
> Cc: Ferruh Yigit <ferruh.yigit@intel.com>
> Cc: Thomas Monjalon <thomas@monjalon.net>
> Cc: Wenzhuo Lu <wenzhuo.lu@intel.com>
> Cc: Jingjing Wu <jingjing.wu@intel.com>
> Cc: Beilei Xing <beilei.xing@intel.com>
> Cc: Qi Zhang <qi.z.zhang@intel.com>
> Cc: Konstantin Ananyev <konstantin.ananyev@intel.com>
> Cc: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
> Cc: Yongseok Koh <yskoh@mellanox.com>
> Cc: Andrew Rybchenko <arybchenko@solarflare.com>
> Cc: Pascal Mazon <pascal.mazon@6wind.com>
> Cc: Radu Nicolau <radu.nicolau@intel.com>
> Cc: Akhil Goyal <akhil.goyal@nxp.com>
> 
> ---
> 
> v3 changes:
> 
> Documentation update regarding the meaning of a 0 value for RSS types in
> flow rules.
> 
> It used to implicitly mean "no RSS" but is redefined as requesting a kind
> of "best-effort" mode from PMDs, i.e. anything ranging from empty to
> all-inclusive RSS; what matters is it provides safe defaults that will work
> regardless of PMD capabilities.
> ---
>[...]
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> @@ -642,17 +599,7 @@ mlx5_flow_convert_actions(struct rte_eth_dev *dev,
>  	enum { FATE = 1, MARK = 2, COUNT = 4, };
>  	uint32_t overlap = 0;
>  	struct priv *priv = dev->data->dev_private;
> -	int ret;
>  
> -	/*
> -	 * Add default RSS configuration necessary for Verbs to create QP even
> -	 * if no RSS is necessary.
> -	 */
> -	ret = mlx5_flow_convert_rss_conf(parser,
> -					 (const struct rte_eth_rss_conf *)
> -					 &priv->rss_conf);

This is still needed for QUEUE action, Verbs refuses to create an hash
Rx queue if no RSS key is provided even if the hash field is 0.

This can be fully moved to mlx5_hrxq_new() who can use the default key
when the rss_key is not provided.

Regards,

-- 
Nélio Laranjeiro
6WIND