The BLE stack implements the core BLE functionality as defined in Bluetooth Core Specification 5.0. The stack is included as a precompiled library and is included in the BLE Middleware library.
The Link Layer is a hardware-firmware co-implementation, where the key time critical LL functions are implemented in the LL hardware. The LL firmware maintains and controls the key LL procedure state machines. It supports all the BLE chip specific low-power modes**. The BLE Stack is a pre-compiled library** in the BLE_PDL Component.
Device Bonding
The BLE Middleware will store the link key of a connection after pairing with the remote device. If a connection is lost and re-established, the devices will use the previously stored key for the connection. The BLE stack will update the bonding data in RAM while the devices are connected. If the bonding data is to be retained during shutdown, the application can use Cy_BLE_StoreBondingData() API to write the bonding data from RAM to the dedicated Flash location, as defined by the BLE Middleware.
Multi-Connection Support
The BLE Middleware supports up to four simultaneous Multi-Master Multi-Slave (MMMS) BLE connections in any combination of roles. For example, it can be a master of four slave devices (4M), a master of three slave devices and a slave of another device (3M1S), or a slave of four devices (4S), or any other combination.
This single GATT database is reused across all BLE connections.
The common MMMS usage are Multi-Master Single-Slave and Multi-Role when the BLE_PDL Component is configured in all the GAP roles (Central, Peripheral, Observer, and Broadcaster).