From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 422A3A0C4B for ; Sat, 14 Aug 2021 09:20:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 361754069F; Sat, 14 Aug 2021 09:20:00 +0200 (CEST) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam08on2085.outbound.protection.outlook.com [40.107.100.85]) by mails.dpdk.org (Postfix) with ESMTP id F37364069F for ; Sat, 14 Aug 2021 09:19:58 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n4AXDAXfDI1HXg0eCPYgM9bTms32dpJpFVFzEGQB3dtFAKjSXqqhK67AbAfTjeft5nUantrMLadslmUD5qk+NlFOu3obMx6f3kKb3Y/OMil7vgXphV562BwNTH6DyiOyJpb+xqxJyWZCNx4VHDl9jOfSjHKKxR75xHPhlmd4eKKXm1RvDQ619+sDRAJklwjcSybfBO3Bt28XKwE1p1Of0wLK1dWkdwgpwd7YeZeDx9t4Jc6fIW66zZC9OqoQVkiBZXqo0Uqc3W2SzJQOxsARDhAGpzRcNtCPGycEvPAzCQD1hls3UxOjIjllROez1PNNfe+AIXo4gmtgMr3ngteycQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hIgnyjUNar4eT8AL39jzsdM22bqJ0hGVLExU5aX4tws=; b=C483RWwoAjYq97uFfVX20dTjlXo2ioAt4wfGob6Nsl/qVb2l8ojMQHd4kkGoTpw8pg1MXqNMucKUK/QXTezryzWqQq4l09sQ6ZdlqeiVPuAjNq8J94lj/N13u4mRAAEGMUaW0pkap8XbtD8cdol3cTl/Tukl5RkgN+pIEUMxuJGhqnJohiObqVRymohgdWwny/4yAVAop55cepeoaR7d20NFPsVc3sAwnz6hE0qS7w/HfG1iLl4c5Nuhf8p8po1RrxwgEdbV9pK0FAVF1Ix7UPFYzEVCUfrncH5tXak8svzMdW7wC14MTaHZBas9Bnd4OsP4pkomGF9KKHf8JBM9mg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=canonical.com smtp.mailfrom=nvidia.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hIgnyjUNar4eT8AL39jzsdM22bqJ0hGVLExU5aX4tws=; b=N93SdGp2JiBbOAUTtuabxXVu9dRkL5e+tQUK0BBySmQ5jABSvtU6aAzTewKsLJNh7Ki4Az9cyN/B5RkF+xBvRL1taEQvKyJJWewMAKPWbJmp2+5HlVJ7GZU7Yi+1oG6saO0DgtvnFRK3aDDHa1QZULB4//aUF4nYsjpwjs+svyU9n0pVfzu8rFGF6Za4ESJcxBRLjEUxUwjherY3WQopqGEXaNKIpK0ZpiK3Mj9BELH8vU4HiXMtzn/iaiWCCjX5t2aFj5DGjwgXTSNUTwAd8WWRSUoy4ALp1s3FouyrgUO4H0dCnY00w7t334IzgLgKAW/s9leS2oz15+manVF8XA== Received: from DM6PR03CA0050.namprd03.prod.outlook.com (2603:10b6:5:100::27) by MN2PR12MB4360.namprd12.prod.outlook.com (2603:10b6:208:266::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.17; Sat, 14 Aug 2021 07:19:57 +0000 Received: from DM6NAM11FT052.eop-nam11.prod.protection.outlook.com (2603:10b6:5:100:cafe::ff) by DM6PR03CA0050.outlook.office365.com (2603:10b6:5:100::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.16 via Frontend Transport; Sat, 14 Aug 2021 07:19:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; canonical.com; dkim=none (message not signed) header.d=none;canonical.com; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by DM6NAM11FT052.mail.protection.outlook.com (10.13.172.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4415.14 via Frontend Transport; Sat, 14 Aug 2021 07:19:57 +0000 Received: from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 14 Aug 2021 07:19:55 +0000 From: Xiaoyu Min To: CC: , Jiawei Wang , Viacheslav Ovsiienko Date: Sat, 14 Aug 2021 15:19:33 +0800 Message-ID: <92dd0fdda732f11ac710f011086cd5ae9c05fa2d.1628923046.git.jackmin@nvidia.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL111.nvidia.com (172.20.187.18) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2db247e5-3456-4b8c-1d8e-08d95ef3ebbd X-MS-TrafficTypeDiagnostic: MN2PR12MB4360: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:261; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RaCQn+38EnyG6OKSBgmr7tma0AkfnQFa4LSw6kq8qFhxsnMGQv464ISq3l3YZ66w2+9Dik7Toz62INQZoioDT74DTBhuPXY0N6XCDUlT0wY/8yo1BY2rg6yduBqnLXWX6/e5syo4py1LSpW3YOsHa2jgI9mXR2P9iI3ueOzil2XaRV8TcsUX+/iQWPa9h4/BIMu3BH/z7wEPBKvxxgXN8j5L1Koe2PhmUM3lQkkufNcD1kwccj4gdSqGjhV/BNOM8oAOpv5WJg9hQXXi+DMULbjmFypATdbTceiVQGiPN4J/XlgKSnIrB4nsDt+SHI3wW7nAjKLl0bw4VGsv48e6X2EBUiCTDp0m79+L1C3KjrhFobvARzxJUwL0iKQR0nR4mSAKWsmHUI3BUJxURLY0/AKogTt/5ILB8jhaMO1amuboNe4ZOGvtikJyjcm1K343XXZI0a60loio+dQp/jdvXG7jBQfaN14hXAJbL3mUbewy24WDFpxhW56zPUG63MXlQuxOQwh+nDPcy6oU9YLmVgNg+GfbPhkAvOolRgJ3oMVgx6NHdMgASlyHf5adznx5rjKnvgHhiHYu+81w5tBQI1r+LegN1dtTjOUDwlxGLWRgPNVeu5h5ejFrg/ePCIAje9p0P4sMyJJz1kXcAY745I2rys7J4aQ4Q8A6KfwsCXNi0Ger+E3iC/iE1ivFt1i2sfTIwC4JcuaT9qGRnggBnw== X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(396003)(136003)(39860400002)(346002)(376002)(46966006)(36840700001)(7696005)(47076005)(356005)(36906005)(7636003)(82740400003)(54906003)(426003)(5660300002)(107886003)(36756003)(26005)(316002)(336012)(36860700001)(16526019)(82310400003)(186003)(4326008)(2906002)(83380400001)(6286002)(55016002)(86362001)(8676002)(6666004)(8936002)(478600001)(70206006)(2616005)(70586007)(6916009); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2021 07:19:57.3260 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2db247e5-3456-4b8c-1d8e-08d95ef3ebbd X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT052.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4360 Subject: [dpdk-stable] [PATCH 19.11 1/4] net/mlx5: fix RSS flow item expansion for GRE key X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" From: Jiawei Wang [ upstream commit 09546d7b01927b5e31fdb51eea1f4ccc3abac5d2 ] The support of RSS expansion for the flows with IPv6 GRE item was added to mlx5 PMD. And the GRE KEY item support in expansion was missed and the flows with GRE and GRE KEY items were expanded in the wrong way causing the flow creation failure. This patch adds the RSS expansion support for GRE KEY and mlx5 PMD performs RSS expansion correctly. Fixes: e0632c72b5a6 ("net/mlx5: support RSS expansion for IPv6 GRE") Signed-off-by: Jiawei Wang Acked-by: Xiaoyu Min Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_flow.c | 10 +++++++++- lib/librte_ethdev/rte_flow.c | 4 ++-- lib/librte_ethdev/rte_flow_driver.h | 2 ++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 005171d09..f29438ad6 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -72,6 +72,7 @@ enum mlx5_expansion { MLX5_EXPANSION_VXLAN, MLX5_EXPANSION_VXLAN_GPE, MLX5_EXPANSION_GRE, + MLX5_EXPANSION_GRE_KEY, MLX5_EXPANSION_MPLS, MLX5_EXPANSION_ETH, MLX5_EXPANSION_ETH_VLAN, @@ -179,9 +180,16 @@ static const struct rte_flow_expand_node mlx5_support_expansion[] = { }, [MLX5_EXPANSION_GRE] = { .next = RTE_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_IPV4, - MLX5_EXPANSION_IPV6), + MLX5_EXPANSION_IPV6, + MLX5_EXPANSION_GRE_KEY), .type = RTE_FLOW_ITEM_TYPE_GRE, }, + [MLX5_EXPANSION_GRE_KEY] = { + .next = RTE_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_IPV4, + MLX5_EXPANSION_IPV6), + .type = RTE_FLOW_ITEM_TYPE_GRE_KEY, + .optional = 1, + }, [MLX5_EXPANSION_MPLS] = { .next = RTE_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_IPV4, MLX5_EXPANSION_IPV6), diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c index cf0b46780..32b676ca0 100644 --- a/lib/librte_ethdev/rte_flow.c +++ b/lib/librte_ethdev/rte_flow.c @@ -1062,7 +1062,7 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size, const struct rte_flow_expand_node graph[], int graph_root_index) { - const int elt_n = 8; + const int elt_n = 16; const struct rte_flow_item *item; const struct rte_flow_expand_node *node = &graph[graph_root_index]; const int *next_node; @@ -1185,7 +1185,7 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size, } } /* Go deeper. */ - if (node->next) { + if (!node->optional && node->next) { next_node = node->next; if (stack_pos++ == elt_n) { rte_errno = E2BIG; diff --git a/lib/librte_ethdev/rte_flow_driver.h b/lib/librte_ethdev/rte_flow_driver.h index a0359853e..d608d25d3 100644 --- a/lib/librte_ethdev/rte_flow_driver.h +++ b/lib/librte_ethdev/rte_flow_driver.h @@ -133,6 +133,8 @@ struct rte_flow_expand_node { * RSS types bit-field associated with this node * (see ETH_RSS_* definitions). */ + uint8_t optional; + /**< optional expand field. Default 0 to expand, 1 not go deeper. */ }; /** Object returned by rte_flow_expand_rss(). */ -- 2.32.0