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 D331442B39; Thu, 18 May 2023 10:26:21 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C3A8740E25; Thu, 18 May 2023 10:26:21 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 508014014F for ; Thu, 18 May 2023 10:26:20 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34HMFGHQ012878; Thu, 18 May 2023 01:26:18 -0700 Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2046.outbound.protection.outlook.com [104.47.57.46]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3qn7jb9u83-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 May 2023 01:26:18 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bkxU73x2WpL5l9Cn+lubSGjBVTe3WoQ1UdsTRNn+muVtNahxiHVKNnnsMDVUE8nKyzdi27dYgLEDCaRdNxjWAMBRkUl2atXP+NQxqeFfrmfQ2+SEUUKecR07iXDueks0lep9I5KZz411b+cVe4jtCKRynmKh6X7dkf1O9Z7N5P64RHTlNeAGMaQEOPIDInWA12gAvFOfdh/erO79ObD22AgwEIvTfSuNAEufBEO6kE0r3UCs4ZIwRLn5uzaJEc+B4OocG1dgC/w57R0WQV4l9vGs3dzDt8X3jjIS8P/zJNEp6k1IbY18+k66w5C9Qp8eXx1oysUKsehWIDWmsMyqGA== 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=Mgnd9CY07A91bhYg8Nz7ETNDnPG4YUvKjuwJ4JZtMno=; b=lzaW/w74UaJKn2Mi05oCN2ZyDdd9Yj0lVEVN85bZ8+kkm90tMYJDsLwe7tQMi8Ox6cJwzgeZA0c6TcamtikxLk0lubijavCrZJxji2LnfxOF7+eJRAV8RMEtBPW3M8GYTnG8Cm46Uc2gMgcBVMP57GZwom+seaaMA3vVgslqrkfUX67uCWXPGuKPuOPUG5IrrcTlCAvKjLFh0Sk/cIIjl2HSqy/bdDvN7PqxGGzWtnUSvHslQlgLC+mAV/HtZatYtWPSiDCP9uC3PW2rDYqdswvYKc9PtWf33Ycs3h65XVc+RNb8F6XZlAMe5Dwjz+ah8sPXd4w/n80Ote7ZE8RSMQ== 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=Mgnd9CY07A91bhYg8Nz7ETNDnPG4YUvKjuwJ4JZtMno=; b=KRc/7jd7rYrbDxm18VuG3MFw3Hek7rSrya+uy+1tXgmqOogxwdMraceWMrtJc/Qnmwb93q2uGHeo41SbarTV2PHl0Hb/+N67uLgouozDsThBmPKSL8GienCbrs5/8ROpmURBpxZ8w2R5ibY55OZm1SgiwyryEgKqpLSZ83+GkCg= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by PH0PR18MB4892.namprd18.prod.outlook.com (2603:10b6:510:11b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.27; Thu, 18 May 2023 08:26:15 +0000 Received: from CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::831b:85d2:9a45:8489]) by CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::831b:85d2:9a45:8489%6]) with mapi id 15.20.6411.019; Thu, 18 May 2023 08:26:15 +0000 From: Akhil Goyal To: Anoob Joseph , Thomas Monjalon , Jerin Jacob Kollanukkaran , Konstantin Ananyev , Bernard Iremonger CC: Hemant Agrawal , =?iso-8859-1?Q?Mattias_R=F6nnblom?= , Kiran Kumar Kokkilagadda , Volodymyr Fialko , "dev@dpdk.org" , Olivier Matz Subject: RE: [PATCH v2 11/22] doc: add PDCP library guide Thread-Topic: [PATCH v2 11/22] doc: add PDCP library guide Thread-Index: AQHZbvklldStKVeduEW/B5J0LIAbTK9f4sMw Date: Thu, 18 May 2023 08:26:15 +0000 Message-ID: References: <20221222092522.1628-1-anoobj@marvell.com> <20230414174512.642-1-anoobj@marvell.com> <20230414174512.642-12-anoobj@marvell.com> In-Reply-To: <20230414174512.642-12-anoobj@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: =?iso-8859-1?Q?PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNcZ2FraGlsXG?= =?iso-8859-1?Q?FwcGRhdGFccm9hbWluZ1wwOWQ4NDliNi0zMmQzLTRhNDAtODVlZS02Yjg0?= =?iso-8859-1?Q?YmEyOWUzNWJcbXNnc1xtc2ctYTVjNzZjMTItZjU1NS0xMWVkLWEwOTMtOT?= =?iso-8859-1?Q?RlNmY3NjYxOTA3XGFtZS10ZXN0XGE1Yzc2YzE0LWY1NTUtMTFlZC1hMDkz?= =?iso-8859-1?Q?LTk0ZTZmNzY2MTkwN2JvZHkudHh0IiBzej0iOTE3MSIgdD0iMTMzMjg4Nz?= =?iso-8859-1?Q?E5NzMwOTUxNjg0IiBoPSJXbWxvT1VwWkEzVVcvZWVtTitsWmlubmRIUVk9?= =?iso-8859-1?Q?IiBpZD0iIiBibD0iMCIgYm89IjEiIGNpPSJjQUFBQUVSSFUxUlNSVUZOQ2?= =?iso-8859-1?Q?dVQUFNZ01BQUFFUmlGb1lvblpBV0xCSllXYU9HRWNZc0VsaFpvNFlSd1VB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSEFBQUFCWURBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBRUFBUUVCQUFBQTQrVXREQUNBQVFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUo0QUFBQmhBR1FBWkFCeUFHVUFjd0J6QUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQU?= =?iso-8859-1?Q?dNQWRRQnpBSFFBYndCdEFGOEFjQUJsQUhJQWN3QnZBRzRBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFDZUFBQUFZd0IxQUhN?= =?iso-8859-1?Q?QWRBQnZBRzBBWHdCd0FHZ0Fid0J1QUdVQWJnQjFBRzBBWWdCbEFISUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQkFBQUFBQUFBQUFJQUFBQUFBSjRBQUFCakFIVUFjd0IwQUc4QW?= =?iso-8859-1?Q?JRQmZBSE1BY3dCdUFGOEFaQUJoQUhNQWFBQmZBSFlBTUFBeUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-refone: =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQU?= =?iso-8859-1?Q?FBR01BZFFCekFIUUFid0J0QUY4QWN3QnpBRzRBWHdCckFHVUFlUUIzQUc4?= =?iso-8859-1?Q?QWNnQmtBSE1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQ0FBQUFBQUNlQUFBQVl3QjFB?= =?iso-8859-1?Q?SE1BZEFCdkFHMEFYd0J6QUhNQWJnQmZBRzRBYndCa0FHVUFiQUJwQUcwQW?= =?iso-8859-1?Q?FRQjBBR1VBY2dCZkFIWUFNQUF5QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFCQUFBQUFBQUFBQUlBQUFBQUFKNEFBQUJqQUhVQWN3QjBBRz?= =?iso-8859-1?Q?hBYlFCZkFITUFjd0J1QUY4QWN3QndBR0VBWXdCbEFGOEFkZ0F3QURJQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFHUUFiQUJ3QUY4QWN3QnJBSGtB?= =?iso-8859-1?Q?Y0FCbEFGOEFZd0JvQUdFQWRBQmZBRzBBWlFCekFITUFZUUJuQUdVQVh3Qj?= =?iso-8859-1?Q?JBREFBTWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFB?= =?iso-8859-1?Q?QUFBQUFDQUFBQUFBQ2VBQUFBWkFCc0FIQUFYd0J6QUd3QVlRQmpBR3NBWH?= =?iso-8859-1?Q?dCakFHZ0FZUUIwQUY4QWJRQmxBSE1BY3dCaEFHY0FaUUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-reftwo: =?iso-8859-1?Q?QUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQmtBR3dBY0FCZk?= =?iso-8859-1?Q?FIUUFaUUJoQUcwQWN3QmZBRzhBYmdCbEFHUUFjZ0JwQUhZQVpRQmZBR1lB?= =?iso-8859-1?Q?YVFCc0FHVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUdVQWJRQmhBR2tBYkFCZkFH?= =?iso-8859-1?Q?RUFaQUJrQUhJQVpRQnpBSE1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFB?= =?iso-8859-1?Q?QUFBQUFBQUNBQUFBQUFDZUFBQUFiUUJoQUhJQWRnQmxBR3dBWHdCd0FISU?= =?iso-8859-1?Q?Fid0JxQUdVQVl3QjBBRjhBYmdCaEFHMEFaUUJ6QUY4QWNnQmxBSE1BZEFC?= =?iso-8859-1?Q?eUFHa0FZd0IwQUdVQVpBQmZBR0VBYkFCdkFHNEFaUUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQU?= =?iso-8859-1?Q?FJQUFBQUFBSjRBQUFCdEFHRUFjZ0IyQUdVQWJBQmZBSEFBY2dCdkFHb0Fa?= =?iso-8859-1?Q?UUJqQUhRQVh3QnVBR0VBYlFCbEFITUFYd0J5QUdVQWN3QjBBSElBYVFCak?= =?iso-8859-1?Q?FIUUFaUUJrQUY4QWFBQmxBSGdBWXdCdkFHUUFaUUJ6QUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFB?= =?iso-8859-1?Q?QW5nQUFBRzBBWVFCeUFIWUFaUUJzQUd3QVh3QmhBSElBYlFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQ0FBQUFBQUNlQUFBQW?= =?iso-8859-1?Q?JRQmhBSElBZGdCbEFHd0FiQUJmQUhBQWNnQnZBR29BWlFCakFIUUFYd0Jq?= =?iso-8859-1?Q?QUc4QVpBQmxBSE1BQUFBQUFBQUFB?= x-dg-refthree: =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQU?= =?iso-8859-1?Q?FBQUlBQUFBQUFKNEFBQUJ0QUdFQWNnQjJBR1VBYkFCc0FGOEFjQUJ5QUc4?= =?iso-8859-1?Q?QWFnQmxBR01BZEFCZkFHTUFid0JrQUdVQWN3QmZBR1FBYVFCakFIUUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFB?= =?iso-8859-1?Q?QUFBbmdBQUFHMEFZUUJ5QUhZQVpRQnNBR3dBWHdCd0FISUFid0JxQUdVQV?= =?iso-8859-1?Q?l3QjBBRjhBYmdCaEFHMEFaUUJ6QUY4QWNnQmxBSE1BZEFCeUFHa0FZd0Iw?= =?iso-8859-1?Q?QUdVQVpBQmZBRzBBWVFCeUFIWUFaUUJzQUd3QUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFDQUFBQUFBQ2VBQU?= =?iso-8859-1?Q?FBYlFCaEFISUFkZ0JsQUd3QWJBQmZBSEFBY2dCdkFHb0FaUUJqQUhRQVh3?= =?iso-8859-1?Q?QnVBR0VBYlFCbEFITUFYd0J5QUdVQWN3QjBBSElBYVFCakFIUUFaUUJrQU?= =?iso-8859-1?Q?Y4QWJRQmhBSElBZGdCbEFHd0FiQUJmQUc4QWNnQmZBR0VBY2dCdEFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQnRBR0VB?= =?iso-8859-1?Q?Y2dCMkFHVUFiQUJzQUY4QWRBQmxBSElBYlFCcEFHNEFkUUJ6QUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUcwQVlRQnlBSFlBWl?= =?iso-8859-1?Q?FCc0FHd0FYd0IzQUc4QWNnQmtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-reffour: QUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFBPSIvPjwvbWV0YT4= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|PH0PR18MB4892:EE_ x-ms-office365-filtering-correlation-id: 9231c41e-9398-4e49-ed18-08db57798be6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 48sQ+XGgE5FOfCJC1s7Ua/SxD91B7wILGmm95kzooWONeaNMkHP3vaxsjM9sA5peZ5GWtaiY3Gbit33mdvAllWZyOmxzu8MKZ3+RNc5eupD3UWsCjHbRra31eiDDXtb5JHbkXwjQI9PZmWkg43aHk1ZLoNblRLCu++A1Gzpl6hrawB4KsZSbZnP5R+AaWg6Tr9oBe9m0Jy4q2D95zq+mvwqIw/d7isDIdE6rbPZ0Sgk/6Au19vQq4nya1JSrxCSPRFZsu9s/TFWevCqgSRJJgTt2hqZU/6yigfw4DBP1xdnbyrYd6H2PPVMQgCdNJgI1QOXklF2Cfc4z50uU6dwfYxvv4jM468i0Q5OJ2dfM0Eahty3UAxa+9FZEEDbZMpS47ZalX3FIFQICzwMIal8djXGb7RwffN7mFlZfgk38pdqHEUQ780ZoQaop6jDu+CE8yMj4V5Pzo8aFtlEDRCaem22GII98VWjk0lNppBBQtUiybg6KvKU9hHIpB6O4VB/X4/tPK2DP+FTTyd5HZvs2YMxLqyGxlEmvgvzp/fN+q465PByvf1qdzP8ufmrMaa77TlhSVcblLs+yjbhOFSOtr6hzv7uCw3SQQ+szzdF7Fwo= 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:(13230028)(4636009)(366004)(346002)(376002)(396003)(136003)(39860400002)(451199021)(478600001)(55016003)(186003)(6506007)(26005)(9686003)(7696005)(55236004)(71200400001)(4326008)(316002)(66446008)(38100700002)(64756008)(66476007)(66556008)(2906002)(122000001)(66946007)(76116006)(8936002)(86362001)(8676002)(52536014)(41300700001)(5660300002)(38070700005)(83380400001)(54906003)(110136005)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?/AsPwOfXolytm+nvRj5iLhQJoUUOciESGMFIj7LppXocRa/o1at6twB8Fz?= =?iso-8859-1?Q?XDZgQSGW13hsTkfafjiDuTlrNMv7czS23Y+VZCJ981XbJlTtUpbtOc5etc?= =?iso-8859-1?Q?kwr6XuxLJqLTYgBK7o1+X2qskRVAEXEElMdDx5P2j05BvRx5G3WgEXu/qV?= =?iso-8859-1?Q?OkE5ii17gdD9dDTfn8mbcdPuKoNX0N0A5S/7uoG4fvCGPm7T/5ISrJ4xMc?= =?iso-8859-1?Q?ui3xFKmF54NQXuM4rt+rvklKFxNWQyZZtgKnn8zW1e9O1rhygm4vmuXzww?= =?iso-8859-1?Q?flEbEyv/p0Id/zOxM9yZFKvKuCE2EpWgXrKjcT1IMDCAu+5AGSMHKLHI3e?= =?iso-8859-1?Q?RR1znNDgYvyAPhHruqpWDPHz5fUhll72wo2VhXKulA6MwR4mvtTHa1pNDR?= =?iso-8859-1?Q?ta8u5rbvtmyjAUVrTK4mKVTWL7nh5EX8IF6l/xvsIyvhIftlq9H/a7FmDn?= =?iso-8859-1?Q?liz6yKcgRdd9mqrqNu8LZBRDrNcSt8phRnhaSc9CeMCeCWS4/rVKTbOxbR?= =?iso-8859-1?Q?tD6Iumqq3hET90RcI5XbRwxXdmjo4fJfd1ZqGQzokaeqUpzYDRJSmUR6Sn?= =?iso-8859-1?Q?NqudLwHIFvqcD7h0TgkfZGy2f5FliRuBPB5001GC8WwC8dcqNIcu7oclQc?= =?iso-8859-1?Q?IPXtc8k/RclnBU8JAVbMxoCV1Ckj/lpqon1WMTncpCDQteAsSNwcwCnMSh?= =?iso-8859-1?Q?qG7GjrsHot+vkCDy3JHT4+vdETV024KIHl73fiTkEXHwHRLhOD0XhHAJcS?= =?iso-8859-1?Q?s0xYvAad9Lgs49DwuYsOiHXhWIGNTLG9RyKHvvWbCn6E2Yg33LnYinjzxg?= =?iso-8859-1?Q?5qSajFg7Eg98PCUaS9pmsmq5BNkj5v1YEoJH2TWVCY754XJp07G3HLGN5Q?= =?iso-8859-1?Q?yA7dH920aUwGB4Ro6slILdfWWsVImvV2zuYPp3Cy/Fa9I1yCg87gpaP4h6?= =?iso-8859-1?Q?xkE3A9Vf/7XRWqd2D/D5JSfcgPpMt1Vu/C4Na1sn3HzEZ0igAuZ/hpMG5h?= =?iso-8859-1?Q?6O0Yc9p2V+ZwT9gGfcoLFRh1G075ODgh2mhFmVihBWFz+jU1MBiclof4nf?= =?iso-8859-1?Q?f/JRSbN0J0os26eFhj/rdsgd+3yXji8lmllkzqPmfRErQQGT3eXkh1xWRq?= =?iso-8859-1?Q?Y++nhDDkLwAoRxeFluK8WaL1rny51gbvBBL2cVbTvWhoJGRX/c/Hyceyxl?= =?iso-8859-1?Q?trpf5xPlyxbrs+F2yzWRgc55dkEdctP4iBRnbu8qzyJM6/pha1SjOzs3FS?= =?iso-8859-1?Q?mOlf2vH6pveO0B7VEUhN9cZW47xdehScKW6i1qpPMn96HufuUuOktFnjLW?= =?iso-8859-1?Q?PvFWCzrCFbimA/kBnyQPl2NxzgmDUMCbLJyX1oKmtYYIxo0fME95Ww1oBc?= =?iso-8859-1?Q?acpPoMIA1LB1knt1nbcgBLX7UENwLLrZbkWZ4J7ukOhCHEUXnLmmcU8qPv?= =?iso-8859-1?Q?I1WivZyTkNpnhtfodxe9iPRUN+JR0u9tmvn26qnz68/7/r8fOU4XrHgchV?= =?iso-8859-1?Q?4mObLQDSImyVeXOy40vSCnwaomeTf5rOBa9lb9KpYmFFzE1DDfWK69LM0s?= =?iso-8859-1?Q?yxY0Q5iS57efQ7klFsabImWMQOPISsiGDk8ZhuPfKr70Sz9ztno2wuvC7L?= =?iso-8859-1?Q?J4uN36Gkm1zscHQnmg67IQbLXrossvuQho?= Content-Type: text/plain; charset="iso-8859-1" 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: 9231c41e-9398-4e49-ed18-08db57798be6 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 May 2023 08:26:15.2735 (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: 6VusgHjTUd5sYw5tyrH7JDZ99JI1fIAHZM3FtX0MvFDryntGa3rEKc/HmeWtOMaT8gjaDyLaBu8MQ0b2fi6wAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR18MB4892 X-Proofpoint-GUID: rNuzCjvkTInrszKS-dgLiIMjcYe0B0se X-Proofpoint-ORIG-GUID: rNuzCjvkTInrszKS-dgLiIMjcYe0B0se X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-18_06,2023-05-17_02,2023-02-09_01 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 > diff --git a/doc/guides/prog_guide/pdcp_lib.rst > b/doc/guides/prog_guide/pdcp_lib.rst > new file mode 100644 > index 0000000000..abd874f2cc > --- /dev/null > +++ b/doc/guides/prog_guide/pdcp_lib.rst > @@ -0,0 +1,246 @@ > +.. SPDX-License-Identifier: BSD-3-Clause > + Copyright(C) 2023 Marvell. > + > +PDCP Protocol Processing Library > +=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 > + > +DPDK provides a library for PDCP protocol processing. The library utiliz= es > +other DPDK libraries such as cryptodev, reorder, etc., to provide the > +application with a transparent and high performant PDCP protocol process= ing > +library. > + > +The library abstracts complete PDCP protocol processing conforming to > +``ETSI TS 138 323 V17.1.0 (2022-08)``. > +https://www.etsi.org/deliver/etsi_ts/138300_138399/138323/17.01.00_60/ts= _ > 138323v170100p.pdf > + > +PDCP would involve the following operations, > + > +1. Transfer of user plane data > +2. Transfer of control plane data > +3. Header compression > +4. Uplink data compression > +5. Ciphering and integrity protection > + > +.. _figure_pdcp_functional_overview: > + > +.. figure:: img/pdcp_functional_overview.* > + > + PDCP functional overview new > + > +PDCP library would abstract the protocol offload features of the cryptod= ev and > +would provide a uniform interface and consistent API usage to work with > +cryptodev irrespective of the protocol offload features supported. > + > +PDCP entity API > +--------------- > + > +PDCP library provides following control path APIs that is used to > +configure various PDCP entities, > + > +1. ``rte_pdcp_entity_establish()`` > +2. ``rte_pdcp_entity_suspend()`` > +3. ``rte_pdcp_entity_release()`` > + > +A PDCP entity would translate to one ``rte_cryptodev_sym_session`` or > +``rte_security_session`` based on the config. The sessions would be crea= ted/ > +destroyed while corresponding PDCP entity operations are performed. Please explain the difference between suspend and release here. > + > +PDCP PDU (Protocol Data Unit) > +----------------------------- > + > +PDCP PDUs can be categorized as, > + > +1. Control PDU > +2. Data PDU > + > +Control PDUs are used for signalling between entities on either end and = can be > +one of the following, > + > +1. PDCP status report > +2. ROHC feedback > +3. EHC feedback > + > +Control PDUs are not ciphered or authenticated, and so such packets are = not > +submitted to cryptodev for processing. > + > +Data PDUs are regular packets submitted by upper layers for transmission= to > +other end. Such packets would need to be ciphered and authenticated base= d on > +the entity configuration. > + Please move the PDCP PDU section above PDCP entity API section. So that all APIs are together. > +PDCP packet processing API for data PDU > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +PDCP processing is split into 2 parts. One before cryptodev processing > +(``rte_pdcp_pkt_pre_process()``) and one after cryptodev processing > +(``rte_pdcp_pkt_post_process()``). Since cryptodev dequeue can return cr= ypto > +operations belonging to multiple entities, ``rte_pdcp_pkt_crypto_group()= `` > +is added to help grouping crypto operations belonging to same PDCP entit= y. > + > +Lib PDCP would allow application to use same API sequence while leveragi= ng > +protocol offload features enabled by ``rte_security`` library. Lib PDCP = would > +internally change the handles registered for ``pre_process`` and > +``post_process`` based on features enabled in the entity. > + > +Lib PDCP would create the required sessions on the device provided in en= tity to > +minimize the application requirements. Also, the crypto_op allocation an= d free > +would also be done internally by lib PDCP to allow the library to create > +crypto ops as required for the input packets. For example, when control = PDUs > are > +received, no cryptodev enqueue-dequeue is expected for the same and lib > PDCP > +is expected to handle it differently. > + > +Sample API usage > +---------------- > + > +The ``rte_pdcp_entity_conf`` structure is used to pass the configuration > +parameters for entity creation. > + > +.. literalinclude:: ../../../lib/pdcp/rte_pdcp.h > + :language: c > + :start-after: Structure rte_pdcp_entity_conf 8< > + :end-before: >8 End of structure rte_pdcp_entity_conf. > + > +.. code-block:: c > + > + struct rte_mbuf **out_mb, *pkts[MAX_BURST_SIZE]; > + struct rte_crypto_op *cop[MAX_BURST_SIZE]; > + struct rte_pdcp_group grp[MAX_BURST_SIZE]; > + struct rte_pdcp_entity *pdcp_entity; > + int nb_max_out_mb, ret, nb_grp; > + uint16_t nb_ops; > + > + /* Create PDCP entity */ > + pdcp_entity =3D rte_pdcp_entity_establish(&conf); > + > + /** > + * Allocate buffer for holding mbufs returned during PDCP suspend, > + * release & post-process APIs. > + */ > + > + /* Max packets that can be cached in entity + burst size */ > + nb_max_out_mb =3D pdcp_entity->max_pkt_cache + MAX_BURST_SIZE; > + out_mb =3D rte_malloc(NULL, nb_max_out_mb * sizeof(uintptr_t), 0); > + if (out_mb =3D=3D NULL) { > + /* Handle error */ > + } > + > + while (1) { > + /* Receive packet and form mbuf */ > + > + /** > + * Prepare packets for crypto operation. Following operations > + * would be done, > + * > + * Transmitting entity/UL (only data PDUs): > + * - Perform compression > + * - Assign sequence number > + * - Add PDCP header > + * - Create & prepare crypto_op > + * - Prepare IV for crypto operation (auth_gen, encrypt) > + * - Save original PDCP SDU (during PDCP re-establishment, > + * unconfirmed PDCP SDUs need to crypto processed again > and > + * transmitted/re-transmitted) > + * > + * Receiving entity/DL: > + * - Any control PDUs received would be processed and > + * appropriate actions taken. If data PDU, continue. > + * - Determine sequence number (based on HFN & per packet > SN) > + * - Prepare crypto_op > + * - Prepare IV for crypto operation (decrypt, auth_verify) > + */ > + nb_success =3D rte_pdcp_pkt_pre_process(pdcp_entity, pkts, cop, > + nb_rx, &nb_err); > + if (nb_err !=3D 0) { > + /* Handle error packets */ > + } > + > + if ((rte_cryptodev_enqueue_burst(dev_id, qp_id, cop, > nb_success) > + !=3D nb_success) { > + /* Retry for enqueue failure packets */ > + } > + > + ... > + > + nb_ops =3D rte_cryptodev_dequeue_burst(dev_id, qp_id, cop, > + MAX_BURST_SIZE); > + if (nb_ops =3D=3D 0) > + continue; > + > + /** > + * Received a burst of completed crypto ops from cryptodev. It > + * may belong to various entities. Group similar ones together > + * for entity specific post-processing. > + */ > + > + /** > + * Groups similar entities together. Frees crypto op and based > + * on crypto_op status, set mbuf->ol_flags which would be > + * checked in rte_pdcp_pkt_post_process(). > + */ > + nb_grp =3D rte_pdcp_pkt_crypto_group(cop, pkts, grp, ret); > + > + for (i =3D 0; i !=3D nb_grp; i++) { > + > + /** > + * Post process packets after crypto completion. > + * Following operations would be done, > + * > + * Transmitting entity/UL: > + * - Check crypto result > + * > + * Receiving entity/DL: > + * - Check crypto operation status > + * - Check for duplication (if yes, drop duplicate) > + * - Perform decompression > + * - Trim PDCP header > + * - Hold packet (SDU) for in-order delivery (return > + * completed packets as and when sequence is > + * completed) > + * - If not in sequence, cache the packet and start > + * t-Reordering timer. When timer expires, the > + * packets need to delivered to upper layers (not > + * treated as error packets). > + */ > + nb_success =3D rte_pdcp_pkt_post_process(grp[i].id.ptr, > + grp[i].m, out_mb, > + grp[i].cnt, > + &nb_err); > + if (nb_err !=3D 0) { > + /* Handle error packets */ > + } > + > + /* Perform additional operations */ > + > + /** > + * Transmitting entity/UL > + * - If duplication is enabled, duplicate PDCP PDUs > + * - When lower layers confirm reception of a PDCP > PDU, > + * it should be communicated to PDCP layer so that > + * PDCP can drop the corresponding SDU > + */ > + } > + } > + > + > +Supported features > +------------------ > + > +- 12 bit & 18 bit sequence numbers > +- Uplink & downlink traffic > +- HFN increment > +- IV generation as required per algorithm > + > +Supported ciphering algorithms > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +- NULL > +- AES-CTR > +- SNOW3G-CIPHER > +- ZUC-CIPHER > + > +Supported integrity protection algorithms > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +- NULL > +- AES-CMAC > +- SNOW3G-AUTH > +- ZUC-AUTH > -- Move Supported features and algos after PDCP PDU explanation. Sample sequence should be in the end.