From patchwork Wed Jun 22 03:00:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yan, Zhirun" X-Patchwork-Id: 113206 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 mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 88D2EA04FD; Wed, 22 Jun 2022 05:03:57 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 78FAF427F3; Wed, 22 Jun 2022 05:03:57 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 2A2B44014F for ; Wed, 22 Jun 2022 05:03:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1655867036; x=1687403036; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xwlj7G2lYhMaYblbcXFxt6AkVHLPFELCVeUOb2b1wX4=; b=HQ3gJjYcd0Rp6JuPj5ratRH8p6bisX+6d1I4eVPfu9DEZS4mulGONeUI UCwdSCBm0Qbukj3G/u3JrpxERDnBg0uJ/8apVqtkSlZvUAomCLJiDSspJ foBsEqQsPHyYLf9aQu7tPS6lKF0skJRBeZTifkxaarfWOLAF6JF65K6Xo hr01hEPaL7pVdsIq9G92T/sYJp3kKzsVMkkyoaqWGhdfbsfRe7CvTjFt8 JqCjTHrbYwgfKJsyBXqjJS6td+KOVR3bKrRtia5LMMG0pSCvgQpYcqQj2 Xa462ZAg8jPVfa/uDZAESvjS9EEgWKnMo4fHoqYvQg0xB4DLbA6Un325O w==; X-IronPort-AV: E=McAfee;i="6400,9594,10385"; a="269016452" X-IronPort-AV: E=Sophos;i="5.92,211,1650956400"; d="scan'208";a="269016452" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jun 2022 20:03:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,211,1650956400"; d="scan'208";a="677308312" Received: from dpdk-zhirun-dev.sh.intel.com ([10.67.110.172]) by FMSMGA003.fm.intel.com with ESMTP; 21 Jun 2022 20:03:53 -0700 From: Zhirun Yan To: dev@dpdk.org, qi.z.zhang@intel.com, qiming.yang@intel.com Cc: xiao.w.wang@intel.com, Zhirun Yan Subject: [PATCH v1 2/3] net/ice: fix outer src mac as FDIR input field Date: Wed, 22 Jun 2022 11:00:31 +0800 Message-Id: <20220622030032.474770-3-zhirun.yan@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220622030032.474770-1-zhirun.yan@intel.com> References: <20220622030032.474770-1-zhirun.yan@intel.com> MIME-Version: 1.0 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 Add src mac in input set map. If not add this, the src mac can not be parsed and this field will be ignored. Add outer mac as extracted key input to avoid rule conflict for VXLAN rule when outer src mac change only. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_ethdev.h | 3 +++ drivers/net/ice/ice_fdir_filter.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/drivers/net/ice/ice_ethdev.h b/drivers/net/ice/ice_ethdev.h index ec23dae665..791e8566ea 100644 --- a/drivers/net/ice/ice_ethdev.h +++ b/drivers/net/ice/ice_ethdev.h @@ -366,6 +366,9 @@ struct ice_fdir_fltr_pattern { struct ice_fdir_extra ext_data; struct ice_fdir_extra ext_mask; + struct ice_fdir_extra ext_data_outer; + struct ice_fdir_extra ext_mask_outer; + enum ice_fdir_tunnel_type tunnel_type; }; diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c index 7914ba9407..4b0b6b5b23 100644 --- a/drivers/net/ice/ice_fdir_filter.c +++ b/drivers/net/ice/ice_fdir_filter.c @@ -919,6 +919,7 @@ ice_fdir_input_set_parse(uint64_t inset, enum ice_flow_field *field) enum ice_flow_field fld; }; static const struct ice_inset_map ice_inset_map[] = { + {ICE_INSET_SMAC, ICE_FLOW_FIELD_IDX_ETH_SA}, {ICE_INSET_DMAC, ICE_FLOW_FIELD_IDX_ETH_DA}, {ICE_INSET_ETHERTYPE, ICE_FLOW_FIELD_IDX_ETH_TYPE}, {ICE_INSET_IPV4_SRC, ICE_FLOW_FIELD_IDX_IPV4_SA}, @@ -1247,6 +1248,8 @@ ice_fdir_extract_fltr_key(struct ice_fdir_fltr_pattern *key, rte_memcpy(&key->ext_data, &input->ext_data, sizeof(key->ext_data)); rte_memcpy(&key->ext_mask, &input->ext_mask, sizeof(key->ext_mask)); + rte_memcpy(&key->ext_data_outer, &input->ext_data_outer, sizeof(key->ext_data_outer)); + rte_memcpy(&key->ext_mask_outer, &input->ext_mask_outer, sizeof(key->ext_mask_outer)); rte_memcpy(&key->gtpu_data, &input->gtpu_data, sizeof(key->gtpu_data)); rte_memcpy(&key->gtpu_mask, &input->gtpu_mask, sizeof(key->gtpu_mask));