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 AF14643239; Sun, 29 Oct 2023 19:25:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B98D0427E3; Sun, 29 Oct 2023 19:24:13 +0100 (CET) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2080.outbound.protection.outlook.com [40.107.212.80]) by mails.dpdk.org (Postfix) with ESMTP id 0497440E4A for ; Sun, 29 Oct 2023 19:24:09 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mtUp3yzmsRwbocR3hBo6aAVaiDXOZTm7Dxgx647sb0Avl1X6axeAuYtE7SBx1fGA1YmsvhX8u/+DMs8kXFpWOnEqgtI82t21viL39bdfUZG5NNu0AcvfKL6KmNRKyzBGzDDm+TGgt/Z6kofrk8LBZQ9jqe6VeusJC8QcgME5VqiRbdYjLYCmgNSpqezf25DaPTT/EtXmuci+AYeNm9L6PN9Aq43LA9JkrCI3Wgysltqpy7iJ/QhFZ72iFiJ6/6LdWgzZT0FdZgTEm+UNQ/CuRt3okTq30aHdRhP7vo4ErB91k5iDEOBeNSLi/N7eqOwojiBX34xyZMIAfQxttMwR8Q== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fEwZQKklvwd8ru1LpFvPEJKclQc5+1E4dQZYF2gRL/w=; b=PH2EunOB8S+EXX+buaDOmjb2s01a7XuwSfI3HK1gISgRh0Vhhbh7Exo9K6cu+YBeM2sOBreyBq6+4xLHVDlpCUzoj2hHYNBTS4tfREAttL08T0T1L/4shDcsvw5HxUFwFMAi8OU0T07u2TRntnTkKMFEjk3d1EVcCF0kP3PZVwyHSm0tYeSYu3LSaykQdSp7cN6x+cHWCN9+GNonhdHa1oy/jm/1XtTMd3RUQclFPLi4vgvRcyiqCRIn6VOEuWrUCIuhHpumtovL7XpJlxn6lDnJvYyerz5LxQ0yPplT1uwiuuoFgE/H6+a3HOp8w4eaIPrRoOmqbz+M4D2ic7mBiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) 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=fEwZQKklvwd8ru1LpFvPEJKclQc5+1E4dQZYF2gRL/w=; b=uiVDkngcVs6fbHa0HfaJlCCBdBfPITF+JcKtKNgYjXXdZ48DcxvZYVTf1Bs80bQikO5YPD5EhkElfxTLRw/jsUKMlYFoRo88OAf9TceDO5yyriAbUShVxsr0ZmIyKsW1rZ3YcFYc3YC/CQv8kvJ3qniutVkicZqv9I00j+EctToJZ8nGnLBFBVlfPYjXE2FOq189tx8+XtbolNjFi5tUt2xVHbACf/5K8Wi90RpJnlgnvE+0j+cWX2wz5TTFrP1ObKl39sEPgJTpxoir4jrjVA6jfs8NJpERmOMGpViQpytlW1+e/5coEQOVe9RbpT/xUODDa2FK871zFDE96Sk4sA== Received: from SN7P222CA0005.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:124::22) by SA3PR12MB7952.namprd12.prod.outlook.com (2603:10b6:806:316::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.26; Sun, 29 Oct 2023 18:24:07 +0000 Received: from SN1PEPF0002636D.namprd02.prod.outlook.com (2603:10b6:806:124:cafe::7d) by SN7P222CA0005.outlook.office365.com (2603:10b6:806:124::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.26 via Frontend Transport; Sun, 29 Oct 2023 18:24:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SN1PEPF0002636D.mail.protection.outlook.com (10.167.241.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.15 via Frontend Transport; Sun, 29 Oct 2023 18:24:07 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Sun, 29 Oct 2023 11:23:58 -0700 Received: from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Sun, 29 Oct 2023 11:23:55 -0700 From: Gregory Etelson To: CC: , , , "Ori Kam" , Matan Azrad , Viacheslav Ovsiienko , Suanming Mou Subject: [PATCH 13/13] net/mlx5: add validation support for tags Date: Sun, 29 Oct 2023 20:23:00 +0200 Message-ID: <20231029182300.227879-14-getelson@nvidia.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231029182300.227879-1-getelson@nvidia.com> References: <20231029182300.227879-1-getelson@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002636D:EE_|SA3PR12MB7952:EE_ X-MS-Office365-Filtering-Correlation-Id: 419820dc-b886-4ef4-97b5-08dbd8ac3d0e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3IrLDIF3Ezbxh8SWweoBl+5Twh4F6q7T+GYHbda7YkSXpuM0wmX3gKeR4AEqg8EBDN0uDi4IiTzi6Bzp7ox8sf2sSTopWeIgw+1D/c4kSG7JAVRsqzJRALVeS6FdK7QUru+HGkbEw/Nvn+RiSTaTNpe/SAlpri0TY6eEfjotAbotfWDH4HRfhcynd+DuIrnaXGNo63TwH7qCgmQ4DTTUb1LmKVQERgodPapkXroL1gs/c8OQRLLaApW+u4ddqefMYoO42fVtc+RIEC66/RF5//QPdKO8ke90UPMhXkFUocBoXvb4aDAz/cqfouIaqOYwiP4GaN0W/6hRm1TJkeUXqf09fyZ40mXBDzOEOBcbfGDVihE/Dv95fm2Vl4ZC34yUTs97VGUAM6sOFhkQ32cr8QZQY/Q+pc1be4WdH/jBnf/Nm+4RljaGmf6er9z+Sqhq858Vrm7b0qT9qC6ZSDCMrLnl+8R9VJBTCwE2iuMMxMX76PorbEOXRiDVQsT+q768zcuiSeBiuJ3vu1vnRiLeOj6OQe3o1LK3pcG2B05p22XL6Y8wPhCT+z6eZ5PeAYwfIKfX742kpLcXX3qbyohM/jXJi8TsCBhtmGK39fhCnR0wU8bdhXas7IXrTriyJ/d+MIM6Ll5R7WRxG84Nezbt6OySjZkek2Yen18SotpfEPk+8Z9BywicihigVDYf+5nSSTpitSyuXtTg8L0KWQOohSFSfpiHEgxhYXQpe7O+cmKJIqOza9tPhNhnTv86VQAR X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(39860400002)(396003)(376002)(136003)(346002)(230922051799003)(64100799003)(451199024)(1800799009)(186009)(82310400011)(36840700001)(46966006)(40470700004)(2906002)(86362001)(41300700001)(4326008)(8676002)(8936002)(5660300002)(40460700003)(36756003)(478600001)(55016003)(40480700001)(47076005)(7696005)(6666004)(1076003)(107886003)(7636003)(6916009)(54906003)(316002)(16526019)(26005)(6286002)(70206006)(336012)(426003)(70586007)(83380400001)(82740400003)(36860700001)(2616005)(356005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2023 18:24:07.1991 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 419820dc-b886-4ef4-97b5-08dbd8ac3d0e X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002636D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7952 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 From: Ori Kam This commit introduce validation for invalid tags Signed-off-by: Ori Kam --- drivers/net/mlx5/mlx5_flow_hw.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index f2159e40fd..2b1fc519fc 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -4049,7 +4049,8 @@ flow_hw_modify_field_is_used(const struct rte_flow_action_modify_field *action, } static int -flow_hw_validate_action_modify_field(const struct rte_flow_action *action, +flow_hw_validate_action_modify_field(struct rte_eth_dev *dev, + const struct rte_flow_action *action, const struct rte_flow_action *mask, struct rte_flow_error *error) { @@ -4118,6 +4119,22 @@ flow_hw_validate_action_modify_field(const struct rte_flow_action *action, if (ret) return ret; } + if ((action_conf->dst.field == RTE_FLOW_FIELD_TAG && + action_conf->dst.tag_index >= MLX5_FLOW_HW_TAGS_MAX && + action_conf->dst.tag_index != MLX5_LINEAR_HASH_TAG_INDEX) || + (action_conf->src.field == RTE_FLOW_FIELD_TAG && + action_conf->src.tag_index >= MLX5_FLOW_HW_TAGS_MAX && + action_conf->src.tag_index != MLX5_LINEAR_HASH_TAG_INDEX)) + return rte_flow_error_set(error, EINVAL, + RTE_FLOW_ERROR_TYPE_ACTION, action, + "tag index is out of range"); + if ((action_conf->dst.field == RTE_FLOW_FIELD_TAG && + flow_hw_get_reg_id(dev, RTE_FLOW_ITEM_TYPE_TAG, action_conf->dst.tag_index) == REG_NON) || + (action_conf->src.field == RTE_FLOW_FIELD_TAG && + flow_hw_get_reg_id(dev, RTE_FLOW_ITEM_TYPE_TAG, action_conf->src.tag_index) == REG_NON)) + return rte_flow_error_set(error, EINVAL, + RTE_FLOW_ERROR_TYPE_ACTION, action, + "tag index is out of range"); if (mask_conf->width != UINT32_MAX) return rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION, action, @@ -4728,7 +4745,7 @@ mlx5_flow_hw_actions_validate(struct rte_eth_dev *dev, action_flags |= MLX5_FLOW_ACTION_METER; break; case RTE_FLOW_ACTION_TYPE_MODIFY_FIELD: - ret = flow_hw_validate_action_modify_field(action, mask, + ret = flow_hw_validate_action_modify_field(dev, action, mask, error); if (ret < 0) return ret; @@ -5596,7 +5613,14 @@ flow_hw_pattern_validate(struct rte_eth_dev *dev, if (tag == NULL) return rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_UNSPECIFIED, - NULL, "Tag spec is NULL"); + NULL, + "Tag spec is NULL"); + if (tag->index >= MLX5_FLOW_HW_TAGS_MAX && + tag->index != MLX5_LINEAR_HASH_TAG_INDEX) + return rte_flow_error_set(error, EINVAL, + RTE_FLOW_ERROR_TYPE_UNSPECIFIED, + NULL, + "Invalid tag index"); tag_idx = flow_hw_get_reg_id(dev, RTE_FLOW_ITEM_TYPE_TAG, tag->index); if (tag_idx == REG_NON) return rte_flow_error_set(error, EINVAL, -- 2.39.2