Data Link Layer: L2CAP

The Logical Link Control and Adaptation Layer Protocol (L2CAP) resides in the data link layer. L2CAP provides connection-oriented and connectionless data services to upper layer protocols.

The focus of this protocol is to add protocol multiplexing capability, segmentation and reassembly operation and group abstractions.

It is important to note that L2CAP specification is only defined for ACL logical transports and no SCO support is planned.

Bluetooth data link layer protocols

L2CAP packet structure

L2CAP general packet structure is defined as a basic frame or b-frame.

L2CAP b-frame structure

L2CAP provides different channels (CID - Channel identifier) where different protocols or services can be multiplexed. Some of the most common CIDs are 0x0001 for the Signaling Channel, 0x0002 for the Connectionless Channel or 0x0006 for the SMP (Security Manager Protocol).

Particularly, the Connectionless Channel defines an extended packet structure called group frame or g-frame that provides a second layer for service multiplexing called Protocol/Service Multiplexer or PSM.

L2CAP g-frame structure

PSM services are classified in two ranges. The first is assigned by the Bluetooth SIG while the second is free to be assigned by vendors. Bluetooth SIG assigned PSM services can be found in the Bluetooth Assigned numbers document at Sección 2.5. PSM services are further described in the Bluetooth Core Spec V5.3 Vol 3 Part A Section 4.2.