<?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>Delivery order of BLE indications/notifications</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/71800/delivery-order-of-ble-indications-notifications</link><description>Hi, 
 I am wanting some information about any guarantees on the ordering of queued notifications and indications. According to https://devzone.nordicsemi.com/f/nordic-q-a/11979/further-details-of-buffering-notifications-and-indications if I queue a notification</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 23 Feb 2021 10:25:01 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/71800/delivery-order-of-ble-indications-notifications" /><item><title>RE: Delivery order of BLE indications/notifications</title><link>https://devzone.nordicsemi.com/thread/295791?ContentTypeID=1</link><pubDate>Tue, 23 Feb 2021 10:25:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a53e19cd-0464-45d8-a3a9-060400ebabf8</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;What peer/ central device are you testing with? Can you capture a sniffer log of this procedure to check the on air sequence?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Delivery order of BLE indications/notifications</title><link>https://devzone.nordicsemi.com/thread/295715?ContentTypeID=1</link><pubDate>Mon, 22 Feb 2021 22:48:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:35c5b12b-845b-46d1-9d3e-1488b85e4b28</guid><dc:creator>Campbell Young</dc:creator><description>&lt;p&gt;Nah, I queue all notifications (about 200) then after the last one is queued, I queue the indication. When the remote end gets the indication, it will check if all the expected notifications were received. However, because the indication is coming before the notifications, it thinks packets are missing. Those missing packets arrive after the indication, so they do eventually get sent. For the purpose of this issue, there is only a single cycle happening. e.g. queue all notifications, queue indication, then stop. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Delivery order of BLE indications/notifications</title><link>https://devzone.nordicsemi.com/thread/295544?ContentTypeID=1</link><pubDate>Mon, 22 Feb 2021 11:07:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d29ea9d3-3ba3-4f0d-babd-91ee05f4fed1</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;Are you doing this in cycles? I.e. you send 30 notifications then you send a indications, then repeat? If you do, you most likely get the BLE_GATTS_EVT_HVC from the first 30 notification in the next sequence of notifications. I.e you will be able to send notifications even if you have a pending indication. So unless you wait for the BLE_GATTS_EVT_HVC before you start sending the next sequence of notification I would expect the BLE_GATTS_EVT_HVC to come somewhere in the next notification sequence, as it takes some time for the application layer to process indications.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Delivery order of BLE indications/notifications</title><link>https://devzone.nordicsemi.com/thread/295451?ContentTypeID=1</link><pubDate>Sat, 20 Feb 2021 23:58:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3de0593a-b08d-4e04-8ad4-feb116350e36</guid><dc:creator>Campbell Young</dc:creator><description>&lt;p&gt;I am queueing packets via &lt;strong&gt;sd_ble_gatts_hvx &lt;/strong&gt;whose size is set by &lt;strong&gt;hvn_tx_queue_size &lt;/strong&gt;in a call to &lt;strong&gt;sd_ble_cfg_set&lt;/strong&gt;. The indications are queued in an application queue, although for the purpose of this issue it is only one element long, and so is queued directly via &lt;strong&gt;sd_ble_gatts_hvx &lt;/strong&gt;after the notifications have been queued via the same method.&lt;/p&gt;
&lt;p&gt;I queue notifications until &lt;strong&gt;sd_ble_gatts_hvx&lt;/strong&gt; returns an error. Once I get &lt;strong&gt;BLE_GATTS_EVT_HVN_TX_COMPLETE&amp;nbsp;&lt;/strong&gt;I try queueing again until all notifications are queued. Once they&amp;#39;re queued, I then queue the indication.&lt;/p&gt;
&lt;p&gt;Hope that makes sense!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Code for configuring queue size:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;ble_cfg_t ble_cfg;
memset(&amp;amp;ble_cfg, 0x00, sizeof(ble_cfg));
ble_cfg.conn_cfg.conn_cfg_tag = APP_BLE_CONN_CFG_TAG;
ble_cfg.conn_cfg.params.gatts_conn_cfg.hvn_tx_queue_size = CFG_BLE_HVX_QUEUE_LEN;
err_code = sd_ble_cfg_set(BLE_CONN_CFG_GATTS, &amp;amp;ble_cfg, ram_start);&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Delivery order of BLE indications/notifications</title><link>https://devzone.nordicsemi.com/thread/295321?ContentTypeID=1</link><pubDate>Fri, 19 Feb 2021 12:11:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7b78768f-799a-4866-b911-cca179bbfc2a</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;What queue are you placing the packets in? I do not think it is possible to configure the SD with more than 7 TX buffers per connection. Are you sure you are not placing the packets in different additional buffers so the order it is placed in the actual tx buffers are changed?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>