From patchwork Fri Jun 12 02:20:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simei Su X-Patchwork-Id: 71319 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 3CAA4A00BE; Fri, 12 Jun 2020 04:24:16 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 501FA2C60; Fri, 12 Jun 2020 04:24:09 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 79E082C39 for ; Fri, 12 Jun 2020 04:24:07 +0200 (CEST) IronPort-SDR: 8JLB3u7ROAkf8IGizULPElOotKd5AdPweEUNGPyxtUaUddKPy9zctz64eXkugyz+hZwnbpiPvX tsBRjRSabCcQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2020 19:24:07 -0700 IronPort-SDR: waO0kL5Ne1958vt7s995W2sSejIjlxkZ0wnZZ4NjBAh7LUciVYnPnVsUTqB2e+uYF9KfCXyYB9 drS9kmMXZbqA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,501,1583222400"; d="scan'208";a="275536682" Received: from npg-dpdk-cvl-simeisu-118d193.sh.intel.com ([10.67.110.178]) by orsmga006.jf.intel.com with ESMTP; 11 Jun 2020 19:24:05 -0700 From: Simei Su To: qi.z.zhang@intel.com, xiaolong.ye@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, jia.guo@intel.com, junfeng.guo@intel.com, simei.su@intel.com Date: Fri, 12 Jun 2020 10:20:05 +0800 Message-Id: <1591928407-314618-2-git-send-email-simei.su@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1591928407-314618-1-git-send-email-simei.su@intel.com> References: <1591928407-314618-1-git-send-email-simei.su@intel.com> Subject: [dpdk-dev] [PATCH 1/3] ethdev: add new RSS offload types 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" This patch defines new RSS offload types for PPPoE and session id is assumed to be the default RSS input set. Signed-off-by: Simei Su --- lib/librte_ethdev/rte_ethdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index a49242b..631b146 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -521,7 +521,7 @@ struct rte_eth_rss_conf { #define ETH_RSS_AH (1ULL << 28) #define ETH_RSS_L2TPV3 (1ULL << 29) #define ETH_RSS_PFCP (1ULL << 30) - +#define ETH_RSS_PPPOE (1ULL << 31) /* * We use the following macros to combine with above ETH_RSS_* for From patchwork Fri Jun 12 02:20:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simei Su X-Patchwork-Id: 71320 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 4A3D1A00BE; Fri, 12 Jun 2020 04:24:24 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C7B06323C; Fri, 12 Jun 2020 04:24:11 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id C75402D13 for ; Fri, 12 Jun 2020 04:24:09 +0200 (CEST) IronPort-SDR: 2KMLLANwbU3iG+ZhrJ/1NOd2XVRPuk8wpbZoC+CxjGg/xQDgocZ3bY7IQImEiqxXxRe7potPz1 eydE5nq1N2cQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2020 19:24:09 -0700 IronPort-SDR: JbHCpQmBumxC8gPYrxlm/EMJGRuc7NHWXdBR0zK24GuXLZu5qwal3nwZ3Cu8aZ+e5TO/kbDUCs KUL0vPytZrbA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,501,1583222400"; d="scan'208";a="275536690" Received: from npg-dpdk-cvl-simeisu-118d193.sh.intel.com ([10.67.110.178]) by orsmga006.jf.intel.com with ESMTP; 11 Jun 2020 19:24:07 -0700 From: Simei Su To: qi.z.zhang@intel.com, xiaolong.ye@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, jia.guo@intel.com, junfeng.guo@intel.com, simei.su@intel.com Date: Fri, 12 Jun 2020 10:20:06 +0800 Message-Id: <1591928407-314618-3-git-send-email-simei.su@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1591928407-314618-1-git-send-email-simei.su@intel.com> References: <1591928407-314618-1-git-send-email-simei.su@intel.com> Subject: [dpdk-dev] [PATCH 2/3] app/testpmd: support extended RSS offload types 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" This patch adds testpmd cmdline support for PPPoE. Signed-off-by: Simei Su --- app/test-pmd/cmdline.c | 6 ++++-- app/test-pmd/config.c | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 996a498..1ac0b89 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -2317,6 +2317,8 @@ struct cmd_config_rss { rss_conf.rss_hf = ETH_RSS_AH; else if (!strcmp(res->value, "pfcp")) rss_conf.rss_hf = ETH_RSS_PFCP; + else if (!strcmp(res->value, "pppoe")) + rss_conf.rss_hf = ETH_RSS_PPPOE; else if (!strcmp(res->value, "none")) rss_conf.rss_hf = 0; else if (!strcmp(res->value, "default")) @@ -2490,7 +2492,7 @@ struct cmd_config_rss_hash_key { "ipv6-tcp-ex#ipv6-udp-ex#" "l3-src-only#l3-dst-only#l4-src-only#l4-dst-only#" "l2-src-only#l2-dst-only#s-vlan#c-vlan#" - "l2tpv3#esp#ah#pfcp"); + "l2tpv3#esp#ah#pfcp#pppoe"); cmdline_parse_token_string_t cmd_config_rss_hash_key_value = TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, key, NULL); @@ -2503,7 +2505,7 @@ struct cmd_config_rss_hash_key { "l2-payload|ipv6-ex|ipv6-tcp-ex|ipv6-udp-ex|" "l3-src-only|l3-dst-only|l4-src-only|l4-dst-only|" "l2-src-only|l2-dst-only|s-vlan|c-vlan|" - "l2tpv3|esp|ah|pfcp " + "l2tpv3|esp|ah|pfcp|pppoe " "", .tokens = { (void *)&cmd_config_rss_hash_key_port, diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 5381207..ef04699 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -118,6 +118,7 @@ { "ah", ETH_RSS_AH }, { "l2tpv3", ETH_RSS_L2TPV3 }, { "pfcp", ETH_RSS_PFCP }, + { "pppoe", ETH_RSS_PPPOE }, { NULL, 0 }, }; From patchwork Fri Jun 12 02:20:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simei Su X-Patchwork-Id: 71321 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 784A6A00BE; Fri, 12 Jun 2020 04:24:33 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 98C244C89; Fri, 12 Jun 2020 04:24:14 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 81F4F374C for ; Fri, 12 Jun 2020 04:24:12 +0200 (CEST) IronPort-SDR: +OPv2Sei9tV3qKksS/EOMhZhvDdmi8VKdYO9v0H7QFZpAeWL/d0QhoCs4b8VREE6dJ5RtvEyzJ +h9JOFtO2yZQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2020 19:24:12 -0700 IronPort-SDR: uj/34SKwRu6gbQzUej3oGvb8t+vq7G/bFjPDzSzux/3e3o77q+ExRYnLKTJJumzdRTXKUkJJqK wVWu4uwKKU6Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,501,1583222400"; d="scan'208";a="275536711" Received: from npg-dpdk-cvl-simeisu-118d193.sh.intel.com ([10.67.110.178]) by orsmga006.jf.intel.com with ESMTP; 11 Jun 2020 19:24:10 -0700 From: Simei Su To: qi.z.zhang@intel.com, xiaolong.ye@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, jia.guo@intel.com, junfeng.guo@intel.com, simei.su@intel.com Date: Fri, 12 Jun 2020 10:20:07 +0800 Message-Id: <1591928407-314618-4-git-send-email-simei.su@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1591928407-314618-1-git-send-email-simei.su@intel.com> References: <1591928407-314618-1-git-send-email-simei.su@intel.com> Subject: [dpdk-dev] [PATCH 3/3] net/ice: add RSS support for PPPoE 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" This patch enables PPPoE control packets with src mac and session id and PPPoE data packets with ip address and L4 port in rte_flow. Signed-off-by: Simei Su --- drivers/net/ice/ice_hash.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c index 3d58b71..eaf6a35 100644 --- a/drivers/net/ice/ice_hash.c +++ b/drivers/net/ice/ice_hash.c @@ -114,6 +114,16 @@ struct rss_type_match_hdr hint_14 = { ICE_FLOW_SEG_HDR_GTPU_EH, ETH_RSS_NONFRAG_IPV4_UDP}; struct rss_type_match_hdr hint_15 = { ICE_FLOW_SEG_HDR_GTPU_EH, ETH_RSS_NONFRAG_IPV4_TCP}; +struct rss_type_match_hdr hint_16 = { + ICE_FLOW_SEG_HDR_PPPOE, ETH_RSS_IPV6}; +struct rss_type_match_hdr hint_17 = { + ICE_FLOW_SEG_HDR_PPPOE, ETH_RSS_NONFRAG_IPV6_UDP}; +struct rss_type_match_hdr hint_18 = { + ICE_FLOW_SEG_HDR_PPPOE, ETH_RSS_NONFRAG_IPV6_TCP}; +struct rss_type_match_hdr hint_19 = { + ICE_FLOW_SEG_HDR_PPPOE, ETH_RSS_NONFRAG_IPV6_SCTP}; +struct rss_type_match_hdr hint_20 = { + ICE_FLOW_SEG_HDR_PPPOE, ETH_RSS_ETH | ETH_RSS_PPPOE}; /* Supported pattern for os default package. */ static struct ice_pattern_match_item ice_hash_pattern_list_os[] = { @@ -146,6 +156,11 @@ struct rss_type_match_hdr hint_15 = { {pattern_eth_pppoes_ipv4_udp, ICE_INSET_NONE, &hint_11}, {pattern_eth_pppoes_ipv4_tcp, ICE_INSET_NONE, &hint_12}, {pattern_eth_pppoes_ipv4_sctp, ICE_INSET_NONE, &hint_13}, + {pattern_eth_pppoes_ipv6, ICE_INSET_NONE, &hint_16}, + {pattern_eth_pppoes_ipv6_udp, ICE_INSET_NONE, &hint_17}, + {pattern_eth_pppoes_ipv6_tcp, ICE_INSET_NONE, &hint_18}, + {pattern_eth_pppoes_ipv6_sctp, ICE_INSET_NONE, &hint_19}, + {pattern_eth_pppoes, ICE_INSET_NONE, &hint_20}, }; /** @@ -213,6 +228,9 @@ struct ice_hash_match_type ice_hash_type_list[] = { {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L4_SRC_ONLY, BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)}, {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L4_DST_ONLY, BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)}, {ETH_RSS_NONFRAG_IPV6_SCTP, ICE_HASH_SCTP_IPV6}, + {ETH_RSS_ETH | ETH_RSS_L2_SRC_ONLY, BIT_ULL(ICE_FLOW_FIELD_IDX_ETH_SA)}, + {ETH_RSS_PPPOE, ICE_FLOW_HASH_PPPOE_SESS_ID}, + {ETH_RSS_ETH | ETH_RSS_PPPOE | ETH_RSS_L2_SRC_ONLY, ICE_FLOW_HASH_PPPOE_SESS_ID | BIT_ULL(ICE_FLOW_FIELD_IDX_ETH_SA)}, }; static struct ice_flow_engine ice_hash_engine = { @@ -331,6 +349,13 @@ struct ice_hash_match_type ice_hash_type_list[] = { RTE_FLOW_ERROR_TYPE_ACTION, action, "Not supported flow"); + if ((rss_hf & ETH_RSS_ETH) && (rss_hf & ~ETH_RSS_PPPOE)) + m->eth_rss_hint = ETH_RSS_ETH; + else if ((rss_hf & ETH_RSS_PPPOE) && (rss_hf & ~ETH_RSS_ETH)) + m->eth_rss_hint = ETH_RSS_PPPOE; + else if ((rss_hf & ETH_RSS_ETH) && (rss_hf & ETH_RSS_PPPOE)) + m->eth_rss_hint = ETH_RSS_ETH | ETH_RSS_PPPOE; + /* Check if rss types match pattern. */ if (rss->func != RTE_ETH_HASH_FUNCTION_SIMPLE_XOR) { if (((rss_hf & ETH_RSS_IPV4) != m->eth_rss_hint) && @@ -340,7 +365,11 @@ struct ice_hash_match_type ice_hash_type_list[] = { ((rss_hf & ETH_RSS_IPV6) != m->eth_rss_hint) && ((rss_hf & ETH_RSS_NONFRAG_IPV6_UDP) != m->eth_rss_hint) && ((rss_hf & ETH_RSS_NONFRAG_IPV6_TCP) != m->eth_rss_hint) && - ((rss_hf & ETH_RSS_NONFRAG_IPV6_SCTP) != m->eth_rss_hint)) + ((rss_hf & ETH_RSS_NONFRAG_IPV6_SCTP) != m->eth_rss_hint) && + ((rss_hf & ETH_RSS_ETH) != m->eth_rss_hint) && + ((rss_hf & ETH_RSS_PPPOE) != m->eth_rss_hint) && + (((rss_hf & (ETH_RSS_ETH | ETH_RSS_PPPOE)) != + m->eth_rss_hint))) return rte_flow_error_set(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION, action, "Not supported RSS types");