From patchwork Tue Aug 4 12:39:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Junfeng Guo X-Patchwork-Id: 75160 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D71CBA053A; Tue, 4 Aug 2020 06:42:53 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EC6AB1C043; Tue, 4 Aug 2020 06:42:25 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 324921C020 for ; Tue, 4 Aug 2020 06:42:24 +0200 (CEST) IronPort-SDR: n3HAafQvQ/QhWRL0w0psVHSPoXu7+bPxvW8ufGyOvvKR9mq5+F3otngBnntxFxfvts9rrXBO1a bhYCAGap9M5w== X-IronPort-AV: E=McAfee;i="6000,8403,9702"; a="170335132" X-IronPort-AV: E=Sophos;i="5.75,432,1589266800"; d="scan'208";a="170335132" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Aug 2020 21:42:23 -0700 IronPort-SDR: vOabM5WQ2frwn03tyG6pczSwl72ad3+aqWVnU30+SiQ4lHxa6caAYahmSFvJ7rCuGVBafA2B79 WRSV7PDhljFg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,432,1589266800"; d="scan'208";a="315184059" Received: from dpdk-junfengguo-v1.sh.intel.com ([10.67.119.59]) by fmsmga004.fm.intel.com with ESMTP; 03 Aug 2020 21:42:21 -0700 From: Junfeng Guo To: qi.z.zhang@intel.com, jingjing.wu@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, junfeng.guo@intel.com Date: Tue, 4 Aug 2020 12:39:20 +0000 Message-Id: <20200804123920.485253-4-junfeng.guo@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200804123920.485253-1-junfeng.guo@intel.com> References: <20200803102814.3081903-1-junfeng.guo@intel.com> <20200804123920.485253-1-junfeng.guo@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 3/3] net/iavf: support RSS for GTPU IPv6 prefix 64bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" RSS for GTP-U IPv6 prefix 64bit fields are supported in this patch. The prefix here includes the first 64 bits of both SRC and DST inner IPv6 address for GTP-U. Signed-off-by: Junfeng Guo --- drivers/net/iavf/iavf_hash.c | 1119 +++++++++++++++++++++++++++++++++- 1 file changed, 1112 insertions(+), 7 deletions(-) diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index 3dc96d0f6..7df45630c 100644 --- a/drivers/net/iavf/iavf_hash.c +++ b/drivers/net/iavf/iavf_hash.c @@ -2167,6 +2167,439 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_sctp_dst_port = { proto_hint_sctp_dst_port } }; +/* GTPU + inner IPV6 Prefix 64 */ +/* GTPU IP + inner IPV6 Prefix 64 */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_dst } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64 } +}; + +/* GTPU IP + inner IPV6 Prefix 64 UDP */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_prot, proto_hint_udp } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_src_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_dst_prot, proto_hint_udp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_src_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_dst_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_udp_dst_port} +}; + +/* GTPU IP + inner IPV6 Prefix 64 TCP */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_prot, proto_hint_tcp } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_dst_prot, proto_hint_tcp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_src_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_dst_gtpu_ip = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_ip_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_tcp_dst_port} +}; + +/* GTPU EH + inner IPV6 Prefix 64 */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_dst } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64 } +}; + +/* GTPU EH + inner IPV6 Prefix 64 UDP */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_prot, proto_hint_udp } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_src_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_dst_prot, proto_hint_udp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_src_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_dst_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_udp_dst_port} +}; + +/* GTPU EH + inner IPV6 Prefix 64 TCP */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_prot, proto_hint_tcp } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_dst_prot, proto_hint_tcp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_src_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_dst_gtpu_eh = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_tcp_dst_port} +}; + +/* GTPU UP + inner IPV6 Prefix 64 */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_dst } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64 } +}; + +/* GTPU UP + inner IPV6 Prefix 64 UDP */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_prot, proto_hint_udp } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_src_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_dst_prot, proto_hint_udp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_src_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_dst_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_udp_dst_port} +}; + +/* GTPU UP + inner IPV6 Prefix 64 TCP */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_prot, proto_hint_tcp } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_dst_prot, proto_hint_tcp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_src_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_dst_gtpu_up = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_tcp_dst_port} +}; + +/* GTPU DWN + inner IPV6 Prefix 64 */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_dst } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_TWO, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64 } +}; + +/* GTPU DWN + inner IPV6 Prefix 64 UDP */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_prot, proto_hint_udp } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_src_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_udp_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_udp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_udp_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_dst_prot, proto_hint_udp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_src_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_udp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_udp_dst_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_udp_dst_port} +}; + +/* GTPU DWN + inner IPV6 Prefix 64 TCP */ +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_prot, proto_hint_tcp } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_dst_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_src_tcp_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_src_prot, proto_hint_tcp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_dst_tcp_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_dst_prot, proto_hint_tcp_only } +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_src_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_tcp_src_port} +}; + +struct virtchnl_proto_hdrs hdrs_hint_ipv6_pre64_tcp_dst_gtpu_dwn = { + TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, + proto_hint_ipv6_pre64_only_prot, proto_hint_tcp_dst_port} +}; + struct iavf_hash_match_type iavf_hash_map_list[] = { /* IPV4 */ {ETH_RSS_L2_SRC_ONLY, @@ -2501,7 +2934,7 @@ struct iavf_hash_match_type iavf_hash_map_list[] = { struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { /* GTPU */ /* GTPU IP */ - /* IPv4 GTPU IP IPv4*/ + /* IPv4 GTPU IP IPv4 */ {ETH_RSS_IPV4 | ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv4_src_gtpu_ip, @@ -2516,7 +2949,7 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_GTPU, &hdrs_hint_teid_gtpu_ip, IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV4}, - /* IPv4 GTPU IP IPv6*/ + /* IPv4 GTPU IP IPv6 */ {ETH_RSS_IPV6 | ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv6_src_gtpu_ip, @@ -2531,7 +2964,19 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_GTPU, &hdrs_hint_teid_gtpu_ip, IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6}, - /* IPv6 GTPU IP IPv4*/ + /* IPv4 GTPU IP IPv6 Prefix 64 */ + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64, + &hdrs_hint_ipv6_pre64_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6}, + /* IPv6 GTPU IP IPv4 */ {ETH_RSS_IPV4 | ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv4_src_gtpu_ip, @@ -2546,7 +2991,7 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_GTPU, &hdrs_hint_teid_gtpu_ip, IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV4}, - /* IPv6 GTPU IP IPv6*/ + /* IPv6 GTPU IP IPv6 */ {ETH_RSS_IPV6 | ETH_RSS_L3_SRC_ONLY, &hdrs_hint_ipv6_src_gtpu_ip, @@ -2561,6 +3006,18 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_GTPU, &hdrs_hint_teid_gtpu_ip, IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6}, + /* IPv6 GTPU IP IPv6 Prefix 64 */ + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64, + &hdrs_hint_ipv6_pre64_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6}, /* IPv4 GTPU IP IPv4 UDP */ {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -2633,6 +3090,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_UDP, &hdrs_hint_ipv6_udp_gtpu_ip, IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + /* IPv4 GTPU IP IPv6 Prefix 64 UDP */ + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_src_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_udp_src_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_udp_dst_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP, + &hdrs_hint_ipv6_pre64_udp_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_UDP}, /* IPv6 GTPU IP IPv4 UDP */ {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -2705,6 +3198,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_UDP, &hdrs_hint_ipv6_udp_gtpu_ip, IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + /* IPv6 GTPU IP IPv6 Prefix 64 UDP */ + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_src_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_udp_src_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_udp_dst_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP, + &hdrs_hint_ipv6_pre64_udp_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_UDP}, /* IPv4 GTPU IP IPv4 TCP */ {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -2777,6 +3306,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_TCP, &hdrs_hint_ipv6_tcp_gtpu_ip, IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + /* IPv4 GTPU IP IPv6 Prefix 64 TCP */ + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_tcp_src_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_tcp_dst_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP, + &hdrs_hint_ipv6_pre64_tcp_gtpu_ip, + IAVF_PHINT_IPV4_GTPU_IP | IAVF_PHINT_IPV6_TCP}, /* IPv6 GTPU IP IPv4 TCP */ {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -2844,10 +3409,46 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L4_DST_ONLY, - &hdrs_hint_ipv6_tcp_dst_gtpu_ip, + &hdrs_hint_ipv6_tcp_dst_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_NONFRAG_IPV6_TCP, + &hdrs_hint_ipv6_tcp_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + /* IPv6 GTPU IP IPv6 Prefix 64 TCP */ + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_tcp_src_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_gtpu_ip, + IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_tcp_dst_gtpu_ip, IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, - {ETH_RSS_NONFRAG_IPV6_TCP, - &hdrs_hint_ipv6_tcp_gtpu_ip, + {ETH_RSS_IPV6_PRE64_TCP, + &hdrs_hint_ipv6_pre64_tcp_gtpu_ip, IAVF_PHINT_IPV6_GTPU_IP | IAVF_PHINT_IPV6_TCP}, /* GTPU EH */ /* IPv4 GTPU EH IPv4 */ @@ -2874,6 +3475,18 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_IPV6, &hdrs_hint_ipv6_gtpu_eh, IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6}, + /* IPv4 GTPU EH IPv6 Prefix 64 */ + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64, + &hdrs_hint_ipv6_pre64_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6}, /* IPv6 GTPU EH IPv4 */ {ETH_RSS_IPV4 | ETH_RSS_L3_SRC_ONLY, @@ -2898,6 +3511,18 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_IPV6, &hdrs_hint_ipv6_gtpu_eh, IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6}, + /* IPv6 GTPU EH IPv6 Prefix 64 */ + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64, + &hdrs_hint_ipv6_pre64_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6}, /* IPv4 GTPU EH IPv4 UDP */ {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -2970,6 +3595,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_UDP, &hdrs_hint_ipv6_udp_gtpu_eh, IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + /* IPv4 GTPU EH IPv6 Prefix 64 UDP */ + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_src_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_udp_src_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_udp_dst_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP, + &hdrs_hint_ipv6_pre64_udp_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_UDP}, /* IPv6 GTPU EH IPv4 UDP */ {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3042,6 +3703,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_UDP, &hdrs_hint_ipv6_udp_gtpu_eh, IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + /* IPv6 GTPU EH IPv6 Prefix 64 UDP */ + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_src_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_udp_src_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_udp_dst_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP, + &hdrs_hint_ipv6_pre64_udp_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_UDP}, /* IPv4 GTPU EH IPv4 TCP */ {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3114,6 +3811,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_TCP, &hdrs_hint_ipv6_tcp_gtpu_eh, IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + /* IPv4 GTPU EH IPv6 Prefix 64 TCP */ + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_tcp_src_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_tcp_dst_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP, + &hdrs_hint_ipv6_pre64_tcp_gtpu_eh, + IAVF_PHINT_IPV4_GTPU_EH | IAVF_PHINT_IPV6_TCP}, /* IPv6 GTPU EH IPv4 TCP */ {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3186,6 +3919,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_TCP, &hdrs_hint_ipv6_tcp_gtpu_eh, IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + /* IPv6 GTPU EH IPv6 Prefix 64 TCP */ + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_tcp_src_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_tcp_dst_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP, + &hdrs_hint_ipv6_pre64_tcp_gtpu_eh, + IAVF_PHINT_IPV6_GTPU_EH | IAVF_PHINT_IPV6_TCP}, /* GTPU EH UP */ /* IPv4 GTPU EH UP IPv4 */ {ETH_RSS_IPV4 | @@ -3211,6 +3980,18 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_IPV6, &hdrs_hint_ipv6_gtpu_up, IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6}, + /* IPv4 GTPU UP IPv6 Prefix 64 */ + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64, + &hdrs_hint_ipv6_pre64_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6}, /* IPv6 GTPU EH UP IPv4 */ {ETH_RSS_IPV4 | ETH_RSS_L3_SRC_ONLY, @@ -3235,6 +4016,18 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_IPV6, &hdrs_hint_ipv6_gtpu_up, IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6}, + /* IPv6 GTPU UP IPv6 Prefix 64 */ + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64, + &hdrs_hint_ipv6_pre64_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6}, /* IPv4 GTPU EH UP IPv4 UDP */ {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3307,6 +4100,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_UDP, &hdrs_hint_ipv6_udp_gtpu_up, IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + /* IPv4 GTPU UP IPv6 Prefix 64 UDP */ + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_src_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_udp_src_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_udp_dst_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP, + &hdrs_hint_ipv6_pre64_udp_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, /* IPv6 GTPU EH UP IPv4 UDP */ {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3379,6 +4208,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_UDP, &hdrs_hint_ipv6_udp_gtpu_up, IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + /* IPv6 GTPU UP IPv6 Prefix 64 UDP */ + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_src_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_udp_src_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_udp_dst_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP, + &hdrs_hint_ipv6_pre64_udp_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_UDP}, /* IPv4 GTPU EH UP IPv4 TCP */ {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3451,6 +4316,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_TCP, &hdrs_hint_ipv6_tcp_gtpu_up, IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + /* IPv4 GTPU UP IPv6 Prefix 64 TCP */ + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_tcp_src_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_tcp_dst_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP, + &hdrs_hint_ipv6_pre64_tcp_gtpu_up, + IAVF_PHINT_IPV4_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, /* IPv6 GTPU EH UP IPv4 TCP */ {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3523,6 +4424,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_TCP, &hdrs_hint_ipv6_tcp_gtpu_up, IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + /* IPv6 GTPU UP IPv6 Prefix 64 TCP */ + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_tcp_src_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_tcp_dst_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP, + &hdrs_hint_ipv6_pre64_tcp_gtpu_up, + IAVF_PHINT_IPV6_GTPU_EH_UPLINK | IAVF_PHINT_IPV6_TCP}, /* GTPU EH DWN */ /* IPv4 GTPU EH DWN IPv4 */ {ETH_RSS_IPV4 | @@ -3548,6 +4485,18 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_IPV6, &hdrs_hint_ipv6_gtpu_dwn, IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6}, + /* IPv4 GTPU EH DWN IPv6 Prefix 64 */ + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64, + &hdrs_hint_ipv6_pre64_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6}, /* IPv6 GTPU EH DWN IPv4 */ {ETH_RSS_IPV4 | ETH_RSS_L3_SRC_ONLY, @@ -3572,6 +4521,18 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_IPV6, &hdrs_hint_ipv6_gtpu_dwn, IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6}, + /* IPv6 GTPU EH DWN IPv6 Prefix 64 */ + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64 | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6}, + {ETH_RSS_IPV6_PRE64, + &hdrs_hint_ipv6_pre64_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6}, /* IPv4 GTPU EH DWN IPv4 UDP */ {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3644,6 +4605,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_UDP, &hdrs_hint_ipv6_udp_gtpu_dwn, IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + /* IPv4 GTPU EH DWN IPv6 Prefix 64 UDP */ + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_src_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_udp_src_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_udp_dst_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP, + &hdrs_hint_ipv6_pre64_udp_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, /* IPv6 GTPU EH DWN IPv4 UDP */ {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3716,6 +4713,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_UDP, &hdrs_hint_ipv6_udp_gtpu_dwn, IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + /* IPv6 GTPU EH DWN IPv6 Prefix 64 UDP */ + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_src_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_dst_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_udp_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_udp_src_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_src_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_dst_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_udp_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_udp_dst_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, + {ETH_RSS_IPV6_PRE64_UDP, + &hdrs_hint_ipv6_pre64_udp_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_UDP}, /* IPv4 GTPU EH DWN IPv4 TCP */ {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3788,6 +4821,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_TCP, &hdrs_hint_ipv6_tcp_gtpu_dwn, IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + /* IPv4 GTPU EH DWN IPv6 Prefix 64 TCP */ + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_tcp_src_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_tcp_dst_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP, + &hdrs_hint_ipv6_pre64_tcp_gtpu_dwn, + IAVF_PHINT_IPV4_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, /* IPv6 GTPU EH DWN IPv4 TCP */ {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, @@ -3860,6 +4929,42 @@ struct iavf_hash_match_type iavf_gtpu_hash_map_list[] = { {ETH_RSS_NONFRAG_IPV6_TCP, &hdrs_hint_ipv6_tcp_gtpu_dwn, IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + /* IPv6 GTPU EH DWN IPv6 Prefix 64 TCP */ + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_src_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_dst_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_SRC_ONLY, + &hdrs_hint_ipv6_pre64_src_tcp_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_tcp_src_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_src_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_dst_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L3_DST_ONLY, + &hdrs_hint_ipv6_pre64_dst_tcp_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_L4_DST_ONLY, + &hdrs_hint_ipv6_pre64_tcp_dst_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, + {ETH_RSS_IPV6_PRE64_TCP, + &hdrs_hint_ipv6_pre64_tcp_gtpu_dwn, + IAVF_PHINT_IPV6_GTPU_EH_DWNLINK | IAVF_PHINT_IPV6_TCP}, }; struct virtchnl_proto_hdrs *iavf_hash_default_hdrs[] = {