From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6402EC77B73 for ; Mon, 22 May 2023 11:35:00 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4C53840EE7; Mon, 22 May 2023 13:34:59 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 150AD40EE5 for ; Mon, 22 May 2023 13:34:57 +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 34M6f1Lp001108; Mon, 22 May 2023 04:34:57 -0700 Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2169.outbound.protection.outlook.com [104.47.55.169]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3qpwqjw54g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 May 2023 04:34:56 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b+8AzxGTrJh1hNHdBjSDtYoqM0SvrS5Mf/JBAQYbK/MprR/sizJeEgVpun2tnaJLzI0LL9PvY0++M7V6CLeFeG28rbc/84eqxHxYny6kHn8biTaW+0mxoCkUSbLL6L05C/68cK602F8nlxkqybG8MI1jkTJmGF04A7r/OkHW4SCWoUMq0ciiInwVj2BwVSj1541pDNhTE4g2JT76CZSLbAul8u/eOLy5Z4lmEj9Wr3kEy6AndeRSHxa/b2O+WKn2q6IRW83pn6rKISU0QFNUhMrcKSV9BWFw3GEnnLUEKtUZDOlrcZkgLEuD2YdKVmmluuLZYZ1G87ozqIbV9SrZoA== 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=BLhH8gbJUqFgSILevpm0gHXNxdpEkGsut2nf2pHjkmo=; b=HfzDJ2kpTbmxb3jgnawbzVU2y5qq4roqz+AA60J9oOp4LZkTk2TAql9SKSSdPnG+nROpmwbrMVMgOFs6g7VXilWi1kzycSEvceR9BfxZLUV21cR95KNIapMBqBAENxIMXuRL7pHxWIk8t8KAYk94caJghQgCRu08/FWZei8aWZVCdpcY7sByjzGICrNyxiGHx/vc5bGTEQLlFzqSIHMIbyF21x9aLIOqvocVPZbv4dOvpfRxaHBvDF725UmznEZmdcUYd3YGglZPzfR7OgM8o/UnHXe5uqur1b6k+muA0uXAZS9646dbAoRKG6QsSQmJBtkXeAXhuF7cOyKXJhrd8A== 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=BLhH8gbJUqFgSILevpm0gHXNxdpEkGsut2nf2pHjkmo=; b=TXVDGFP3YTesPfAhFP0zLVY1OXkgk2KsXw/TbhMgp4dR4aw7knsXXfUTaG2Ru9i2BF8iI79MGZXBtjj4gPPDjWpAY5LqV17D17GhPUAYpKIavc5Tota9JnS5qH8emFGdw1TY3X7cNwCIA2AQzFfh0j/CTAhEtxCdVNNB40uBQBc= Received: from PH0PR18MB4672.namprd18.prod.outlook.com (2603:10b6:510:c9::16) by SJ0PR18MB3978.namprd18.prod.outlook.com (2603:10b6:a03:2e0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.28; Mon, 22 May 2023 11:34:53 +0000 Received: from PH0PR18MB4672.namprd18.prod.outlook.com ([fe80::9225:bda3:4faa:a84b]) by PH0PR18MB4672.namprd18.prod.outlook.com ([fe80::9225:bda3:4faa:a84b%4]) with mapi id 15.20.6411.028; Mon, 22 May 2023 11:34:53 +0000 From: Anoob Joseph To: Akhil Goyal , 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: AQHZiW0mZhmIfd86dUKTwBbMIi0oiK9mL9dA Date: Mon, 22 May 2023 11:34:53 +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: Accept-Language: en-IN, 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+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNcYW5vb2JqXG?= =?iso-8859-1?Q?FwcGRhdGFccm9hbWluZ1wwOWQ4NDliNi0zMmQzLTRhNDAtODVlZS02Yjg0?= =?iso-8859-1?Q?YmEyOWUzNWJcbXNnc1xtc2ctYTkyZTlhY2YtZjg5NC0xMWVkLTljNTItNG?= =?iso-8859-1?Q?MwMzRmNWY5YjRmXGFtZS10ZXN0XGE5MmU5YWQxLWY4OTQtMTFlZC05YzUy?= =?iso-8859-1?Q?LTRjMDM0ZjVmOWI0ZmJvZHkudHh0IiBzej0iODk2MyIgdD0iMTMzMjkyMj?= =?iso-8859-1?Q?g4OTA1ODIzMTM2IiBoPSJ4Vld2eDUvcUlLekEwS1hFZlpkZDNyMFcwMms9?= =?iso-8859-1?Q?IiBpZD0iIiBibD0iMCIgYm89IjEiIGNpPSJjQUFBQUVSSFUxUlNSVUZOQ2?= =?iso-8859-1?Q?dVQUFId1FBQUNndzRkcm9ZelpBVkZMS2dTaG11Qm1VVXNxQktHYTRHWWFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSEFBQUFBTUVBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBRUFBUUVCQUFBQThBTU44d0NBQVFBQUFBQUFBQUFB?= =?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?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUR3QUFBQUFBQUFBQUFBQUFBUUFB?= =?iso-8859-1?Q?QUFBQUFBQUNBQUFBQUFDZUFBQUFiUUJoQUhJQWRnQmxBR3dBWHdCd0FISU?= =?iso-8859-1?Q?Fid0JxQUdVQVl3QjBBRjhBYmdCaEFHMEFaUUJ6QUY4QVl3QnZBRzRBWmdC?= =?iso-8859-1?Q?cEFHUUFaUUJ1QUhRQWFRQmhBR3dBWHdCaEFHd0Fid0J1QUdVQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQU?= =?iso-8859-1?Q?FJQUFBQUFBSjRBQUFCdEFHRUFjZ0IyQUdVQWJBQmZBSEFBY2dCdkFHb0Fa?= =?iso-8859-1?Q?UUJqQUhRQVh3QnVBR0VBYlFCbEFITUFYd0J5QUdVQWN3QjBBSElBYVFCak?= =?iso-8859-1?Q?FIUUFaUUJrQUY4QVlRQnNBRzhBYmdCbEFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFB?= =?iso-8859-1?Q?QW5nQUFBRzBBWVFCeUFIWUFaUUJzQUY4QWNBQnlBRzhBYWdCbEFHTUFkQU?= =?iso-8859-1?Q?JmQUc0QVlRQnRBR1VBY3dCZkFISUFaUUJ6QUhRQWNnQnBBR01BZEFCbEFH?= =?iso-8859-1?Q?UUFYd0JvQUdVQWVBQmpBRzhBWkFCbEFITUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQ0FBQUFBQUNlQUFBQW?= =?iso-8859-1?Q?JRQmhBSElBZGdCbEFHd0FiQUJmQUdFQWNnQnRBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-refthree: =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQU?= =?iso-8859-1?Q?FBQUlBQUFBQUFKNEFBQUJ0QUdFQWNnQjJBR1VBYkFCc0FGOEFad0J2QUc4?= =?iso-8859-1?Q?QVp3QnNBR1VBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFB?= =?iso-8859-1?Q?QUFBbmdBQUFHMEFZUUJ5QUhZQVpRQnNBR3dBWHdCd0FISUFid0JxQUdVQV?= =?iso-8859-1?Q?l3QjBBRjhBWXdCdkFHUUFaUUJ6QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFDQUFBQUFBQ2VBQU?= =?iso-8859-1?Q?FBYlFCaEFISUFkZ0JsQUd3QWJBQmZBSEFBY2dCdkFHb0FaUUJqQUhRQVh3?= =?iso-8859-1?Q?QmpBRzhBWkFCbEFITUFYd0JrQUdrQVl3QjBBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQnRBR0VB?= =?iso-8859-1?Q?Y2dCMkFHVUFiQUJzQUY4QWNBQnlBRzhBYWdCbEFHTUFkQUJmQUc0QVlRQn?= =?iso-8859-1?Q?RBR1VBY3dCZkFHTUFid0J1QUdZQWFRQmtBR1VBYmdCMEFHa0FZUUJzQUY4?= =?iso-8859-1?Q?QWJRQmhBSElBZGdCbEFHd0FiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUcwQVlRQnlBSFlBWl?= =?iso-8859-1?Q?FCc0FHd0FYd0J3QUhJQWJ3QnFBR1VBWXdCMEFGOEFiZ0JoQUcwQVpRQnpB?= =?iso-8859-1?Q?RjhBWXdCdkFHNEFaZ0JwQUdRQVpRQnVBSFFBYVFCaEFHd0FYd0J0QUdFQW?= =?iso-8859-1?Q?NnQjJBR1VBYkFCc0FGOEFZUUJ1QUdRQVh3QnRBR2tBY0FBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-reffour: =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFDZU?= =?iso-8859-1?Q?FBQUFiUUJoQUhJQWRnQmxBR3dBYkFCZkFIQUFjZ0J2QUdvQVpRQmpBSFFB?= =?iso-8859-1?Q?WHdCdUFHRUFiUUJsQUhNQVh3QmpBRzhBYmdCbUFHa0FaQUJsQUc0QWRBQn?= =?iso-8859-1?Q?BBR0VBYkFCZkFHMEFZUUJ5QUhZQVpRQnNBR3dBWHdCdkFISUFYd0JoQUhJ?= =?iso-8859-1?Q?QWJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJQUFBQUFBSjRBQUFCdEFH?= =?iso-8859-1?Q?RUFjZ0IyQUdVQWJBQnNBRjhBY0FCeUFHOEFhZ0JsQUdNQWRBQmZBRzRBWV?= =?iso-8859-1?Q?FCdEFHVUFjd0JmQUdNQWJ3QnVBR1lBYVFCa0FHVUFiZ0IwQUdrQVlRQnNB?= =?iso-8859-1?Q?RjhBYlFCaEFISUFkZ0JsQUd3QWJBQmZBRzhBY2dCZkFHY0Fid0J2QUdjQW?= =?iso-8859-1?Q?JBQmxBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFBRzBBWVFCeUFIWU?= =?iso-8859-1?Q?FaUUJzQUd3QVh3QndBSElBYndCcUFHVUFZd0IwQUY4QWJnQmhBRzBBWlFC?= =?iso-8859-1?Q?ekFGOEFjZ0JsQUhNQWRBQnlBR2tBWXdCMEFHVUFaQUJmQUcwQVlRQnlBSF?= =?iso-8859-1?Q?lBWlFCc0FHd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFRQUFBQUFBQUFBQ0FBQUFBQUNlQUFBQWJRQmhBSElBZGdCbEFHd0Fi?= =?iso-8859-1?Q?QUJmQUhBQWNnQnZBR29BWlFCakFIUUFYd0J1QUdFQWJRQmxBSE1BWHdCeU?= =?iso-8859-1?Q?FHVUFjd0IwQUhJQWFRQmpBSFFBWlFCa0FGOEFiUUJoQUhJQWRnQmxBR3dB?= =?iso-8859-1?Q?YkFCZkFHOEFjZ0JmQUdFQWNnQnRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFB?= =?iso-8859-1?Q?QUFBQUFBQUlBQUFBQUFKNEFBQUJ0QUdFQWNnQjJBR1VBYkFCc0FGOEFkQU?= =?iso-8859-1?Q?JsQUhJQWJRQnBBRzRBZFFCekFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQU?= =?iso-8859-1?Q?FnQUFBQUFBbmdBQUFHMEFZUUJ5QUhZQVpRQnNBR3dBWHdCM0FHOEFjZ0Jr?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-reffive: QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFDQUFBQUFBQT0iLz48L21ldGE+ x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR18MB4672:EE_|SJ0PR18MB3978:EE_ x-ms-office365-filtering-correlation-id: ae22f229-fd30-466a-b2ed-08db5ab88fab x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: M2Jcpw4hmP7pQLDkA63iDshm39+U9jHjd/RZ09qdFxQQH0T94WJ9h4tn4WireNjg1ssZakv/Fk1lkEraXg27KVdCKTVD7cAX5lZ4A7SjhBWfiH66utyQj4JXYoRWd20NLew3NKC7L1fd36KCC+mVLkRJnHboMGYUwx9sovys6cGuQLOLxAAeYz/0Zioncw0Zx+gqYp86Ba2Wk8DvEXHKmJ9YOequh5KCtxG159UkRs5EEST3t9XgzNEXY9sMT/u840BVxFfyH+y/t4Kml3SFK8RdeBdbs7i+Pp2X1G1NaguhBjCfU+1c/Gq3XZtlCVklh1sBsp2rcrGTEv3LhTtAm6JaREmsNLzhcbYitf5av2J5WDQOejhjEJrskyFwrzSQ1gBh0mjudyyyev5l98mUALc/sQW4YLuzRzy845YrurbRO7p00+GPHjGWTJdXNUhJvKxGygtkazG6fdqtzVd1gVDfspOk9s/PWNahyoXgpneAZ++y4OlI/adoDwlRORJigYgZm4Xbrt6dxs7nI7vqDnG//KUzhQgTqMBwThpoVb9NN4U0OKKe21BE2/NsiTTtMZMtl4kLjoeQKdyQH+rZye8VyPNTLy1Pi59FPXXCnpAri5I4r1yaQJfOZoIvLN45 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR18MB4672.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(136003)(366004)(376002)(396003)(346002)(39860400002)(451199021)(316002)(110136005)(54906003)(4326008)(66476007)(66556008)(64756008)(66446008)(71200400001)(122000001)(66946007)(76116006)(41300700001)(7696005)(38070700005)(38100700002)(478600001)(86362001)(8936002)(8676002)(5660300002)(52536014)(186003)(55016003)(6506007)(26005)(9686003)(33656002)(83380400001)(53546011)(2906002)(66574015); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?0Cl1AiDEyINAgYAwbLbGvh1BCa5zj515sPlBC47z+LVHareBUgPipgxQ2c?= =?iso-8859-1?Q?6SozvdyGBOXTiipfSLYoDIG/YRBbNbLSt2ByL6lbT1f08KaH7VKcYHL7JR?= =?iso-8859-1?Q?QASYN11ASY2/RKt02E3UZy1TeA91NB1FGQnYRx2HU4ffIM8gg9k918dgxQ?= =?iso-8859-1?Q?9TLX6K5KmnAzLP9p3Rzu3S0+llpDWgsz6dBS8feqFP2o6kPZipD2hiA8y8?= =?iso-8859-1?Q?TQ/7hLhOpYwm5ulD6s1pN7AqU9tFsfKZk1g9rDYcEnZXurC17MOBpyNARz?= =?iso-8859-1?Q?8dZrjXGgNOpnQVqHXLgIgro/X8c/Ody1D6kvFVBOezTb7UDVFS/83dYWdb?= =?iso-8859-1?Q?CIhGc/hbpz/PMTJ/Sqn/NRBv5Qu/34Pfj5ZS9yYEM6lOZ/xkTLZ36L+C5V?= =?iso-8859-1?Q?MprrPZt5zHoae8UFUVtVmXpSTj/eVcpux+FOnyavqni8wfoCyyyIpw9Hk7?= =?iso-8859-1?Q?Xwk1yTvJBJbaHaH/Ntji1V/s59JnmLVq5IroTnTB9fjUwPbRNUXOwYwKk8?= =?iso-8859-1?Q?sfsejKFNa2N6W69h8H13A6aeacahrEp53VqbNQ0p3VN/V10hJl/vySMKhX?= =?iso-8859-1?Q?2cIkw15DV9lXT/Wfebm9HgXhOrY7gRBc+bfDI/JhKOVB2caNi1Vhp6h9g0?= =?iso-8859-1?Q?bORWTEuZG7oE8CDDK8JHgZc1+lG8/aozolf0dPRjz3ILQreZQr6mgDN0W4?= =?iso-8859-1?Q?MIXI9sBsjNsGZ6PrWE+M/il2BDoiU4DDU8I3nzRn/C0k9gfEWbaXt9r0b1?= =?iso-8859-1?Q?uDw7WbTjNC9lwJVDFp1NRSVOX9MTHoU40qpa8VNwbkAJ/v8p2b96/+TZK1?= =?iso-8859-1?Q?9zusEk9y4kN7+gU3NmrNghW6IhAqAJCwAdC0q3EP0bueGjuBhMhA663wiS?= =?iso-8859-1?Q?D+trel0avsNtV6c4DhgpE1x1jImfTtuYQnjtA5Zizv6+qUrxhSTeEPE1zx?= =?iso-8859-1?Q?axLCYBqt/54hZGl59lK1UfYLNA1FKsH9f0vr+FMwJows3O5gQBVlw5dyoR?= =?iso-8859-1?Q?LJj0neARoucghXzJ74BZJO83CLZbMD6dNsrH/vMh9kgswR19qTLxsCHhzb?= =?iso-8859-1?Q?Xi5vf9SHUQDhN4cCJW6uU7qb+RvvRyRbD6bqvGWRJZuWWYm7E66QmD6EFz?= =?iso-8859-1?Q?0kl2pyknRGzrK/lhk4PrOzogzST8KX1Z5o5zYYIxdJyeKvX+cvtw3RvNRj?= =?iso-8859-1?Q?dLhc9n6/AvnR/ApJlIv4cXGyxQ8U5VHd/Cgttgd2XNbS14CYxU0XrchcmK?= =?iso-8859-1?Q?SybKSpSxesBjM7nCgA1CQX4suHDT3bcOo956zMun27Lvc9Deu9TSPgYvC+?= =?iso-8859-1?Q?XXi4OivCvTQ2QW6TWYp+rihhWC2OepxpAHPPmmQHT6jQNtszDg6NHJFf/7?= =?iso-8859-1?Q?DDgMpQk1vWv1+idBomiDOP8LD0p544dQt+fhLgcfHKzRFpdioQmz+UpgiV?= =?iso-8859-1?Q?6+7HHWkJf32COciAs3A+9rrqoqSqOzS6lb21X4kiI3dq/mu4r7WjcZj8IL?= =?iso-8859-1?Q?FVsQLJveJFL7D8nFQzjRA0c9gsk7+AfbBAH/gcW42omcg6+aKW9Y36UuOd?= =?iso-8859-1?Q?ga+4/akosT5XN8ovM7XZuSB9y/vMCY01BpxyrrNFMkL1TCRHiHTzJ1E94i?= =?iso-8859-1?Q?JzaH955mOMXQk=3D?= 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: PH0PR18MB4672.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ae22f229-fd30-466a-b2ed-08db5ab88fab X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2023 11:34:53.3368 (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: mv8zOKx/DDMDUfCySwMQ4SXuKZKhQKkP+jMHAM2JBWj+RuBpc1vMyb6w4kh+1GYXpf/U2WqUGP4rhHI5ZAwbaQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR18MB3978 X-Proofpoint-ORIG-GUID: poWYUeS2rq2zEp5NP4KjBT312syebkkr X-Proofpoint-GUID: poWYUeS2rq2zEp5NP4KjBT312syebkkr 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-22_07,2023-05-22_03,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 Hi Akhil, Please see inline. Thanks, Anoob > -----Original Message----- > From: Akhil Goyal > Sent: Thursday, May 18, 2023 3:13 PM > To: Anoob Joseph ; Thomas Monjalon > ; Jerin Jacob Kollanukkaran ; > Konstantin Ananyev ; Bernard > Iremonger > Cc: Volodymyr Fialko ; Hemant Agrawal > ; Mattias R=F6nnblom > ; Kiran Kumar Kokkilagadda > ; dev@dpdk.org; Olivier Matz > > Subject: RE: [PATCH v2 16/22] pdcp: add timer expiry handle >=20 > > Subject: [PATCH v2 16/22] pdcp: add timer expiry handle > > > > From: Volodymyr Fialko > > > > 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 > > the PDCP library. Once the timer expires, the application will be > > notified, and further handling of the event will be performed in the PD= CP > library. > > > > 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. > > > > 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(+) > > > > 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. > > } > > } > > > > +Timers > > +------ > > + > > +PDCP utilizes a reception window mechanism to limit the bits of COUNT > > +value 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, > > +helps > > 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, > > +application could register its own timer implementation. This is to > > +make sure application 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 > > +expiry > > event. > > +To perform the PDCP handling of the expiry event, > > +``rte_pdcp_t_reordering_expiry_handle`` can be used. Expiry handling > > +would involve sliding the window by updating state variables and > > +passing the expired 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. > > + > > > > 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 > > > > return 0; > > } > > + > > +uint16_t > > +rte_pdcp_t_reordering_expiry_handle(const struct rte_pdcp_entity > > +*entity, > > struct rte_mbuf *out_mb[]) >=20 > Move this public API implementation to rte_pdcp.c [Anoob] Agreed. Will make this change in next version. >=20 >=20 > > +{ > > + 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 > > according 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. */ > > > > /** > > * 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); } > > > > +/** > > + * @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 > > +reception > > + * 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 > > + variables > > and > > + * conditions described. > > + * > > + * The expiry handle need to be invoked by the application when > > + t-Reordering > > + * 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 packet= s > 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 > > > > #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; > > > > + rte_pdcp_t_reordering_expiry_handle; > > + > > local: *; > > }; > > -- > > 2.25.1