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 2563042B39; Thu, 18 May 2023 11:43:11 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F001740E25; Thu, 18 May 2023 11:43:10 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 47F854014F for ; Thu, 18 May 2023 11:43:09 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34I96eQU025565; Thu, 18 May 2023 02:43:08 -0700 Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2168.outbound.protection.outlook.com [104.47.58.168]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3qmyexbhaq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 May 2023 02:43:08 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a5M2UHglGYoeV/DPZIZP83jsEmXRIheypiv7xjwRjZj1AvRPDgwSHXScF19DPrwF9IZEfCt3MGUQDVijkiQXYq4I3+aATwGQnt2KWL95PIMYaJmv+V6mFYszu8pWj/Rx4flZctuckes7hDLRCsQy9ve2wk8cdGQ8bcalvlnNguP5+/xElpfeZI6F6ml9ybBabs3PfQBuCDt+15G3/Ep+XGe12b1zsObO++X4BhbZnPN8QZ+PMAFPSFjb6P5ssk9WFHNgIixzy0cegfTkj2uMQearYZYX+tdJt4f4U+ZsiL/1qYrYPA9F1/Ngd92wgIZjnW9T81OSTiggmgT0dlf92Q== 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=KFk2It92YDEs9GyId6yB0FafZma4CcXVCn2bk7KC8fg=; b=GeQBjL9VTsa16OZWp7QL+s7L0qUhNijm5riVNMINktiB2XuYKGqsJ9mPmpmq52w6PoT+29c/567f/M+/qYI4j35pubvH0dVehYOeMILWfH5H93+R8EaZs/KDlNC5ln3gxUITI4cZAT7gHbZrPCNeJwrEI9Nd12lY238LUC5UaJ3negNfdys4cPVgwA/va055aTWONl89GhMAsjmLkuNGbCHYdAuKZJVS1sqY62iwne1dRu0TTTCul8yNw+PuxuY79SJrOKT3tyyVlXRsFIA+7ASauwEyNGV+eonXEIwJwhhDZV6mC1xbSe0IR9z+RPgl7G5vlhM78GMcCCJdjeSBng== 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=KFk2It92YDEs9GyId6yB0FafZma4CcXVCn2bk7KC8fg=; b=D/H9nSnVx1Ib+uGnWSd8xW2LCAkw4AVkWEDvRbA59VdV6NnEl5HY+Cu/56ykN7yBz9HldwhCWpclOs7uwFVJ0SBPOsv8ANDsLx8210HlOQVBxOLXzTjAKaye4c7A6qE8RAfIz72PrTqCN93vgs8dJgL2HAiw1q21qG/y/IcIkes= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by SA1PR18MB4776.namprd18.prod.outlook.com (2603:10b6:806:1df::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.19; Thu, 18 May 2023 09:43:05 +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 09:43:05 +0000 From: Akhil Goyal To: Anoob Joseph , Thomas Monjalon , Jerin Jacob Kollanukkaran , Konstantin Ananyev , Bernard Iremonger CC: Volodymyr Fialko , Hemant Agrawal , =?iso-8859-1?Q?Mattias_R=F6nnblom?= , Kiran Kumar Kokkilagadda , "dev@dpdk.org" , Olivier Matz Subject: RE: [PATCH v2 16/22] pdcp: add timer expiry handle Thread-Topic: [PATCH v2 16/22] pdcp: add timer expiry handle Thread-Index: AQHZbvlAqWo6BSQ48UyssLC3h+MHSq9f/AZQ Date: Thu, 18 May 2023 09:43:05 +0000 Message-ID: References: <20221222092522.1628-1-anoobj@marvell.com> <20230414174512.642-1-anoobj@marvell.com> <20230414174512.642-17-anoobj@marvell.com> In-Reply-To: <20230414174512.642-17-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?YmEyOWUzNWJcbXNnc1xtc2ctNjFkZTU0NmEtZjU2MC0xMWVkLWEwOTMtOT?= =?iso-8859-1?Q?RlNmY3NjYxOTA3XGFtZS10ZXN0XDYxZGU1NDZjLWY1NjAtMTFlZC1hMDkz?= =?iso-8859-1?Q?LTk0ZTZmNzY2MTkwN2JvZHkudHh0IiBzej0iNzY4MSIgdD0iMTMzMjg4Nz?= =?iso-8859-1?Q?Y1ODM2MjQ2NTk4IiBoPSIxNkJrd0NEKzlrczg0K25ZaDl2UWVVQ3NUNzQ9?= =?iso-8859-1?Q?IiBpZD0iIiBibD0iMCIgYm89IjEiIGNpPSJjQUFBQUVSSFUxUlNSVUZOQ2?= =?iso-8859-1?Q?dVQUFNZ01BQUJHUGpna2JZblpBYXE3amEyWW02NkZxcnVOclppYnJvVVVB?= =?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?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?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?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3QUFBQUFBQUFBQUFBQUFBUUFB?= =?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: QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFBPSIvPjwvbWV0YT4= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|SA1PR18MB4776:EE_ x-ms-office365-filtering-correlation-id: 1e099c81-516e-4da3-fdb8-08db578447de x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hwYkRxXRNJYEJcjNgeLd/sVu/2eo/aAoGYnSLByhrvztc2AASj5QLJQqLmxH9wi9NoYUf1WbU2x3CuDUyfT7iZhYMZjgTJuSPx2stXX/RTZEEY4A4CUh9CHi4cOQv8NPfA4HPQw+F859lMI4/HhDncSCIv88PHnmfHflfbVQg7mVgGDPxdFT7l9P5Ihbmkz1VekglRwdWvrIJyc45usO5t87fDonhT/TnRd+raaY6vFNQ576mJSKx7tiJXFStFQcuZFW5TxmHBUrzSu3k3i4dIlksg7wgX5/oAn8b1xznkZg/89UEBkTIBoVOsuhN7t6mM/k2LVWrgsWzunsiKccXM2ZVg+M1FhRUHfGN+FSSsymA0Ct9zkPUj9nilD5HTxWVgfjGpQDFw+Cqdb1d/vwXPcc/Edr939PHsTJzVO1rt0XurmtwSCkxAqRRhLjdJbUE1CbPtmv//azDChjDQxsClnpRA43KA3koChO5OObGA9oKC3oLm4hb9F+RsgtZ2+NSMvtDanjih2bphNQdZYAwdX/BgQjJiaM5w28iiV4/AUkg11ETzFNv7zwgIXYBLeplMRECbCu0DHnG3xkfC9DA4M+mnUGvl0ImnxrT5fHhYZxVXJjTvi/r9kOWvTzh+b9 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)(136003)(346002)(366004)(376002)(396003)(39860400002)(451199021)(5660300002)(71200400001)(41300700001)(2906002)(83380400001)(122000001)(86362001)(38100700002)(38070700005)(33656002)(186003)(9686003)(55016003)(6506007)(52536014)(8676002)(26005)(8936002)(55236004)(7696005)(66556008)(66946007)(64756008)(66446008)(66476007)(76116006)(110136005)(54906003)(478600001)(4326008)(316002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?Q1dFtIbZV1EeAHWdeMNB1PdAQZs/Lkc5+rzoa/27kION97FY7/qrZWobv5?= =?iso-8859-1?Q?6aXFv0j4MZhA1qMdrrLasTEJJO6SOos4Gh/9VwvBIVwwsekSUmjCZrvLyf?= =?iso-8859-1?Q?Mht9yNAtcdvocmaZTLBvbuMhWDWLHQd9hyXpgN9LmpDEwtAeo1go4GTTwM?= =?iso-8859-1?Q?GW6WFN+p6jkRrYzQ0h5dInOX107ovCUU8UZ8F4lOtuIAUIFsoHSM9svEYT?= =?iso-8859-1?Q?U8CzHEutD5f4UvPdK4nc/h/zaqGvtmCYHCEBT8317RisJ/GIPSN9sUsz6I?= =?iso-8859-1?Q?8mFRfcGfB6xZZr5laVrFDMNz9ItHaKaCv97Fjj1EUSZaAvBFnkCBHgsMwl?= =?iso-8859-1?Q?IHSCrdPkkfeLdCh5gTPKj2S1LZMtMvkgHQdp78Xkwqy3z437OH5oZws/nI?= =?iso-8859-1?Q?HE+9HUUcnuytr0Q6SPbpWQ1H/ZbA59HVHSm2QEHjTqxizYkyAEhiDD3vTC?= =?iso-8859-1?Q?7N75IlLNzaG9tvyY94mPd2W+tAtR1Lx+StB9kAJMd9PNJKpRPldcTXcclU?= =?iso-8859-1?Q?0O5CvTBA/ByfXfI8TGGThm7wFTQPzTeFqtvIP9ap4n0Jq9fmjtGzZFNNEm?= =?iso-8859-1?Q?2kzsWMA7iK716M4UHHwuZg/mTw4Vixs6/E/u9Sm6RZyc2Qo2P1wVW4JNCO?= =?iso-8859-1?Q?RZ4Rxdd2I1IiAbFEur8wiLAga9/hEWi0JfNHCPykUF2BnUDh1lbTqFyisQ?= =?iso-8859-1?Q?NPEJW0jnA2vWDMqYdNXCnOWztyYh5Iz0fpZJ3U6NbEny/7xss2W0XPmenE?= =?iso-8859-1?Q?R3xogczqSKfcJ0ja0GfTuLR/6QZSQD2A7NbT3Fe8VavTHfPg9DLBJ1C9WK?= =?iso-8859-1?Q?uUzqSnDDDEdQ/IV1nNzay+eD6o4lAs+oI5EpxeeuHxcpqP7yqlz93kMxLw?= =?iso-8859-1?Q?y6H3YxaJUvaAdi9YCkDS0F2gJNslv0aVEyGF2Tn+RHUv7/fuQRu04BWxIY?= =?iso-8859-1?Q?bRYtzTR5DqyJm1Kp5imvyJpnOEfF9lAQFNlsPSDLTZg1j32RBfzvscGwDO?= =?iso-8859-1?Q?ot560AOn+TUV++HCwUKX2G8bwaUKT2F10hFXGIqMnXRZsW+ntc2td0SDLL?= =?iso-8859-1?Q?nVYMtSe33rNpNG4yAmNOXptdtWBLKeo1ter1a3g1U5qCSMFC56HCay837O?= =?iso-8859-1?Q?iy9odHD2PXhG1sJKkp7W544wjOp3phdQH7fuFiOCrv1FAomhAf7mEtOHag?= =?iso-8859-1?Q?2Fr06fUOWHCUmX7qtUp87u0h9oZ3PvZ0AgjQUMC59w8TYXgRivH4leR8nH?= =?iso-8859-1?Q?qQZGvYHdxmATUQf0nyn/HFMX+hWuVaLJDcB25AMSCivL8AvWfGQ+bU0/VW?= =?iso-8859-1?Q?2epNTzlvXAxPD2aJY95AjrZyESZVmkSDm1g6thtrwJ2wzu6aOipHUTelf2?= =?iso-8859-1?Q?IoQL8oJ2A11UdofWTgjFd4hKX9/H8SpxyiKWLvFx2SVX+SxPS9QeG+ym+F?= =?iso-8859-1?Q?9WdOb+c0KeCe4d4gyQBeU48X8rqVfdz87F4hczJR0ldqnXc9Ciesc1rT30?= =?iso-8859-1?Q?PBX6kGn8db/1z8l7toQxGZJ8Vk8lw1omrkmaf5RdY6OCa6Gdbm+sC6d32x?= =?iso-8859-1?Q?jXaw1EeKB2oVXzwSmTMFa/QFT0ejW92gqELIeIR0/9v1q4DuAC37tdRju6?= =?iso-8859-1?Q?ibl++wEAhdholvJElnCKE1PMnwivaeo+lE?= 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: 1e099c81-516e-4da3-fdb8-08db578447de X-MS-Exchange-CrossTenant-originalarrivaltime: 18 May 2023 09:43:05.5629 (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: irK6Ind8sMMbqxjY19T3TIiauJkrMJEQMzgI9IN5sj8PFBVB26dyf1kf4hjP/VvGD/bC77VSaqWTpK5x+NBLCw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR18MB4776 X-Proofpoint-GUID: 1TuYS21PcZN9UXSZHLeUXx91Xyg0Idv1 X-Proofpoint-ORIG-GUID: 1TuYS21PcZN9UXSZHLeUXx91Xyg0Idv1 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_07,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 > Subject: [PATCH v2 16/22] pdcp: add timer expiry handle >=20 > From: Volodymyr Fialko >=20 > The PDCP protocol requires usage of timers to keep track of how long > an out-of-order packet should be buffered while waiting for missing > packets. Applications can register a desired timer implementation with th= e > PDCP library. Once the timer expires, the application will be notified, a= nd > further handling of the event will be performed in the PDCP library. >=20 > When the timer expires, the PDCP library will return the cached packets, > and PDCP internal state variables (like RX_REORD, RX_DELIV etc) will be > updated accordingly. >=20 > Signed-off-by: Anoob Joseph > Signed-off-by: Volodymyr Fialko > --- > doc/guides/prog_guide/pdcp_lib.rst | 29 ++++++++++++++++++ > lib/pdcp/pdcp_process.c | 49 ++++++++++++++++++++++++++++++ > lib/pdcp/rte_pdcp.h | 31 +++++++++++++++++++ > lib/pdcp/version.map | 2 ++ > 4 files changed, 111 insertions(+) >=20 > diff --git a/doc/guides/prog_guide/pdcp_lib.rst > b/doc/guides/prog_guide/pdcp_lib.rst > index f23360dfc3..32370633e5 100644 > --- a/doc/guides/prog_guide/pdcp_lib.rst > +++ b/doc/guides/prog_guide/pdcp_lib.rst > @@ -229,6 +229,35 @@ parameters for entity creation. > } > } >=20 > +Timers > +------ > + > +PDCP utilizes a reception window mechanism to limit the bits of COUNT va= lue > +transmitted in the packet. It utilizes state variables such as RX_REORD, > +RX_DELIV to define the window and uses RX_DELIV as the lower pivot point= of > the > +window. > + > +RX_DELIV would be updated only when packets are received in-order. Any > missing > +packet would mean RX_DELIV won't be updated. A timer, t-Reordering, help= s > PDCP > +to slide the window if the missing packet is not received in a specified= time > +duration. > + > +While starting and stopping the timer need to be done by lib PDCP, appli= cation > +could register its own timer implementation. This is to make sure applic= ation > +can choose between timers such as rte_timer and rte_event based timers. > Starting > +and stopping of timer would happen during pre & post process API. > + > +When the t-Reordering timer expires, application would receive the expir= y > event. > +To perform the PDCP handling of the expiry event, > +``rte_pdcp_t_reordering_expiry_handle`` can be used. Expiry handling wou= ld > +involve sliding the window by updating state variables and passing the e= xpired > +packets to the application. > + > +.. literalinclude:: ../../../lib/pdcp/rte_pdcp.h > + :language: c > + :start-after: Structure rte_pdcp_t_reordering 8< > + :end-before: >8 End of structure rte_pdcp_t_reordering. > + >=20 > Supported features > ------------------ > diff --git a/lib/pdcp/pdcp_process.c b/lib/pdcp/pdcp_process.c > index 9ba07d5255..91b87a2a81 100644 > --- a/lib/pdcp/pdcp_process.c > +++ b/lib/pdcp/pdcp_process.c > @@ -1285,3 +1285,52 @@ pdcp_process_func_set(struct rte_pdcp_entity > *entity, const struct rte_pdcp_enti >=20 > return 0; > } > + > +uint16_t > +rte_pdcp_t_reordering_expiry_handle(const struct rte_pdcp_entity *entity= , > struct rte_mbuf *out_mb[]) Move this public API implementation to rte_pdcp.c > +{ > + struct entity_priv_dl_part *dl =3D entity_dl_part_get(entity); > + struct entity_priv *en_priv =3D entity_priv_get(entity); > + uint16_t capacity =3D entity->max_pkt_cache; > + uint16_t nb_out, nb_seq; > + > + /* 5.2.2.2 Actions when a t-Reordering expires */ > + > + /* > + * - deliver to upper layers in ascending order of the associated COUNT > value after > + * performing header decompression, if not decompressed before: > + */ > + > + /* - all stored PDCP SDU(s) with associated COUNT value(s) < > RX_REORD; */ > + nb_out =3D pdcp_reorder_up_to_get(&dl->reorder, out_mb, capacity, > en_priv->state.rx_reord); > + capacity -=3D nb_out; > + out_mb =3D &out_mb[nb_out]; > + > + /* > + * - all stored PDCP SDU(s) with consecutively associated COUNT > value(s) starting from > + * RX_REORD; > + */ > + nb_seq =3D pdcp_reorder_get_sequential(&dl->reorder, out_mb, > capacity); > + nb_out +=3D nb_seq; > + > + /* > + * - update RX_DELIV to the COUNT value of the first PDCP SDU which > has not been delivered > + * to upper layers, with COUNT value >=3D RX_REORD; > + */ > + en_priv->state.rx_deliv =3D en_priv->state.rx_reord + nb_seq; > + > + /* > + * - if RX_DELIV < RX_NEXT: > + * - update RX_REORD to RX_NEXT; > + * - start t-Reordering. > + */ > + if (en_priv->state.rx_deliv < en_priv->state.rx_next) { > + en_priv->state.rx_reord =3D en_priv->state.rx_next; > + dl->t_reorder.state =3D TIMER_RUNNING; > + dl->t_reorder.handle.start(dl->t_reorder.handle.timer, dl- > >t_reorder.handle.args); > + } else { > + dl->t_reorder.state =3D TIMER_EXPIRED; > + } > + > + return nb_out; > +} > diff --git a/lib/pdcp/rte_pdcp.h b/lib/pdcp/rte_pdcp.h > index 55e57c3b9b..c077acce63 100644 > --- a/lib/pdcp/rte_pdcp.h > +++ b/lib/pdcp/rte_pdcp.h > @@ -100,6 +100,7 @@ typedef void (*rte_pdcp_t_reordering_stop_cb_t)(void > *timer, void *args); > * > * Configuration provided by user, that PDCP library will invoke accordi= ng to > timer behaviour. > */ > +/* Structure rte_pdcp_t_reordering 8< */ > struct rte_pdcp_t_reordering { > /** Timer pointer, stored for later use in callback functions */ > void *timer; > @@ -110,6 +111,7 @@ struct rte_pdcp_t_reordering { > /** Timer start callback handle */ > rte_pdcp_t_reordering_stop_cb_t stop; > }; > +/* >8 End of structure rte_pdcp_t_reordering. */ >=20 > /** > * PDCP entity configuration to be used for establishing an entity. > @@ -327,6 +329,35 @@ rte_pdcp_pkt_post_process(const struct > rte_pdcp_entity *entity, > return entity->post_process(entity, in_mb, out_mb, num, nb_err); > } >=20 > +/** > + * @warning > + * @b EXPERIMENTAL: this API may change without prior notice > + * > + * 5.2.2.2 Actions when a t-Reordering expires > + * > + * When t-Reordering timer expires, PDCP is required to slide the recept= ion > + * window by updating state variables such as RX_REORD & RX_DELIV. PDCP > would > + * need to deliver some of the buffered packets based on the state varia= bles > and > + * conditions described. > + * > + * The expiry handle need to be invoked by the application when t-Reorde= ring > + * timer expires. In addition to returning buffered packets, it may also= restart > + * timer based on the state variables. > + * > + * @param entity > + * Pointer to the *rte_pdcp_entity* for which the timer expired. > + * @param[out] out_mb > + * The address of an array that can hold up to > *rte_pdcp_entity.max_pkt_cache* > + * pointers to *rte_mbuf* structures. Used to return buffered packets = that are > + * expired. > + * @return > + * Number of packets returned in *out_mb* buffer. > + */ > +__rte_experimental > +uint16_t > +rte_pdcp_t_reordering_expiry_handle(const struct rte_pdcp_entity *entity= , > + struct rte_mbuf *out_mb[]); > + > #include >=20 > #ifdef __cplusplus > diff --git a/lib/pdcp/version.map b/lib/pdcp/version.map > index d0cf338e1f..89b0463be6 100644 > --- a/lib/pdcp/version.map > +++ b/lib/pdcp/version.map > @@ -11,5 +11,7 @@ EXPERIMENTAL { > rte_pdcp_pkt_post_process; > rte_pdcp_pkt_pre_process; >=20 > + rte_pdcp_t_reordering_expiry_handle; > + > local: *; > }; > -- > 2.25.1