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 8022E43AC9; Thu, 8 Feb 2024 08:59:40 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0C1F34029C; Thu, 8 Feb 2024 08:59:40 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 0271340295 for ; Thu, 8 Feb 2024 08:59:37 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 4187dGN6005718; Wed, 7 Feb 2024 23:59:37 -0800 Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3w4trp81x7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 07 Feb 2024 23:59:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VjjXJp76AiUCYrRNQdcVMuzmppgnPfmR1qh7c//cBhd6yL1+KkAIVDWh2faHSRB+Kq5KOIwsTsujlVekuR2RjXyj13U4mt0IIL+yLxyW6ZixssotSxAKT6CRMTag3fuashXa6trf+ghtvGg/UqLA6HweTGJNA4FkoUQkk4plM9HNgtpDdDcrl8wqqrLhAb61fsGPjkySIEz6W0Qd/klAWkrSvokEqdo5yL0BKmkt2px4uzJjRmW/Iz0F37pXJA9B4ydZMEdilkXkxnDoAG6AD74wTU2rGxavIQAmHmetiNuRyt+z92iyhVSBPDp8kyNy7kNTiJwvPixC1OXlG7eScQ== 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=2BHXbUSBS2EKqzlUE0Fp77x0puR4R2uRBzGW+s9XMEo=; b=fOtDVZMH8LAHmSKwYBPNiMU5Bnri0o9/+jgW1Mt3CNUQ19repASFR6+JXIRX5uZN2BXdRvcSMSrGzYUjTDCyAf8OmmPUZKaqMZEbpQYXwxr+4v3E5419molxReGODbJVBFw5ugFua9c0d3U/NAZU29KXnEIw0spV9k3Q2btYE5B8We6OfvwJDrYAuNBwviB6iEtaJSOMrSRFvidXIPlDj66f54ZNT3d0LaT4IfROrJyzSwym4jyRaJV8fqRy/25d5bDk65TetzJyOBadjR1ijN8eWQNRZWpJHM1MyMNu5Hq5ZRUFI0G2Nv5NJW9h10iWj3zs062KivKY1nzc4JvG0g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2BHXbUSBS2EKqzlUE0Fp77x0puR4R2uRBzGW+s9XMEo=; b=UsgFxALxniMkGTwgSbG/Xrzjz4iEOFiAjl49CHOoIM5FaUm8toUWwmyA82Gor0/CGB1/KbhN+4SRIABBm3vD53+yIlx5L6mj+NPoUiaDQdzJHlAb20QV9wKHY2r4qyC7QXKNOpEqG+L8U/A3SNWeAtz8kzX2+pDoJV38+wdgWX8= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by CH0PR18MB4258.namprd18.prod.outlook.com (2603:10b6:610:b9::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.24; Thu, 8 Feb 2024 07:59:31 +0000 Received: from CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::111:2995:a79:ad7]) by CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::111:2995:a79:ad7%7]) with mapi id 15.20.7249.037; Thu, 8 Feb 2024 07:59:31 +0000 From: Akhil Goyal To: Nagadheeraj Rottela , Thomas Monjalon , Nagadheeraj Rottela , Srikanth Jampala , Fan Zhang , Ashish Gupta CC: "dev@dpdk.org" Subject: RE: [EXT] [PATCH 2/7] compress/nitrox: add nitrox compressdev driver Thread-Topic: [EXT] [PATCH 2/7] compress/nitrox: add nitrox compressdev driver Thread-Index: AQHaCOW4TNKdYNy6AUGU2rRNIwtdWrEAqbBg Date: Thu, 8 Feb 2024 07:59:31 +0000 Message-ID: References: <20231027145534.16803-1-rnagadheeraj@marvell.com> <20231027145534.16803-3-rnagadheeraj@marvell.com> In-Reply-To: <20231027145534.16803-3-rnagadheeraj@marvell.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-rorf: true x-dg-ref: =?us-ascii?Q?PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNcZ2FraGlsXGFw?= =?us-ascii?Q?cGRhdGFccm9hbWluZ1wwOWQ4NDliNi0zMmQzLTRhNDAtODVlZS02Yjg0YmEy?= =?us-ascii?Q?OWUzNWJcbXNnc1xtc2ctZjhiNzBkYzItYzY1Ny0xMWVlLWEwYWEtOTRlNmY3?= =?us-ascii?Q?NjYxOTA3XGFtZS10ZXN0XGY4YjcwZGMzLWM2NTctMTFlZS1hMGFhLTk0ZTZm?= =?us-ascii?Q?NzY2MTkwN2JvZHkudHh0IiBzej0iNDU2MjAiIHQ9IjEzMzUxODUyNzY2NTA2?= =?us-ascii?Q?MzM1OCIgaD0iMFFnUUdxczVqdXRqZTJzY1Y5QlBMZ2dEa3JNPSIgaWQ9IiIg?= =?us-ascii?Q?Ymw9IjAiIGJvPSIxIiBjaT0iY0FBQUFFUkhVMVJTUlVGTkNnVUFBQmdXQUFD?= =?us-ascii?Q?K3hXaThaRnJhQVcyMHhwVVpQRmlsYmJUR2xSazhXS1VaQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUhBQUFBQnVEd0FBM2c4QUFEb0dBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUVBQVFFQkFBQUE5UmVuTHdDQUFRQUFBQUFBQUFBQUFKNEFBQUJoQUdRQVpB?= =?us-ascii?Q?QnlBR1VBY3dCekFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?RUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFHTUFkUUJ6QUhRQWJ3QnRBRjhBY0FC?= =?us-ascii?Q?bEFISUFjd0J2QUc0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFDQUFB?= =?us-ascii?Q?QUFBQ2VBQUFBWXdCMUFITUFkQUJ2QUcwQVh3QndBR2dBYndCdUFHVUFiZ0Ix?= =?us-ascii?Q?QUcwQVlnQmxBSElBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?RkFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQmpBSFVB?= =?us-ascii?Q?Y3dCMEFHOEFiUUJmQUhNQWN3QnVBRjhBWkFCaEFITUFhQUJmQUhZQU1BQXlB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-refone: =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUdN?= =?us-ascii?Q?QWRRQnpBSFFBYndCdEFGOEFjd0J6QUc0QVh3QnJBR1VBZVFCM0FHOEFjZ0Jr?= =?us-ascii?Q?QUhNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFDZUFBQUFZd0IxQUhNQWRBQnZBRzBB?= =?us-ascii?Q?WHdCekFITUFiZ0JmQUc0QWJ3QmtBR1VBYkFCcEFHMEFhUUIwQUdVQWNnQmZB?= =?us-ascii?Q?SFlBTUFBeUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFB?= =?us-ascii?Q?QUFJQUFBQUFBSjRBQUFCakFIVUFjd0IwQUc4QWJRQmZBSE1BY3dCdUFGOEFj?= =?us-ascii?Q?d0J3QUdFQVl3QmxBRjhBZGdBd0FESUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFB?= =?us-ascii?Q?R1FBYkFCd0FGOEFjd0JyQUhrQWNBQmxBRjhBWXdCb0FHRUFkQUJmQUcwQVpR?= =?us-ascii?Q?QnpBSE1BWVFCbkFHVUFYd0IyQURBQU1nQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFRQUFBQUFBQUFBQ0FBQUFBQUNlQUFBQVpBQnNBSEFBWHdCekFH?= =?us-ascii?Q?d0FZUUJqQUdzQVh3QmpBR2dBWVFCMEFGOEFiUUJsQUhNQWN3QmhBR2NBWlFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-reftwo: =?us-ascii?Q?QUFBQUFBQUFBQUFCQUFBQUFBQUFBQUlBQUFBQUFKNEFBQUJrQUd3QWNBQmZB?= =?us-ascii?Q?SFFBWlFCaEFHMEFjd0JmQUc4QWJnQmxBR1FBY2dCcEFIWUFaUUJmQUdZQWFR?= =?us-ascii?Q?QnNBR1VBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFB?= =?us-ascii?Q?QUFBQUFBQUFnQUFBQUFBbmdBQUFHVUFiUUJoQUdrQWJBQmZBR0VBWkFCa0FI?= =?us-ascii?Q?SUFaUUJ6QUhNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBd0FBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFDQUFBQUFB?= =?us-ascii?Q?Q2VBQUFBYlFCaEFISUFkZ0JsQUd3QVh3QndBSElBYndCcUFHVUFZd0IwQUY4?= =?us-ascii?Q?QWJnQmhBRzBBWlFCekFGOEFZd0J2QUc0QVpnQnBBR1FBWlFCdUFIUUFhUUJo?= =?us-ascii?Q?QUd3QVh3QmhBR3dBYndCdUFHVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQnRBR0VBY2dC?= =?us-ascii?Q?MkFHVUFiQUJmQUhBQWNnQnZBR29BWlFCakFIUUFYd0J1QUdFQWJRQmxBSE1B?= =?us-ascii?Q?WHdCeUFHVUFjd0IwQUhJQWFRQmpBSFFBWlFCa0FGOEFZUUJzQUc4QWJnQmxB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFF?= =?us-ascii?Q?QUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUcwQVlRQnlBSFlBWlFCc0FGOEFjQUJ5?= =?us-ascii?Q?QUc4QWFnQmxBR01BZEFCZkFHNEFZUUJ0QUdVQWN3QmZBSElBWlFCekFIUUFj?= =?us-ascii?Q?Z0JwQUdNQWRBQmxBR1FBWHdCb0FHVUFlQUJqQUc4QVpBQmxBSE1BQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFB?= =?us-ascii?Q?QUFDZUFBQUFiUUJoQUhJQWRnQmxBR3dBYkFCZkFHRUFjZ0J0QUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-refthree: =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJ?= =?us-ascii?Q?QUFBQUFBSjRBQUFCdEFHRUFjZ0IyQUdVQWJBQnNBRjhBWndCdkFHOEFad0Jz?= =?us-ascii?Q?QUdVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFBRzBB?= =?us-ascii?Q?WVFCeUFIWUFaUUJzQUd3QVh3QndBSElBYndCcUFHVUFZd0IwQUY4QVl3QnZB?= =?us-ascii?Q?R1FBWlFCekFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFRQUFBQUFBQUFBQ0FBQUFBQUNlQUFBQWJRQmhBSElBZGdCbEFHd0Fi?= =?us-ascii?Q?QUJmQUhBQWNnQnZBR29BWlFCakFIUUFYd0JqQUc4QVpBQmxBSE1BWHdCa0FH?= =?us-ascii?Q?a0FZd0IwQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFB?= =?us-ascii?Q?QUlBQUFBQUFKNEFBQUJ0QUdFQWNnQjJBR1VBYkFCc0FGOEFjQUJ5QUc4QWFn?= =?us-ascii?Q?QmxBR01BZEFCZkFHNEFZUUJ0QUdVQWN3QmZBR01BYndCdUFHWUFhUUJrQUdV?= =?us-ascii?Q?QWJnQjBBR2tBWVFCc0FGOEFiUUJoQUhJQWRnQmxBR3dBYkFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFH?= =?us-ascii?Q?MEFZUUJ5QUhZQVpRQnNBR3dBWHdCd0FISUFid0JxQUdVQVl3QjBBRjhBYmdC?= =?us-ascii?Q?aEFHMEFaUUJ6QUY4QVl3QnZBRzRBWmdCcEFHUUFaUUJ1QUhRQWFRQmhBR3dB?= =?us-ascii?Q?WHdCdEFHRUFjZ0IyQUdVQWJBQnNBRjhBYndCeUFGOEFZUUJ5QUcwQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-reffour: =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFDQUFBQUFBQ2VB?= =?us-ascii?Q?QUFBYlFCaEFISUFkZ0JsQUd3QWJBQmZBSEFBY2dCdkFHb0FaUUJqQUhRQVh3?= =?us-ascii?Q?QnVBR0VBYlFCbEFITUFYd0JqQUc4QWJnQm1BR2tBWkFCbEFHNEFkQUJwQUdF?= =?us-ascii?Q?QWJBQmZBRzBBWVFCeUFIWUFaUUJzQUd3QVh3QnZBSElBWHdCbkFHOEFid0Ju?= =?us-ascii?Q?QUd3QVpRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQnRBR0VBY2dCMkFH?= =?us-ascii?Q?VUFiQUJzQUY4QWNBQnlBRzhBYWdCbEFHTUFkQUJmQUc0QVlRQnRBR1VBY3dC?= =?us-ascii?Q?ZkFISUFaUUJ6QUhRQWNnQnBBR01BZEFCbEFHUUFYd0J0QUdFQWNnQjJBR1VB?= =?us-ascii?Q?YkFCc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFB?= =?us-ascii?Q?QUFBQUFBQWdBQUFBQUFuZ0FBQUcwQVlRQnlBSFlBWlFCc0FHd0FYd0J3QUhJ?= =?us-ascii?Q?QWJ3QnFBR1VBWXdCMEFGOEFiZ0JoQUcwQVpRQnpBRjhBY2dCbEFITUFkQUJ5?= =?us-ascii?Q?QUdrQVl3QjBBR1VBWkFCZkFHMEFZUUJ5QUhZQVpRQnNBR3dBWHdCdkFISUFY?= =?us-ascii?Q?d0JoQUhJQWJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFD?= =?us-ascii?Q?ZUFBQUFiUUJoQUhJQWRnQmxBR3dBYkFCZkFIUUFaUUJ5QUcwQWFRQnVBSFVB?= =?us-ascii?Q?Y3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJQUFBQUFBSjRBQUFCdEFHRUFjZ0Iy?= =?us-ascii?Q?QUdVQWJBQnNBRjhBZHdCdkFISUFaQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBc0FBQUFBQUFBQUFBQUFBQUVB?= =?us-ascii?Q?QUFBQUFBQUFBZ0FBQUFBQU9nWUFBQUFBQUFBSUFBQUFBQUFBQUFnQUFBQUFB?= =?us-ascii?Q?QUFBQ0FBQUFBQUFBQUFhQmdBQUdRQUFBQmdB?= x-dg-reffive: =?us-ascii?Q?QUFBQUFBQUFZUUJrQUdRQWNnQmxBSE1BY3dBQUFDUUFBQUFBQUFBQVl3QjFB?= =?us-ascii?Q?SE1BZEFCdkFHMEFYd0J3QUdVQWNnQnpBRzhBYmdBQUFDNEFBQUFGQUFBQVl3?= =?us-ascii?Q?QjFBSE1BZEFCdkFHMEFYd0J3QUdnQWJ3QnVBR1VBYmdCMUFHMEFZZ0JsQUhJ?= =?us-ascii?Q?QUFBQXdBQUFBQUFBQUFHTUFkUUJ6QUhRQWJ3QnRBRjhBY3dCekFHNEFYd0Jr?= =?us-ascii?Q?QUdFQWN3Qm9BRjhBZGdBd0FESUFBQUF3QUFBQUFBQUFBR01BZFFCekFIUUFi?= =?us-ascii?Q?d0J0QUY4QWN3QnpBRzRBWHdCckFHVUFlUUIzQUc4QWNnQmtBSE1BQUFBK0FB?= =?us-ascii?Q?QUFBQUFBQUdNQWRRQnpBSFFBYndCdEFGOEFjd0J6QUc0QVh3QnVBRzhBWkFC?= =?us-ascii?Q?bEFHd0FhUUJ0QUdrQWRBQmxBSElBWHdCMkFEQUFNZ0FBQURJQUFBQUFBQUFB?= =?us-ascii?Q?WXdCMUFITUFkQUJ2QUcwQVh3QnpBSE1BYmdCZkFITUFjQUJoQUdNQVpRQmZB?= =?us-ascii?Q?SFlBTUFBeUFBQUFQZ0FBQUFBQUFBQmtBR3dBY0FCZkFITUFhd0I1QUhBQVpR?= =?us-ascii?Q?QmZBR01BYUFCaEFIUUFYd0J0QUdVQWN3QnpBR0VBWndCbEFGOEFkZ0F3QURJ?= =?us-ascii?Q?QUFBQTJBQUFBQUFBQUFHUUFiQUJ3QUY4QWN3QnNBR0VBWXdCckFGOEFZd0Jv?= =?us-ascii?Q?QUdFQWRBQmZBRzBBWlFCekFITUFZUUJuQUdVQUFBQTRBQUFBQUFBQUFHUUFi?= =?us-ascii?Q?QUJ3QUY4QWRBQmxBR0VBYlFCekFGOEFid0J1QUdVQVpBQnlBR2tBZGdCbEFG?= =?us-ascii?Q?OEFaZ0JwQUd3QVpRQUFBQ1FBQUFBREFBQUFaUUJ0QUdFQWFRQnNBRjhBWVFC?= =?us-ascii?Q?a0FHUUFjZ0JsQUhNQWN3QUFBRmdBQUFBQUFBQUFiUUJoQUhJQWRnQmxBR3dB?= =?us-ascii?Q?WHdCd0FISUFid0JxQUdVQVl3QjBBRjhBYmdCaEFHMEFaUUJ6QUY4QVl3QnZB?= =?us-ascii?Q?RzRBWmdCcEFHUUFaUUJ1QUhRQWFRQmhBR3dBWHdCaEFHd0Fid0J1QUdVQUFB?= =?us-ascii?Q?QlVBQUFBQUFBQUFHMEFZUUJ5QUhZQVpRQnNBRjhBY0FCeUFHOEFhZ0JsQUdN?= =?us-ascii?Q?QWRBQmZBRzRBWVFCdEFHVUFjd0JmQUhJQVpRQnpBSFFBY2dCcEFHTUFkQUJs?= =?us-ascii?Q?QUdRQVh3QmhBR3dBYndCdUFHVUFBQUJhQUFBQUFBQUFBRzBBWVFCeUFIWUFa?= =?us-ascii?Q?UUJzQUY4QWNBQnlBRzhBYWdCbEFHTUFkQUJmQUc0QVlRQnRBR1VBY3dCZkFI?= =?us-ascii?Q?SUFaUUJ6QUhRQWNnQnBBR01BZEFCbEFHUUFYd0JvQUdVQWVBQmpBRzhBWkFC?= =?us-ascii?Q?bEFITUFBQUFnQUFBQUFBQUFBRzBBWVFCeUFIWUFaUUJzQUd3QVh3QmhBSElB?= =?us-ascii?Q?YlFBQUFDWUFBQUFBQUFBQWJRQmhBSElBZGdCbEFHd0FiQUJmQUdjQWJ3QnZB?= =?us-ascii?Q?R2NBYkFCbEFBQUFOQUFBQUFBQUFBQnRBR0VB?= x-dg-refsix: =?us-ascii?Q?Y2dCMkFHVUFiQUJzQUY4QWNBQnlBRzhBYWdCbEFHTUFkQUJmQUdNQWJ3QmtB?= =?us-ascii?Q?R1VBY3dBQUFENEFBQUFBQUFBQWJRQmhBSElBZGdCbEFHd0FiQUJmQUhBQWNn?= =?us-ascii?Q?QnZBR29BWlFCakFIUUFYd0JqQUc4QVpBQmxBSE1BWHdCa0FHa0FZd0IwQUFB?= =?us-ascii?Q?QVhnQUFBQUFBQUFCdEFHRUFjZ0IyQUdVQWJBQnNBRjhBY0FCeUFHOEFhZ0Js?= =?us-ascii?Q?QUdNQWRBQmZBRzRBWVFCdEFHVUFjd0JmQUdNQWJ3QnVBR1lBYVFCa0FHVUFi?= =?us-ascii?Q?Z0IwQUdrQVlRQnNBRjhBYlFCaEFISUFkZ0JsQUd3QWJBQUFBR3dBQUFBQUFB?= =?us-ascii?Q?QUFiUUJoQUhJQWRnQmxBR3dBYkFCZkFIQUFjZ0J2QUdvQVpRQmpBSFFBWHdC?= =?us-ascii?Q?dUFHRUFiUUJsQUhNQVh3QmpBRzhBYmdCbUFHa0FaQUJsQUc0QWRBQnBBR0VB?= =?us-ascii?Q?YkFCZkFHMEFZUUJ5QUhZQVpRQnNBR3dBWHdCdkFISUFYd0JoQUhJQWJRQUFB?= =?us-ascii?Q?SElBQUFBQUFBQUFiUUJoQUhJQWRnQmxBR3dBYkFCZkFIQUFjZ0J2QUdvQVpR?= =?us-ascii?Q?QmpBSFFBWHdCdUFHRUFiUUJsQUhNQVh3QmpBRzhBYmdCbUFHa0FaQUJsQUc0?= =?us-ascii?Q?QWRBQnBBR0VBYkFCZkFHMEFZUUJ5QUhZQVpRQnNBR3dBWHdCdkFISUFYd0Ju?= =?us-ascii?Q?QUc4QWJ3Qm5BR3dBWlFBQUFGb0FBQUFBQUFBQWJRQmhBSElBZGdCbEFHd0Fi?= =?us-ascii?Q?QUJmQUhBQWNnQnZBR29BWlFCakFIUUFYd0J1QUdFQWJRQmxBSE1BWHdCeUFH?= =?us-ascii?Q?VUFjd0IwQUhJQWFRQmpBSFFBWlFCa0FGOEFiUUJoQUhJQWRnQmxBR3dBYkFB?= =?us-ascii?Q?QUFHZ0FBQUFBQUFBQWJRQmhBSElBZGdCbEFHd0FiQUJmQUhBQWNnQnZBR29B?= =?us-ascii?Q?WlFCakFIUUFYd0J1QUdFQWJRQmxBSE1BWHdCeUFHVUFjd0IwQUhJQWFRQmpB?= =?us-ascii?Q?SFFBWlFCa0FGOEFiUUJoQUhJQWRnQmxBR3dBYkFCZkFHOEFjZ0JmQUdFQWNn?= =?us-ascii?Q?QnRBQUFBS2dBQUFBQUFBQUJ0QUdFQWNnQjJBR1VBYkFCc0FGOEFkQUJsQUhJ?= =?us-ascii?Q?QWJRQnBBRzRBZFFCekFBQUFJZ0FBQUFzQUFBQnRBR0VBY2dCMkFHVUFiQUJz?= =?us-ascii?Q?QUY4QWR3QnZBSElBWkFBQUFBPT0iLz48L21ldGE+?= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|CH0PR18MB4258:EE_ x-ms-office365-filtering-correlation-id: 24a79dd1-8564-4ade-6586-08dc287be1bb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: p0znbYoSfN2xo7kGNPTnzpDtgTEPCbcC5gW7ldree6tOi0eQCu+Sita5miAbZfOqPCdDutYjeC+sAfCpwQxuf376HmPJxiFjEoJ1C+DIN8ZTcvF7xvfvmIyMv96gDSoJ9T2q1nGUzvGUgSBD4eG12OxZ7M+VP0sGmQuqvAMwHqQt6fkkVZTtrGRSYV2liqq+8bkNHkFW2X0xkFKtuSEge5rqw/XoNVM8wqtdESYzbIERrJJkMNppriT91ZSuCdMfrO1W4hG+mHrulCjdBBqbfCKLJj3uf51ueg1StpZZUQH9Oq/U0Wy/XOkgPXXPBhcmqGHASnkqH6Hcw8K8CPo1Ht5eXZplqjqNWN1aex+f2KMFbK69xq9NwpsOItJf4BsSxjDfsjEtpCnSXo3RNnqS2hSxb6LFD1Mue7Kh0zkM4yEvagzEnkqGEe2hcJ4aWZ6IOXuUYS56hSZjqL5hIAVP70+8tssrZNNeKzPhaaF/DCzHQgTgPLaSf+W4VgvKCNCdNOWOZrAWpWl2esHKy1mRbiLiTkHM64w+oJIzw2aU/zkvXDjLYAuPfNJDaix7t4NFEdsUpFLg7Rf2t1qrzqEvcehZtP6FT6km5oIxPL7xT6+lYUEC6qW6Er+l/+sICJSnqy1HNm52pr7Xe8rAzuHldw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR18MB4484.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(136003)(396003)(376002)(346002)(366004)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(5660300002)(30864003)(110136005)(52536014)(316002)(41300700001)(2906002)(83380400001)(38070700009)(26005)(33656002)(122000001)(38100700002)(86362001)(8936002)(6636002)(4326008)(8676002)(66946007)(66556008)(66476007)(66446008)(64756008)(55236004)(76116006)(6506007)(478600001)(9686003)(966005)(7696005)(71200400001)(55016003)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?/HS469vFEMMtmROSrqtvcpUX7AW4tjQHZHsYNbjl2KshVEm2eYBcRyqgeXXj?= =?us-ascii?Q?LBq5Sj7fBwtZoL/BxGQiX/UEQIfUKfz2JZ5gANEi49CSTfXO2hrkTgseE9QE?= =?us-ascii?Q?Ez/AW/HrdTakDZBTRXtSOF1uB1Iw9fvILZotHZDhwmzM4mA3txF8A/MVb/0f?= =?us-ascii?Q?pCIr5ujJ9YlUPam71EGIqNlROVWvodfndf5nW9dIkIpdyjy8hPvybD35oHR5?= =?us-ascii?Q?9I1RkyH9/UXbMdrcZEXn5KUbS3Nr4quc/KnS2Y6STYDQhN6/1UoCFn4uKnwa?= =?us-ascii?Q?OzmBzlWb2Y5XqaYS4vNLMGGN40ICtLwH1B1gwsexO29bMGzmMMMWhtJliuwI?= =?us-ascii?Q?jvmXT0wxOXDas0KoyHTgGnYD5khSDTXg5lXdM68//c5X5zfBUDN6upulUtIh?= =?us-ascii?Q?53UEtqGCT18Tsw64V4P2oowqFwA5g+qESDtpweBV/gtebucPtxYCrh2K9LyO?= =?us-ascii?Q?nQYtLgFk10l59sotuFQSoUThuZzlmxeYIhD+oeRNk3KMLp4DEoAEqq0geZx1?= =?us-ascii?Q?LWqgtZAjZEl7PfC95cHnhbKfxrWgMcItWSjU+8NERPj+goEsjYUbidWO8fhF?= =?us-ascii?Q?6RxaaFduxyaZGSithdRMA8ERoqWI13j1unrb4OoTIuSXc0H6vcpQtj34btCo?= =?us-ascii?Q?sQEUXDPG/8mwiem+CXRgc99gsbaZWIkCvrgNj8OWKuxN90fCyZpdSJQknZl8?= =?us-ascii?Q?SZKtfyDmMFXjThGOINudAC2D+poENT64Lj2yj16ig2LViLegTPQibUcZ7fml?= =?us-ascii?Q?uQGLn1iDguTMDvqywpo34amOijmbTRlxCzcCvgROX4XTwpO/1CWn1y2f/qVn?= =?us-ascii?Q?pPHUJ3M3TB/JKylbn7DFHe4Xqq9zAAjhOfQ8JoYA81Bnaq0RfSxRFSj9W3Wd?= =?us-ascii?Q?HPXj9OR5t3NJjeP2BYiGsU5t2yxyiZWGFPY8KgHhWHkvvO7X5yhSNXVX2T42?= =?us-ascii?Q?Dt+/vDiX6fSXrF9fwN0SieKdI6W7AKw6QEM5qO0BQGoK3yYPO1N+prIpXVD3?= =?us-ascii?Q?67xc+EHuarxWuFsC4ZQnKTV0MBFlqT3H4lUHfwXKelZfTmlKNTDPKZjKggee?= =?us-ascii?Q?EWs6FML/48eVEHSEBfxdI4A/1RGr953TjEGEByVkLdAP7JGsxWg+ZytU9zGF?= =?us-ascii?Q?BrKM5jaGQwbyg51Asth1zv7wlpsN/lh8omE2xFETmDkTt0B+1xMEvWknyi5X?= =?us-ascii?Q?Ta5S2uwvvmIBAIPysRYzdtrfWIQilF+oeIOUg2Id6UaEuOLLlqusXacOw4Rp?= =?us-ascii?Q?edtt9746IHeQThFSZy9y9hh8NrTOXVFtDwq2O05k2AA9QSQU7l+Z+mY59Gmr?= =?us-ascii?Q?rkgXezvSQKU4DT+kuBalRx5ui2gsgOpOs9fTAYMBmzwkGyE8LP0Qvyv5sJMF?= =?us-ascii?Q?QQbyYpLELMSA6MXbZVHnT97dd4C5yOpVJTOalWYhz+aNtLwg6+nt1P9nrKxc?= =?us-ascii?Q?NpVFnSriu/jzq5SLXXnBbVEUM+YJMNs9PFJtkFxE99pchsGVI1tDRAu6Am38?= =?us-ascii?Q?y5tvWQ8NJQHUNthllc3GyJkAAt5IzBuS2ZgxeM7bzkqvJk71m3cbNYsaDFCw?= =?us-ascii?Q?2+/rkhHGKyNHQaqS65aO0e0ZBhi+c06oUUCfcM7a?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR18MB4484.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24a79dd1-8564-4ade-6586-08dc287be1bb X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Feb 2024 07:59:31.2393 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8bSGtkY1Ovyo50S9pLvmeC1nuqCir1i3pMEYCZDJNQLQq6Czkt4tgldc7E5K6ssQCSG6U9mNBDjxxq8LWx/B7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR18MB4258 X-Proofpoint-GUID: KVfhoAOgCAd8PwrRCB7k7yS41LPuG1XS X-Proofpoint-ORIG-GUID: KVfhoAOgCAd8PwrRCB7k7yS41LPuG1XS X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-08_01,2024-02-07_01,2023-05-22_02 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 > Introduce nitrox compressdev driver which implements below operations > - dev_configure > - dev_close > - dev_infos_get > - private_xform_create > - private_xform_free >=20 > Signed-off-by: Nagadheeraj Rottela > --- > MAINTAINERS | 7 + > doc/guides/compressdevs/features/nitrox.ini | 13 + > doc/guides/compressdevs/index.rst | 1 + > doc/guides/compressdevs/nitrox.rst | 50 +++ > drivers/common/nitrox/meson.build | 19 +- > drivers/common/nitrox/nitrox_device.c | 36 +- > drivers/common/nitrox/nitrox_device.h | 3 + > drivers/compress/nitrox/nitrox_comp.c | 405 +++++++++++++++++++ > drivers/compress/nitrox/nitrox_comp.h | 13 + > drivers/compress/nitrox/nitrox_comp_reqmgr.c | 3 + > 10 files changed, 543 insertions(+), 7 deletions(-) > create mode 100644 doc/guides/compressdevs/features/nitrox.ini > create mode 100644 doc/guides/compressdevs/nitrox.rst > create mode 100644 drivers/compress/nitrox/nitrox_comp.c > create mode 100644 drivers/compress/nitrox/nitrox_comp.h > create mode 100644 drivers/compress/nitrox/nitrox_comp_reqmgr.c >=20 > diff --git a/MAINTAINERS b/MAINTAINERS > index 7e8272c0e0..be566d6c6c 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1217,6 +1217,13 @@ F: drivers/compress/isal/ > F: doc/guides/compressdevs/isal.rst > F: doc/guides/compressdevs/features/isal.ini >=20 > +Marvell Nitrox > +M: Nagadheeraj Rottela > +F: drivers/compress/nitrox/ > +F: drivers/common/nitrox/ > +F: doc/guides/compressdevs/nitrox.rst > +F: doc/guides/compressdevs/features/nitrox.ini > + > NVIDIA mlx5 > M: Matan Azrad > F: drivers/compress/mlx5/ > diff --git a/doc/guides/compressdevs/features/nitrox.ini > b/doc/guides/compressdevs/features/nitrox.ini > new file mode 100644 > index 0000000000..f045e891c4 > --- /dev/null > +++ b/doc/guides/compressdevs/features/nitrox.ini > @@ -0,0 +1,13 @@ > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +; Supported features of 'nitrox' compression driver. > +; > +[Features] > +HW Accelerated =3D Y > +Deflate =3D Y > +Fixed =3D Y > +Dynamic =3D Y > +OOP SGL In SGL Out =3D Y > +OOP SGL In LB Out =3D Y > +OOP LB In SGL Out =3D Y > diff --git a/doc/guides/compressdevs/index.rst > b/doc/guides/compressdevs/index.rst > index 54a3ef4273..849f211688 100644 > --- a/doc/guides/compressdevs/index.rst > +++ b/doc/guides/compressdevs/index.rst > @@ -12,6 +12,7 @@ Compression Device Drivers > overview > isal > mlx5 > + nitrox > octeontx > qat_comp > zlib > diff --git a/doc/guides/compressdevs/nitrox.rst > b/doc/guides/compressdevs/nitrox.rst > new file mode 100644 > index 0000000000..a1989b400d > --- /dev/null > +++ b/doc/guides/compressdevs/nitrox.rst > @@ -0,0 +1,50 @@ > +.. SPDX-License-Identifier: BSD-3-Clause > + Copyright(C) 2023 Marvell International Ltd. > + > +Marvell NITROX Compression Poll Mode Driver > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +The Nitrox compression poll mode driver provides support for offloading > +compression and decompression operations to the NITROX V processor. > +Detailed information about the NITROX V processor can be obtained here: > + > +* https://www.marvell.com/security-solutions/nitrox-security- > processors/nitrox-v/ > + > +Features > +-------- > + > +NITROX V compression PMD has support for: > + > +Compression/Decompression algorithm: > + > +* DEFLATE > + > +Huffman code type: > + > +* FIXED > +* DYNAMIC > + > +Window size support: > + > +* Min - 2 bytes > +* Max - 32KB > + > +Checksum generation: > + > +* CRC32, Adler > + > +Limitations > +----------- > + > +* Compressdev level 0, no compression, is not supported. > + > +Initialization > +-------------- > + > +Nitrox compression PMD depends on Nitrox kernel PF driver being installe= d on > +the platform. Nitrox PF driver is required to create VF devices which wi= ll > +be used by the PMD. Each VF device can enable one compressdev PMD. > + > +Nitrox kernel PF driver is available as part of CNN55XX-Driver SDK. The = SDK > +and it's installation instructions can be obtained from: > +`Marvell Customer Portal > `_. > diff --git a/drivers/common/nitrox/meson.build > b/drivers/common/nitrox/meson.build > index eb989a04e5..9334b077ad 100644 > --- a/drivers/common/nitrox/meson.build > +++ b/drivers/common/nitrox/meson.build > @@ -1,5 +1,5 @@ > # SPDX-License-Identifier: BSD-3-Clause > -# Copyright(C) 2019 Marvell International Ltd. > +# Copyright(C) 2019-2023 Marvell International Ltd. >=20 > if not is_linux > build =3D false > @@ -9,12 +9,18 @@ endif > nitrox_crypto =3D true > nitrox_crypto_path =3D 'crypto/nitrox' > nitrox_crypto_relpath =3D '../../' + nitrox_crypto_path > +nitrox_compress =3D true > +nitrox_compress_path =3D 'compress/nitrox' > +nitrox_compress_relpath =3D '../../' + nitrox_compress_path >=20 > if disable_drivers.contains(nitrox_crypto_path) > nitrox_crypto =3D false > endif > +if disable_drivers.contains(nitrox_compress_path) > + nitrox_compress =3D false > +endif >=20 > -deps +=3D ['bus_pci', 'cryptodev'] > +deps +=3D ['bus_pci', 'cryptodev', 'compressdev'] > sources =3D files( > 'nitrox_device.c', > 'nitrox_hal.c', > @@ -23,6 +29,7 @@ sources =3D files( > ) > includes +=3D include_directories( > nitrox_crypto_relpath, > + nitrox_compress_relpath, > ) >=20 > if nitrox_crypto > @@ -33,3 +40,11 @@ if nitrox_crypto > sources +=3D files(join_paths(nitrox_crypto_relpath, f)) > endforeach > endif > + > +if nitrox_compress > + foreach f: ['nitrox_comp.c', > + 'nitrox_comp_reqmgr.c', > + ] > + sources +=3D files(join_paths(nitrox_compress_relpath, f)) > + endforeach > +endif > diff --git a/drivers/common/nitrox/nitrox_device.c > b/drivers/common/nitrox/nitrox_device.c > index b2f638ec8a..6ac25d5ccc 100644 > --- a/drivers/common/nitrox/nitrox_device.c > +++ b/drivers/common/nitrox/nitrox_device.c > @@ -7,6 +7,7 @@ > #include "nitrox_device.h" > #include "nitrox_hal.h" > #include "nitrox_sym.h" > +#include "nitrox_comp.h" >=20 > #define PCI_VENDOR_ID_CAVIUM 0x177d > #define NITROX_V_PCI_VF_DEV_ID 0x13 > @@ -67,7 +68,7 @@ nitrox_pci_probe(struct rte_pci_driver *pci_drv > __rte_unused, > struct rte_pci_device *pdev) > { > struct nitrox_device *ndev; > - int err; > + int err =3D -1; >=20 > /* Nitrox CSR space */ > if (!pdev->mem_resource[0].addr) > @@ -79,12 +80,19 @@ nitrox_pci_probe(struct rte_pci_driver *pci_drv > __rte_unused, >=20 > ndev_init(ndev, pdev); > err =3D nitrox_sym_pmd_create(ndev); > - if (err) { > - ndev_release(ndev); > - return err; > - } > + if (err) > + goto err_exit; > + > + err =3D nitrox_comp_pmd_create(ndev); > + if (err) > + goto err_exit; >=20 > return 0; > +err_exit: > + nitrox_comp_pmd_destroy(ndev); > + nitrox_sym_pmd_destroy(ndev); > + ndev_release(ndev); > + return err; There should be separate gotos for above errors. > } >=20 > static int > @@ -101,6 +109,10 @@ nitrox_pci_remove(struct rte_pci_device *pdev) > if (err) > return err; >=20 > + err =3D nitrox_comp_pmd_destroy(ndev); > + if (err) > + return err; > + > ndev_release(ndev); > return 0; > } > @@ -134,5 +146,19 @@ nitrox_sym_pmd_destroy(struct nitrox_device *ndev) > return 0; > } >=20 > +__rte_weak int > +nitrox_comp_pmd_create(struct nitrox_device *ndev) > +{ > + RTE_SET_USED(ndev); > + return 0; > +} > + > +__rte_weak int > +nitrox_comp_pmd_destroy(struct nitrox_device *ndev) > +{ > + RTE_SET_USED(ndev); > + return 0; > +} > + > RTE_PMD_REGISTER_PCI(nitrox, nitrox_pmd); > RTE_PMD_REGISTER_PCI_TABLE(nitrox, pci_id_nitrox_map); > diff --git a/drivers/common/nitrox/nitrox_device.h > b/drivers/common/nitrox/nitrox_device.h > index 1ff7c59b63..df6b358e14 100644 > --- a/drivers/common/nitrox/nitrox_device.h > +++ b/drivers/common/nitrox/nitrox_device.h > @@ -9,13 +9,16 @@ > #include >=20 > struct nitrox_sym_device; > +struct nitrox_comp_device; >=20 > struct nitrox_device { > TAILQ_ENTRY(nitrox_device) next; > struct rte_pci_device *pdev; > uint8_t *bar_addr; > struct nitrox_sym_device *sym_dev; > + struct nitrox_comp_device *comp_dev; > struct rte_device rte_sym_dev; > + struct rte_device rte_comp_dev; > uint16_t nr_queues; > }; >=20 > diff --git a/drivers/compress/nitrox/nitrox_comp.c > b/drivers/compress/nitrox/nitrox_comp.c > new file mode 100644 > index 0000000000..d9bd04db06 > --- /dev/null > +++ b/drivers/compress/nitrox/nitrox_comp.c > @@ -0,0 +1,405 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(C) 2023 Marvell International Ltd. > + */ > + > +#include > +#include > +#include > + > +#include "nitrox_comp.h" > +#include "nitrox_device.h" > +#include "nitrox_logs.h" > + > +#define COMPRESSDEV_NAME_NITROX_PMD compress_nitrox > +#define NITROX_DECOMP_CTX_SIZE 2048 > +#define NITROX_CONSTANTS_MAX_SEARCH_DEPTH 31744 > +#define NITROX_COMP_LEVEL_LOWEST_START 1 > +#define NITROX_COMP_LEVEL_LOWEST_END 2 > +#define NITROX_COMP_LEVEL_LOWER_START 3 > +#define NITROX_COMP_LEVEL_LOWER_END 4 > +#define NITROX_COMP_LEVEL_MEDIUM_START 5 > +#define NITROX_COMP_LEVEL_MEDIUM_END 6 > +#define NITROX_COMP_LEVEL_BEST_START 7 > +#define NITROX_COMP_LEVEL_BEST_END 9 > + > +struct nitrox_comp_device { > + struct rte_compressdev *cdev; > + struct nitrox_device *ndev; > + struct rte_mempool *xform_pool; > +}; > + > +enum nitrox_comp_op { > + NITROX_COMP_OP_DECOMPRESS, > + NITROX_COMP_OP_COMPRESS, > +}; > + > +enum nitrox_comp_algo { > + NITROX_COMP_ALGO_DEFLATE_DEFAULT, > + NITROX_COMP_ALGO_DEFLATE_DYNHUFF, > + NITROX_COMP_ALGO_DEFLATE_FIXEDHUFF, > + NITROX_COMP_ALGO_LZS, > +}; > + > +enum nitrox_comp_level { > + NITROX_COMP_LEVEL_BEST, > + NITROX_COMP_LEVEL_MEDIUM, > + NITROX_COMP_LEVEL_LOWER, > + NITROX_COMP_LEVEL_LOWEST, > +}; > + > +enum nitrox_chksum_type { > + NITROX_CHKSUM_TYPE_CRC32, > + NITROX_CHKSUM_TYPE_ADLER32, > + NITROX_CHKSUM_TYPE_NONE, > +}; > + > +struct nitrox_comp_xform { > + enum nitrox_comp_op op; > + enum nitrox_comp_algo algo; > + enum nitrox_comp_level level; > + enum nitrox_chksum_type chksum_type; > +}; > + > +struct nitrox_comp_stream { > + struct nitrox_comp_xform xform; > + int window_size; > + char context[NITROX_DECOMP_CTX_SIZE] __rte_aligned(8); > + char history_window[NITROX_CONSTANTS_MAX_SEARCH_DEPTH] > __rte_aligned(8); > +}; Can we define these structures and enums in a header file. > + > +static const char nitrox_comp_drv_name[] =3D > RTE_STR(COMPRESSDEV_NAME_NITROX_PMD); > +static const struct rte_driver nitrox_rte_comp_drv =3D { > + .name =3D nitrox_comp_drv_name, > + .alias =3D nitrox_comp_drv_name > +}; > + > +static const struct rte_compressdev_capabilities > + nitrox_comp_pmd_capabilities[] =3D { > + { .algo =3D RTE_COMP_ALGO_DEFLATE, > + .comp_feature_flags =3D RTE_COMP_FF_HUFFMAN_FIXED | > + RTE_COMP_FF_HUFFMAN_DYNAMIC | > + RTE_COMP_FF_CRC32_CHECKSUM | > + RTE_COMP_FF_ADLER32_CHECKSUM | > + RTE_COMP_FF_SHAREABLE_PRIV_XFORM | > + RTE_COMP_FF_OOP_SGL_IN_SGL_OUT | > + RTE_COMP_FF_OOP_SGL_IN_LB_OUT | > + RTE_COMP_FF_OOP_LB_IN_SGL_OUT, I cannot see all these feature flags being updated in nitrox.ini file. > + .window_size =3D { > + .min =3D 1, > + .max =3D 15, > + .increment =3D 1 > + }, > + }, > + RTE_COMP_END_OF_CAPABILITIES_LIST() > +}; > + > +static int nitrox_comp_dev_configure(struct rte_compressdev *dev, > + struct rte_compressdev_config *config) > +{ > + struct nitrox_comp_device *comp_dev =3D dev->data->dev_private; > + struct nitrox_device *ndev =3D comp_dev->ndev; > + > + if (config->nb_queue_pairs > ndev->nr_queues) { > + NITROX_LOG(ERR, "Invalid queue pairs, max supported %d\n", > + ndev->nr_queues); > + return -EINVAL; > + } > + > + if (config->max_nb_priv_xforms) { > + char xform_name[RTE_MEMPOOL_NAMESIZE]; > + > + snprintf(xform_name, sizeof(xform_name), "%s_xform", > + dev->data->name); > + comp_dev->xform_pool =3D rte_mempool_create(xform_name, > + config->max_nb_priv_xforms, > + sizeof(struct nitrox_comp_xform), > + 0, 0, NULL, NULL, NULL, NULL, > + config->socket_id, 0); > + if (comp_dev->xform_pool =3D=3D NULL) { > + NITROX_LOG(ERR, "Failed to create xform pool, err > %d\n", > + rte_errno); > + return -rte_errno; > + } > + } > + > + return 0; > +} > + > +static int nitrox_comp_dev_start(struct rte_compressdev *dev) > +{ > + RTE_SET_USED(dev); > + return 0; > +} > + > +static void nitrox_comp_dev_stop(struct rte_compressdev *dev) > +{ > + RTE_SET_USED(dev); > +} > + > +static int nitrox_comp_dev_close(struct rte_compressdev *dev) > +{ > + struct nitrox_comp_device *comp_dev =3D dev->data->dev_private; > + > + rte_mempool_free(comp_dev->xform_pool); > + comp_dev->xform_pool =3D NULL; > + return 0; > +} > + > +static void nitrox_comp_stats_get(struct rte_compressdev *dev, > + struct rte_compressdev_stats *stats) > +{ > + RTE_SET_USED(dev); > + RTE_SET_USED(stats); > +} > + > +static void nitrox_comp_stats_reset(struct rte_compressdev *dev) > +{ > + RTE_SET_USED(dev); > +} > + > +static void nitrox_comp_dev_info_get(struct rte_compressdev *dev, > + struct rte_compressdev_info *info) > +{ > + struct nitrox_comp_device *comp_dev =3D dev->data->dev_private; > + struct nitrox_device *ndev =3D comp_dev->ndev; > + > + if (!info) > + return; > + > + info->max_nb_queue_pairs =3D ndev->nr_queues; > + info->feature_flags =3D dev->feature_flags; > + info->capabilities =3D nitrox_comp_pmd_capabilities; > +} > + > +static int nitrox_comp_queue_pair_setup(struct rte_compressdev *dev, > + uint16_t qp_id, > + uint32_t max_inflight_ops, int > socket_id) > +{ > + RTE_SET_USED(dev); > + RTE_SET_USED(qp_id); > + RTE_SET_USED(max_inflight_ops); > + RTE_SET_USED(socket_id); > + return -1; > +} > + > +static int nitrox_comp_queue_pair_release(struct rte_compressdev *dev, > + uint16_t qp_id) > +{ > + RTE_SET_USED(dev); > + RTE_SET_USED(qp_id); > + return 0; > +} > + > +static int nitrox_comp_private_xform_create(struct rte_compressdev *dev, > + const struct rte_comp_xform *xform, > + void **private_xform) > +{ > + struct nitrox_comp_device *comp_dev =3D dev->data->dev_private; > + struct nitrox_comp_xform *nitrox_xform; > + enum rte_comp_checksum_type chksum_type; > + int ret; > + > + if (unlikely(comp_dev->xform_pool =3D=3D NULL)) { > + NITROX_LOG(ERR, "private xform pool not yet created\n"); > + return -EINVAL; > + } > + > + if (rte_mempool_get(comp_dev->xform_pool, private_xform)) { > + NITROX_LOG(ERR, "Failed to get from private xform pool\n"); > + return -ENOMEM; > + } > + > + nitrox_xform =3D (struct nitrox_comp_xform *)*private_xform; > + if (xform->type =3D=3D RTE_COMP_COMPRESS) { > + enum rte_comp_huffman algo; > + int level; > + > + nitrox_xform->op =3D NITROX_COMP_OP_COMPRESS; > + if (xform->compress.algo !=3D RTE_COMP_ALGO_DEFLATE) { > + NITROX_LOG(ERR, "Only deflate is supported\n"); > + ret =3D -ENOTSUP; > + goto err_exit; > + } > + > + algo =3D xform->compress.deflate.huffman; > + if (algo =3D=3D RTE_COMP_HUFFMAN_DEFAULT) > + nitrox_xform->algo =3D > NITROX_COMP_ALGO_DEFLATE_DEFAULT; > + else if (algo =3D=3D RTE_COMP_HUFFMAN_FIXED) > + nitrox_xform->algo =3D > NITROX_COMP_ALGO_DEFLATE_FIXEDHUFF; > + else if (algo =3D=3D RTE_COMP_HUFFMAN_DYNAMIC) > + nitrox_xform->algo =3D > NITROX_COMP_ALGO_DEFLATE_DYNHUFF; > + else { > + NITROX_LOG(ERR, "Invalid deflate algorithm %d\n", > algo); > + ret =3D -EINVAL; > + goto err_exit; > + } > + > + level =3D xform->compress.level; > + if (level >=3D NITROX_COMP_LEVEL_LOWEST_START && > + level <=3D NITROX_COMP_LEVEL_LOWEST_END) { > + nitrox_xform->level =3D NITROX_COMP_LEVEL_LOWEST; > + } else if (level >=3D NITROX_COMP_LEVEL_LOWER_START && > + level <=3D NITROX_COMP_LEVEL_LOWER_END) { > + nitrox_xform->level =3D NITROX_COMP_LEVEL_LOWER; > + } else if (level >=3D NITROX_COMP_LEVEL_MEDIUM_START && > + level <=3D NITROX_COMP_LEVEL_MEDIUM_END) { > + nitrox_xform->level =3D NITROX_COMP_LEVEL_MEDIUM; > + } else if (level >=3D NITROX_COMP_LEVEL_BEST_START && > + level <=3D NITROX_COMP_LEVEL_BEST_END) { > + nitrox_xform->level =3D NITROX_COMP_LEVEL_BEST; > + } else { > + NITROX_LOG(ERR, "Unsupported compression level > %d\n", > + xform->compress.level); > + ret =3D -ENOTSUP; > + goto err_exit; > + } > + > + chksum_type =3D xform->compress.chksum; > + } else if (xform->type =3D=3D RTE_COMP_DECOMPRESS) { > + nitrox_xform->op =3D NITROX_COMP_OP_DECOMPRESS; > + if (xform->decompress.algo !=3D RTE_COMP_ALGO_DEFLATE) { > + NITROX_LOG(ERR, "Only deflate is supported\n"); > + ret =3D -ENOTSUP; > + goto err_exit; > + } > + > + nitrox_xform->algo =3D NITROX_COMP_ALGO_DEFLATE_DEFAULT; > + nitrox_xform->level =3D NITROX_COMP_LEVEL_BEST; > + chksum_type =3D xform->decompress.chksum; > + } else { > + ret =3D -EINVAL; > + goto err_exit; > + } > + > + if (chksum_type =3D=3D RTE_COMP_CHECKSUM_NONE) > + nitrox_xform->chksum_type =3D NITROX_CHKSUM_TYPE_NONE; > + else if (chksum_type =3D=3D RTE_COMP_CHECKSUM_CRC32) > + nitrox_xform->chksum_type =3D NITROX_CHKSUM_TYPE_CRC32; > + else if (chksum_type =3D=3D RTE_COMP_CHECKSUM_ADLER32) > + nitrox_xform->chksum_type =3D > NITROX_CHKSUM_TYPE_ADLER32; > + else { > + NITROX_LOG(ERR, "Unsupported checksum type %d\n", > + chksum_type); > + ret =3D -ENOTSUP; > + goto err_exit; > + } > + > + return 0; > +err_exit: > + memset(nitrox_xform, 0, sizeof(*nitrox_xform)); > + rte_mempool_put(comp_dev->xform_pool, nitrox_xform); > + return ret; > +} > + > +static int nitrox_comp_private_xform_free(struct rte_compressdev *dev, > + void *private_xform) > +{ > + struct nitrox_comp_xform *nitrox_xform =3D private_xform; > + struct rte_mempool *mp =3D rte_mempool_from_obj(nitrox_xform); > + > + RTE_SET_USED(dev); > + if (nitrox_xform =3D=3D NULL) > + return -EINVAL; > + > + memset(nitrox_xform, 0, sizeof(*nitrox_xform)); > + mp =3D rte_mempool_from_obj(nitrox_xform); > + rte_mempool_put(mp, nitrox_xform); > + return 0; > +} > + > +static uint16_t nitrox_comp_dev_enq_burst(void *qp, > + struct rte_comp_op **ops, > + uint16_t nb_ops) > +{ > + RTE_SET_USED(qp); > + RTE_SET_USED(ops); > + RTE_SET_USED(nb_ops); > + return 0; > +} > + > +static uint16_t nitrox_comp_dev_deq_burst(void *qp, > + struct rte_comp_op **ops, > + uint16_t nb_ops) > +{ > + RTE_SET_USED(qp); > + RTE_SET_USED(ops); > + RTE_SET_USED(nb_ops); > + return 0; > +} > + > +static struct rte_compressdev_ops nitrox_compressdev_ops =3D { > + .dev_configure =3D nitrox_comp_dev_configure, > + .dev_start =3D nitrox_comp_dev_start, > + .dev_stop =3D nitrox_comp_dev_stop, > + .dev_close =3D nitrox_comp_dev_close, > + > + .stats_get =3D nitrox_comp_stats_get, > + .stats_reset =3D nitrox_comp_stats_reset, > + > + .dev_infos_get =3D nitrox_comp_dev_info_get, > + > + .queue_pair_setup =3D nitrox_comp_queue_pair_setup, > + .queue_pair_release =3D nitrox_comp_queue_pair_release, > + > + .private_xform_create =3D nitrox_comp_private_xform_create, > + .private_xform_free =3D nitrox_comp_private_xform_free, > + .stream_create =3D NULL, > + .stream_free =3D NULL > +}; > + > +int > +nitrox_comp_pmd_create(struct nitrox_device *ndev) > +{ > + char name[RTE_COMPRESSDEV_NAME_MAX_LEN]; > + struct rte_compressdev_pmd_init_params init_params =3D { > + .name =3D "", > + .socket_id =3D ndev->pdev->device.numa_node, > + }; > + struct rte_compressdev *cdev; > + > + rte_pci_device_name(&ndev->pdev->addr, name, sizeof(name)); > + snprintf(name + strlen(name), > + RTE_COMPRESSDEV_NAME_MAX_LEN - strlen(name), > + "_n5comp"); > + ndev->rte_comp_dev.driver =3D &nitrox_rte_comp_drv; > + ndev->rte_comp_dev.numa_node =3D ndev->pdev->device.numa_node; > + ndev->rte_comp_dev.devargs =3D NULL; > + cdev =3D rte_compressdev_pmd_create(name, > + &ndev->rte_comp_dev, > + sizeof(struct nitrox_comp_device), > + &init_params); > + if (!cdev) { > + NITROX_LOG(ERR, "Cryptodev '%s' creation failed\n", name); > + return -ENODEV; > + } > + > + cdev->dev_ops =3D &nitrox_compressdev_ops; > + cdev->enqueue_burst =3D nitrox_comp_dev_enq_burst; > + cdev->dequeue_burst =3D nitrox_comp_dev_deq_burst; > + cdev->feature_flags =3D RTE_COMPDEV_FF_HW_ACCELERATED; > + > + ndev->comp_dev =3D cdev->data->dev_private; > + ndev->comp_dev->cdev =3D cdev; > + ndev->comp_dev->ndev =3D ndev; > + ndev->comp_dev->xform_pool =3D NULL; > + NITROX_LOG(DEBUG, "Created compressdev '%s', dev_id %d\n", > + cdev->data->name, cdev->data->dev_id); > + return 0; > +} > + > +int > +nitrox_comp_pmd_destroy(struct nitrox_device *ndev) > +{ > + int err; > + > + if (ndev->comp_dev =3D=3D NULL) > + return 0; > + > + err =3D rte_compressdev_pmd_destroy(ndev->comp_dev->cdev); > + if (err) > + return err; > + > + ndev->comp_dev =3D NULL; > + return 0; > +} > + > diff --git a/drivers/compress/nitrox/nitrox_comp.h > b/drivers/compress/nitrox/nitrox_comp.h > new file mode 100644 > index 0000000000..536d314ca9 > --- /dev/null > +++ b/drivers/compress/nitrox/nitrox_comp.h > @@ -0,0 +1,13 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(C) 2023 Marvell International Ltd. > + */ > + > +#ifndef _NITROX_COMP_H_ > +#define _NITROX_COMP_H_ > + > +struct nitrox_device; > + > +int nitrox_comp_pmd_create(struct nitrox_device *ndev); > +int nitrox_comp_pmd_destroy(struct nitrox_device *ndev); > + > +#endif /* _NITROX_COMP_H_ */ > diff --git a/drivers/compress/nitrox/nitrox_comp_reqmgr.c > b/drivers/compress/nitrox/nitrox_comp_reqmgr.c > new file mode 100644 > index 0000000000..5ff64fabce > --- /dev/null > +++ b/drivers/compress/nitrox/nitrox_comp_reqmgr.c > @@ -0,0 +1,3 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(C) 2023 Marvell International Ltd. > + */ Move this in the patch where content is added to this file. We should not have empty files with only copyright.