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 3586F432D3 for ; Mon, 13 Nov 2023 12:14:57 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 905A0402D8; Mon, 13 Nov 2023 12:14:56 +0100 (CET) Received: from mail-edgeka27.fraunhofer.de (mail-edgeka27.fraunhofer.de [153.96.1.27]) by mails.dpdk.org (Postfix) with ESMTP id 8E018402D6 for ; Wed, 8 Nov 2023 16:41:18 +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=1699458078; x=1730994078; h=from:to:cc:subject:date:message-id:mime-version; bh=kEiL6JBznkjFrHgn2cOuUIrQ5WPC07fup1f+NrUYdrs=; b=lbXUuGACHPeiiLdyyseONbDV1C4Jgq7ewSQkENuPwS43q8ye+wZKNJCY QiGHqcl4p/AUIKL/AcZOb8WVWkKGFxaikjHEk3xKdxMx6RMwuskNSKlgB drH8HKq2a23ELF4/qRkbo+B9syUoXt+PFoGvV3yK4KQPXyV/oGxaGajnE cd44PjRTxBdvjA43J4cdABQVABlZX+keWOXGaNq0aZ++psnryz9j6+GcJ 5fTOK6Qpxf44yFKWuWXwekMwYW0xL+koQFPXTmRLw6XQ9sTRdwWIGJP8O qBY8Qvjj2UK7HZbiRcf7982Y/uh6iglK8I8NsgOy/HGmTB3MUsvJhyfkH w==; X-CSE-ConnectionGUID: qbS5Jv89SESHP1RE9SY5wA== X-CSE-MsgGUID: rAAKG2SXS82EkuOj+Stvww== Authentication-Results: mail-edgeka27.fraunhofer.de; dkim=none (message not signed) header.i=none X-IPAS-Result: =?us-ascii?q?A2FzAADQqktl/x0BYJlaHAEBAQEBAQcBARIBAQQEAQFAg?= =?us-ascii?q?TwGAQELAYE1gQN4AoFdGwGWFYEWnGuBfggHAQEBAQEBAQEBCAFEBAEBghKCd?= =?us-ascii?q?IcqJzUIDgECBAEBAQEDAgMBAQEBAQEBAgEBBgEBAQEBAQYGAoEZhS86DIZUK?= =?us-ascii?q?wZMEgFQMCYBBAoEBQgGgnGCXqwrgQEzgQGEdrAKEIFIAYRYgyYLAYFOhAKGQ?= =?us-ascii?q?0OBFTWCPQeLdQSBUoEuhiUDBDIJgTpfg1OCOQNTM2mCSIY9MFBHcBsDBwN/E?= =?us-ascii?q?CsHBDAiBgkULSMGUQQoJAkTEj4EgzMKfz8PDhGCPSICBzY2GUiCWxVBORF2E?= =?us-ascii?q?CoEFBeBEm4bFR43ERIXDQMIdB0CESM8AwUDBDMKEg0LIQVWA0IGDjsLAwIaB?= =?us-ascii?q?QMDBIE2BQ0eAhAtJwMDE00CEBQDOwMDBgMLMQMwVUQMUQNsHxYgCTwPDB8CG?= =?us-ascii?q?x4NJygCNUMDCQoFEgIWAycbFwNEHTYKAwsHZj01FBsIAYE9nToKgy1ELkcHX?= =?us-ascii?q?zccCIEeGZMCjnhHgTQPggufFgMEA4IugV6GToMplxouF5cuklOYPiCoCAIEA?= =?us-ascii?q?gQFAhaBZQKCEnGDNlIXAg+OKQMWk092AjkCBwsBAQMJhkiDbQGBFQEB?= IronPort-PHdr: A9a23:jwHyCBZdgGZjhoXP5Il8tm3/LTAchN3EVzX9i7IigrNKN6mv8JnhN RaAo/t3hULPXYLV5ugCh+eF+6zjWGlV55GHvThCdZFXTBYKhI0QmBBoG8+KD0D3bbbqYiU2E d4EVQpj+He2WXU= X-Talos-CUID: =?us-ascii?q?9a23=3A5ZHe3mrbrpoBjKxC+EVKkU7mUdkvSSD/0ieBGGK?= =?us-ascii?q?DKV4wcpDEcm7N54oxxg=3D=3D?= X-Talos-MUID: =?us-ascii?q?9a23=3AJaR7AQylNPRsX60l5hVK/uY8eyOaqL6HIWMiy64?= =?us-ascii?q?2gJneGC9tHDXetyipXZByfw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.03,286,1694728800"; d="txt'?scan'208,217";a="2552022" Received: from mail-mtaka29.fraunhofer.de ([153.96.1.29]) by mail-edgeka27.fraunhofer.de with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Nov 2023 16:41:17 +0100 IronPort-SDR: 654bac1c_sIXwhmnxzL4KYFiruvBSSVoBlFzQiytWdQIq5d7BhcoQjNC cv7zQfaZp2Mol3XpF9GYvHt6IiM39e2UF9sKmZQ== X-IPAS-Result: =?us-ascii?q?A0BdAQDQqktl/wSsYJlaHAEBAQEBAQcBARIBAQQEAQFAg?= =?us-ascii?q?TwGAQELAYE1MVlxAlk8SBsBlhSBFpxrgX4PAQMBAQEBAQgBQgIEAQGCEoJ0h?= =?us-ascii?q?ygCJjUIDgECBAEBAQEDAgMBAQEBAQEDAQEBBAEBAQIBAQYCAQGBChOFaQyGe?= =?us-ascii?q?gZMEgFQMCYBBAoEBQgGgnGCXgICrCeBATOBAYR2sAoQgUgBhFiDJgsBgU6EA?= =?us-ascii?q?oRegWVDgRU1gj0Hi3UEgVKBLoYlAwQyCYE6X4NTgjkDUzNpgkiGPTBQR3AbA?= =?us-ascii?q?wcDfxArBwQwIgYJFC0jBlEEKCQJExI+BIMzCn8/Dw4Rgj0iAgc2NhlIglsVQ?= =?us-ascii?q?TkRdhAqBBQXgRJuGxUeNxESFw0DCHQdAhEjPAMFAwQzChINCyEFVgNCBg47C?= =?us-ascii?q?wMCGgUDAwSBNgUNHgIQLScDAxNNAhAUAzsDAwYDCzEDMFVEDFEDbB82CTwPD?= =?us-ascii?q?B8CGx4NJygCNUMDCQoFEgIWAycbFwNEHTYKAwsHZj01FBsIAYE9nToKgy1EL?= =?us-ascii?q?kcHXzccCIEeGZMCjnhHgTQPggufFgMEA4IugV6GToMplxouF5cuklOYPiCoC?= =?us-ascii?q?AIEAgQFAhaBZQI4gVlxgzZPAxcCD44pAxaTT3YCOQIHCwEBAwmFaV+DbAGBF?= =?us-ascii?q?QEB?= IronPort-Data: A9a23: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 IronPort-HdrOrdr: A9a23:xU4JpawBtfzR06MYSeJcKrPx8uskLtp133Aq2lEZdPWaSK2lfq GV7ZcmPHDP+UcssR0b9uxoW5PhfZqjz+8K3WB5B97LNzUO3lHHEGgI1+bfKlPbcRHWx6p075 1RSZU7IPfMLX5cu+vT3SXQKade/PC3tIiTv9fl8jNEZzxLTYZX1S0RMHfmLmRGACF9P6oCKd 61yeVqjQeNVEIqVP+MIlEkeoH41r/2vaOjSSQ9NyQbrCG1txOHz5LWJSKm8yEleVp0sNIf2F mAuzbC1p+f99mA8D/z8EP/2ahto+3a4LJ4daixo/lQAg/XujyUIKhfbZergRwahtqegWxa6+ XkklMJBf5C0U6UUl6ChjfSsjOQtwoG2jvL82Wpu0amjfPOfQkbLfFguLIxSGql12MQ+PlH6p Jw4ia0iKxtITz3uwKV3amvazha0mKPm0oZrKo+sEpkfbA/ToNqiqAkxipuYe09NRO/wLocIN NSSO3i0sx7Smy7RVyxhBgW/PWcGlwIJCe9fwwvhfqu7hBqsBlCvjIlLBp2pBs9yK4= X-Talos-CUID: =?us-ascii?q?9a23=3ABsiHAGoDmZZYSqc/oIOTX03mUcEbXGHz8inBGmH?= =?us-ascii?q?7WEZ0d4O6TE+uoLwxxg=3D=3D?= X-Talos-MUID: =?us-ascii?q?9a23=3AhLM2cA9oJSieVpVktelBoOaQf+dix/2HDlhXqsg?= =?us-ascii?q?56+W5OipJZymRqA3iFw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.03,286,1694728800"; d="txt'?scan'208,217";a="65861946" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mailgw1.iis.fraunhofer.de ([153.96.172.4]) by mail-mtaKA29.fraunhofer.de with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Nov 2023 16:41:16 +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 9D031C004C for ; Wed, 8 Nov 2023 16:41:15 +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; Wed, 8 Nov 2023 16:41:15 +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; Wed, 8 Nov 2023 16:41:15 +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: AdoSWbuIC8BgOLM/QVi2HhlT9kFBbw== Date: Wed, 8 Nov 2023 15:41:15 +0000 Message-ID: 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_c67f77eec0b54bfa8dd91e0ea57824adiisfraunhoferde_" MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 13 Nov 2023 12:14:56 +0100 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_c67f77eec0b54bfa8dd91e0ea57824adiisfraunhoferde_ Content-Type: multipart/alternative; boundary="_000_c67f77eec0b54bfa8dd91e0ea57824adiisfraunhoferde_" --_000_c67f77eec0b54bfa8dd91e0ea57824adiisfraunhoferde_ 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_c67f77eec0b54bfa8dd91e0ea57824adiisfraunhoferde_ 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_c67f77eec0b54bfa8dd91e0ea57824adiisfraunhoferde_-- --_006_c67f77eec0b54bfa8dd91e0ea57824adiisfraunhoferde_ 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_c67f77eec0b54bfa8dd91e0ea57824adiisfraunhoferde_ 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_c67f77eec0b54bfa8dd91e0ea57824adiisfraunhoferde_ 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_c67f77eec0b54bfa8dd91e0ea57824adiisfraunhoferde_--