All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Guo <jia.guo@intel.com>
To: qi.z.zhang@intel.com, jingjing.wu@intel.com, beilei.xing@intel.com
Cc: dev@dpdk.org, junfeng.guo@intel.com, qiming.yang@intel.com,
	simei.su@intel.com, jia.guo@intel.com
Subject: [dpdk-dev] [dpdk-dev v5 2/3] net/iavf: enable 5 tuple rss hash
Date: Tue,  7 Jul 2020 13:14:05 +0800	[thread overview]
Message-ID: <20200707051406.13817-3-jia.guo@intel.com> (raw)
In-Reply-To: <20200707051406.13817-1-jia.guo@intel.com>

Previous iavf not support 5 tuple hash, this patch aims to enable it
for regular ip pattern and also GTPU inner ip pattern, the 5 tuple
involves ip src and ip dst, tcp sport and tcp dport, udp sport and
udp dport and protocol id.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
---
v5->v4:
no change
---
 drivers/net/iavf/iavf_hash.c | 268 ++++++++++++++++++++---------------
 1 file changed, 156 insertions(+), 112 deletions(-)

diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c
index 3ef97e9a2..b3b36cbc7 100644
--- a/drivers/net/iavf/iavf_hash.c
+++ b/drivers/net/iavf/iavf_hash.c
@@ -240,6 +240,28 @@ static struct iavf_pattern_match_item iavf_hash_pattern_list[] = {
 	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | \
 	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST), {BUFF_NOUSED } }
 
+#define proto_hint_ipv4_src_prot { \
+	VIRTCHNL_PROTO_HDR_IPV4, \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), \
+	{BUFF_NOUSED } }
+
+#define proto_hint_ipv4_dst_prot { \
+	VIRTCHNL_PROTO_HDR_IPV4, \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), \
+	{BUFF_NOUSED } }
+
+#define proto_hint_ipv4_only_prot { \
+	VIRTCHNL_PROTO_HDR_IPV4, \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), {BUFF_NOUSED } }
+
+#define proto_hint_ipv4_prot { \
+	VIRTCHNL_PROTO_HDR_IPV4, \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), {BUFF_NOUSED } }
+
 #define proto_hint_udp_src_port { \
 	VIRTCHNL_PROTO_HDR_UDP, \
 	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT), {BUFF_NOUSED } }
@@ -304,6 +326,28 @@ static struct iavf_pattern_match_item iavf_hash_pattern_list[] = {
 	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC) | \
 	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST), {BUFF_NOUSED } }
 
+#define proto_hint_ipv6_src_prot { \
+	VIRTCHNL_PROTO_HDR_IPV6, \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC) | \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), \
+	{BUFF_NOUSED } }
+
+#define proto_hint_ipv6_dst_prot { \
+	VIRTCHNL_PROTO_HDR_IPV6, \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST) | \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), \
+	{BUFF_NOUSED } }
+
+#define proto_hint_ipv6_only_prot { \
+	VIRTCHNL_PROTO_HDR_IPV6, \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), {BUFF_NOUSED } }
+
+#define proto_hint_ipv6_prot { \
+	VIRTCHNL_PROTO_HDR_IPV6, \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC) | \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST) | \
+	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), {BUFF_NOUSED } }
+
 #define proto_hint_gtpu_eh_only { \
 	VIRTCHNL_PROTO_HDR_GTPU_EH, \
 	FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } }
@@ -447,72 +491,72 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4 = {
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
 	proto_hint_udp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
 	proto_hint_udp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
 	proto_hint_udp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
 	proto_hint_udp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
 	proto_hint_udp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
 	proto_hint_udp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot,
 	proto_hint_udp }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
 	proto_hint_tcp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot,
 	proto_hint_tcp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
 	proto_hint_tcp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot,
 	proto_hint_tcp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
 	proto_hint_tcp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot,
 	proto_hint_tcp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot,
 	proto_hint_tcp }
 };
 
@@ -579,23 +623,23 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_esp = {
 /* GTPU EH */
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_udp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_udp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_tcp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_tcp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_eh = {
@@ -604,23 +648,23 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_eh = {
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_udp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_udp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_tcp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_tcp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_eh = {
@@ -634,55 +678,55 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_eh = {
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_udp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_udp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_tcp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_tcp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_udp}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_prot, proto_hint_udp}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_eh = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only,
-	proto_hint_tcp}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only,
+	proto_hint_ipv4_prot, proto_hint_tcp}
 };
 
 /* GTPU UP */
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_udp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_udp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_tcp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_tcp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_up = {
@@ -691,23 +735,23 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_up = {
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_udp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_udp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_tcp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_tcp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_up = {
@@ -721,55 +765,55 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_up = {
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_udp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_udp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_tcp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_tcp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_udp}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_prot, proto_hint_udp}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_up = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only,
-	proto_hint_tcp}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only,
+	proto_hint_ipv4_prot, proto_hint_tcp}
 };
 
 /* GTPU DWN */
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_udp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_only_prot, proto_hint_udp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_udp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_only_prot, proto_hint_udp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_tcp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_only_prot, proto_hint_tcp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_tcp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_dwn = {
@@ -778,23 +822,23 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_dwn = {
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_udp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_src_prot, proto_hint_udp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_udp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_src_prot, proto_hint_udp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_tcp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_src_prot, proto_hint_tcp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_tcp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_dwn = {
@@ -808,33 +852,33 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_dwn = {
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_udp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_dst_prot, proto_hint_udp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_udp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_tcp_src_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_tcp_dst_port}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_udp}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_prot, proto_hint_udp}
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_dwn = {
-	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only,
-	proto_hint_tcp}
+	TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only,
+	proto_hint_ipv4_prot, proto_hint_tcp}
 };
 
 /* IPV6 */
@@ -952,72 +996,72 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv6 = {
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
 	proto_hint_udp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
 	proto_hint_udp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
 	proto_hint_udp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
 	proto_hint_udp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
 	proto_hint_udp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
 	proto_hint_udp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot,
 	proto_hint_udp }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
 	proto_hint_tcp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot,
 	proto_hint_tcp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
 	proto_hint_tcp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot,
 	proto_hint_tcp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
 	proto_hint_tcp_src_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_port = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot,
 	proto_hint_tcp_dst_port }
 };
 
 struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp = {
-	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6,
+	TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot,
 	proto_hint_tcp }
 };
 
-- 
2.20.1


  parent reply	other threads:[~2020-07-07  5:15 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-12  2:44 [dpdk-dev] net/iavf: add inner 5 tuple hash for GTPU Jeff Guo
2020-06-14 15:09 ` [dpdk-dev] [dpdk-dev v2] " Jeff Guo
2020-06-21 14:02   ` [dpdk-dev] [dpdk-dev v3] " Jeff Guo
2020-07-01 12:56     ` Zhang, Qi Z
2020-07-03  3:52       ` Jeff Guo
2020-07-03  3:56     ` [dpdk-dev] [dpdk-dev v4 0/3] enable new hash flow for VF Jeff Guo
2020-07-03  3:56       ` [dpdk-dev] [dpdk-dev v4 1/3] net/iavf: refactor for hash flow Jeff Guo
2020-07-03 14:24         ` Zhang, Qi Z
2020-07-05 11:28           ` Jeff Guo
2020-07-03  3:56       ` [dpdk-dev] [dpdk-dev v4 2/3] net/iavf: enable 5 tuple rss hash Jeff Guo
2020-07-03  3:56       ` [dpdk-dev] [dpdk-dev v4 3/3] net/iavf: enable some new hash flow Jeff Guo
2020-07-07  5:14     ` [dpdk-dev] [dpdk-dev v5 0/3] enable new hash flow for VF Jeff Guo
2020-07-07  5:14       ` [dpdk-dev] [dpdk-dev v5 1/3] net/iavf: refactor for hash flow Jeff Guo
2020-07-07  5:14       ` Jeff Guo [this message]
2020-07-07  5:14       ` [dpdk-dev] [dpdk-dev v5 3/3] net/iavf: enable some new " Jeff Guo
2020-07-07  9:18       ` [dpdk-dev] [dpdk-dev v5 0/3] enable new hash flow for VF Zhang, Qi Z

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200707051406.13817-3-jia.guo@intel.com \
    --to=jia.guo@intel.com \
    --cc=beilei.xing@intel.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=junfeng.guo@intel.com \
    --cc=qi.z.zhang@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=simei.su@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.