Key facts:
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.