<?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>L2CAP SDU Length</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/63717/l2cap-sdu-length</link><description>L2CAP connection oriented channels can be used to transfer frames of up to 65533 bytes. L2CAP is a record oriented protocol. When receiving L2CAP data, using the softdevice API, we can pass smaller buffers to the SD, using sd_ble_l2cap_ch_rx() and get</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 21 Aug 2020 06:46:07 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/63717/l2cap-sdu-length" /><item><title>RE: L2CAP SDU Length</title><link>https://devzone.nordicsemi.com/thread/265646?ContentTypeID=1</link><pubDate>Fri, 21 Aug 2020 06:46:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:989f62ce-a787-4447-991a-5170dc613d39</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Torsten&lt;/p&gt;
&lt;p&gt;I am happy to help, good to hear you got it working &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I wasn&amp;#39;t aware packets could be simply dropped on the iOS side, but I haven&amp;#39;t handled a lot of iOS support either.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: L2CAP SDU Length</title><link>https://devzone.nordicsemi.com/thread/262944?ContentTypeID=1</link><pubDate>Tue, 04 Aug 2020 09:49:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:63b2c41e-6c6b-4f53-b8e8-3218fc7fca71</guid><dc:creator>Torsten Robitzki</dc:creator><description>&lt;p&gt;Hello Torbj&amp;oslash;rn,&lt;br /&gt;yes, in Vol. 3, 3.4 there is one figure that describes the frame layout of L2CAP connection-oriented channel SDUs (in Version 5.2. of the spec, it&amp;rsquo;s figure 3.12, but I think we are talking about the same here).&lt;/p&gt;
&lt;p&gt;Sorry, I think I&amp;rsquo;ve missed, that there is already the &amp;quot;Total SDU length, in bytes.&amp;ldquo; in the ble_l2cap_evt_ch_rx_t. This is exactly what I need to find the start / end of an SDU.&lt;/p&gt;
&lt;p&gt;And yes, I totally agree with you, that in a perfect world, there should be nearly no use for L2CAP. However, in reality a lot of BLE controller stacks (like the ones from Apple) give no back pressure when writing to a characteristic, but just silently drop data and more important, don&amp;rsquo;t let you fully utilize a connection event.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m implementing a BLE SWD debug probe. It&amp;rsquo;s possible to upload with more than 80 kByte/s, using L2CAP. Currently I use some kind of OTS control point procedures, to write commands to the probe and use the L2CAP channel to send the data that belongs to the commands. Using this schema, it takes a whole connection event just to transfer the control point request. So I would like to prepend the control point request to the data SDU. This requires me to recognize the start of a SDU on the receiving side.&lt;/p&gt;
&lt;p&gt;Thanks for your support!&lt;/p&gt;
&lt;p&gt;Torsten&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: L2CAP SDU Length</title><link>https://devzone.nordicsemi.com/thread/262922?ContentTypeID=1</link><pubDate>Tue, 04 Aug 2020 08:53:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aa840522-35e1-4bda-a96a-e73e8fb950c0</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Torsten&lt;/p&gt;
&lt;p&gt;Sorry for the slow response. Kenneth is currently out in vacation, and I will handle your case in the mean time.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Which part of the spec are you referring to?&lt;br /&gt;Figure 3.6 in vol 3, part A, chapter 3.4?&lt;/p&gt;
&lt;p&gt;If I understand correctly you want to assemble a larger packet manually by adding up smaller transfers over the air?&lt;/p&gt;
&lt;p&gt;The ble_app_ots example in the SDK should work more or less the same way, I don&amp;#39;t know if you have had a look at that?&lt;br /&gt;The object transfer service is essentially designed to send files or records over an L2CAP COC channel, so it sounds relevant to what you are trying to do.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Also,&amp;nbsp;are you sure that using L2CAP COC is needed in the first place?&lt;br /&gt;When using larger MTU&amp;#39;s and attribute sizes the overhead when using standard GATT services over L2CAP COC is very small.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: L2CAP SDU Length</title><link>https://devzone.nordicsemi.com/thread/262246?ContentTypeID=1</link><pubDate>Wed, 29 Jul 2020 16:27:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0dfd2fb4-8c01-4c1e-929d-c4c834a077c3</guid><dc:creator>Torsten Robitzki</dc:creator><description>&lt;p&gt;UpUp :-)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: L2CAP SDU Length</title><link>https://devzone.nordicsemi.com/thread/259893?ContentTypeID=1</link><pubDate>Tue, 14 Jul 2020 11:40:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f23c6973-d275-402c-ba7c-1394fc71641b</guid><dc:creator>Torsten Robitzki</dc:creator><description>&lt;p&gt;I&amp;#39;m quite sure, the information (frame boundaries) are available over-air, because the spec says so ;-) Maybe, if this information is not made available by the softdevice, is there a chance that I could request that information as a feature request toward the softdevice? (in theory, an event denoting the frame start and frame size would be sufficient, I think)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: L2CAP SDU Length</title><link>https://devzone.nordicsemi.com/thread/259889?ContentTypeID=1</link><pubDate>Tue, 14 Jul 2020 11:34:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5e7b7f86-b49b-4f91-8bd4-c7b94261b98c</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;I can see from the event that only a pointer to the buffer and a length is passed to the application, so&amp;nbsp;you must handle this in some other way yes. I believe maybe the L2CAP packet only have 4 bytes overhead (length + channel ID), so likely the data you request is not available over-air.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>