<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Theoretical throughput doesn&amp;#39;t match experiments done via ble_app_att_mtu_throughput example</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/29269/theoretical-throughput-doesn-t-match-experiments-done-via-ble_app_att_mtu_throughput-example</link><description>Hi guys, 
 Right now, I&amp;#39;m trying to do some throughput measurements via the experimental ble_app_att_mtu_throughput example. This using the SDK 14.2 and S132 on two nRF52832 DK&amp;#39;s. Alongside that, I&amp;#39;m trying to couple these experiments to a theoretical</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 09 Jan 2018 14:12:54 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/29269/theoretical-throughput-doesn-t-match-experiments-done-via-ble_app_att_mtu_throughput-example" /><item><title>RE: Theoretical throughput doesn't match experiments done via ble_app_att_mtu_throughput example</title><link>https://devzone.nordicsemi.com/thread/116419?ContentTypeID=1</link><pubDate>Tue, 09 Jan 2018 14:12:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:830945d2-069f-42f5-94a9-154b9f4c70c2</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;Correct! No problem :) I didn&amp;#39;t get it correct the first time I looked at it either ;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Theoretical throughput doesn't match experiments done via ble_app_att_mtu_throughput example</title><link>https://devzone.nordicsemi.com/thread/116422?ContentTypeID=1</link><pubDate>Tue, 09 Jan 2018 14:01:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1c246cdb-8e4c-4b03-bd7b-18c8b84e5a1e</guid><dc:creator>Mathias</dc:creator><description>&lt;p&gt;Here I indeed forgot that DLE ON ONLY influences the SoftDevice check, not the real communication because indeed the MTU is still only 23.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For DLE ON&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With the 80 µs for the empty packet and DLE only influencing the full packet exchange check , this gives 708 µs for one real exchange (full one way, empty the other) and 4540 µs for the full both ways check exchange. Here substracting 7.5 ms with 708 µs before 4540 µs doesn&amp;#39;t fit in it anymore, this is possible 5 times but indeed again the last substraction is already from 4668 µs which is already close to 4540 µs so in a non ideal situation with other factors influencing, 4 times or thus 4 packets is more reachable.&lt;/p&gt;
&lt;p&gt;Do I understand it correctly now? Thanks for all your help already Petter, as always!&lt;/p&gt;
&lt;p&gt;Kind regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Theoretical throughput doesn't match experiments done via ble_app_att_mtu_throughput example</title><link>https://devzone.nordicsemi.com/thread/116421?ContentTypeID=1</link><pubDate>Tue, 09 Jan 2018 13:54:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1388f29a-6989-41e2-ab44-f6720df7f16e</guid><dc:creator>Mathias</dc:creator><description>&lt;p&gt;Yeah, wasn&amp;#39;t sure about the empty packet being encrypted or not. So thats 80 µs for an empty packet under the given conditions, instead of 112 µs.&lt;/p&gt;
&lt;p&gt;Aha, I think I get were I&amp;#39;m wrong now. The check is done after each exchange and only for the next exchange. That&amp;#39;s what I forgot I think. So:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For DLE OFF&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With the 80 µs for the empty packet, this gives 708 µs for one real exchange (full one way, empty the other) and 956 µs for the full both ways check exchange. 708 µs fits 10 times into 7.5 ms. If I substract it 9 times from 7.5 ms, I get 1128 µs. 956 µs still fits there, so here a 10th packet would theoretically still be possible. But as you say, there is only around 150 µs of extra time here so in a non ideal situation this will be 9 then as we get in the experiment. 2nd comment following below.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Theoretical throughput doesn't match experiments done via ble_app_att_mtu_throughput example</title><link>https://devzone.nordicsemi.com/thread/116424?ContentTypeID=1</link><pubDate>Tue, 09 Jan 2018 13:36:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b7c0ed95-fa7e-458c-99c7-1c6cb28d56e4</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;&lt;strong&gt;For DLE ON&lt;/strong&gt; Yes. The SoftDevice will check that. So when a connection event starts it will check, do one exchange, check if there is more time, do one exchange, check and so on, until there isn&amp;#39;t time to do a full packet exchange because the connection event is ending. Checking isn&amp;#39;t the same as doing a full packet exchange.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Theoretical throughput doesn't match experiments done via ble_app_att_mtu_throughput example</title><link>https://devzone.nordicsemi.com/thread/116423?ContentTypeID=1</link><pubDate>Tue, 09 Jan 2018 13:33:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:172531b2-fabd-4886-bb15-1a0148325909</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;&lt;strong&gt;For DLE OFF&lt;/strong&gt; Yes, it does. There is no MIC in empty or un-encrypted packets. Anyways, after 9 packet pairs have been exchanged (full one way, empty one way) the SoftDevice will check if there is time to do one more exchange, with full packets both ways. And because of this I assume you end up with 9, not 10. Also remember that your calculations are not only theoretical, they are ideal, not including clock drift, SoftDevice overhead and so on.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Theoretical throughput doesn't match experiments done via ble_app_att_mtu_throughput example</title><link>https://devzone.nordicsemi.com/thread/116418?ContentTypeID=1</link><pubDate>Tue, 09 Jan 2018 10:31:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:efdf5035-a12c-4383-946b-5b28f9671060</guid><dc:creator>Mathias</dc:creator><description>&lt;p&gt;&lt;strong&gt;For DLE ON&lt;/strong&gt; Yes, I also know this. But in &lt;a href="https://devzone.nordicsemi.com/question/184533/ble_app_att_mtu_throughput-throughput-calculation-packets-per-interval-data-length-extension/"&gt;this question&lt;/a&gt; you commented on your answer that the SoftDevice checks if it is possible to send a full packet before scheduling a next packet in a connection event (and in this case, the SoftDevice takes 251 bytes for a full packet&amp;#39;s L2CAP part I think). If I use your remark about the empty RX also being used in the check of the SoftDevice, I here get 7.5 ms / (112 µs + 150 µs + 2120 µs + 150 µs) = 2.96 =&amp;gt; &lt;strong&gt;2 packets&lt;/strong&gt;. This gives (2 packets * 20 bytes * 8) / 7.5 ms = 42.66 kbps, which is still less then the experimental throughput that I get for this case.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m sorry Petter, but it&amp;#39;s still unclear to me what I&amp;#39;m doing/assuming wrongly here... Very sorry for the inconvenience and trouble.&lt;/p&gt;
&lt;p&gt;Kind regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Theoretical throughput doesn't match experiments done via ble_app_att_mtu_throughput example</title><link>https://devzone.nordicsemi.com/thread/116420?ContentTypeID=1</link><pubDate>Tue, 09 Jan 2018 10:25:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e478c1b6-6e5e-4cc8-8d2c-a2a03a899d63</guid><dc:creator>Mathias</dc:creator><description>&lt;p&gt;&lt;strong&gt;For DLE OFF&lt;/strong&gt;
Yes, I know this. That&amp;#39;s what I mean by the real RX packet being much smaller (empty PDU) but I thought that for checking if another packet could be scheduled in the connection event, the SoftDevice uses a RX &amp;amp; TX check for both full packets. Anyway, if I calculate the time for an empty packet, I get (1 (Preamble) + 4 (Access Address) + 2 (LL Header) + 4 (MIC, because encryption seems to be done in the example as well) + 3 (CRC) bytes) * 8 ) / 1 Mbps = &lt;strong&gt;112 µs&lt;/strong&gt;. If I then calculate the amount of packets per interval again, I get 7.5 ms / (112 µs + 150 µs + 328 µs + 150 µs) = 10.135 =&amp;gt; &lt;strong&gt;10 packets&lt;/strong&gt;. This gives a theoretical throughput of (10 packets * 20 bytes * 8) / 7.5 ms = 213.33 kbps, which is more then what the experiment produces. Again, I think I should calculate 9 packets per connection interval to get around the same throughput as in the experiment. 2nd comment following below.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Theoretical throughput doesn't match experiments done via ble_app_att_mtu_throughput example</title><link>https://devzone.nordicsemi.com/thread/116417?ContentTypeID=1</link><pubDate>Tue, 09 Jan 2018 09:57:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:01e09055-e738-44b3-b62e-b4db351c1363</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;For DLE OFF - you are assuming that you are sending full packets both ways, which you are not. You are sending full packets one way, empty the other.&lt;/p&gt;
&lt;p&gt;For DLE ON - Here I assume you still have an ATT MTU of 23? Then the L2CAP packets will still be 27 bytes. You need to increase the ATT MTU to take advantage of DLE.&lt;/p&gt;
&lt;p&gt;Is anything still unclear?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>