Limitations on procedure concurrency

When the SoftDevice has established multiple connections as a Central, the concurrency of protocol procedures will have some limitations.

The Host instantiates both GATT and GAP instances for each connection, while the Security Manager (SM) Initiator has a configurable number of instantiations. The Link Layer also has concurrent procedure limitations that are handled inside the SoftDevice without requiring management from the application.

Table 1. Limitations on procedure concurrency
Protocol procedures Limitation with multiple connections
GATT None. All procedures can be executed in parallel.
GAP None. All procedures can be executed in parallel. Note that some GAP procedures require link layer control procedures (connection parameter update and encryption). In this case, the GAP module will queue the LL procedures and execute them in sequence.
SM None. The procedures for all peripheral connections can be executed in parallel. The number of concurrent procedures for central connections are fully configurable.

The LL Disconnect procedure has no limitations and can be executed on any or all links simultaneously.

The LL connection parameter update on a master link can only be executed on one master link at a time.

Accepting connection parameter update and encryption establishment on a slave link is always allowed irrespective of any control procedure running on master links.