From patchwork Fri Mar 3 09:31:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xing, Beilei" X-Patchwork-Id: 21249 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 3847EF610; Fri, 3 Mar 2017 10:33:14 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id EF6782952 for ; Fri, 3 Mar 2017 10:32:55 +0100 (CET) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Mar 2017 01:32:55 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,236,1484035200"; d="scan'208";a="72335781" Received: from unknown (HELO dpdk9.sh.intel.com) ([10.239.129.31]) by fmsmga006.fm.intel.com with ESMTP; 03 Mar 2017 01:32:53 -0800 From: Beilei Xing To: jingjing.wu@intel.com Cc: helin.zhang@intel.com, dev@dpdk.org Date: Fri, 3 Mar 2017 17:31:37 +0800 Message-Id: <1488533497-27682-5-git-send-email-beilei.xing@intel.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1488533497-27682-1-git-send-email-beilei.xing@intel.com> References: <1488533497-27682-1-git-send-email-beilei.xing@intel.com> Subject: [dpdk-dev] [PATCH 4/4] net/i40e: refine consistent tunnel filter 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" Add i40e_tunnel_type enumeration type to refine consistent tunnel filter, it will be esay to add new tunnel type for i40e. Signed-off-by: Beilei Xing --- drivers/net/i40e/i40e_ethdev.c | 8 ++++---- drivers/net/i40e/i40e_ethdev.h | 18 ++++++++++++++++-- drivers/net/i40e/i40e_flow.c | 6 +++--- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 43afd5b..91bfd73 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -6960,7 +6960,7 @@ i40e_dev_consistent_tunnel_filter_set(struct i40e_pf *pf, pfilter->element.inner_vlan = rte_cpu_to_le_16(tunnel_filter->inner_vlan); - if (tunnel_filter->ip_type == RTE_TUNNEL_IPTYPE_IPV4) { + if (tunnel_filter->ip_type == I40E_TUNNEL_IPTYPE_IPV4) { ip_type = I40E_AQC_ADD_CLOUD_FLAGS_IPV4; ipv4_addr = rte_be_to_cpu_32(tunnel_filter->ip_addr.ipv4_addr); rte_memcpy(&pfilter->element.ipaddr.v4.data, @@ -6980,13 +6980,13 @@ i40e_dev_consistent_tunnel_filter_set(struct i40e_pf *pf, /* check tunneled type */ switch (tunnel_filter->tunnel_type) { - case RTE_TUNNEL_TYPE_VXLAN: + case I40E_TUNNEL_TYPE_VXLAN: tun_type = I40E_AQC_ADD_CLOUD_TNL_TYPE_VXLAN; break; - case RTE_TUNNEL_TYPE_NVGRE: + case I40E_TUNNEL_TYPE_NVGRE: tun_type = I40E_AQC_ADD_CLOUD_TNL_TYPE_NVGRE_OMAC; break; - case RTE_TUNNEL_TYPE_IP_IN_GRE: + case I40E_TUNNEL_TYPE_IP_IN_GRE: tun_type = I40E_AQC_ADD_CLOUD_TNL_TYPE_IP; break; default: diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h index 3c8a420..3e9b129 100644 --- a/drivers/net/i40e/i40e_ethdev.h +++ b/drivers/net/i40e/i40e_ethdev.h @@ -531,6 +531,20 @@ struct i40e_tunnel_rule { }; /** + * Tunnel type. + */ +enum i40e_tunnel_type { + I40E_TUNNEL_TYPE_NONE = 0, + I40E_TUNNEL_TYPE_VXLAN, + I40E_TUNNEL_TYPE_GENEVE, + I40E_TUNNEL_TYPE_TEREDO, + I40E_TUNNEL_TYPE_NVGRE, + I40E_TUNNEL_TYPE_IP_IN_GRE, + I40E_L2_TUNNEL_TYPE_E_TAG, + I40E_TUNNEL_TYPE_MAX, +}; + +/** * Tunneling Packet filter configuration. */ struct i40e_tunnel_filter_conf { @@ -538,7 +552,7 @@ struct i40e_tunnel_filter_conf { struct ether_addr inner_mac; /**< Inner MAC address to match. */ uint16_t inner_vlan; /**< Inner VLAN to match. */ uint32_t outer_vlan; /**< Outer VLAN to match */ - enum rte_tunnel_iptype ip_type; /**< IP address type. */ + enum i40e_tunnel_iptype ip_type; /**< IP address type. */ /** * Outer destination IP address to match if ETH_TUNNEL_FILTER_OIP * is set in filter_type, or inner destination IP address to match @@ -550,7 +564,7 @@ struct i40e_tunnel_filter_conf { } ip_addr; /** Flags from ETH_TUNNEL_FILTER_XX - see above. */ uint16_t filter_type; - enum rte_eth_tunnel_type tunnel_type; /**< Tunnel Type. */ + enum i40e_tunnel_type tunnel_type; /**< Tunnel Type. */ uint32_t tenant_id; /**< Tenant ID to match. VNI, GRE key... */ uint16_t queue_id; /**< Queue assigned to if match. */ uint8_t is_to_vf; /**< 0 - to PF, 1 - to VF */ diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index 03c7026..3e8c63a 100644 --- a/drivers/net/i40e/i40e_flow.c +++ b/drivers/net/i40e/i40e_flow.c @@ -1324,7 +1324,7 @@ i40e_flow_parse_vxlan_pattern(__rte_unused struct rte_eth_dev *dev, } break; case RTE_FLOW_ITEM_TYPE_IPV4: - filter->ip_type = RTE_TUNNEL_IPTYPE_IPV4; + filter->ip_type = I40E_TUNNEL_IPTYPE_IPV4; /* IPv4 is used to describe protocol, * spec and mask should be NULL. */ @@ -1337,7 +1337,7 @@ i40e_flow_parse_vxlan_pattern(__rte_unused struct rte_eth_dev *dev, } break; case RTE_FLOW_ITEM_TYPE_IPV6: - filter->ip_type = RTE_TUNNEL_IPTYPE_IPV6; + filter->ip_type = I40E_TUNNEL_IPTYPE_IPV6; /* IPv6 is used to describe protocol, * spec and mask should be NULL. */ @@ -1480,7 +1480,7 @@ i40e_flow_parse_vxlan_pattern(__rte_unused struct rte_eth_dev *dev, return -rte_errno; } - filter->tunnel_type = RTE_TUNNEL_TYPE_VXLAN; + filter->tunnel_type = I40E_TUNNEL_TYPE_VXLAN; return 0; }