From patchwork Mon Jan 24 06:56:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Wang X-Patchwork-Id: 106326 X-Patchwork-Delegate: ferruh.yigit@amd.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 7E178A04A6; Mon, 24 Jan 2022 07:57:00 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 64CA5427A5; Mon, 24 Jan 2022 07:57:00 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id AD39F40040 for ; Mon, 24 Jan 2022 07:56:58 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1643007418; x=1674543418; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=BSI8d9hqQ9Y7nyqUAGsEmAi5O7usLkX+/KSW/gxmOTs=; b=PTIZ3DCm+1KLO6bX4AM2bZTFb0MOv67RWa93pQWiSxyGlkaldNEtS90p wKumb7uDGcyRakZMg0fjFB43/d/Cgru8gqo9TSAxUBXPqF5M11zO7A0lq tLJT1JlWqJepNJbZr5QN0FzDeY3Qzi2EsgOg7kjwkIZu/5/jWfvSgUPyT TfquCmNjkjUY21g7ERgmjdMoFE43KWumj4xMb8vpw6LKmN2/vy4bLuOdI OTrkw4qhC2swBPdMH645tLEypOR+7IIDKzhWcvmtST0OzmpJNTPa2W2fG haH1UMvG8o4B3sYHQ/mZTXISmc0HdlRkwX4JRZwsdVr0pgq2IYeH06MFf A==; X-IronPort-AV: E=McAfee;i="6200,9189,10236"; a="233337074" X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="233337074" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 22:56:57 -0800 X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="478959495" Received: from intel-cd-odc-gavin.cd.intel.com ([10.240.178.183]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 22:56:54 -0800 From: Jie Wang To: dev@dpdk.org Cc: stevex.yang@intel.com, orika@nvidia.com, aman.deep.singh@intel.com, ferruh.yigit@intel.com, thomas@monjalon.net, andrew.rybchenko@oktetlabs.ru, jingjing.wu@intel.com, beilei.xing@intel.com, qi.z.zhang@intel.com, Jie Wang Subject: [PATCH 1/6] ethdev: add L2TPv2 RSS offload type Date: Mon, 24 Jan 2022 14:56:08 +0800 Message-Id: <20220124065613.2197436-2-jie1x.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220124065613.2197436-1-jie1x.wang@intel.com> References: <20220124065613.2197436-1-jie1x.wang@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 This patch defines new RSS offload type for L2TPv2, which are required when users want to distribute packets based on the L2TPv2 field. Signed-off-by: Jie Wang --- app/test-pmd/cmdline.c | 10 ++++++---- app/test-pmd/config.c | 3 ++- doc/guides/rel_notes/release_22_03.rst | 5 +++++ lib/ethdev/rte_ethdev.h | 3 +++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 6e10afeedd..3914fb9a75 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -2178,7 +2178,7 @@ cmd_config_rss_parsed(void *parsed_result, RTE_ETH_RSS_TCP | RTE_ETH_RSS_UDP | RTE_ETH_RSS_SCTP | RTE_ETH_RSS_L2_PAYLOAD | RTE_ETH_RSS_L2TPV3 | RTE_ETH_RSS_ESP | RTE_ETH_RSS_AH | RTE_ETH_RSS_PFCP | RTE_ETH_RSS_GTPU | - RTE_ETH_RSS_ECPRI; + RTE_ETH_RSS_ECPRI | RTE_ETH_RSS_L2TPV2; else if (!strcmp(res->value, "eth")) rss_conf.rss_hf = RTE_ETH_RSS_ETH; else if (!strcmp(res->value, "vlan")) @@ -2256,6 +2256,8 @@ cmd_config_rss_parsed(void *parsed_result, rss_conf.rss_hf = (rss_hf | RTE_ETH_RSS_LEVEL_INNERMOST); } else if (!strcmp(res->value, "default")) use_default = 1; + else if (!strcmp(res->value, "l2tpv2")) + rss_conf.rss_hf = RTE_ETH_RSS_L2TPV2; else if (isdigit(res->value[0]) && atoi(res->value) > 0 && atoi(res->value) < 64) rss_conf.rss_hf = 1ULL << atoi(res->value); @@ -2314,7 +2316,7 @@ cmdline_parse_inst_t cmd_config_rss = { .help_str = "port config all rss " "all|default|eth|vlan|ip|tcp|udp|sctp|ether|port|vxlan|geneve|" "nvgre|vxlan-gpe|l2tpv3|esp|ah|pfcp|ecpri|mpls|none|level-default|" - "level-outer|level-inner|ipv4-chksum|", + "level-outer|level-inner|ipv4-chksum|l2tpv2|", .tokens = { (void *)&cmd_config_rss_port, (void *)&cmd_config_rss_keyword, @@ -2429,7 +2431,7 @@ cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type = "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#pppoe#gtpu#ecpri#mpls"); + "l2tpv3#esp#ah#pfcp#pppoe#gtpu#ecpri#mpls#l2tpv2"); cmdline_parse_token_string_t cmd_config_rss_hash_key_value = TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, key, NULL); @@ -2442,7 +2444,7 @@ cmdline_parse_inst_t 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|pppoe|gtpu|ecpri|mpls " + "l2tpv3|esp|ah|pfcp|pppoe|gtpu|ecpri|mpls|l2tpv2 " "", .tokens = { (void *)&cmd_config_rss_hash_key_port, diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 1722d6c8f8..ec922bd304 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -90,7 +90,7 @@ const struct rss_type_info rss_type_table[] = { { "all", RTE_ETH_RSS_ETH | RTE_ETH_RSS_VLAN | RTE_ETH_RSS_IP | RTE_ETH_RSS_TCP | RTE_ETH_RSS_UDP | RTE_ETH_RSS_SCTP | RTE_ETH_RSS_L2_PAYLOAD | RTE_ETH_RSS_L2TPV3 | RTE_ETH_RSS_ESP | RTE_ETH_RSS_AH | RTE_ETH_RSS_PFCP | - RTE_ETH_RSS_GTPU | RTE_ETH_RSS_ECPRI | RTE_ETH_RSS_MPLS}, + RTE_ETH_RSS_GTPU | RTE_ETH_RSS_ECPRI | RTE_ETH_RSS_MPLS | RTE_ETH_RSS_L2TPV2}, { "none", 0 }, { "eth", RTE_ETH_RSS_ETH }, { "l2-src-only", RTE_ETH_RSS_L2_SRC_ONLY }, @@ -143,6 +143,7 @@ const struct rss_type_info rss_type_table[] = { { "mpls", RTE_ETH_RSS_MPLS }, { "ipv4-chksum", RTE_ETH_RSS_IPV4_CHKSUM }, { "l4-chksum", RTE_ETH_RSS_L4_CHKSUM }, + { "l2tpv2", RTE_ETH_RSS_L2TPV2 }, { NULL, 0 }, }; diff --git a/doc/guides/rel_notes/release_22_03.rst b/doc/guides/rel_notes/release_22_03.rst index 6d99d1eaa9..30695f11b7 100644 --- a/doc/guides/rel_notes/release_22_03.rst +++ b/doc/guides/rel_notes/release_22_03.rst @@ -55,6 +55,11 @@ New Features Also, make sure to start the actual text at the margin. ======================================================= +* **Added new RSS offload types for L2TPv2 in RSS flow.** + + Added macros RTE_ETH_RSS_L2TPV2, now L2TPv2 field can be used as + input set for RSS. + Removed Items ------------- diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h index fa299c8ad7..43f582c90c 100644 --- a/lib/ethdev/rte_ethdev.h +++ b/lib/ethdev/rte_ethdev.h @@ -645,6 +645,9 @@ struct rte_eth_rss_conf { #define RTE_ETH_RSS_L4_CHKSUM RTE_BIT64(35) #define ETH_RSS_L4_CHKSUM RTE_ETH_RSS_L4_CHKSUM +#define RTE_ETH_RSS_L2TPV2 RTE_BIT64(36) +#define ETH_RSS_L2TPV2 RTE_ETH_RSS_L2TPV2 + /* * We use the following macros to combine with above RTE_ETH_RSS_* for * more specific input set selection. These bits are defined starting