From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AD5F7A0A00 for ; Thu, 31 Dec 2020 06:12:21 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 77A65140CBB; Thu, 31 Dec 2020 06:12:21 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id EE09D140CBB for ; Thu, 31 Dec 2020 06:12:19 +0100 (CET) IronPort-SDR: 3LxqE7F9PM3ly7om2r5lNE8dXYQJnGRatb9P58PfxdnBERoosqEmc6PUp8iN30QphALlKUOFEn GevH6mgZjoeQ== X-IronPort-AV: E=McAfee;i="6000,8403,9850"; a="163733966" X-IronPort-AV: E=Sophos;i="5.78,463,1599548400"; d="scan'208";a="163733966" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Dec 2020 21:12:19 -0800 IronPort-SDR: X6Yo15oLrCubEKfVha3JrAph9v8uZ71NdDFEhrsFJymOyNYcIEhyimlA/HnJdu27AFm/vi0jlJ An3ZpMB6wChA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,463,1599548400"; d="scan'208";a="376651553" Received: from dpdk-junfengguo-v3.sh.intel.com ([10.67.119.146]) by orsmga008.jf.intel.com with ESMTP; 30 Dec 2020 21:12:18 -0800 From: Junfeng Guo To: build_sh@intel.com Cc: Junfeng Guo , stable@dpdk.org Date: Thu, 31 Dec 2020 13:09:47 +0800 Message-Id: <20201231050947.662561-1-junfeng.guo@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] [DPDK] net/iavf: fix GTPU UL and DL support for FDIR X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" For AVF FDIR, GTPU uplink and downlink are not supported in previous code. This patch distinguishes GTPU with IP/EH/DL/UL for AVF FDIR. Fixes: 4c7a41ae6b23 ("net/iavf: support flow director GTPU outer IPv4/IPv6") Cc: stable@dpdk.org Signed-off-by: Junfeng Guo --- drivers/net/iavf/iavf_fdir.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/iavf/iavf_fdir.c b/drivers/net/iavf/iavf_fdir.c index 4473936cb9..1b96e16546 100644 --- a/drivers/net/iavf/iavf_fdir.c +++ b/drivers/net/iavf/iavf_fdir.c @@ -25,6 +25,9 @@ #define IAVF_FDIR_IPV6_TC_OFFSET 20 #define IAVF_IPV6_TC_MASK (0xFF << IAVF_FDIR_IPV6_TC_OFFSET) +#define IAVF_GTPU_EH_DWLINK 0 +#define IAVF_GTPU_EH_UPLINK 1 + #define IAVF_FDIR_INSET_ETH (\ IAVF_INSET_ETHERTYPE) @@ -861,7 +864,14 @@ iavf_fdir_parse_pattern(__rte_unused struct iavf_adapter *ad, hdr = &filter->add_fltr.rule_cfg.proto_hdrs.proto_hdr[layer]; - VIRTCHNL_SET_PROTO_HDR_TYPE(hdr, GTPU_EH); + if (!gtp_psc_spec) + VIRTCHNL_SET_PROTO_HDR_TYPE(hdr, GTPU_EH); + else if ((gtp_psc_mask->qfi) && !(gtp_psc_mask->pdu_type)) + VIRTCHNL_SET_PROTO_HDR_TYPE(hdr, GTPU_EH); + else if (gtp_psc_spec->pdu_type == IAVF_GTPU_EH_UPLINK) + VIRTCHNL_SET_PROTO_HDR_TYPE(hdr, GTPU_EH_PDU_UP); + else if (gtp_psc_spec->pdu_type == IAVF_GTPU_EH_DWLINK) + VIRTCHNL_SET_PROTO_HDR_TYPE(hdr, GTPU_EH_PDU_DWN); if (gtp_psc_spec && gtp_psc_mask) { if (gtp_psc_mask->qfi == UINT8_MAX) { -- 2.25.1