Bluetooth® Low Energy (BLE) Link Layer Device Address Roles and States
From the Bluetooth® Low Energy (BLE) link layer perspective, the following role pairs are defined:
- Advertiser/Scanner (Initiator)
- Slave/Master
- Broadcaster/Observer
The roles exist and evolve during various phases of discovery/connection during Unicast (peer-peer) or Broadcast connections.
Unicast (Peer-Peer) Connection
The following diagram depicts two BLE hosts, initially in a Standby (unconnected) state. They enter a Discovery state whereby the device wishing to be discovered becomes the Advertiser and the host wishing to connect becomes a Scanner. The Advertiser sends advertising packets containing basic information about the host. All Scanners receive these packets.
At some point, the Scanner (after filtering/analyzing information contained in the advertising packets) becomes an Initiator and decides to initiate a connection with a specific advertiser. This is known as the Connecting phase and is highlighted by the Initiator sending a CONNECT_REQ advertising packet to the Advertiser:
Finally, the Advertiser accepts the connection request, thus becoming the Slave while the Initiator becomes the Master. This is known as the Connected phase:
Note that the Link Layer Master is also the GAP Central and GATT Client, while the link layer Slave is the GAP Peripheral and GATT Server.
Broadcast Connection
For broadcast connections, the link layer roles do not change. The defined roles are Broadcaster (the host sending the packets) and Observer.
Note:
- Messages are one-way
- Messages are one-to-many
- ADV_IND is one of three advertising packet types that can be used by Broadcasters to broadcast data to Observers
Link Layer States
As shown in the accompanying image, these roles are defined in the five states of the link layer state machine:
It's important to note that vendor-specific state labels are often substituted for the standard ones mentioned above. For example, the BM70 radio defines the following labels for its link layer states:
Note the additional state (Shutdown) which is not defined in the BLE specification.