What are Bluetooth Low Energy Packet Formats?
Summary
This article details the Bluetooth LE packet formats for different applications from IoT to Automotive.
1. Link layer packet format
1.1 Bluetooth LE Protocol stack
The Bluetooth LE protocol stack is composed by a Host and a Controller layer organized as per the picture below:
1.2 Link layer packet format
Some additional info can be found in the following document and github resources

2. Advertising Channel packets
2.1 Unidirected Advertising Events
ADV_IND shall be used in connectable and scannable undirected advertising events.
ADV_NONCONN_IND shall be used in non-connectable and non-scannable undirected advertising events.
ADV_SCAN_IND shall be used in scannable undirected advertising events.
More information available here
2.2 Directed Advertising indication
The PDU shall be used in connectable directed advertising events. More info available here.
2.3 (Auxiliary) Scan request

2.4 Scan response

2.5 Auxiliary connection indication
AA: The link layer connection's access address
CRCInit: Initialization value for the CRC calculation
WinSize: The transmitWindowSize value
WinOffset: The transmitWindowOffset value
Interval: Connection interval of data connection
Latency: The connSlaveLatency value
Timeout: The connSupervisionTimeout value
ChM: Channel map which indicates Used and Unused data channels. LSB represents data channel index 0. A bit value of 0 indicates that the channel is Unused and a bit value of 1 indicates that the channel is Used.
Hop: hopIncrement used in the data channel selection algorithm. Random value in the range of 5 to 16.
SCA: used to determine the worst case Master's sleep clock accuracy.

3. Bluetooth beacon applications
3.1 Advertising packet: iBeacon
Useful links to know more about iBeacon advertising packet structure , iBeacon and BLE generic access profile
3.2 Advertising Packet: Eddystone Beacon
More info here on Eddystone protocol specifications and service 

4. Data Channel packets
4.1 Link Layer Packet Format - Data Channel PDU
Packets take between 44 and 2120 μs to transmit.

4.2 Link layer Control Packet
LLID: Indicates whether the packet is an LL Data PDU or an LL Control PDU
NESN: Next expected Sequence Number
SN: Sequence Number
MD: More data
RFU: Reserved for future use

4.3 L2CAP for Different Data Payloads

4.4 Low Energy L2CAP Signaling Packet

4.5 Security Manager Protocol Packet

4.6 Attribute (ATT) Protocol Packet

4.7 LE Data Length Extension (DLE)
LLID: Indicates whether the packet is an LL Data PDU or an LL Control PDU
NESN: Next expected Sequence Number
SN: Sequence Number
MD: More data
RFU: Reserved for future use

4.8 L2CAP Fragmentations (w/o DLE)

4.9 Attribute (ATT) Protocol PDU
