From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <xuemingl@mellanox.com>
Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])
 by dpdk.org (Postfix) with ESMTP id DEC295F25
 for <dev@dpdk.org>; Fri,  9 Mar 2018 12:29:52 +0100 (CET)
Received: from Internal Mail-Server by MTLPINE1 (envelope-from
 xuemingl@mellanox.com)
 with ESMTPS (AES256-SHA encrypted); 9 Mar 2018 13:30:20 +0200
Received: from dev-r630-06.mtbc.labs.mlnx (dev-r630-06.mtbc.labs.mlnx
 [10.12.205.180])
 by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id w29BTmDJ021021;
 Fri, 9 Mar 2018 13:29:48 +0200
Received: from dev-r630-06.mtbc.labs.mlnx (localhost [127.0.0.1])
 by dev-r630-06.mtbc.labs.mlnx (8.14.7/8.14.7) with ESMTP id w29BTmTV002184;
 Fri, 9 Mar 2018 19:29:48 +0800
Received: (from xuemingl@localhost)
 by dev-r630-06.mtbc.labs.mlnx (8.14.7/8.14.7/Submit) id w29BTmfv002183;
 Fri, 9 Mar 2018 19:29:48 +0800
From: Xueming Li <xuemingl@mellanox.com>
To: Wenzhuo Lu <wenzhuo.lu@intel.com>, Jingjing Wu <jingjing.wu@intel.com>,
 Thomas Monjalon <thomas@monjalon.net>,
 Nelio Laranjeiro <nelio.laranjeiro@6wind.com>,
 Adrien Mazarguil <adrien.mazarguil@6wind.com>,
 Shahaf Shuler <shahafs@mellanox.com>, Olivier Matz <olivier.matz@6wind.com>
Cc: Xueming Li <xuemingl@mellanox.com>, dev@dpdk.org
Date: Fri,  9 Mar 2018 19:29:01 +0800
Message-Id: <20180309112921.2105-2-xuemingl@mellanox.com>
X-Mailer: git-send-email 2.13.3
In-Reply-To: <20180309112921.2105-1-xuemingl@mellanox.com>
References: <20180309112921.2105-1-xuemingl@mellanox.com>
In-Reply-To: <20180226150947.107179-2-xuemingl@mellanox.com>
References: <20180226150947.107179-2-xuemingl@mellanox.com>
Subject: [dpdk-dev] [PATCH v1 01/21] ethdev: support tunnel RSS level
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: Fri, 09 Mar 2018 11:29:53 -0000

Currently PMD implementations default RSS on either tunnel outer or
inner fields. This patch introduced RSS level to allow user to specify
RSS hash field level of tunneled packets.

0: outer RSS.
1: inner RSS.
2-255: deep RSS level.

Please note that tunnels that tightly nested without IP/UDP/TCP layer
interlaced are deemed as one level. For example the following packet can
only use level 0 or 1:
	eth / ipv4 / GRE / MPLS / ipv4 / udp

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
---
 lib/librte_ether/rte_ethdev.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 0361533..baaeb3c 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -398,6 +398,15 @@ struct rte_eth_rss_conf {
 	uint8_t *rss_key;    /**< If not NULL, 40-byte hash key. */
 	uint8_t rss_key_len; /**< hash key length in bytes. */
 	uint64_t rss_hf;     /**< Hash functions to apply - see below. */
+	/**
+	 * RSS hash calculation on tunnel level:
+	 *  0: outer RSS, default.
+	 *  1: inner RSS.
+	 *  2-255: deep RSS level.
+	 * Please note that tunnels not interlaced with [IP|TCP|UDP] are
+	 * deemed as one level, such as MPLS over GRE.
+	 */
+	uint8_t rss_level;
 };
 
 /*
-- 
1.8.3.1