Skip to content

Commit

Permalink
softdevice_controller: rev 49344d89242ca974cbf6be5de0c0a0f303342f62
Browse files Browse the repository at this point in the history
CHANGELOG.rst contains the list of changes.

Signed-off-by: Henrik Lander <[email protected]>
  • Loading branch information
henrla committed Sep 9, 2024
1 parent d23a440 commit b2be2db
Show file tree
Hide file tree
Showing 34 changed files with 76 additions and 47 deletions.
39 changes: 34 additions & 5 deletions softdevice_controller/doc/scheduling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ The following table summarizes the priorities.
| Third priority | * All |BLE| roles in states other than above run with this priority |
| | * MPSL Timeslot with high priority |
+-----------------------------+---------------------------------------------------------------------------------------------------+
| Fourth priority | * Scanner when the scan window is equal to the scan interval |
| Fourth priority | * Scanner when the scan window is equal to the scan interval and the scanner has been able to |
| | run a timing-event at least once in the last couple of scan intervals. |
| | * Quality of Service channel survey |
+-----------------------------+---------------------------------------------------------------------------------------------------+
| Fifth priority | * 802.15.4 radio driver |
Expand Down Expand Up @@ -360,12 +361,21 @@ Here :math:`\mathsf{C1}` can utilize the free time left by a previously disconne

Multilink scheduling and Connection Event Length Extension

Scanner timing
**************
Scanner and Initiator timing
************************

Scanning is a periodic activity where the |controller| listens for packets from Advertisers.
When the |controller| starts scanning, it will listen for packets on the primary advertising channels.
If the |controller| is configured to accept extended advertising packets, and it receives a packet with a pointer to a secondary advertising channel, it will continue to scan on this channel to receive the auxiliary packet.
Initiating is a periodic activity where the |controller| tries to connect to an Advertiser by first listening for packets from an Advertiser.
When the |controller| starts scanning or initiating, it will listen for packets on the primary advertising channels.
If the |controller| is configured to accept extended advertising packets, and it receives a packet with a pointer to a secondary advertising channel, it will continue to listen on this secondary advertising channel to receive the auxiliary packet.

The `Primary channel Scanner timing`_ and `Secondary channel Scanner timing`_ sections describe how scanner and initiator timing-events are scheduled.
The sections only refer to scanner timing-events, but initiator timing-events are scheduled in the same way.

.. note::
The priority of scanner and initiator timing-events are different.
See :ref:`scheduling_priorities_table` for details.


Primary channel Scanner timing
==============================
Expand Down Expand Up @@ -467,6 +477,25 @@ Therefore, the Scanner cannot decide when the secondary scanning timing-events w
Scanner timing - secondary scan timing-events will interleave with connections


Concurrent scanner and initiator timing
=======================================

When the :kconfig:option:`CONFIG_BT_CTLR_SDC_ALLOW_PARALLEL_SCANNING_AND_INITIATING` Kconfig option is enabled, the application can run the scanner and initiator in parallel.
The scanner and initiator timing-events will be combined or scheduled separately depending on the parameters provided when starting the scanner and initiator.
When the timing-events are combined, each received packet is received and processed both by the scanner and initiator.
When the timing-events are scheduled separately, only one of the roles is processing an incoming packet.

The timing-events are combined only if all the following conditions are met:

* The scanner is configured to run with a scan duration of 0 (without timeout).
* The scanner and initiator are configured to scan on the same primary PHYs.
* The scanner and initiator are configured to use the same own address type.
* The scanner and initiator have the same scan interval configuration.
* The scanner and initiator have the same scan window configuration.

In most cases it is more efficient to have the timing-events combined, because then incoming packets will be processed by both roles.
This means that the application should use parameters that meet the conditions outlined above, unless the specific use case dictates otherwise.

Timing when synchronized to a periodic advertiser
*************************************************

Expand Down
6 changes: 3 additions & 3 deletions softdevice_controller/include/sdc.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ extern "C" {
*/

/** @brief Auxiliary defines, not to be used outside of this file. */
#define __MEM_MINIMAL_CENTRAL_LINK_SIZE 963
#define __MEM_MINIMAL_PERIPHERAL_LINK_SIZE 1075
#define __MEM_MINIMAL_CENTRAL_LINK_SIZE 947
#define __MEM_MINIMAL_PERIPHERAL_LINK_SIZE 1059
#define __MEM_TX_BUFFER_OVERHEAD_SIZE 14
#define __MEM_RX_BUFFER_OVERHEAD_SIZE 14

Expand Down Expand Up @@ -203,7 +203,7 @@ extern "C" {
*
* @param[in] num_links Total number of peripheral and central links supported.
*/
#define SDC_MEM_SYNC_TRANSFER(num_links) (0 + (num_links) * 0)
#define SDC_MEM_SYNC_TRANSFER(num_links) ((num_links) > 0 ? (11 + (num_links) * 19) : 0)

/** Memory required for Quality of Service (QoS) channel survey module. */
#define SDC_MEM_QOS_CHANNEL_SURVEY (40)
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf52/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x1245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x124B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:23:55Z'
timestamp: '2024-09-09T07:53:49Z'
Binary file not shown.
Binary file not shown.
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf52/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x1245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x124B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:23:55Z'
timestamp: '2024-09-09T07:53:49Z'
Binary file not shown.
Binary file not shown.
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf52/softfp-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x1245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x124B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:23:55Z'
timestamp: '2024-09-09T07:53:49Z'
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf53/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x2245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x224B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:24:56Z'
timestamp: '2024-09-09T07:54:51Z'
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf54h/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x4245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x424B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:25:54Z'
timestamp: '2024-09-09T07:56:00Z'
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf54h/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x4245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x424B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:25:54Z'
timestamp: '2024-09-09T07:56:00Z'
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf54h/softfp-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x4245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x424B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:25:54Z'
timestamp: '2024-09-09T07:56:00Z'
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf54l/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x324B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:15Z'
timestamp: '2024-09-09T07:57:35Z'
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf54l/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x324B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:15Z'
timestamp: '2024-09-09T07:57:35Z'
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf54l/softfp-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x324B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:15Z'
timestamp: '2024-09-09T07:57:35Z'
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf54l_ns/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x324B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:55Z'
timestamp: '2024-09-09T07:58:33Z'
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/nrf54l_ns/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x324B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:55Z'
timestamp: '2024-09-09T07:58:33Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
git_revision: 49344d89242ca974cbf6be5de0c0a0f303342f62
ll_subversion_number: '0x324B'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:55Z'
timestamp: '2024-09-09T07:58:33Z'

0 comments on commit b2be2db

Please sign in to comment.