From patchwork Mon Jul 5 11:40:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gregory Etelson X-Patchwork-Id: 95295 X-Patchwork-Delegate: rasland@nvidia.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 37856A0A0F; Mon, 5 Jul 2021 13:41:24 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 01430411D8; Mon, 5 Jul 2021 13:41:20 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2085.outbound.protection.outlook.com [40.107.93.85]) by mails.dpdk.org (Postfix) with ESMTP id DC8354068C for ; Mon, 5 Jul 2021 13:41:17 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JFyyP0bVgzEcRtg7FVlLRbGkJvC6cpEYdrgtNkWJ2gKveS4uiOG1ZM9WgIoUabb/7IiBDp0wZwNV7EXSlyic7cxYCHpUlbIoEaeeUNehEnGVr/yWWBYeVmNduFbxhKjj+hRMj6RzlHPKpvuZH4ulwrhFfnImP8QhDrBwuiZkF5HzHr5HqXtp/EMO7lS0ynfh4aF8PugUMF1PQqLFJyzuj1M/p7bbHpQ1XiqRhsUokNQKA/L8INFKeDP2PhDPy/w4JrutQ3G3ZuFJi1u9vBo411S77zGkymNos5CZ44+CIh6RMTN+Bv0wrBVHQjMeoPZpYW9YNIrmXWhaKgIzmusDWA== 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=0rg62N37rlGUuVvRDv87Xc7GvN2Q0Itl3207vt95nkQ=; b=H7ogB/JUB6l9zOwzkJoCR85yotiD6LVkNrJzDm927SPJhftvq47kw8kYqO2qWVcRKhU5fdw0kxD85Rvsv6yF+ZE8V14SJ7FNm8EhfGJRVjM2avN2eJf5O5FtpopXPJoAMPJWV9V7RbBNR7W6UrVfCktK8QYq7wfJpx0Y7anlrNMTiaX5iP3DiSC4Yk8qJ9X3wTQwb+Kd6YysmziUle5AEFJAYJfi4EUEyvPVF424wvMxJB9E03LZmU2dofo89R3F0M6TalWQI1/QQZ6khX9gR6xwsvGMBzNZ33YUgPJ2pv6/vZ9V+urRCqatoGqrOrQ4POZHz5KhudyFHerROi5UnA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=none 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=0rg62N37rlGUuVvRDv87Xc7GvN2Q0Itl3207vt95nkQ=; b=k9VuCl8yUMXZjUuVEI27Sf/GoBWj9Hk7fVvM6+0/PJ566t9KwlPoblLDt0ALCqp6wXXp/b/u03OEjMHlHRiNWF2jR8KE+lc6dygIcW3gFBKCPX7U9ysWUxmB3VGc0rbSLe5tA8sY85Ju+Na9p5LnWvHKfxMQLNL7snG06P11ixXLp8WoEqKBTsvZlXAKD9t8v0Gm2QmmypcYkAuaA6Wtdgw9Agkvi1nR1nqorZ/yTgTMbcloxhyFLeZ05GGtYGWIqxRhJhNKZgmoDsdN4OTDIPaonedBiRbjs9SX32oCfOpmI/wGsOFlO2/jhXwKSfAmqVmHZKrH9/uypoEVfEhvOA== Received: from DM5PR08CA0038.namprd08.prod.outlook.com (2603:10b6:4:60::27) by BN7PR12MB2754.namprd12.prod.outlook.com (2603:10b6:408:2b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.26; Mon, 5 Jul 2021 11:41:16 +0000 Received: from DM6NAM11FT003.eop-nam11.prod.protection.outlook.com (2603:10b6:4:60:cafe::33) by DM5PR08CA0038.outlook.office365.com (2603:10b6:4:60::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.22 via Frontend Transport; Mon, 5 Jul 2021 11:41:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; 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 DM6NAM11FT003.mail.protection.outlook.com (10.13.173.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4287.22 via Frontend Transport; Mon, 5 Jul 2021 11:41:16 +0000 Received: from nvidia.com (172.20.187.6) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 5 Jul 2021 11:40:51 +0000 From: Gregory Etelson To: CC: , , , Viacheslav Ovsiienko , Shahaf Shuler Date: Mon, 5 Jul 2021 14:40:35 +0300 Message-ID: <20210705114036.4110-2-getelson@nvidia.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210705114036.4110-1-getelson@nvidia.com> References: <20210630070452.14055-1-getelson@nvidia.com> <20210705114036.4110-1-getelson@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [172.20.187.6] 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: 32f5f5f3-6c59-4814-96a8-08d93fa9cc73 X-MS-TrafficTypeDiagnostic: BN7PR12MB2754: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2657; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VlsUiQ6Sxen9AFhtZr8tSv7MQJ+VoZ7kz78eT9eh/oFI255R4mdDEhDa3yvl8PEjBIKLrZO7hVWSxwnGDsMPXO5WDLiC5Lj6Zp5GlGxwl2NNmWqyjxTEcp+9DrcftsYN9PwCMbJ93K7IFawuHG9Yj92AKYvYYqpG+FVsEzpR3pwocxapaSNwK5zHhde5DBPqBz6PiSxm9o90cxTcqHNrJksWMQahCAqPZiYWB5RTL6BeDLGMdnvbvRLD23n5a2QG5W4xXk977JbLarWpC5OvBhxQwv9vw1KE4dYT7mwIGTrFq/Qn0VoHI0IBRQmybFcskLczgca12Iq6AODaPLezU5CO/FjWNVNUX8tSphwUk0QzgeljoOSlj1iBYaTlIWq+mDRuhh39WcUPbUUJfAv6iGllEknwC7LnCL0ikyy9TQZMCLz3lkNA4URj+WXpp12HGpNuqjgV+f2Y2wkX374NpH2eW7KZHmy9AdbuH0r+lzvnATKaswzy5oTlVbZ4CmHQQgs1+Ve1FZUI81ooL6Hrt8vd7R2pjpzLqSz/kKSnwpd04KL+tHWYIkwo3rhq+IcjVqZPobWaCB5HOSN6hla9h2GYMXk33BCC/SIxVY0d1MGnuYYMH3kLQdVBVhRml+5tSa7n9Y0eSz4rYvBHF1YGalPPhSe46sx9zqtLrttMaowR8qjiR9yRMDMsf8Ac2Rt0yMCTeE1Z2gDPQPfHLY7mrw== 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)(136003)(396003)(346002)(376002)(39860400002)(36840700001)(46966006)(6666004)(4326008)(426003)(82310400003)(336012)(107886003)(36860700001)(2906002)(6286002)(8676002)(186003)(16526019)(7696005)(7636003)(36756003)(82740400003)(2616005)(70586007)(70206006)(356005)(86362001)(36906005)(47076005)(83380400001)(316002)(54906003)(55016002)(1076003)(8936002)(26005)(6916009)(5660300002)(478600001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2021 11:41:16.0626 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 32f5f5f3-6c59-4814-96a8-08d93fa9cc73 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: DM6NAM11FT003.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR12MB2754 Subject: [dpdk-dev] [PATCH v2 1/2] common/mlx5: query for hardware capability to offload IPv4 IHL field 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 Sender: "dev" The patch queries MLX5 port hardware if it is capable to offload IPv4 IHL field. Signed-off-by: Gregory Etelson Acked-by: Viacheslav Ovsiienko --- drivers/common/mlx5/mlx5_devx_cmds.c | 6 ++++++ drivers/common/mlx5/mlx5_devx_cmds.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index f5914bce32..9070691332 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -948,6 +948,12 @@ mlx5_devx_cmd_query_hca_attr(void *ctx, (flow_table_nic_cap, hcattr, flow_table_properties_nic_receive.log_max_ft_sampler_num); attr->pkt_integrity_match = mlx5_devx_query_pkt_integrity_match(hcattr); + attr->inner_ipv4_ihl = MLX5_GET + (flow_table_nic_cap, hcattr, + ft_field_support_2_nic_receive.inner_ipv4_ihl); + attr->outer_ipv4_ihl = MLX5_GET + (flow_table_nic_cap, hcattr, + ft_field_support_2_nic_receive.outer_ipv4_ihl); /* Query HCA offloads for Ethernet protocol. */ memset(in, 0, sizeof(in)); memset(out, 0, sizeof(out)); diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index f8a17b886b..034c40b49c 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -148,6 +148,8 @@ struct mlx5_hca_attr { uint32_t crypto_login:1; /* General obj type CRYPTO_LOGIN supported. */ uint32_t regexp_num_of_engines; uint32_t log_max_ft_sampler_num:8; + uint32_t inner_ipv4_ihl:1; + uint32_t outer_ipv4_ihl:1; uint32_t geneve_tlv_opt; uint32_t cqe_compression:1; uint32_t mini_cqe_resp_flow_tag:1; From patchwork Mon Jul 5 11:40:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gregory Etelson X-Patchwork-Id: 95296 X-Patchwork-Delegate: rasland@nvidia.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 B14E5A0A0F; Mon, 5 Jul 2021 13:41:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 72254411E5; Mon, 5 Jul 2021 13:41:21 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1anam02on2079.outbound.protection.outlook.com [40.107.96.79]) by mails.dpdk.org (Postfix) with ESMTP id 96C214003C for ; Mon, 5 Jul 2021 13:41:18 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hzt9KrFogL1HJQIvabP09Puc1KsLEpg1MCqIjZ0JFLVaUylOL0Hpykb4r07wP3qDMV8lCjAiv3zrHmN077lEVSIcNHI78WdFG328ZZpbvtW3hSZwFw1kHWAkxs7N0dTfnf82aYyCz2FO0SHJBlEKn1N58FIMphvrr6C6cHoJEsM0Ihqk4pQuk0m4pTIWmEE4K4o+j+byXcuOi3iJWyUnfq/2yNxIzrjFRL+SOvTkYmMpCe2xoTT4HaaS1LR0N18a1XDE3EAG/5p/rkDMxreysZai9Rs6N6HmT+0cgXqDemXQ6CwU15MmTuGwM6w4+sahxehpNoO9pvf51HPt6YrgYQ== 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=RdzSMU0I0wA+Ai9VOd8vrVVNywnG4vys94eG0BADAe4=; b=BTkDPZyW14cvk0T+7L2xBXGCByyuLQa8e+5jFFuSARNq9filBrjqFY2wIvU0vBi4QZe8K5/zNanvGQx9Xq/e1DTl8HFMej5AUpdtov8RKNcpGmtGLB/tgLsDl9ZjCBG+DLhqD0vNdbEEHKuT+TE4nTsN5MSP1Gt46XfmAwnRRvivWhCC9rMqfYc1DG/viG217zUWVUoPdOYzjF9EkCatCVTdJy8ZVNWbS7t+Y09HCWHEMyPfcuuKqvttR5SO4EerhZIX+WdsS/+zqNwOqIJgb0UpfgttrhzhDlYObtf7PDZHOSXWIecILDAaVhQ5ZQoGUB4EqiZ48AA5usz/5oqSMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=none 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=RdzSMU0I0wA+Ai9VOd8vrVVNywnG4vys94eG0BADAe4=; b=uizac+ES4ecJMu81mj9VA8bnE4NGjKorV6tQNW9fq9piwSkpu3juzy/t0aBpa3mEbm4hqlPhd9ZLU3C1dXd1bV/PkPvG3ZxKG6oKMo3MvbZndfuP34iXoZhlhErmJjs/7jgIMD8RUSegfNVyFhrO4aYeZsOI6I7r1vabtNIYoxbbQ2TIDhBa1jpHWNOBUHx8KkByF45NszfgclzxTBT9w5lIwTvadR5FdW87FARRfbYlzkIHl7czHnk57JK43vr59SADwC4LcZ6PomQFx24kljaFGdUxr20lRI90mgVuzzfmlyjHEofJw0ET6hzE5wKTfW/Eq9kkzCOk87YTqFd21w== Received: from DM3PR12CA0128.namprd12.prod.outlook.com (2603:10b6:0:51::24) by SA0PR12MB4349.namprd12.prod.outlook.com (2603:10b6:806:98::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.19; Mon, 5 Jul 2021 11:41:17 +0000 Received: from DM6NAM11FT045.eop-nam11.prod.protection.outlook.com (2603:10b6:0:51:cafe::3a) by DM3PR12CA0128.outlook.office365.com (2603:10b6:0:51::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.22 via Frontend Transport; Mon, 5 Jul 2021 11:41:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; 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 DM6NAM11FT045.mail.protection.outlook.com (10.13.173.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4287.22 via Frontend Transport; Mon, 5 Jul 2021 11:41:16 +0000 Received: from nvidia.com (172.20.187.6) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 5 Jul 2021 11:40:53 +0000 From: Gregory Etelson To: CC: , , , Viacheslav Ovsiienko , Shahaf Shuler Date: Mon, 5 Jul 2021 14:40:36 +0300 Message-ID: <20210705114036.4110-3-getelson@nvidia.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210705114036.4110-1-getelson@nvidia.com> References: <20210630070452.14055-1-getelson@nvidia.com> <20210705114036.4110-1-getelson@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [172.20.187.6] 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: 0fb42a34-ac59-4337-74a0-08d93fa9ccc7 X-MS-TrafficTypeDiagnostic: SA0PR12MB4349: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: miKAiagqtjOrWFD/J9PejKrNcrJPauuDEvePQwhESMGRz5EeISuhLupX40uDAalrDthxCO9N7AJTOx+r94m7vijY57CXHrWcPBzYd7SoScNo6WgbnwgU+HpMnMUT9yZuyJE71anoPYUMHlUGNl8jy+dzv37SLvxI3ugUxb2IpkYnShrUMCgjP7lKKU3y7tmXyRt+rmph2h63jZJzgm3k/MM4aDyXY86+p3f1+peAr2k2sUBnlvwyRSXzZFCK1NeCdQ2HABXQqV8i2powtgg0pSc7xnPKHfsUJS6hbcffTEBnVIIl8LEeIdf9HFzcembgTiAbRH8k4E2Ewo0y+L+CbzKVdzVHYwaX/64Xsie/hF0hYVZQIHsEf1Ey87lHm3KldCbtmyqDhJxghEwlZKW6S8ty3/5kncTkdcFQpzjADhuzYqxq5U00RmwVQLkqS0dHSsr4c6Y0HjU1tXbKYmlRHmk1bm+1spJ75LY5feXvmptJVnISVBpq6/ZnDoAqcHgLilccqyxbcA4lf6wrxoCh1y6PNZWQRY19oGt4xHphgPQ8Ii/4Q4gu+pioINEFO5U6ZpvjbGNNxXWORvDzH0lEzt74dROGDCWLZyUTQEKbhSO93jDZlzQs7bWWlzzpPmw8QirXDkOOVoxdPlpyr4mIYupS5KgUZs2oPa3WMjDIGV554fO06TqnXg/HN4YRA0UpWd/MKktd0/QaPqNKGx6t2g== 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)(136003)(396003)(346002)(376002)(39860400002)(36840700001)(46966006)(478600001)(16526019)(54906003)(70586007)(70206006)(356005)(47076005)(6286002)(6916009)(36756003)(7636003)(82740400003)(186003)(86362001)(36860700001)(7696005)(82310400003)(6666004)(55016002)(316002)(26005)(107886003)(2906002)(83380400001)(2616005)(1076003)(8676002)(5660300002)(4326008)(8936002)(426003)(36906005)(336012); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2021 11:41:16.6083 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0fb42a34-ac59-4337-74a0-08d93fa9ccc7 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: DM6NAM11FT045.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4349 Subject: [dpdk-dev] [PATCH v2 2/2] net/mlx5: add flow rule match for IPv4 IHL field 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 Sender: "dev" Provide flow rules capability to match on IPv4 IHL field. Minimal HCA firmware version requiredto offload IPv4 IHL is xx_30_2000. Signed-off-by: Gregory Etelson Acked-by: Viacheslav Ovsiienko --- doc/guides/nics/mlx5.rst | 1 + doc/guides/rel_notes/release_21_08.rst | 3 +++ drivers/net/mlx5/mlx5_flow_dv.c | 31 +++++++++++++++++++------- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index eb44a070b1..3cdf0de4e7 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -110,6 +110,7 @@ Features - Flow integrity offload API. - Connection tracking. - Sub-Function representors. +- IPv4 IHL offload. Limitations ----------- diff --git a/doc/guides/rel_notes/release_21_08.rst b/doc/guides/rel_notes/release_21_08.rst index a6ecfdf3ce..9fd3b2c214 100644 --- a/doc/guides/rel_notes/release_21_08.rst +++ b/doc/guides/rel_notes/release_21_08.rst @@ -55,6 +55,9 @@ New Features Also, make sure to start the actual text at the margin. ======================================================= +* **Updated Mellanox MLX5 PMD.** + + * Added IPv4 IHL offload support. Removed Items ------------- diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index a04a3c2bb8..a84fb60d10 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -2451,19 +2451,19 @@ flow_dv_validate_item_gtp_psc(const struct rte_flow_item *item, * 0 on success, a negative errno value otherwise and rte_errno is set. */ static int -flow_dv_validate_item_ipv4(const struct rte_flow_item *item, - uint64_t item_flags, - uint64_t last_item, - uint16_t ether_type, - struct rte_flow_error *error) +flow_dv_validate_item_ipv4(struct rte_eth_dev *dev, + const struct rte_flow_item *item, + uint64_t item_flags, uint64_t last_item, + uint16_t ether_type, struct rte_flow_error *error) { int ret; + struct mlx5_priv *priv = dev->data->dev_private; const struct rte_flow_item_ipv4 *spec = item->spec; const struct rte_flow_item_ipv4 *last = item->last; const struct rte_flow_item_ipv4 *mask = item->mask; rte_be16_t fragment_offset_spec = 0; rte_be16_t fragment_offset_last = 0; - const struct rte_flow_item_ipv4 nic_ipv4_mask = { + struct rte_flow_item_ipv4 nic_ipv4_mask = { .hdr = { .src_addr = RTE_BE32(0xffffffff), .dst_addr = RTE_BE32(0xffffffff), @@ -2474,6 +2474,17 @@ flow_dv_validate_item_ipv4(const struct rte_flow_item *item, }, }; + if (mask && (mask->hdr.version_ihl & RTE_IPV4_HDR_IHL_MASK)) { + int tunnel = !!(item_flags & MLX5_FLOW_LAYER_TUNNEL); + bool ihl_cap = !tunnel ? priv->config.hca_attr.outer_ipv4_ihl : + priv->config.hca_attr.inner_ipv4_ihl; + if (!ihl_cap) + return rte_flow_error_set(error, ENOTSUP, + RTE_FLOW_ERROR_TYPE_ITEM, + item, + "IPV4 ihl offload not supported"); + nic_ipv4_mask.hdr.version_ihl = mask->hdr.version_ihl; + } ret = mlx5_flow_validate_item_ipv4(item, item_flags, last_item, ether_type, &nic_ipv4_mask, MLX5_ITEM_RANGE_ACCEPTED, error); @@ -6771,7 +6782,7 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr, case RTE_FLOW_ITEM_TYPE_IPV4: mlx5_flow_tunnel_ip_check(items, next_protocol, &item_flags, &tunnel); - ret = flow_dv_validate_item_ipv4(items, item_flags, + ret = flow_dv_validate_item_ipv4(dev, items, item_flags, last_item, ether_type, error); if (ret < 0) @@ -8154,7 +8165,7 @@ flow_dv_translate_item_ipv4(void *matcher, void *key, void *headers_v; char *l24_m; char *l24_v; - uint8_t tos; + uint8_t tos, ihl_m, ihl_v; if (inner) { headers_m = MLX5_ADDR_OF(fte_match_param, matcher, @@ -8183,6 +8194,10 @@ flow_dv_translate_item_ipv4(void *matcher, void *key, *(uint32_t *)l24_m = ipv4_m->hdr.src_addr; *(uint32_t *)l24_v = ipv4_m->hdr.src_addr & ipv4_v->hdr.src_addr; tos = ipv4_m->hdr.type_of_service & ipv4_v->hdr.type_of_service; + ihl_m = ipv4_m->hdr.version_ihl & RTE_IPV4_HDR_IHL_MASK; + ihl_v = ipv4_v->hdr.version_ihl & RTE_IPV4_HDR_IHL_MASK; + MLX5_SET(fte_match_set_lyr_2_4, headers_m, ipv4_ihl, ihl_m); + MLX5_SET(fte_match_set_lyr_2_4, headers_v, ipv4_ihl, ihl_m & ihl_v); MLX5_SET(fte_match_set_lyr_2_4, headers_m, ip_ecn, ipv4_m->hdr.type_of_service); MLX5_SET(fte_match_set_lyr_2_4, headers_v, ip_ecn, tos);