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 3A60F43319 for ; Mon, 13 Nov 2023 09:27:14 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 97CE4402DA; Mon, 13 Nov 2023 09:27:13 +0100 (CET) Received: from mail-edgeDD24.fraunhofer.de (mail-edgedd24.fraunhofer.de [192.102.167.24]) by mails.dpdk.org (Postfix) with ESMTP id 7CB0E402B2 for ; Mon, 13 Nov 2023 09:27:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=iis.fraunhofer.de; i=@iis.fraunhofer.de; q=dns/txt; s=emailbd1; t=1699864032; x=1731400032; h=from:to:cc:subject:date:message-id:mime-version; bh=DdyIV0fT12ARl9A7dn/VC1JmdAO2x5BTPHOCi7s+AYs=; b=Q3EXTX/P9xoYRKOOK9ucN35owMgMLwMMioXlqVOmSEy+3TfGdhTTZOXo WastqrRZbWL9FtkNlc8stmixeGp+HpwihB+ZspXtGE46PYDip5JvZy66S i4A9qawrOxENHeLYjdpxcFEldNJhSOlxZxD6vsfnD1Qj5xX8G6o8uBbxT jXmSYViM59d3QJ+akbUxWCApEcpbyWTevky7v0cBt4q6jyMW8mp4SxGzI oKlqo5X7phLBotW+nke8IGLSi+xlLSQGOLF1zhPcDsnqx/pWbqtji6SBo AynBIYgMP2Zx2QkNyZKy1JQLy/uI2Q1eEjHYmwBiW/HIB5u7CllO/kZUE g==; X-CSE-ConnectionGUID: BN8/fJP8SlyUZeOG/BpW1A== X-CSE-MsgGUID: Q/7L+odqQtOD6JE/IrzJYg== Authentication-Results: mail-edgeDD24.fraunhofer.de; dkim=none (message not signed) header.i=none X-IPAS-Result: =?us-ascii?q?A2GYAAAE3VFl/xmnZsBaHAEBAQEBAQcBARIBAQQEAQFAg?= =?us-ascii?q?TwGAQELAYE1gQN4AoFdGwGWFoEWkHKLeYF+CAcBAQEBAQEBAQEIAUQEAQGCE?= =?us-ascii?q?oJ0hyonNQgOAQIEAQEBAQMCAwEBAQEBAQECAQEGAQEBAQEBBgYCgRmFLzoMh?= =?us-ascii?q?k0rBkwSAVAwJgEECgQFCAaCc4JerFWBATOBAYR2sAoQgUgBhFmDKAsBgU6EB?= =?us-ascii?q?YZDQ4EVNYI9B4t1BIFQgSyGIwMEMgmBOl+DUoI5A1MzaIJhhj0vUEdwHQMHA?= =?us-ascii?q?38PKwcEMCIGCRQtIwZRBCgkCRMSPgSDMgp/Pw8OEYI/IgIHNjYZSIJeFUE5E?= =?us-ascii?q?XYQKgQUF4ESbhsVHjcREhcNAwh0HQIRIzwDBQMEMwoSDQshBVYDRQYOOwsDA?= =?us-ascii?q?hoFAwMEWV0FDR4CEC0nAwMTTQIQFAM7AwMGAwsxAzBVRAxQA2sfFiAJPA8MH?= =?us-ascii?q?wIbHg0nKAIyQwMRBRICFgMkGQRDA0QdNgoDCwdmPTUUGwgBgT2dWYMtRC5HB?= =?us-ascii?q?183HAiBHhmTAo54R4E0D4ILnxYDBAOCLoFfhk6DKZcaLheXMJJTmD8gqAgCB?= =?us-ascii?q?AIEBQIWgWUBghNxgzZSFwIPjikDFpNPdgI5AgcLAQEDCYZIgwQBgRUBAQ?= IronPort-PHdr: A9a23:vfHNQRRBEbf6Uo85DZ74K/M4d9pso47LVj580XJGo7dHc6Dm8pjtM WDzv6krgkXAQIPb7PxJkazavvOoVW8B5MOHt3YPONxJWgQegMob1wonHIaeCEL9IfKrJyw3F chPThlkqne8N0U9JQ== X-Talos-CUID: =?us-ascii?q?9a23=3AHjPZbWsDvZOpeJhY6OyWLUfh6IsPVC2awlXoc3S?= =?us-ascii?q?8GFtbRZq6DnWIx/pNxp8=3D?= X-Talos-MUID: 9a23:s9qRYQhM3GYk2VzxYrYkEsMpDYA3x+epBFk0jbIq5eupcg1qKRWsg2Hi X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.03,299,1694728800"; d="txt'?scan'208,217";a="72551130" Received: from mail-mtadd25.fraunhofer.de ([192.102.167.25]) by mail-edgeDD24.fraunhofer.de with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Nov 2023 09:27:11 +0100 IronPort-SDR: 6551dddd_R/zvql35NVp6S4s5mBhbcnNcaDuiXFK9AnOzn60iHE95HT2 pU6xNYr733LY66/4yMT0V6p4RW1K8c5q3I9rLSw== X-IPAS-Result: =?us-ascii?q?A0AdAgAE3VFl/wSsYJlaHAEBAQEBAQcBARIBAQQEAQFAg?= =?us-ascii?q?TwGAQELAYE1MVlxAlk8SBsBlhWBFpByi3mBfg8BAwEBAQEBCAFCAgQBAYISg?= =?us-ascii?q?nSHKAImNQgOAQIEAQEBAQMCAwEBAQEBAQMBAQEEAQEBAgEBBgIBAYEKE4VpD?= =?us-ascii?q?IZzBkwSAVAwJgEECgQFCAaCc4JeAgKsUYEBM4EBhHawChCBSAGEWYMoCwGBT?= =?us-ascii?q?oQFhF6BZUOBFTWCPQeLdQSBUIEshiMDBDIJgTpfg1KCOQNTM2iCYYY9L1BHc?= =?us-ascii?q?B0DBwN/DysHBDAiBgkULSMGUQQoJAkTEj4EgzIKfz8PDhGCPyICBzY2GUiCX?= =?us-ascii?q?hVBORF2ECoEFBeBEm4bFR43ERIXDQMIdB0CESM8AwUDBDMKEg0LIQVWA0UGD?= =?us-ascii?q?jsLAwIaBQMDBFldBQ0eAhAtJwMDE00CEBQDOwMDBgMLMQMwVUQMUANrHzYJP?= =?us-ascii?q?A8MHwIbHg0nKAIyQwMRBRICFgMkGQRDA0QdNgoDCwdmPTUUGwgBgT2dWYMtR?= =?us-ascii?q?C5HB183HAiBHhmTAo54R4E0D4ILnxYDBAOCLoFfhk6DKZcaLheXMJJTmD8gq?= =?us-ascii?q?AgCBAIEBQIWgWUBOYFZcYM2TwMXAg+OKQMWk092AjkCBwsBAQMJhWlfgwMBg?= =?us-ascii?q?RUBAQ?= IronPort-Data: A9a23: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 IronPort-HdrOrdr: A9a23:nTamZqBwp/MuPT3lHenD55DYdb4zR+YMi2TDtnoQdfU7SKGlfq yV88jztiWUtN9uYhsdcLm7UcHqfZq2z/BICOcqUYufYA== X-Talos-CUID: 9a23:BFzkX2BxHhv1gCb6ExdhqXUPN94bS1n+7X7Jf0GKIn1KZbLAHA== X-Talos-MUID: 9a23:TgXcXwkHNfLgLpqKfPFYdnpyKP9i45aWUHs30tI4kPu2NyVXYiW02WE= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.03,299,1694728800"; d="txt'?scan'208,217";a="190199698" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mailgw1.iis.fraunhofer.de ([153.96.172.4]) by mail-mtaDD25.fraunhofer.de with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Nov 2023 09:27:09 +0100 Received: from mail.iis.fraunhofer.de (unknown [153.96.212.212]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mailgw1.iis.fraunhofer.de (Postfix) with ESMTPS id 2CF11C004A for ; Mon, 13 Nov 2023 09:27:09 +0100 (CET) Received: from mail06.iis.fhg.de (2001:638:a0a:1111::216) by mailn2.iis.fhg.de (2001:638:a0a:2111::212) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.27; Mon, 13 Nov 2023 09:27:08 +0100 Received: from mail06.iis.fhg.de ([fe80::5762:aba:8882:7963]) by mail06.iis.fhg.de ([fe80::5762:aba:8882:7963%14]) with mapi id 15.02.1258.027; Mon, 13 Nov 2023 09:27:08 +0100 From: "Engelhardt, Maximilian" To: "users@dpdk.org" CC: "Andrich, Carsten" Subject: [mlx5] Loss of packet pacing precision under high Tx loads Thread-Topic: [mlx5] Loss of packet pacing precision under high Tx loads Thread-Index: AdoWCtGLwiHoVB6PRGOc211H1IH1cg== Date: Mon, 13 Nov 2023 08:27:08 +0000 Message-ID: <05bca22278f74685bf75a46877ae0aa9@iis.fraunhofer.de> Accept-Language: de-DE, en-US Content-Language: de-DE X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [153.96.171.210] Content-Type: multipart/mixed; boundary="_006_05bca22278f74685bf75a46877ae0aa9iisfraunhoferde_" MIME-Version: 1.0 X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org --_006_05bca22278f74685bf75a46877ae0aa9iisfraunhoferde_ Content-Type: multipart/alternative; boundary="_000_05bca22278f74685bf75a46877ae0aa9iisfraunhoferde_" --_000_05bca22278f74685bf75a46877ae0aa9iisfraunhoferde_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi I am currently working on a system in which a high-rate data stream is to b= e transmitted to an FPGA. As this only has small buffers available, I am us= ing the packet pacing function of the NIC Mellanox ConnectX-6 MCX623106AN t= o send the packets at uniform intervals. This works if I only transfer 5 GB= /s per second, but as soon as I step up to 10 GB/s, after a few seconds err= ors begin to occur: The tx_pp_wander value increases significantly (>80000n= s) and there are large gaps in the packet stream (>100=B5s, the affected pa= ckets are not lost, but arrive later). To demonstrate this, I connected my host to another computer with the same = type of NIC via a DAC cable, enabling Rx hardware timestamping on the secon= d device and observing the timing difference between adjacent packets. The = code for this minimum working example is attached to this message. It inclu= des an assertion to ensure that every packet is enqueued well before its Tx= time comes, so software timing should not influence the issue. I tested different packet pacing granularity settings (tx_pp) in the range = of 500ns-4=B5s, which did not change the outcome. Also, enabling Tx timesta= mping only for every 16th packet did not have the desired effect. Distribut= ing the workload over multiple threads and Tx queues also has no effect. Th= e NIC is connected via PCIe 4.0x16 and has firmware version 22.38.1002, DPD= K version 22.11.3-2. To be able to use packet pacing, the configuration REAL_TIME_CLOCK_ENABLE= =3D1 must be set for this NIC. Is it possible that the large gaps are cause= d by the NIC and host clock synchronizing mechanism not working correctly u= nder the high packet load? In my specific application I do not need a real-= time NIC clock - the synchronization between the devices is done via feedba= ck from the FPGA. Is there any way to eliminate these jumps in the NIC cloc= k? Thank you and best regards Max --_000_05bca22278f74685bf75a46877ae0aa9iisfraunhoferde_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Hi
I am currently working on a system in which a high-rate data stream is to b= e transmitted to an FPGA. As this only has small buffers available, I am us= ing the packet pacing function of the NIC Mellanox ConnectX-6 MCX623106AN t= o send the packets at uniform intervals. This works if I only transfer 5 GB/s per second, but as soon as I step up = to 10 GB/s, after a few seconds errors begin to occur: The tx_pp_wander val= ue increases significantly (>80000ns) and there are large gaps in the pa= cket stream (>100=B5s, the affected packets are not lost, but arrive later).

To demonstrate this, I connected my host to another computer with the s= ame type of NIC via a DAC cable, enabling Rx hardware timestamping on the s= econd device and observing the timing difference between adjacent packets. The code for this minimum working example is att= ached to this message. It includes an assertion to ensure that every packet= is enqueued well before its Tx time comes, so software timing should not i= nfluence the issue.

I tested different packet pacing granularity settings (tx_pp) in the ra= nge of 500ns-4=B5s, which did not change the outcome. Also, enabling Tx tim= estamping only for every 16th packet did not have the desired effect. Distributing the workload over multiple threads and Tx= queues also has no effect. The NIC is connected via PCIe 4.0x16 and has fi= rmware version 22.38.1002, DPDK version 22.11.3-2.

To be able to use packet pacing, the configuration REAL_TIME_CLOCK_ENAB= LE=3D1 must be set for this NIC. Is it possible that the large gaps are cau= sed by the NIC and host clock synchronizing mechanism not working correctly under the high packet load? In my specific applicati= on I do not need a real-time NIC clock - the synchronization between the de= vices is done via feedback from the FPGA. Is there any way to eliminate the= se jumps in the NIC clock?

Thank you and best regards
Max

 

--_000_05bca22278f74685bf75a46877ae0aa9iisfraunhoferde_-- --_006_05bca22278f74685bf75a46877ae0aa9iisfraunhoferde_ Content-Type: text/plain; name="main_tx.cpp.txt" Content-Description: main_tx.cpp.txt Content-Disposition: attachment; filename="main_tx.cpp.txt"; size=4338; creation-date="Wed, 08 Nov 2023 11:41:14 GMT"; modification-date="Wed, 08 Nov 2023 15:37:26 GMT" Content-Transfer-Encoding: base64 Ly8gKGMpIDIwMjMgRnJhdW5ob2ZlciBJSVMsIE1heGltaWxpYW4gRW5nZWxoYXJkdCA8bWF4aW1p bGlhbi5lbmdlbGhhcmR0QGlpcy5mcmF1bmhvZmVyLmRlPgoKI2luY2x1ZGUgPGlvc3RyZWFtPgoK I2luY2x1ZGUgImNvbW1vbi5oIgojaW5jbHVkZSAicnRlX3BhdXNlLmgiCiNpbmNsdWRlICJydGVf ZXRoZGV2LmgiCiNpbmNsdWRlICJydGVfYnl0ZW9yZGVyLmgiCiNpbmNsdWRlICJydGVfYnl0ZW9y ZGVyXzY0LmgiCiNpbmNsdWRlICJydGVfbWFsbG9jLmgiCgoKY29uc3Qgc2l6ZV90IEJVUlNUX1NJ WkUgPSAxNjsgLy8gUGFja2V0cwpjb25zdCBzaXplX3QgVEFSR0VUX1JBVEUgPSAxMHVsICogMTAw MHVsICogMTAwMHVsICogMTAwMHVsOwpjb25zdCBzaXplX3QgUEFZTE9BRF9MRU4gPSA4MDAwOwpj b25zdCBzaXplX3QgTklDX0NMT0NLX1JBVEUgPSAxMDAwdWwgKiAxMDAwdWwgKiAxMDAwdWw7CmNv bnN0IHNpemVfdCBOVU1fVFhfVEhSRUFEUyA9IDE7CgoKdWludDY0X3QgdG90YWxfYnl0ZXNfdHgg PSAwOwpzdHJ1Y3Qgd29ya2VyX2FyZyB7CiAgICB1aW50MTZfdCBxdWV1ZV9pZDsKICAgIHVpbnQ2 NF90IHN0YXJ0X3RpbWU7CiAgICBkb3VibGUgdHhfc2hpZnRfcmF0aW87Cn07CgoKaW50IHdvcmtl cih2b2lkKiBhcmdfKSB7CiAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gc3A7CiAgICBtZW1zZXQoICZz cCwgMCwgc2l6ZW9mKHNwKSApOwogICAgc3Auc2NoZWRfcHJpb3JpdHkgPSA5OTsKICAgIEFTU0VS VFAoc2NoZWRfc2V0c2NoZWR1bGVyKCAwLCBTQ0hFRF9GSUZPLCAmc3AgKSk7CgogICAgYXV0byBh cmcgPSAod29ya2VyX2FyZyopYXJnXzsKICAgIHVpbnQ2NF90IG5pY19kZWxheV9wYWNrZXQgPSBO SUNfQ0xPQ0tfUkFURSAqIFBBWUxPQURfTEVOIC8gKFRBUkdFVF9SQVRFL05VTV9UWF9USFJFQURT KTsKICAgIHVpbnQ2NF90IG5pY19kZWxheV9idXJzdCA9IG5pY19kZWxheV9wYWNrZXQgKiBCVVJT VF9TSVpFOwoKICAgIHVpbnQ2NF90IG5pY19jbG9ja190aW1lID0gMDsKCiAgICB1aW50NjRfdCBu ZXh0X2J1cnN0X25pYyA9IGFyZy0+c3RhcnRfdGltZTsKICAgIHVpbnQ2NF90IG5leHRfcGFja2V0 X3BwX3RpbWVzdGFtcCA9IG5leHRfYnVyc3RfbmljICsgMTAwMCoxMDAwOwogICAgbmV4dF9wYWNr ZXRfcHBfdGltZXN0YW1wICs9IHN0YXRpY19jYXN0PHVpbnQ2NF90PigoZG91YmxlKW5pY19kZWxh eV9wYWNrZXQqYXJnLT50eF9zaGlmdF9yYXRpbyk7CiAgICB1aW50NjRfdCBzdHJlYW1fcG9zID0g MDsKICAgIHJ0ZV9tYnVmKiBwYWNrZXRzW0JVUlNUX1NJWkVdOwoKICAgIHVpbnQxNl90IHF1ZXVl X2lkID0gYXJnLT5xdWV1ZV9pZDsKCiAgICB3aGlsZSAocnVuKSB7CgogICAgICAgIHJ0ZV9ldGhf cmVhZF9jbG9jaygwLCAmbmljX2Nsb2NrX3RpbWUpOwogICAgICAgIHdoaWxlIChuZXh0X2J1cnN0 X25pYyA+IG5pY19jbG9ja190aW1lICYmIHJ1bikgIHsKICAgICAgICAgICAgcnRlX3BhdXNlKCk7 CiAgICAgICAgICAgIHJ0ZV9ldGhfcmVhZF9jbG9jaygwLCAmbmljX2Nsb2NrX3RpbWUpOwogICAg ICAgIH0KCiAgICAgICAgYXV0byByID0gcnRlX3BrdG1idWZfYWxsb2NfYnVsayhtYnVmX3Bvb2ws IHBhY2tldHMsIEJVUlNUX1NJWkUpOwogICAgICAgIEFTU0VSVChyID09IDAsICJNQnVmIHBvb2wg ZHJhaW5lZCEiKTsKCiAgICAgICAgYXV0byBmaXJzdF90c19pbl9idXJzdCA9IG5leHRfcGFja2V0 X3BwX3RpbWVzdGFtcDsKICAgICAgICBmb3IgKGF1dG8gcGFja2V0IDogcGFja2V0cykgewogICAg ICAgICAgICBhdXRvIGRhdGEgPSBydGVfcGt0bWJ1Zl9hcHBlbmQocGFja2V0LCBQQVlMT0FEX0xF Tik7CgogICAgICAgICAgICBhdXRvIGhlYWRlciA9IChIZWFkZXIqKXJ0ZV9wa3RtYnVmX3ByZXBl bmQocGFja2V0LCBzaXplb2YoSGVhZGVyKSk7CiAgICAgICAgICAgIGhlYWRlci0+c3RyZWFtX3Bv cyA9IHN0cmVhbV9wb3M7CiAgICAgICAgICAgIGhlYWRlci0+c3RyZWFtX2lkID0gcXVldWVfaWQ7 CgogICAgICAgICAgICBhdXRvIHZsYW5faGVhZGVyID0gKHN0cnVjdCBydGVfdmxhbl9oZHIgKily dGVfcGt0bWJ1Zl9wcmVwZW5kKHBhY2tldCxzaXplb2Yoc3RydWN0IHJ0ZV92bGFuX2hkcikpOwog ICAgICAgICAgICB2bGFuX2hlYWRlci0+dmxhbl90Y2kgPSBydGVfY3B1X3RvX2JlXzE2KDExKTsK ICAgICAgICAgICAgdmxhbl9oZWFkZXItPmV0aF9wcm90byA9IHJ0ZV9jcHVfdG9fYmVfMTYoMHgw ODExKTsKCiAgICAgICAgICAgIGF1dG8gZXRoZXJfaGVhZGVyID0gKHN0cnVjdCBydGVfZXRoZXJf aGRyICopcnRlX3BrdG1idWZfcHJlcGVuZChwYWNrZXQsc2l6ZW9mKHN0cnVjdCBydGVfZXRoZXJf aGRyKSk7CiAgICAgICAgICAgIGV0aGVyX2hlYWRlci0+ZXRoZXJfdHlwZSA9IHJ0ZV9jcHVfdG9f YmVfMTYoUlRFX0VUSEVSX1RZUEVfVkxBTik7CiAgICAgICAgICAgIGV0aGVyX2hlYWRlci0+c3Jj X2FkZHIgPSB7MCwwLDAsMCwwLDB9OwogICAgICAgICAgICBldGhlcl9oZWFkZXItPmRzdF9hZGRy ID0gezB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmfTsKCiAgICAgICAgICAgIGF1dG8gdGlt ZXN0YW1wID0gUlRFX01CVUZfRFlORklFTEQocGFja2V0LCBod3RzX2R5bmZpZWxkX29mZnNldCwg aW50NjRfdCAqKTsKICAgICAgICAgICAgKnRpbWVzdGFtcCA9IChpbnQ2NF90KW5leHRfcGFja2V0 X3BwX3RpbWVzdGFtcDsKICAgICAgICAgICAgcGFja2V0LT5vbF9mbGFncyB8PSBod3RzX2R5bmZs YWdfdHhfbWFzazsKCiAgICAgICAgICAgIHN0cmVhbV9wb3MgKz0gUEFZTE9BRF9MRU47CiAgICAg ICAgICAgIG5leHRfcGFja2V0X3BwX3RpbWVzdGFtcCArPSBuaWNfZGVsYXlfcGFja2V0OwoKICAg ICAgICB9CgoKICAgICAgICBydGVfZXRoX3JlYWRfY2xvY2soMCwgJm5pY19jbG9ja190aW1lKTsK ICAgICAgICBBU1NFUlQoZmlyc3RfdHNfaW5fYnVyc3QgPiBuaWNfY2xvY2tfdGltZSArIDUwKjEw MDAsICJUWCBxdWV1ZSBzbGFjayB0YXJnZXQgbWlzc2VkISIpOwoKICAgICAgICBpbnQgcGFja2V0 c19zZW50ID0gcnRlX2V0aF90eF9idXJzdCgwLCBxdWV1ZV9pZCwgcGFja2V0cywgQlVSU1RfU0la RSk7CiAgICAgICAgQVNTRVJUKHBhY2tldHNfc2VudCA9PSBCVVJTVF9TSVpFLCAiVFggcmluZyBv dmVyZmxvdyEiKTsKICAgICAgICB0b3RhbF9ieXRlc190eCArPSBCVVJTVF9TSVpFKlBBWUxPQURf TEVOOwogICAgICAgIG5leHRfYnVyc3RfbmljICs9IG5pY19kZWxheV9idXJzdDsKCiAgICB9Cn0K CmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKCiAgICBpbml0X2RwZGsoJmFyZ2Ms ICZhcmd2KTsKCiAgICB1aW50NjRfdCBzdGFydF90aW1lID0gMDsKICAgIHJ0ZV9ldGhfcmVhZF9j bG9jaygwLCAmc3RhcnRfdGltZSk7CiAgICBzdGFydF90aW1lICs9IDEwMDB1bCoxMDAwdWwqMTAw MHVsOwoKICAgIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2OwoKICAgIHdvcmtlcl9hcmcgYXJnc1tO VU1fVFhfVEhSRUFEU107CiAgICB1aW50IGxjb3JlX2lkID0gLTE7CiAgICBmb3IgKGludCBpID0g MDsgaSA8IE5VTV9UWF9USFJFQURTOyArK2kpIHsKICAgICAgICBhcmdzW2ldID0gey5xdWV1ZV9p ZCA9IHN0YXRpY19jYXN0PHVpbnQxNl90PihpKSwgLnN0YXJ0X3RpbWU9c3RhcnRfdGltZSwgLnR4 X3NoaWZ0X3JhdGlvPSgxLjAvTlVNX1RYX1RIUkVBRFMpKml9OwogICAgICAgIGxjb3JlX2lkID0g cnRlX2dldF9uZXh0X2xjb3JlKGxjb3JlX2lkLCB0cnVlLCBmYWxzZSk7CiAgICAgICAgcnRlX2Vh bF9yZW1vdGVfbGF1bmNoKCZ3b3JrZXIsICZhcmdzW2ldLCBsY29yZV9pZCk7CiAgICB9CgogICAg dWludDY0X3QgeHN0YXRzX3dhbmRlcl9pZDsKICAgIHVpbnQ2NF90IHBwX3dhbmRlcj0wLCBwcF93 YW5kZXJfbWF4PTA7CiAgICBydGVfZXRoX3hzdGF0c19nZXRfaWRfYnlfbmFtZSgwLCAidHhfcHBf d2FuZGVyIiwgJnhzdGF0c193YW5kZXJfaWQpOwoKICAgIGludCBpPTA7CiAgICB3aGlsZSAocnVu KSB7CiAgICAgICAgcnRlX2RlbGF5X21zKDEwMDApOwogICAgICAgIHByaW50ZigiPT09IFRvdGFs IGJ5dGVzIHNlbnQgJWx1IC0gcnVubmluZyBmb3IgJWQgc2Vjb25kcywgJWx1IG1heCB0eF9wcF93 YW5kZXJcclxuIiwgdG90YWxfYnl0ZXNfdHgsIGkrKywgcHBfd2FuZGVyX21heCk7CiAgICAgICAg cHJpbnRfeHN0YXRzKCk7CgogICAgICAgIHJ0ZV9ldGhfeHN0YXRzX2dldF9ieV9pZCgwLCAmeHN0 YXRzX3dhbmRlcl9pZCwgJnBwX3dhbmRlciwgMSk7CiAgICAgICAgaWYgKHBwX3dhbmRlcl9tYXgg PCBwcF93YW5kZXIpIHBwX3dhbmRlcl9tYXggPSBwcF93YW5kZXI7CgogICAgfQogICAgcmV0dXJu IDA7Cn0K --_006_05bca22278f74685bf75a46877ae0aa9iisfraunhoferde_ Content-Type: text/plain; name="common.h.txt" Content-Description: common.h.txt Content-Disposition: attachment; filename="common.h.txt"; size=3866; creation-date="Wed, 08 Nov 2023 11:41:14 GMT"; modification-date="Wed, 08 Nov 2023 11:41:14 GMT" Content-Transfer-Encoding: base64 Ly8gKGMpIDIwMjMgRnJhdW5ob2ZlciBJSVMsIE1heGltaWxpYW4gRW5nZWxoYXJkdCA8bWF4aW1p bGlhbi5lbmdlbGhhcmR0QGlpcy5mcmF1bmhvZmVyLmRlPgoKI2lmbmRlZiBNV0VfQ09NTU9OX0gK I2RlZmluZSBNV0VfQ09NTU9OX0gKCiNpbmNsdWRlIDxydGVfZWFsLmg+CiNpbmNsdWRlIDxydGVf ZXRoZGV2Lmg+CiNpbmNsdWRlIDxjc3RkaW50PgojaW5jbHVkZSA8Y3NpZ25hbD4KCgojZGVmaW5l IE5VTV9NQlVGUyAxMDI0KjEwMjQKI2RlZmluZSBNQlVGX0NBQ0hFX1NJWkUgMjUwCgppbnQgaHd0 c19keW5maWVsZF9vZmZzZXQgPSAwOwp1aW50NjRfdCBod3RzX2R5bmZsYWdfdHhfbWFzayA9IDA7 CgpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsK ICAgICAgICAucnhtb2RlID0gewogICAgICAgICAgICAgICAgLm10dSA9IDk2MDAsCiAgICAgICAg fSwKfTsKCiNkZWZpbmUgQVNTRVJUKGNvbmQsIHRleHQpIGRvIHsgXAoJaW50IHJldCA9IGNvbmQ7 IFwKCWlmICghcmV0KSB7IFwKCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiBhc3NlcnRpb24geyAl cyB9IGZhaWxlZCAoJXMpXG4iLCBfX0ZJTEVfXywgX19MSU5FX18sICNjb25kLCB0ZXh0KTsgXAoJ CWFib3J0KCk7IFwKCX0gXAp9IHdoaWxlICgwKQoKI2RlZmluZSBBU1NFUlRQKGNvbmQpIGRvIHsg XAoJaW50IHJldCA9IGNvbmQ7IFwKCWlmICghKHJldCA9PSAwKSkgeyBcCgkJZnByaW50ZihzdGRl cnIsICIlczolZDogYXNzZXJ0aW9uIHsgJXMgPT0gMCB9IGZhaWxlZCAoJXMpXG4iLCBfX0ZJTEVf XywgX19MSU5FX18sICNjb25kLCBzdHJlcnJvcihyZXQpKTsgXAoJCWFib3J0KCk7IFwKCX0gXAp9 IHdoaWxlICgwKQoKYm9vbCBydW4gPSB0cnVlOwpzdHJ1Y3QgcnRlX21lbXBvb2wgKm1idWZfcG9v bDsKCnN0cnVjdCBIZWFkZXIgewogICAgdWludDhfdCBzdHJlYW1faWQ7CiAgICB1aW50NjRfdCBz dHJlYW1fcG9zOwp9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoKdm9pZCBzaWduYWxIYW5kbGVy KCBpbnQgc2lnbnVtICkgewogICAgcnVuID0gZmFsc2U7Cn0KCnZvaWQgaW5pdF9kcGRrKGludCAq YXJnYywgY2hhciAqKmFyZ3ZbXSkgewogICAgc2lnbmFsKFNJR0lOVCwgc2lnbmFsSGFuZGxlcik7 CiAgICBzaWduYWwoU0lHVEVSTSwgc2lnbmFsSGFuZGxlcik7CgogICAgaW50IHJldCA9IHJ0ZV9l YWxfaW5pdCgqYXJnYywgKmFyZ3YpOwogICAgaWYgKHJldCA8IDApCiAgICAgICAgcnRlX2V4aXQo RVhJVF9GQUlMVVJFLCAiRXJyb3Igd2l0aCBFQUwgaW5pdGlhbGl6YXRpb25cbiIpOwoKICAgICph cmdjIC09IHJldDsKICAgICphcmd2ICs9IHJldDsKCgogICAgYXV0byBuYl9wb3J0cyA9IHJ0ZV9l dGhfZGV2X2NvdW50X2F2YWlsKCk7CiAgICBBU1NFUlQobmJfcG9ydHM+MCwgIk5vIFBvcnQgYXZh aWxhYmxlISIpOwogICAgbWJ1Zl9wb29sID0gcnRlX3BrdG1idWZfcG9vbF9jcmVhdGUoIk1CVUZf UE9PTCIsIE5VTV9NQlVGUyAqIG5iX3BvcnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTUJVRl9DQUNIRV9TSVpFLCAwLCAxMDAwMCwgcnRlX3NvY2tldF9pZCgpKTsK CiAgICBpbnQgcG9ydF9pZCA9IDA7CiAgICBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9 IHBvcnRfY29uZl9kZWZhdWx0OwogICAgdWludDE2X3QgcnhfcmluZ3MgPSAxOwogICAgdWludDE2 X3QgdHhfcmluZ3MgPSAyOwogICAgdWludDE2X3QgbmJfcnhkID0gNDA5NjsKICAgIHVpbnQxNl90 IG5iX3R4ZCA9IDQwOTY7CgogICAgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gZGV2X2luZm97fTsK ICAgIHN0cnVjdCBydGVfZXRoX3R4Y29uZiB0eGNvbmZ7fTsKCgogICAgcnRlX2V0aF9kZXZfaW5m b19nZXQocG9ydF9pZCwgJmRldl9pbmZvKTsKCgogICAgaWYgKGRldl9pbmZvLnR4X29mZmxvYWRf Y2FwYSAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKICAgICAgICBwb3J0X2Nv bmYudHhtb2RlLm9mZmxvYWRzIHw9CiAgICAgICAgICAgICAgICBSVEVfRVRIX1RYX09GRkxPQURf TUJVRl9GQVNUX0ZSRUU7CiAgICBwb3J0X2NvbmYucnhtb2RlLm9mZmxvYWRzID0gUlRFX0VUSF9S WF9PRkZMT0FEX1RJTUVTVEFNUDsKICAgIHBvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0gUlRF X0VUSF9UWF9PRkZMT0FEX1NFTkRfT05fVElNRVNUQU1QOwoKICAgIC8vIENvbmZpZ3VyZSB0aGUg RXRoZXJuZXQgZGV2aWNlLgogICAgcnRlX2V0aF9kZXZfY29uZmlndXJlKHBvcnRfaWQsIHJ4X3Jp bmdzLCB0eF9yaW5ncywgJnBvcnRfY29uZik7CgogICAgcnRlX2V0aF9kZXZfYWRqdXN0X25iX3J4 X3R4X2Rlc2MocG9ydF9pZCwgJm5iX3J4ZCwgJm5iX3R4ZCk7CgogICAgLy8gUlggc2V0dXAKICAg IGZvciAoaW50IHEgPSAwOyBxIDwgcnhfcmluZ3M7IHErKykgewogICAgICAgIEFTU0VSVFAocnRl X2V0aF9yeF9xdWV1ZV9zZXR1cChwb3J0X2lkLCBxLCBuYl9yeGQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9ldGhfZGV2X3NvY2tldF9pZChwb3J0X2lkKSwgTlVM TCwgbWJ1Zl9wb29sKSk7CiAgICB9CgoKICAgIC8vIFRYIHNldHVwCiAgICB0eGNvbmYgPSBkZXZf aW5mby5kZWZhdWx0X3R4Y29uZjsKICAgIHR4Y29uZi5vZmZsb2FkcyA9IHBvcnRfY29uZi50eG1v ZGUub2ZmbG9hZHM7CgogICAgZm9yIChpbnQgcSA9IDA7IHEgPCB0eF9yaW5nczsgcSsrKSB7CiAg ICAgICAgQVNTRVJUUChydGVfZXRoX3R4X3F1ZXVlX3NldHVwKHBvcnRfaWQsIHEsIG5iX3R4ZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRlX2V0aF9kZXZfc29ja2V0 X2lkKHBvcnRfaWQpLCAmdHhjb25mKSk7CiAgICB9CgogICAgcnRlX21idWZfZHluX3J4X3RpbWVz dGFtcF9yZWdpc3RlcigmaHd0c19keW5maWVsZF9vZmZzZXQsIE5VTEwpOwogICAgcnRlX21idWZf ZHluX3R4X3RpbWVzdGFtcF9yZWdpc3RlcigmaHd0c19keW5maWVsZF9vZmZzZXQsICZod3RzX2R5 bmZsYWdfdHhfbWFzayk7CiAgICBpZiAoaHd0c19keW5maWVsZF9vZmZzZXQgPCAwKSB7CiAgICAg ICAgcHJpbnRmKCJFUlJPUjogRmFpbGVkIHRvIHJlZ2lzdGVyIHRpbWVzdGFtcCBmaWVsZFxuIik7 CiAgICB9CgoKICAgIEFTU0VSVFAocnRlX2V0aF9kZXZfc2V0X210dShwb3J0X2lkLCA5MTAwKSk7 CiAgICBBU1NFUlRQKHJ0ZV9ldGhfcHJvbWlzY3VvdXNfZW5hYmxlKHBvcnRfaWQpKTsKICAgIEFT U0VSVFAocnRlX2V0aF9kZXZfc3RhcnQocG9ydF9pZCkpOwoKICAgIHN0cnVjdCBydGVfZXRoZXJf YWRkciBsb2NhbGFkZHJ7fTsKICAgIHJ0ZV9ldGhfbWFjYWRkcl9nZXQocG9ydF9pZCwgJmxvY2Fs YWRkcik7CgogICAgcnRlX2Zsb3dfZmx1c2gocG9ydF9pZCwgbnVsbHB0cik7CgoKfQoKdm9pZCBw cmludF94c3RhdHMoKSB7CiAgICBydGVfZXRoX3hzdGF0X25hbWUgc3RhdHNfbmFtZXNbNTEyXTsK ICAgIHJ0ZV9ldGhfeHN0YXQgc3RhdHNbNTEyXTsKICAgIGF1dG8gbnVtX25hbWVzID0gcnRlX2V0 aF94c3RhdHNfZ2V0X25hbWVzKDAsIHN0YXRzX25hbWVzLCA1MTIpOwogICAgYXV0byBudW1fc3Rh dHMgPSBydGVfZXRoX3hzdGF0c19nZXQoMCwgc3RhdHMsIDUxMik7CgogICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBudW1fc3RhdHM7ICsraSkgewogICAgICAgIGF1dG8gbmFtZSA9IHN0ZDo6c3RyaW5n KHN0YXRzX25hbWVzW2ldLm5hbWUpOwogICAgICAgIGlmIChzdGF0c1tpXS52YWx1ZSA9PSAwKQog ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICBwcmludGYoIiVzOiAlbHVcbiIsIHN0YXRzX25h bWVzW2ldLm5hbWUsIHN0YXRzW2ldLnZhbHVlKTsKICAgIH0KCn0KCiNlbmRpZgo= --_006_05bca22278f74685bf75a46877ae0aa9iisfraunhoferde_ Content-Type: text/plain; name="main_rx.cpp.txt" Content-Description: main_rx.cpp.txt Content-Disposition: attachment; filename="main_rx.cpp.txt"; size=2301; creation-date="Wed, 08 Nov 2023 11:41:14 GMT"; modification-date="Wed, 08 Nov 2023 11:41:14 GMT" Content-Transfer-Encoding: base64 Ly8gKGMpIDIwMjMgRnJhdW5ob2ZlciBJSVMsIE1heGltaWxpYW4gRW5nZWxoYXJkdCA8bWF4aW1p bGlhbi5lbmdlbGhhcmR0QGlpcy5mcmF1bmhvZmVyLmRlPgoKI2luY2x1ZGUgPGlvc3RyZWFtPgoK I2luY2x1ZGUgImNvbW1vbi5oIgojaW5jbHVkZSAicnRlX3BhdXNlLmgiCiNpbmNsdWRlICJydGVf ZXRoZGV2LmgiCiNpbmNsdWRlICJydGVfYnl0ZW9yZGVyLmgiCiNpbmNsdWRlICJydGVfYnl0ZW9y ZGVyXzY0LmgiCiNpbmNsdWRlICJydGVfbWFsbG9jLmgiCiNpbmNsdWRlICJydGVfaGV4ZHVtcC5o IgoKCmNvbnN0IHNpemVfdCBCVVJTVF9TSVpFID0gMTI4OwoKc3RydWN0IENoYW5uZWxTdGF0cyB7 CiAgICB1aW50NjRfdCBzdHJlYW1fcG9zID0gMDsKICAgIHVpbnQ2NF90IGxhc3RfcGFja2V0X3Rz ID0gLTE7CiAgICB1aW50NjRfdCBtYXhfdHNfZGlmZiA9IDA7Cn07CgpDaGFubmVsU3RhdHMgY2hh bm5lbF9zdGF0c19hcnJbMl0gPSB7fTsKdWludDY0X3QgdG90YWxfYnl0ZXNfcnggPSAwOwoKCmlu dCB3b3JrZXIodm9pZCogYXJnKSB7CiAgICBydGVfbWJ1ZiogcGFja2V0c1tCVVJTVF9TSVpFXTsK CiAgICB3aGlsZSAocnVuKSB7CgogICAgICAgIGludCBudW1fcGFja2V0cyA9IHJ0ZV9ldGhfcnhf YnVyc3QoMCwgMCwgcGFja2V0cywgQlVSU1RfU0laRSk7CgoKICAgICAgICBmb3IgKGludCBpID0g MDsgaTxudW1fcGFja2V0czsgaSsrKSB7CiAgICAgICAgICAgIGF1dG8gcGFja2V0ID0gcGFja2V0 c1tpXTsKCiAgICAgICAgICAgIHJ0ZV9wa3RtYnVmX2FkaihwYWNrZXQsc2l6ZW9mKHN0cnVjdCBy dGVfZXRoZXJfaGRyKSk7CiAgICAgICAgICAgIHJ0ZV9wa3RtYnVmX2FkaihwYWNrZXQsc2l6ZW9m KHN0cnVjdCBydGVfdmxhbl9oZHIpKTsKCiAgICAgICAgICAgIGF1dG8gaGVhZGVyID0gKEhlYWRl ciopcnRlX3BrdG1idWZfcmVhZChwYWNrZXQsIDAgLCBzaXplb2YoSGVhZGVyKSwgbnVsbHB0cik7 CiAgICAgICAgICAgIHJ0ZV9wa3RtYnVmX2FkaihwYWNrZXQsIHNpemVvZihIZWFkZXIpKTsKCiAg ICAgICAgICAgIGF1dG8gbGVuID0gcnRlX3BrdG1idWZfcGt0X2xlbihwYWNrZXQpOwogICAgICAg ICAgICBhdXRvIGhlYWRlcl9zdHJlYW1fcG9zID0gaGVhZGVyLT5zdHJlYW1fcG9zOwogICAgICAg ICAgICBhdXRvIHJ4X3RzID0gKlJURV9NQlVGX0RZTkZJRUxEKHBhY2tldCwgaHd0c19keW5maWVs ZF9vZmZzZXQsIHVpbnQ2NF90ICopOwoKICAgICAgICAgICAgYXV0byYgY2hhbm5lbF9zdGF0cyA9 IGNoYW5uZWxfc3RhdHNfYXJyW2hlYWRlci0+c3RyZWFtX2lkXTsKCiAgICAgICAgICAgIEFTU0VS VChjaGFubmVsX3N0YXRzLnN0cmVhbV9wb3MgPT0gaGVhZGVyX3N0cmVhbV9wb3MsICJTdHJlYW0g ZXJyb3IhIik7CgogICAgICAgICAgICBpZiAoY2hhbm5lbF9zdGF0cy5sYXN0X3BhY2tldF90cyAh PSAtMSkgewogICAgICAgICAgICAgICAgYXV0byBkaWZmID0gcnhfdHMgLSBjaGFubmVsX3N0YXRz Lmxhc3RfcGFja2V0X3RzOwogICAgICAgICAgICAgICAgaWYgKGRpZmYgPiBjaGFubmVsX3N0YXRz Lm1heF90c19kaWZmKQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfc3RhdHMubWF4X3RzX2Rp ZmYgPSBkaWZmOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNoYW5uZWxfc3RhdHMubGFzdF9w YWNrZXRfdHMgPSByeF90czsKCiAgICAgICAgICAgIHRvdGFsX2J5dGVzX3J4ICs9IGxlbjsKICAg ICAgICAgICAgY2hhbm5lbF9zdGF0cy5zdHJlYW1fcG9zID0gaGVhZGVyX3N0cmVhbV9wb3MgKyBs ZW47CgoKICAgICAgICAgICAgcnRlX3BrdG1idWZfZnJlZShwYWNrZXQpOwoKICAgICAgICB9CgoK ICAgIH0KfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewogICAgaW5pdF9kcGRr KCZhcmdjLCAmYXJndik7CiAgICBydGVfZWFsX3JlbW90ZV9sYXVuY2goJndvcmtlciwgbnVsbHB0 ciwgcnRlX2dldF9uZXh0X2xjb3JlKC0xLCB0cnVlLCBmYWxzZSkpOwoKICAgIHdoaWxlIChydW4p IHsKICAgICAgICBydGVfZGVsYXlfbXMoMTAwMCk7CiAgICAgICAgcHJpbnRmKCI9PT0gVG90YWwg Ung6ICVsdSBieXRlc1xyXG4iLCB0b3RhbF9ieXRlc19yeCk7CiAgICAgICAgZm9yIChhdXRvJiBj aGFubmVsX3N0YXRzOiBjaGFubmVsX3N0YXRzX2FycikgewogICAgICAgICAgICBwcmludGYoIlN0 cmVhbSBwb3MgJWx1LCBNYXggdGltZXN0YW1wIGRpZmZlcmVuY2U6ICVsdVxuIiwgY2hhbm5lbF9z dGF0cy5zdHJlYW1fcG9zLCBjaGFubmVsX3N0YXRzLm1heF90c19kaWZmKTsKICAgICAgICB9CiAg ICB9CiAgICByZXR1cm4gMDsKfQoK --_006_05bca22278f74685bf75a46877ae0aa9iisfraunhoferde_--