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 4E5CDA0A00; Thu, 31 Dec 2020 06:15:43 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D9C23140CBC; Thu, 31 Dec 2020 06:15:42 +0100 (CET) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id 09926140CBB; Thu, 31 Dec 2020 06:15:40 +0100 (CET) IronPort-SDR: dHLNUFgmjbAPSRSHm5ZDecJa0+NfUzQxQv3lJP7w9+PSDxiXzkKrcvG93hThs9VuiVpR6wHKzV Q+tqiA8YLUKw== X-IronPort-AV: E=McAfee;i="6000,8403,9850"; a="240753369" X-IronPort-AV: E=Sophos;i="5.78,463,1599548400"; d="scan'208";a="240753369" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Dec 2020 21:15:39 -0800 IronPort-SDR: OuHEkE2ytbb19NtN6vup7V8fuPNgB5XiQ/KtAwu2iBSWcSuui+vOXnp98zY2NiHm3iMT2gMOg7 9a/0AV7yStGw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,463,1599548400"; d="scan'208";a="376652480" Received: from dpdk-junfengguo-v3.sh.intel.com ([10.67.119.146]) by orsmga008.jf.intel.com with ESMTP; 30 Dec 2020 21:15:38 -0800 From: Junfeng Guo To: qi.z.zhang@intel.com, jingjing.wu@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, stable@dpdk.org, ferruh.yigit@intel.com, junfeng.guo@intel.com Date: Thu, 31 Dec 2020 13:13:07 +0800 Message-Id: <20201231051307.667936-1-junfeng.guo@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH] net/iavf: fix GTPU UL and DL support for FDIR X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" 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