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 C09DE427E2; Mon, 20 Mar 2023 15:54:49 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D750242B7E; Mon, 20 Mar 2023 15:54:39 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2085.outbound.protection.outlook.com [40.107.223.85]) by mails.dpdk.org (Postfix) with ESMTP id 9DD0D42C24 for ; Mon, 20 Mar 2023 15:54:37 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aIaSGVm3cZmVi0x7jNHsEHhUBSuDEiRCF/2r8NBqfXlC8a6Ofc+E+6srCqqGO5L/cNGlAQokgKliYf519VsMMPnssYsoFOhpPiHG6dWEU7J9Um2+KU5hAlsaZhxrs6h7u2jVhtWUfuKUuhxz41W+kr8K4BkRvdTIZC9aJ/rpx4+HogU8124CeCQME6I26Ztnk5PEnik6vGVtHDQgd+Ifg0zQUYOd+rvB7hLExYYl4w6Sy/B1rMf7v0GzjCds3RFlHnzil2OLIU3oK32ptT3ZZAQq2ST/sbESSWNzvZ75wzzOnXY14n+5l8wM6+UTvk4d/1lPjNZrrptAJ3Qh0aJScQ== 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=bOZXOhwyRqYG01U86gM5OcfX1ruYK5q6XMvHTNv+ewE=; b=WovUH5ueHrEcfwUZJgksk7mGZ1qFz6y/8y+gEa/ICr4FBe/7KpmJYFmR4GqjspSJg+70/J+EKxxFqFihDYThu6TMfYWz+3j0JZVV03/MZTvHE3dDccLCmjN4F8Dvq4cSA4U2cUiRf662jxKF3toxpCW5PtKJp8PyrjMu5Jy1x2hXZb27mm15G/2LQ9VKzeV/KWAZI/qTGn8pqf7dNDUAuamSgnxXJfoJJF27PMKZvrrSdzzQJZdhFT4DeUczZ1g5Blsq1jDjtKGzrMFZ4Sha3RFs+EujM19rKuoo/cDq9rtoc1SBnaeBCIYfJukI75abE8CUIN3jXqAPuV93AMbJWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) 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 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=bOZXOhwyRqYG01U86gM5OcfX1ruYK5q6XMvHTNv+ewE=; b=oHBVP3KtkEs9agensHaL1XZbfHdVFWvwfWYRgzGMBe6mkx3pQOQWoqJP4OldOy0rJ3/MBDyTGPt/5k8y/5rKguxmF4S5z4npF9kvUJR7izogLZK22l/bU3Jbp/mlq5+w8GmrV8ivRClvZwr46Qw61Gw5/6NeCqlvn+f/Vj9029J57HV5wDY4OzLErAJGHWNdTS6B1rrBu3tky7R15lQi7viKnE0YqD54pvoCT0lC92jSlqx1a6DDkigfp5LjnVCX4u++zCLvdcal4R2OXeI94ByXJOMz6jE0zo1aW3tFpqKdXUIYlWsXMCdztkrD84ixdfaKPmLYV1EwJZAbLYv9nA== Received: from MW4PR03CA0268.namprd03.prod.outlook.com (2603:10b6:303:b4::33) by PH8PR12MB7133.namprd12.prod.outlook.com (2603:10b6:510:22e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Mon, 20 Mar 2023 14:54:35 +0000 Received: from CO1NAM11FT095.eop-nam11.prod.protection.outlook.com (2603:10b6:303:b4:cafe::69) by MW4PR03CA0268.outlook.office365.com (2603:10b6:303:b4::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37 via Frontend Transport; Mon, 20 Mar 2023 14:54:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1NAM11FT095.mail.protection.outlook.com (10.13.174.179) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.15 via Frontend Transport; Mon, 20 Mar 2023 14:54:34 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Mon, 20 Mar 2023 07:54:20 -0700 Received: from nvidia.com (10.126.231.37) 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.37; Mon, 20 Mar 2023 07:54:18 -0700 From: Erez Shitrit To: CC: , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH 4/4] net/mlx5/hws: add check for modify-header actions Date: Mon, 20 Mar 2023 16:53:43 +0200 Message-ID: <20230320145343.449023-4-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230320145343.449023-1-erezsh@nvidia.com> References: <20230320145343.449023-1-erezsh@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT095:EE_|PH8PR12MB7133:EE_ X-MS-Office365-Filtering-Correlation-Id: 4ba844a1-48a3-4f42-9091-08db29530550 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: q26QoKsr52XoZVeftZdqrj0mkY3iZcc6YLfbfyqkKxXkpqKDYyqOlCnU7ys1UxBDIpWh3PDCSwUVgXI3+EHOi0wDWZ1tyGRJbWeUzHADaLADlxW+wcXEdmhmJ0zlkJwFxc6XOCQ+oolnMXQZTmqlnzyhHiruJYFaJ/FmlhdAqvrA/3UQb46l1rN8ReUurcd0zDdm6Tr+2UgBAGPOvXabW1ZNlIcY/XRcyQ/j5aT/y8yqo2/rh4uvTDLKwhOrYW4f7NxVlV3Flkao/gyz2VHVLnmVnjHzj5jB1V0oL//2Nv/Q7mQ4DA987QKqGffpan18oumHP4oxNn63mxLY6REkWQ7UbKNGawHv7ee8Q8xTgxxtYAsy0eKzWM+j7wTUHDa8K//QzIHYIWq3Pygg49fzo2Xj6sOmVNk2Zfz/5ntLAOVlMA4sT8fYrHPVYogUoSVdRD4F8ouSWidL12OrWDEuAAozg4XFkdSXy9VY0Mvz1w4UkDP4rZymSQ55OXjraWo3s86Mvbb5mJ55oHhWMnOGFCg0SBt7yKg24SfZWqFaO7xeJ/1dKSVyGUa4yzqETn1DOF/iyJYo+7+lCwJSFhvm4nboVOrvufCSU3fN0J7YaQ9N2xnDo0A9XDeCBaMnZ+PdwgMj5EheWbHX7gHIReKdqU5I2Y0JKA+RLEELP8WUoI6IR3BEhuGmS/SV+Lr9hLEEO2U3UM8MIZ/s2QAJCsKCSML523s1XaG0lTKL/Nn8LemqnUKR3OqaZ/A4+nElud11 X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230025)(4636009)(39850400004)(376002)(396003)(136003)(346002)(451199018)(46966006)(40470700004)(36840700001)(47076005)(7696005)(336012)(82310400005)(5660300002)(1076003)(26005)(6666004)(107886003)(478600001)(316002)(54906003)(6286002)(426003)(2616005)(186003)(356005)(83380400001)(16526019)(86362001)(8676002)(4326008)(6916009)(70586007)(70206006)(40480700001)(41300700001)(82740400003)(36860700001)(55016003)(8936002)(40460700003)(36756003)(2906002)(7636003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2023 14:54:34.9685 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4ba844a1-48a3-4f42-9091-08db29530550 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.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT095.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7133 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 Allow only actions that are currently supported. Fixes: f8c8a6d8440d ("net/mlx5/hws: add action object") Reviewed-by: Alex Vesker Signed-off-by: Erez Shitrit --- drivers/common/mlx5/mlx5_prm.h | 1 + drivers/net/mlx5/hws/mlx5dr_action.c | 6 ++++++ drivers/net/mlx5/hws/mlx5dr_pat_arg.c | 16 ++++++++++++++++ drivers/net/mlx5/hws/mlx5dr_pat_arg.h | 2 ++ 4 files changed, 25 insertions(+) diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 4b0a56f4e5..0b6dc43752 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -715,6 +715,7 @@ enum { MLX5_MODIFICATION_TYPE_REMOVE = 0x5, MLX5_MODIFICATION_TYPE_NOP = 0x6, MLX5_MODIFICATION_TYPE_REMOVE_WORDS = 0x7, + MLX5_MODIFICATION_TYPE_MAX, }; /* The field of packet to be modified. */ diff --git a/drivers/net/mlx5/hws/mlx5dr_action.c b/drivers/net/mlx5/hws/mlx5dr_action.c index 77cf1f5132..2d93be717f 100644 --- a/drivers/net/mlx5/hws/mlx5dr_action.c +++ b/drivers/net/mlx5/hws/mlx5dr_action.c @@ -1603,6 +1603,12 @@ mlx5dr_action_create_modify_header(struct mlx5dr_context *ctx, goto free_action; } + if (!mlx5dr_pat_arg_verify_actions(pattern, pattern_sz / MLX5DR_MODIFY_ACTION_SIZE)) { + DR_LOG(ERR, "One of the actions is not supported\n"); + rte_errno = EINVAL; + goto free_action; + } + if (pattern_sz / MLX5DR_MODIFY_ACTION_SIZE == 1) { /* Optimize single modiy action to be used inline */ action->modify_header.single_action = pattern[0]; diff --git a/drivers/net/mlx5/hws/mlx5dr_pat_arg.c b/drivers/net/mlx5/hws/mlx5dr_pat_arg.c index 6ed04dac6d..830bc08678 100644 --- a/drivers/net/mlx5/hws/mlx5dr_pat_arg.c +++ b/drivers/net/mlx5/hws/mlx5dr_pat_arg.c @@ -441,6 +441,22 @@ mlx5dr_arg_create_modify_header_arg(struct mlx5dr_context *ctx, return 0; } +bool mlx5dr_pat_arg_verify_actions(__be64 pattern[], uint16_t num_of_actions) +{ + int i; + + for (i = 0; i < num_of_actions; i++) { + u8 action_id = + MLX5_GET(set_action_in, &pattern[i], action_type); + if (action_id >= MLX5_MODIFICATION_TYPE_MAX) { + DR_LOG(ERR, "Invalid action %u\n", action_id); + return false; + } + } + + return true; +} + int mlx5dr_pat_arg_create_modify_header(struct mlx5dr_context *ctx, struct mlx5dr_action *action, size_t pattern_sz, diff --git a/drivers/net/mlx5/hws/mlx5dr_pat_arg.h b/drivers/net/mlx5/hws/mlx5dr_pat_arg.h index 92db6d6aee..ec467dbb4b 100644 --- a/drivers/net/mlx5/hws/mlx5dr_pat_arg.h +++ b/drivers/net/mlx5/hws/mlx5dr_pat_arg.h @@ -53,6 +53,8 @@ int mlx5dr_pat_init_pattern_cache(struct mlx5dr_pattern_cache **cache); void mlx5dr_pat_uninit_pattern_cache(struct mlx5dr_pattern_cache *cache); +bool mlx5dr_pat_arg_verify_actions(__be64 pattern[], uint16_t num_of_actions); + int mlx5dr_pat_arg_create_modify_header(struct mlx5dr_context *ctx, struct mlx5dr_action *action, size_t pattern_sz, -- 2.18.2