You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: softdevice_controller/CHANGELOG.rst
+16-7Lines changed: 16 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,16 +16,17 @@ Added
16
16
=====
17
17
18
18
* Support for the LE Set Path Loss Reporting Parameters and LE Set Path Loss Reporting Enable HCI commands. (DRGN-17376)
19
-
* Support for generating connection anchor update event reports using the VS Conn Anchor Point Update Report Enable command. (DRGN-22662)
19
+
* Support for generating connection anchor update event reports using the VS Conn Anchor Point Update Report Enable command.
20
20
When enabled, one report is generated when the anchor point of a connection is updated.
21
-
This information can be used to synchronize two applications running on a central and a peripheral device.
21
+
This information can be used to synchronize two applications running on a central and a peripheral device. (DRGN-22662)
22
22
* Vendor-specific command for triggering a peripheral task at the start of a radio event.
23
23
See :c:func:`sdc_hci_cmd_vs_set_event_start_task`. (DRGN-20737)
24
24
* Support for the LE Set Default Subrate and LE Subrate Request HCI commands. (DRGN-19745)
25
25
26
26
Changes
27
27
=======
28
28
29
+
* The ``VersNr`` field in the ``LL_VERSION_IND`` packet now contains the value ``0x0E`` to indicate compatibility with Bluetooth Core Specification v6.0 (DRGN-23211).
29
30
* The ``sdc_coex_adv_mode_configure`` API has been deprecated as it is not applicable to any supported coexistence interfaces. (DRGN-20876).
30
31
* The ``sdc_hci_cmd_vs_coex_priority_config`` and ``sdc_hci_cmd_vs_coex_scan_mode_config`` vendor-specific HCI commands have been removed as they are not applicable to any supported coexistence interfaces. (DRGN-20876)
31
32
* The vendor-specific Set Connection Event Trigger command has been deprecated.
@@ -41,6 +42,8 @@ Changes
41
42
* For a Synchronized Receiver, the priority of the first ``BN`` subevents of relevant BISes in a BIG event now have an elevated priority.
42
43
This should improve reliability of ISO data being received by a Synchronized Receiver running alongside a role of lower priority.
43
44
For more details, see the :ref:`scheduling_priorities_table` table.
45
+
* The SoftDevice Controller can now utilize more than 64K of memory buffer passed to :c:func:`sdc_enable`. (DRGN-22067)
46
+
* If LE Power Control is not being used, the TX power of CISes is now the same as for the corresponding ACL connection. (DRGN-23291)
44
47
45
48
Bug fixes
46
49
=========
@@ -51,10 +54,11 @@ Bug fixes
51
54
* Fixed an assert that could happen when in a connection where the peer device is transmitting on S8 Coded PHY.
52
55
This issue was present in v2.6 and v2.7 releases. (DRGN-22652)
53
56
* Fixed an issue where the extended scanner would not generate a truncated advertising report after the coexistence interface aborted the reception of an ``AUX_CHAIN_IND`` packet. (DRGN-22686)
54
-
* Fixed a very rare issue where the controller stopped generating advertising reports. (DRGN-22678)
55
-
On nRF52 Series and nRF53 Series this would happen at least one hour after the scanner started.
56
-
On nRF54L and nRF54H Series this would occur immediately after the scanner started.
57
-
In would only happen when:
57
+
* Fixed a very rare issue where the controller stopped generating advertising reports.
58
+
On nRF52 Series and nRF53 Series devices, this would happen at least one hour after the scanner started.
59
+
On nRF54L and nRF54H Series devices, this would occur immediately after the scanner started. (DRGN-22678)
60
+
61
+
It would only happen when one of the following applies:
58
62
59
63
* There was another central-like scheduling activity running. Examples of roles with such activities are the ACL central, periodic advertiser, isochronous broadcaster and the CIS central.
60
64
This activity was configured with an event length or event spacing equal or greater than the scan interval.
@@ -64,17 +68,22 @@ Bug fixes
64
68
* Fixed a rare issue where the scanner would be stuck in the synchronizing state after failing to receive an ``AUX_ADV_IND`` packet.
65
69
This could only happen when the corresponding ``ADV_EXT_IND`` packet contained a resolvable address, private address resolution is enabled, and the periodic advertising list is not used. (DRGN-22230)
66
70
* Fixed an issue where the controller could generate the LE Advertising Set Terminated event one event sooner than expected. (DRGN-22705)
67
-
This could only happen when (all of the following)
71
+
72
+
This could only happen when all of the following apply:
73
+
68
74
* a non-zero Max_Extended_Advertising_Events parameter was used in the LE Set Extended Advertising Enable command.
69
75
* other ongoing activities in the controller prevented the first advertising event from taking place when the advertising set was created.
70
76
* Fixed an issue where calling the :c:func:`sdc_hci_cmd_vs_zephyr_write_tx_power` function without the LE Power Control feature enabled could cause the controller to de-reference a NULL pointer. (DRGN-22930)
71
77
* Fixed an issue where the Central failed to receive the last packet in an isochronous event.
72
78
This could only happen if the Connected Isochronous Stream Creation procedure was initiated by the host before the Encryption Start procedure completed. (DRGN-22879)
73
79
* Fixed an assert that could happen when using the coexistence interface. (DRGN-23002)
80
+
74
81
This could happen when any of the following controller activities were ongoing:
82
+
75
83
* Isochronous Broadcaster
76
84
* Connected Isochronous channel in the peripheral role
77
85
* Periodic Sync with Responses
86
+
* Fixed an issue where LE Power Control was not being used for CISes which are not the first CIS in a CIG. (DRGN-23291)
@@ -360,12 +361,21 @@ Here :math:`\mathsf{C1}` can utilize the free time left by a previously disconne
360
361
361
362
Multilink scheduling and Connection Event Length Extension
362
363
363
-
Scanner timing
364
-
**************
364
+
Scanner and Initiator timing
365
+
************************
365
366
366
367
Scanning is a periodic activity where the |controller| listens for packets from Advertisers.
367
-
When the |controller| starts scanning, it will listen for packets on the primary advertising channels.
368
-
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.
368
+
Initiating is a periodic activity where the |controller| tries to connect to an Advertiser by first listening for packets from an Advertiser.
369
+
When the |controller| starts scanning or initiating, it will listen for packets on the primary advertising channels.
370
+
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.
371
+
372
+
The `Primary channel Scanner timing`_ and `Secondary channel Scanner timing`_ sections describe how scanner and initiator timing-events are scheduled.
373
+
The sections only refer to scanner timing-events, but initiator timing-events are scheduled in the same way.
374
+
375
+
.. note::
376
+
The priority of scanner and initiator timing-events are different.
377
+
See :ref:`scheduling_priorities_table` for details.
378
+
369
379
370
380
Primary channel Scanner timing
371
381
==============================
@@ -467,6 +477,25 @@ Therefore, the Scanner cannot decide when the secondary scanning timing-events w
467
477
Scanner timing - secondary scan timing-events will interleave with connections
468
478
469
479
480
+
Concurrent scanner and initiator timing
481
+
=======================================
482
+
483
+
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.
484
+
The scanner and initiator timing-events will be combined or scheduled separately depending on the parameters provided when starting the scanner and initiator.
485
+
When the timing-events are combined, each received packet is received and processed both by the scanner and initiator.
486
+
When the timing-events are scheduled separately, only one of the roles is processing an incoming packet.
487
+
488
+
The timing-events are combined only if all the following conditions are met:
489
+
490
+
* The scanner is configured to run with a scan duration of 0 (without timeout).
491
+
* The scanner and initiator are configured to scan on the same primary PHYs.
492
+
* The scanner and initiator are configured to use the same own address type.
493
+
* The scanner and initiator have the same scan interval configuration.
494
+
* The scanner and initiator have the same scan window configuration.
495
+
496
+
In most cases it is more efficient to have the timing-events combined, because then incoming packets will be processed by both roles.
497
+
This means that the application should use parameters that meet the conditions outlined above, unless the specific use case dictates otherwise.
0 commit comments