ACL (asynchronous connectionless) links

Key facts:

ACL packets

The packet type is determined by the TYPE code in the header and the currently selected packet type table (as selected by the LMP_packet_type_table_req message).

Packet type table 0 (default):

0000 NULL 1 slot No payload. Used for acknowledgements or flow control.
0001 POLL 1 slot No payload. Used by the master to poll slaves. Requires acknowledgement.
0010 FHS 1 slot Frequency Hopping Sequence. Contains address, clock, etc. information.
0011 DM1 1 slot Data, Medium rate (2/3 rate FEC) maximum 17 data bytes.
0100 DH1 1 slot Data, High rate (no error correction) maximum 27 data bytes.
1001 AUX1 1 slot Like DH1, but without a CRC; maximum 29 data bytes. Should not be used.
1010 DM3 3 slots Data, Medium rate (2/3 rate FEC) maximum 121 data bytes.
1011 DH3 3 slots Data, High rate (no error correction) maximum 183 data bytes.
1110 DM5 5 slots Data, Medium rate (2/3 rate FEC) maximum 224 data bytes.
1111 DH5 5 slots Data, High rate (no error correction) maximum 339 data bytes.

Packet type table 1 (added to support Enhanced Data Rate modulation, at 2 or 3 MBit/sec):

0000 NULL 1 slot No payload. Used for acknowledgements or flow control.
0001 POLL 1 slot No payload. Used by the master to poll slaves. Requires acknowledgement.
0010 FHS 1 slot Frequency Hopping Sequence. Contains address, clock, etc. information.
0011 DM1 1 slot Data, Medium rate (2/3 rate FEC) maximum 17 data bytes.  
0100 2-DH1 1 slot Data, High rate (no error correction) maximum 54 data bytes, using 2 MBit/sec modulation.
1000 3-DH1 1 slot Data, High rate (no error correction) maximum 83 data bytes, using 3 MBit/sec modulation.
1001 AUX1 1 slot Like DH1, but without a CRC; maximum 29 data bytes. Should not be used.
1010 2-DH3 3 slots Data, High rate (no error correction) maximum 367 data bytes, using 2 MBit/sec modulation.
1011 3-DH3 3 slots Data, High rate (no error correction) maximum 552 data bytes, using 3 MBit/sec modulation.
1110 2-DH5 5 slots Data, High rate (no error correction) maximum 679 data bytes, using 2 MBit/sec modulation.
1111 3-DH5 5 slots Data, High rate (no error correction) maximum 1021 data bytes, using 3 MBit/sec modulation.

For single slot packets using basic rate (1 MBit/sec) modulation, the payload contains:

Header (1 byte), least significant bit first:
L_CH (2 bits): Logical Channel.
01 = continuation of an L2CAP PDU
10 = start of an L2CAP PDU
11 = LMP PDU
FLOW (1 bit): flow control on the ACL link; 0=stop, 1=go.
LENGTH (5 bits): number of bytes of data.
Data (LENGTH bytes).
CRC (16 bits): Cyclic Redundancy Check.

For multi-slot packets, and single slot packets using Enhanced Data Rate (2 or 3 MBit/sec) modulation, the payload contains:

Header (2 bytes), least significant bit first:
L_CH (2 bits): Logical Channel.
01 = continuation of an L2CAP PDU
10 = start of an L2CAP PDU
11 = LMP PDU
FLOW (1 bit): flow control on the ACL link; 0=stop, 1=go.
LENGTH (10 bits): number of bytes of data.
Padding (3 bits): undefined value.
Data (LENGTH bytes).
CRC (16 bits): Cyclic Redundancy Check.