Skip to main content

Bluetooth Core Specification

Part B. Link Layer Specification

vAtlanta r00

This Part describes the Bluetooth Low Energy Link Layer.

1. General description

1.1. Link Layer states

The operation of the Link Layer can be described in terms of a state machine with the following states:

  • Standby State

  • Advertising State

  • Scanning State

  • Initiating State

  • Connection State

  • Synchronization State

  • Isochronous Broadcasting State

The Link Layer state machine allows only one state to be active at a time. The Link Layer shall have at least one Link Layer state machine that supports one of Advertising state or Scanning state. The Link Layer may have multiple instances of the Link Layer state machine.

The Link Layer in the Standby state does not transmit or receive any packets. The Standby state can be entered from any other state.

The Link Layer in the Advertising state will be transmitting advertising physical channel packets and possibly listening to and responding to responses triggered by these advertising physical channel packets. A device in the Advertising state is known as an advertiser. The Advertising state can be entered from the Standby state.

The Link Layer in the Scanning state will be listening for advertising physical channel packets from devices that are advertising. A device in the Scanning state is known as a scanner. The Scanning state can be entered from the Standby state.

The Link Layer in the Initiating state will be listening for advertising physical channel packets from a specific device(s) and responding to these packets to initiate a connection with another device. A device in the Initiating state is known as an initiator. The Initiating state can be entered from the Standby state.

The Connection state can be entered either from the Initiating state or the Advertising state. A device in the Connection state is known as being in a connection.

Within the Connection state, two roles are defined:

  • Central Role

  • Peripheral Role

When entered from the Initiating state, the Connection state shall be in the Central Role. When entered from the Advertising state, the Connection state shall be in the Peripheral Role.

The Link Layer in the Central Role will communicate with a device in the Peripheral Role and defines the timings of transmissions.

The Link Layer in the Peripheral Role will communicate with a single device in the Central Role.

The Link Layer in the Synchronization State will be listening for periodic physical channel packets forming a specific periodic advertising train, coming from a specified device that is transmitting periodic advertising. The Synchronization State can be entered from the Standby State. While in this State, the Host may direct the Link Layer to listen for isochronous data packets coming from a specified device that is transmitting a Broadcast Isochronous Group (BIG). A device that is in the Synchronization State and is receiving isochronous data packets is referred as a Synchronized Receiver.

The Link Layer in the Isochronous Broadcasting State will transmit isochronous data packets on an isochronous physical channel. The Isochronous Broadcasting State can be entered from the Standby State. A device that is in the Isochronous Broadcasting State is referred as an Isochronous Broadcaster.

State diagram of the Link Layer state machine
Figure 1.1: State diagram of the Link Layer state machine


1.1.1. Permitted state and role combinations

The Link Layer may optionally support multiple state machines. If it does support multiple state machines, then any combination of states and roles may be supported. In particular, subject to the requirements in Section 4.5, the Link Layer may be in the Connection State multiple times with any mix of Central Role and Peripheral Role.

Note: A device supporting scanning for periodic advertising (see Section 4.4.3.4) must support at least two state machines.

A Link Layer implementation is not required to support all the possible state combinations that are allowed by the specification. However, if it supports a state or state combination given in the "combination A" column of Table 1.1, it shall also support the corresponding state or state combination in the "combination B" column.

Combination A

Combination B

Initiating plus any combination C of other states

Connection (Central role) plus the same combination C

Connection (Central role) plus Initiating plus any combination C of other states

Connection (Central role) to more than one device in the Peripheral role plus the same

combination C

A connectable Advertising state plus any combination C of other states

Connection (Peripheral role) plus the same

combination C

Connection (Peripheral role) plus a connectable Advertising state plus any combination C of other states

Connection (Peripheral role) to more than one device in the Central role plus the same combination C

Table 1.1: Requirements on supported states and state combinations


In each case, the combination of other states C may be empty. In the last two rows, "other states" includes other connectable Advertising states.

1.1.2. Devices supporting only some states

Devices supporting only some Link Layer states or only one of the two roles within the Connection state are not required to support features (including supporting particular PDUs, procedures, data lengths, or HCI commands or particular features of an HCI command) that are only used by a state or mode that the device does not support.

1.2. Bit ordering

The bit ordering when defining fields within the packet or Protocol Data Unit (PDU) in the Link Layer specification follows the little-endian format. The following rules apply:

  • The Least Significant Bit (LSB) corresponds to b0

  • The LSB is the first bit sent over the air

  • In illustrations, the LSB is shown on the left side

Furthermore, data fields defined in the Link Layer, such as the PDU header fields, shall be transmitted with the LSB first. For instance, a 3-bit parameter X=3 is sent as:

b0b1b2 = 110

Over the air, 1 is sent first, 1 is sent next, and 0 is sent last. This is shown as 110 in the specification.

Binary field values specified in the specification that follow the format 0b10101010 (e.g., the advertising physical channel Access Address in Section 2.1.2) are written with the MSB to the left.

Multi-octet fields, with the exception of the Cyclic Redundancy Check (CRC) and the Message Integrity Check (MIC), shall be transmitted with the least significant octet first. Each octet within multi-octet fields, with the exception of the CRC (see Section 3.1.1), shall be transmitted in LSB first order. For example, the 48-bit addresses in the advertising physical channel PDUs shall be transmitted with the least significant octet first, followed by the remainder of the five octets in increasing order.

Multi-octet field values specified in the specification (e.g. the CRC initial value in Section 2.3.3.1) are written with the most significant octet to the left; for example in 0x112233445566, the octet 0x11 is the most significant octet.

Where a packet or PDU is shown in a figure as containing more than one field, the fields shall be transmitted in the order shown in the figure, leftmost first.

1.3. Device address

Devices are identified using a device address and an address type; the address type indicates either a public device address or a random device address. A public device address and a random device address are both 48 bits in length.

A device shall use at least one type of device address and may use both. The device may be addressed by any device address that it uses.

A device's Identity Address is a Public Device Address or Random Static Device Address that it uses in packets it transmits. If a device is using Resolvable Private Addresses, it shall also have an Identity Address.

Whenever two device addresses are compared, the comparison shall include the device address type (i.e. if the two addresses have different types, they are different even if the two 48-bit addresses are the same).

1.3.1. Public device address

The public device address shall be created in accordance with [Vol 2] Part B, Section 1.2, with the exception that the restriction on LAP values does not apply unless the public device address will also be used as a BD_ADDR for a BR/EDR Controller.

1.3.2. Random device address

The random device address may be of either of the following:

  • Static address

  • Private address.

The specific sub-type is indicated by the two most significant bits of the random device address as shown in Table 1.2.

Address [47:46]

Sub-Type

0b00

Non-resolvable private address

0b01

Resolvable private address

0b10

Reserved for future use

0b11

Static device address

Table 1.2: Sub-types of random device addresses


The term random device address refers to both static and private address types.

The transmission of a random device address is optional. A device shall accept the reception of a random device address from a remote device.

1.3.2.1. Static device address

A static address is a 48-bit randomly generated address and shall meet the following requirements:

  • At least one bit of the random part of the address shall be 0

  • At least one bit of the random part of the address shall be 1

The format of a static address is shown in Figure 1.2.

Format of static address
Figure 1.2: Format of static address


A device may choose to initialize its static address to a new value after each power cycle. A device shall not change its static address value once initialized until the device is power cycled.

Note

Note: If the static address of a device is changed, then the address stored in peer devices will not be valid and the ability to reconnect using the old address will be lost.

1.3.2.2. Private device address generation

The private address may be of either of the following two sub-types:

  • Non-resolvable private address

  • Resolvable private address

To generate a non-resolvable address, the device shall generate a 48-bit address with the following requirements:

  • At least one bit of the random part of the address shall be 1

  • At least one bit of the random part of the address shall be 0

  • The address shall not be equal to the public address

The format of a non-resolvable private address is shown in Figure 1.3.

Format of non-resolvable private address
Figure 1.3: Format of non-resolvable private address


To generate a resolvable private address, the device must have either the Local Identity Resolving Key (IRK) or the Peer Identity Resolving Key (IRK). The resolvable private address shall be generated with the IRK and a randomly generated 24-bit number. The random number is known as prand and shall meet the following requirements:

  • At least one bit of the random part of prand shall be 0

  • At least one bit of the random part of prand shall be 1

The format of the resolvable private address is shown in Figure 1.4.

Format of resolvable private address
Figure 1.4: Format of resolvable private address


The hash is generated using the random address function ah defined in [Vol 3] Part H, Section 2.2.2 with the input parameter k set to the device’s IRK and the input parameter r set to prand.

hash = ah(IRK, prand)

The prand and hash are concatenated to generate the random address in the following manner:

randomAddress = prand || hash

The least significant octet of hash becomes the least significant octet of randomAddress and the most significant octet of prand becomes the most significant octet of randomAddress.

1.3.2.3. Private device address resolution

A resolvable private address may be resolved if the corresponding device’s IRK is available using this procedure. If a resolvable private address is resolved, the device can associate this address with the peer device.

The resolvable private address (RPA) is divided into a 24-bit random part (prand) and a 24-bit hash part (hash). The least significant octet of the RPA becomes the least significant octet of hash and the most significant octet of RPA becomes the most significant octet of prand. A localHash value is then generated using the random address hash function ah defined in [Vol 3] Part H, Section 2.2.2 with the input parameter k set to IRK of the known device and the input parameter r set to the prand value extracted from the RPA.

localHash = ah(IRK, prand)

The localHash value is then compared with the hash value extracted from RPA. If the localHash value matches the extracted hash value, then the identity of the peer device has been resolved.

If a device has more than one stored IRK, the device repeats the above procedure for each stored IRK to determine if the received resolvable private address is associated with a stored IRK, until either address resolution is successful for one of the IRKs or all have been tried.

Note

Note: A device that cannot resolve a private address within T_IFS_150 may respond on the reception of the next event.

A non-resolvable private address cannot be resolved.

1.4. Physical channel

As specified in [Vol 6] Part A, Section 2, 40 RF channels are defined in the 2.4 GHz ISM band. These RF channels are divided into 3 RF channels known as the "primary advertising channels", used for initial advertising and all legacy advertising activities, and 37 RF channels known as the "general-purpose channels", used for the majority of communications. Each of these RF channels is allocated a unique channel index (see Section 1.4.1).

These two groups of RF channels are used in four LE physical channels: advertising, periodic, isochronous, and data. The advertising physical channel uses both groups for discovering devices, initiating a connection, and broadcasting data; within this, the primary advertising channels form the primary advertising physical channel and the general-purpose channels form the secondary advertising physical channel. The remaining physical channels only use the general-purpose channels.

Two devices that wish to communicate use a shared physical channel. To achieve this, their transceivers must be tuned to the same RF channel at the same time.

Given that the number of RF channels is limited, and that many Bluetooth devices may be operating independently within the same spatial and temporal area, there is a strong likelihood of two independent Bluetooth devices having their transceivers tuned to the same RF channel, resulting in a physical channel collision. To mitigate the unwanted effects of this collision, each transmission on a physical channel starts with an Access Address that is used as a correlation code by devices tuned to the physical channel. This Access Address is a property of the physical channel. The Access Address is present at the start of every transmitted packet.

The Link Layer uses one physical channel at a given time.

Whenever the Link Layer is synchronized to the timing, frequency, and Access Address of a physical channel, it is said to be 'connected' on the data physical channel or ‘synchronized’ to the periodic physical channel or isochronous physical channel (whether or not it is actively involved in communications over the channel).

1.4.1. Physical channel indices

Table 1.3 shows the mapping from RF Channel to Physical Channel Index and RF Channel group. A ‘●’ in Table 1.3 indicates the RF channel and index are part of the specified channel group; a blank cell indicates that they are not part of that group.

RF Channel (Center Frequency)

Physical Channel Index

RF Channel Group

Primary Advertising

General purpose

2402 MHz

37

2404 MHz

0

2406 MHz

1

...

...

...

...

2424 MHz

10

2426 MHz

38

2428 MHz

11

2430 MHz

12

...

...

...

...

2478 MHz

36

2480 MHz

39

Table 1.3: Mapping of RF channel to physical channel index and RF channel group


2. Air interface packets

LE devices shall use the packets as defined in the following sections. There are two basic formats: one for the LE Uncoded PHYs, described in Section 2.1, and one for the LE Coded PHY, described in Section 2.2.

Additional packet formats specific to Channel Sounding are defined in [Vol 6] Part H, Section 2

2.1. Packet format for the LE Uncoded PHYs

The following packet format is defined for the LE Uncoded PHYs (LE 1M and LE 2M) and is used for packets on all physical channels.

This packet format is shown in Figure 2.1. Each packet consists of four mandatory fields and one optional field. The mandatory fields are Preamble, Access Address, PDU, and CRC. The optional field is Constant Tone Extension.

Link Layer packet format for the LE Uncoded PHYs
Figure 2.1: Link Layer packet format for the LE Uncoded PHYs


The preamble is 1 octet when transmitting or receiving on the LE 1M PHY and 2 octets when transmitting or receiving on the LE 2M PHY. The Access Address is 4 octets. The PDU range is from 2 to 258 octets. The CRC is 3 octets.

The Preamble is transmitted first, followed by the Access Address, PDU, CRC, and Constant Tone Extension (if present) in that order. The entire packet is transmitted at the same symbol rate (either 1 Msym/s or 2 Msym/s modulation).

Packets (not including the Constant Tone Extension) take between 44 and 2128 µs to transmit.

When the Constant Tone Extension is present, the Constant Tone Extension duration is between 16 and 160 µs, as shown in Figure 2.1.

2.1.1. Preamble

All Link Layer packets have a preamble which is used in the receiver to perform frequency synchronization, symbol timing estimation, and Automatic Gain Control training. The preamble is a fixed sequence of alternating 0 and 1 bits. For packets transmitted on the LE 1M PHY, the preamble is 8 bits; for packets transmitted on the LE 2M PHY, the preamble is 16 bits. The first bit of the preamble (in transmission order) shall be the same as the LSB of the Access Address. The preamble is shown in Figure 2.2.

Preamble
Figure 2.2: Preamble


2.1.2. Access Address

All AUX_SYNC_IND, AUX_CHAIN_IND, AUX_SYNC_SUBEVENT_IND, AUX_CONNECT_REQ, and AUX_CONNECT_RSP PDUs sent on a periodic advertising train shall use the Access Address (AA) value set in the SyncInfo field (see Section 2.3.4.6) contained in the AUX_ADV_IND PDU that describes the train. All AUX_SYNC_SUBEVENT_RSP PDUs sent on a periodic advertising with responses train shall use the Access Address value set in the Periodic Advertising Response Timing Information (see Section 1.24 of [1]) contained in the AUX_ADV_IND PDU that describes the train. For a given periodic advertising with responses train, the AA value of the AUX_SYNC_SUBEVENT_RSP PDUs shall be different from the AA value of the AUX_SYNC_SUBEVENT_IND PDUs.

The Access Address for all other advertising physical channel packets shall be 0b10001110_10001001_10111110_11010110 (0x8E89BED6).

It is intended that each Link Layer connection between any two devices, each BIS, and each periodic advertising train has a different Access Address.

The Link Layer in the Initiating state shall generate a new Access Address for each initiating PDU it sends (see Section 2.3.3.1). The Link Layer in the Advertising state shall generate a new Access Address each time that it enables a periodic advertising train and, for periodic advertising with responses, a second Access Address for the responses. The first address is sent in the SyncInfo field (see Section 2.3.4.6) of PDUs referring to that periodic advertising train and the second in the Periodic Advertising Response Timing Information (see Section 1.24 of [1]) for the train.

The Link Layer in the Central Role in the Connected State shall generate a new Access Address for each Connected Isochronous Stream (CIS) it creates. The address is sent in the Link Layer Control PDU that is used to create the CIS (see Section 2.4.2.31).

The Access Address shall be a 32-bit value. Each time it needs a new Access Address (except for a Broadcast Isochronous Stream (BIS)), the Link Layer shall generate a new random value.

Each Access Address shall meet the following requirements:

  • It shall not be the Access Address for any existing ACL connection or CIS on this device.

  • It shall not be the Access Address for any enabled periodic advertising train.

  • It shall not be the Access Address for any existing BIS on this device.

  • It shall not be the Access Address for any existing BIG Control logical link on this device.

  • If it is the Access Address for a new CIS, it shall differ by more than one bit from any other Access Address being used on the same device.

  • It shall have no more than six consecutive zeros or ones.

  • It shall not be the advertising physical channel packets’ Access Address.

  • It shall not be a sequence that differs from the advertising physical channel packets’ Access Address by only one bit.

  • It shall not have all four octets equal.

  • It shall have no more than 24 transitions.

  • It shall have a minimum of two transitions in the most significant six bits.

The Link Layer in the Isochronous Broadcasting State shall generate a new Seed Access Address (SAA) for each BIG. The Access Addresses for the constituent BIS(es) are derived from the SAA. The SAA shall be a random number that meets the following requirements:

SAA19 = SAA15 SAA22 = SAA16 ≠ SAA15 SAA25 = 0 SAA23 = 1

For any pair of BIGs transmitted by the same device, the SAA15-0 values shall differ in at least two bits.

The Access Address for each BIS and for the BIG Control logical link (see Section 4.4.6.7) in a BIG shall be derived from the SAA for that BIG.

For each BIS logical transport, the Access Address shall be equal to the SAA bit-wise XORed with a diversifier word (DW) for that logical transport derived from a Diversifier (D) as follows:

D = ((35 × n) + 42) mod 128 where n is the BIS number, or 0 for the BIG Control logical link DW = 0bD0D0D0D0D0D 0D1D6_D10D5D40D3D 20_00000000_00000000

For example, if n=1, D=77=0b01001101 and DW = 0xFD060000.

The seed for the random number generator shall be from a physical source of entropy and should have at least 20 bits of entropy.

If the random number and, in the case of an SAA, the derived Access Addresses for the BIS and the BIG Control logical link do not meet the above requirements, new random numbers shall be generated until the requirements are met.

On an implementation that also supports the LE Coded PHY (see Section 2.2), the Access Address shall also meet the following requirements:

  • It shall have at least three ones in the least significant 8 bits.

  • It shall have no more than eleven transitions in the least significant 16 bits.

2.1.3. PDU

The preamble and Access Address are followed by a PDU. When a packet is transmitted on either the primary or secondary advertising physical channel or the periodic physical channel, the PDU shall be the Advertising Physical Channel PDU as defined in Section 2.3. When a packet is transmitted on the data physical channel, the PDU shall be the Data Physical Channel PDU as defined in Section 2.4. When a packet is transmitted on the isochronous physical channel, the PDU shall be one of the Isochronous Physical Channel PDUs as defined in Section 2.6.

2.1.4. CRC

The PDU is followed by a 24-bit CRC. It shall be calculated over the PDU. The CRC polynomial is defined in Section 3.1.1.

2.1.5. Constant Tone Extension

The CRC is followed by an optional Constant Tone Extension, which consists of a constantly modulated series of unwhitened 1s. The Constant Tone Extension is not included in CRC or MIC calculations. The Constant Tone Extension field shall not be present in a packet sent on the isochronous physical channel. The Constant Tone Extension is discussed further in Section 2.5.

2.2. Packet format for the LE Coded PHY

The following packet format is defined for the LE Coded PHY and is used for packets on all physical channels. This packet format is shown in Figure 2.3.

Link Layer packet format for the LE Coded PHY
Figure 2.3: Link Layer packet format for the LE Coded PHY


Each packet consists of the Preamble, FEC block 1, and FEC block 2.

The Preamble is not coded.

The FEC block 1 consists of three fields: Access Address, Coding Indicator (CI), and TERM1. These shall use the S=8 coding scheme as defined in Section 3.3.1.

The CI determines which coding scheme is used for FEC block 2.

The FEC block 2 consists of three fields: PDU, CRC, and TERM2. These shall use either the S=2 or S=8 coding scheme as defined in Section 3.3, depending on the value of the CI.

The entire packet is transmitted with 1 Msym/s modulation.

Table 2.1 captures the size and duration of the data packet fields.

Fields

Preamble

Access Address

CI

TERM1

PDU

CRC

TERM2

Number of Bits

Uncoded

32

2

3

16 – 2056

24

3

Duration when using S=8 coding (µs)

80

256

16

24

128 – 16448

192

24

Duration when using S=2 coding (µs)

80

256

16

24

32 – 4112

48

6

Table 2.1: LE Coded PHY field sizes and durations in microseconds


Packets take between 462 and 17040 µs to transmit.

Note

Note: There is no Constant Tone Extension on the LE Coded PHY.

2.2.1. Preamble

The Preamble is 80 symbols in length and consists of 10 repetitions of the symbol pattern '00111100' (in transmission order).

2.2.2. Access Address

The Access Address is specified in Section 2.1.2.

2.2.3. Coding Indicator

The Coding Indicator (CI) consists of two bits as defined in Table 2.2.

CI

Meaning

0b00

FEC Block 2 coded using S=8

0b01

FEC Block 2 coded using S=2

All other values

Reserved for future use

Table 2.2: Meaning of CI


2.2.4. PDU

When a packet is transmitted on either the primary or secondary advertising physical channel or the periodic physical channel, the PDU shall be the Advertising Physical Channel PDU as defined in Section 2.3. When a packet is transmitted on the data physical channel, the PDU shall be the Data Physical Channel PDU as defined in Section 2.4. When a packet is transmitted on the isochronous physical channel, the PDU shall be one of the Isochronous Physical Channel PDUs as defined in Section 2.6.

2.2.5. CRC

The CRC is 24 bits in length and the value is calculated over all the PDU bits. The CRC generator polynomial is defined in Section 3.1.1.

2.2.6. TERM1 and TERM2

There is a terminator at the end of each FEC block referred to as TERM1 and TERM2. Each terminator is 3 bits long and forms the termination sequence defined in Section 3.3.1.

2.3. Advertising physical channel PDU

Note

Note: Despite the name, the advertising physical channel PDU is also used on the periodic physical channel.

The advertising physical channel PDU has a 16-bit header and a variable size payload. Its format is as shown in Figure 2.4. The 16-bit Header field of the advertising physical channel PDU is as shown in Figure 2.5.

Advertising physical channel PDU
Figure 2.4: Advertising physical channel PDU


Advertising physical channel PDU header
Figure 2.5: Advertising physical channel PDU header


The PDU Type field of the advertising physical channel PDU that is contained in the header indicates the PDU type as defined in Table 2.3, which also shows which channel and which PHYs the packet may appear on. A ‘●’ in Table 2.3 indicates that the PDU may appear on that PHY; a blank cell indicates that the PDU shall not appear on that PHY.

PDU Type

PDU Name

Physical Channel

Permitted PHYs

LE 1M

LE 2M

LE Coded

0b0000

ADV_IND

Primary Advertising

0b0001

ADV_DIRECT_­IND

Primary Advertising

0b0010

ADV_NONCONN_­IND

Primary Advertising

0b0011

SCAN_REQ

Primary Advertising

AUX_SCAN_­REQ

Secondary Advertising

0b0100

SCAN_RSP

Primary Advertising

0b0101

CONNECT_IND

Primary Advertising

AUX_CONNECT_­REQ

Secondary Advertising

0b0110

ADV_SCAN_­IND

Primary Advertising

0b0111

ADV_EXT_­IND

Primary Advertising

AUX_ADV_­IND

Secondary Advertising

AUX_SCAN_­RSP

Secondary Advertising

AUX_SYNC_­IND

Periodic

AUX_CHAIN_­IND

Secondary Advertising and Periodic

AUX_SYNC_­SUBEVENT_­IND

Periodic

AUX_SYNC_­SUBEVENT_­RSP

Periodic

0b1000

AUX_CONNECT_­RSP

Secondary Advertising

0b1001

ADV_DECISION_IND

Primary Advertising

All other values

Reserved for future use

Table 2.3: Advertising physical channel PDU header’s PDU Type field encoding


The ChSel, TxAdd and RxAdd fields of the advertising physical channel PDU that are contained in the header contain information specific to the PDU type defined for each advertising physical channel PDU separately. If the ChSel, TxAdd or RxAdd fields are not defined as used in a given PDU then they shall be considered reserved for future use.

The Length field of the advertising physical channel PDU header indicates the length of the payload in octets. The valid range of the Length field shall be 1 to 255 octets.

The Payload fields in the advertising physical channel PDUs are specific to the PDU Type and are defined in Section 2.3.1 to Section 2.3.4. The PDU Types marked as Reserved for future use shall not be sent and shall be ignored upon receipt.

Within advertising physical channel PDUs, advertising data or scan response data from the Host may be included in the Payload in some PDU Types. The format of this data is defined in [Vol 3] Part C, Section 11.

Some advertising physical channel PDUs contain an AuxPtr field (see Section 2.3.4.5) which points to a packet containing another advertising physical channel PDU. In this case, the second packet and PDU are the auxiliary packet and auxiliary PDU of the original PDU, which in turn is the superior packet and superior PDU of the second one.

Note

Note: A PDU can only have one auxiliary PDU but more than one superior PDU.

Given a packet, its subordinate set consists of its auxiliary packet, if any, and the subordinate set of the auxiliary packet. A packet without an AuxPtr field has an empty subordinate set.

2.3.1. Advertising PDUs

The following advertising physical channel PDU Types are called advertising PDUs:

  • ADV_IND

  • ADV_DIRECT_IND

  • ADV_NONCONN_IND

  • ADV_SCAN_IND

  • ADV_EXT_IND

  • ADV_DECISION_IND

  • AUX_ADV_IND

  • AUX_SYNC_IND

  • AUX_CHAIN_IND

  • AUX_SYNC_SUBEVENT_IND

  • AUX_SYNC_SUBEVENT_RSP

These PDUs are sent by the Link Layer in the Advertising state and received by a Link Layer in the Scanning state or Initiating state. The ADV_IND, ADV_DIRECT_IND, ADV_NONCONN_IND, and ADV_SCAN_IND PDUs are called “legacy advertising PDUs”. The ADV_EXT_IND, ADV_DECISION_IND, AUX_ADV_IND, AUX_SYNC_IND, AUX_CHAIN_IND, AUX_SYNC_SUBEVENT_IND, and AUX_SYNC_SUBEVENT_RSP PDUs are called “extended advertising PDUs”. The ADV_DECISION_IND PDU is also called a “decision PDU”. Advertising events using legacy advertising PDUs are called “legacy advertising events”.

2.3.1.1. ADV_IND

The Payload field of the ADV_IND PDU is shown in Figure 2.6. The PDU shall be used in connectable and scannable undirected advertising events. The TxAdd in the advertising physical channel PDU header indicates whether the advertiser’s address in the AdvA field is public (TxAdd = 0) or random (TxAdd = 1). The ChSel field in the advertising physical channel PDU header shall be set to 1 if the advertiser supports the LE Channel Selection Algorithm #2 feature (see Section 4.5.8.3).

ADV_IND PDU payload
Figure 2.6: ADV_IND PDU payload


The AdvA field shall contain the advertiser’s public or random device address as indicated by TxAdd. The AdvData field, if not empty, shall contain Advertising Data from the advertiser’s Host.

2.3.1.2. ADV_DIRECT_IND

The Payload field of the ADV_DIRECT_IND PDU is shown in Figure 2.7. The PDU shall only be used in connectable directed advertising events. The TxAdd in the advertising physical channel PDU header indicates whether the advertiser’s address in the AdvA field is public (TxAdd = 0) or random (TxAdd = 1). The RxAdd in the advertising physical channel PDU header indicates whether the target’s address in the TargetA field is public (RxAdd = 0) or random (RxAdd = 1). The ChSel field in the advertising physical channel PDU header shall be set to 1 if the advertiser supports the LE Channel Selection Algorithm #2 feature (see Section 4.5.8.3).

ADV_DIRECT_IND PDU Payload
Figure 2.7: ADV_DIRECT_IND PDU Payload


The AdvA field shall contain the advertiser’s public or random device address as indicated by TxAdd. The TargetA field is the address of the device to which this PDU is addressed. The TargetA field shall contain the target’s public or random device address as indicated by RxAdd.

Note

Note: This packet does not contain any Host data.

2.3.1.3. ADV_NONCONN_IND

The Payload field of the ADV_NONCONN_IND PDU is shown in Figure 2.8. The PDU shall only be used in non-connectable and non-scannable undirected advertising events. The TxAdd in the advertising physical channel PDU header indicates whether the advertiser’s address in the AdvA field is public (TxAdd = 0) or random (TxAdd = 1).

ADV_NONCONN_IND PDU Payload
Figure 2.8: ADV_NONCONN_IND PDU Payload


The AdvA field shall contain the advertiser’s public or random device address as indicated by TxAdd. The AdvData field, if not empty, shall contain Advertising Data from the advertiser’s Host.

2.3.1.4. ADV_SCAN_IND

The Payload field of the ADV_SCAN_IND PDU is shown in Figure 2.9. The PDU shall only be used in scannable undirected advertising events. The TxAdd in the advertising physical channel PDU header indicates whether the advertiser’s address in the AdvA field is public (TxAdd = 0) or random (TxAdd = 1).

ADV_SCAN_IND PDU Payload
Figure 2.9: ADV_SCAN_IND PDU Payload


The AdvA field shall contain the advertiser’s public or random device address as indicated by TxAdd. The AdvData field, if not empty, shall contain Advertising Data from the advertiser’s Host.

2.3.1.5. ADV_EXT_IND

The ADV_EXT_IND PDU uses the Common Extended Advertising Payload Format described in Section 2.3.4. The PDU may be used in the advertising events indicated by the AdvMode field value. An advertising event using an ADV_EXT_IND PDU is directed if, and only if, either the TargetA field is present or the AuxPtr field is present and points to a PDU where the TargetA field is present.

The Common Extended Advertising Payload Format fields permitted in the ADV_EXT_IND PDU are shown in Table 2.4.

Common Extended Advertising Payload Format fields

Event Type

Adv Mode

AdvA

TargetA

CTE Info

ADI

Aux Ptr

Sync Info

Tx Power

ACAD

Adv Data

Non-Connectable and Non-Scannable Undirected without auxiliary packet

0b00

M

X

X

X

X

X

O

X

X

Non-Connectable and Non-Scannable Undirected with auxiliary packet

0b00

C.1

X

X

M

M

X

C.1

X

X

Non-Connectable and Non-Scannable Directed without auxiliary packet

0b00

M

M

X

X

X

X

O

X

X

Non-Connectable and Non-Scannable Directed with auxiliary packet

0b00

C.1

C.1

X

M

M

X

C.1

X

X

Connectable Undirected

0b01

X

X

X

M

M

X

C.1

X

X

Connectable Directed

0b01

X

X

X

M

M

X

C.1

X

X

Scannable

Undirected

0b10

X

X

X

M

M

X

C.1

X

X

Scannable Directed

0b10

X

X

X

M

M

X

C.1

X

X

RFU

0b11

C.1:

This field is optional on the LE 1M PHY and reserved for future use on the LE Coded PHY.

Table 2.4: Common Extended Advertising Payload Format fields permitted in the ADV_EXT_IND PDU


For the non-connectable and non-scannable directed and non-connectable and non-scannable undirected event types without ACAD or AdvData, the Controller can choose whether or not to use an auxiliary packet. See Sections 4.4.2.6 and 4.4.2.9.

Fields reserved for future use shall not be present when the packet is sent and shall be ignored when received.

Any auxiliary packet shall be an AUX_ADV_IND packet.

2.3.1.6. AUX_ADV_IND

The AUX_ADV_IND PDU uses the Common Extended Advertising Payload Format described in Section 2.3.4. The PDU may be used in the advertising events indicated by the AdvMode field value.

The AdvMode field indicates the type of advertising event the AUX_ADV_IND packet is being used for and shall have the same value as the field in the superior PDU of this PDU.

The Common Extended Advertising Payload Format fields permitted in the AUX_ADV_IND PDU are shown in Table 2.5.

The PHY used for the AUX_ADV_IND shall be specified in the AuxPtr field of the superior PDU. The PHY specified in any AuxPtr field in an AUX_ADV_IND PDU shall be the same as the PHY the PDU was sent on.

If this PDU and its superior PDU both have an ADI field, the values in these fields shall be the same.

Note

Note: The ADI field can be used to detect collisions.

Any auxiliary PDU shall be an AUX_CHAIN_IND PDU.

The SyncInfo field, when present, shall point to an AUX_SYNC_IND PDU.

Common Extended Advertising Payload Format fields

Adv Mode

Event Type

AdvA

TargetA

CTE Info

ADI

Aux Ptr

Sync Info

Tx Power

ACAD

Adv Data

0b00

Non-Connectable and Non-Scannable Undirected

C.1

X

X

M

O

O

O

O

O

0b00

Non-Connectable and Non-Scannable Directed

C.1

C.2

X

M

O

O

O

O

O

0b01

Connectable Undirected

C.2

X

X

M

X

X

O

O

O

0b01

Connectable Directed

M

M

X

M

X

X

O

O

O

0b10

Scannable Undirected

C.2

X

X

M

X

X

O

O

X

0b10

Scannable Directed

M

M

X

M

X

X

O

O

X

0b11

RFU

C.1:

This field is optional if the corresponding field in the superior PDU of this PDU is not present, otherwise it is reserved for future use.

C.2:

This field is mandatory if the corresponding field in the superior PDU of this PDU is not present, otherwise it is reserved for future use.

Table 2.5: Common Extended Advertising Payload Format fields permitted in the AUX_ADV_IND PDU


2.3.1.7. AUX_SYNC_IND

The AUX_SYNC_IND PDU uses the Common Extended Advertising Payload Format described in Section 2.3.4. The PDU is used in periodic advertising.

The AdvMode field shall be set to 0b00.

The Common Extended Advertising Payload Format fields permitted in the AUX_SYNC_IND PDU are shown in Table 2.6.

The PHY used for the AUX_SYNC_IND PDU shall be that specified in Section 4.4.2.12.

Any auxiliary PDU shall be an AUX_CHAIN_IND PDU.

The Advertising SID subfield of the ADI field shall have the same value as that in the superior PDU of this PDU.

Common Extended Advertising Payload Format fields

Adv Mode

Event Type

AdvA

TargetA

CTE Info

ADI

Aux Ptr

Sync Info

Tx Power

ACAD

Adv Data

0b00

Non-Connectable and Non-Scannable Undirected

X

X

O

O

O

X

O

O

O

0b01 to 0b11

RFU

Table 2.6: Common Extended Advertising Payload Format fields permitted in the AUX_SYNC_IND PDU


2.3.1.8. AUX_CHAIN_IND

The AUX_CHAIN_IND PDU uses the Common Extended Advertising Payload Format described in Section 2.3.4. The PDU is used to hold additional AdvData. Its superior PDU is an AUX_ADV_IND, AUX_SYNC_IND, AUX_SCAN_RSP or another AUX_CHAIN_IND PDU.

The AdvMode field shall be set to 0b00.

The Common Extended Advertising Payload Format fields permitted in the AUX_CHAIN_IND PDU are shown in Table 2.7.

The PHY used for the AUX_CHAIN_IND PDU shall be the same as the PHY used for its superior PDU.

The ADI field, when present, shall have the same value as the field in the superior PDU.

Note

Note: The ADI field can be used to detect collisions.

Any auxiliary PDU shall be another AUX_CHAIN_IND PDU.

Common Extended Advertising Payload Format fields

Adv Mode

Event Type

AdvA

TargetA

CTE Info

ADI

Aux Ptr

Sync Info

Tx Power

ACAD

Adv Data

0b00

Chained data

X

X

C.2

C.1

O

X

O

X

O

0b01 to 0b11

RFU

C.1:

This field is mandatory if the corresponding field in the superior PDU of this PDU is present, otherwise it is reserved for future use.

C.2:

This field is optional if the corresponding field in the superior PDU of this PDU is present, otherwise it is reserved for future use.

Table 2.7: Common Extended Advertising Payload Format fields permitted in the AUX_CHAIN_IND PDU


2.3.1.9. AUX_SYNC_SUBEVENT_IND

The AUX_SYNC_SUBEVENT_IND PDU uses the Common Extended Advertising Payload Format described in Section 2.3.4. This PDU is used in PAwR.

The AdvMode field shall be set to 0x00.

The Common Extended Advertising Payload Format fields permitted in the AUX_SYNC_SUBEVENT_IND PDU are shown in Table 2.8.

The PHY used for the AUX_SYNC_SUBEVENT_IND shall be that specified in Section 4.4.2.12.

The Advertising SID subfield of the ADI field shall have the same value as that in the superior PDU of this PDU.

Common Extended Advertising Payload Format fields

Adv Mode

Event Type

AdvA

TargetA

CTE Info

ADI

Aux Ptr

Sync Info

Tx Power

ACAD

Adv Data

0b00

Subevent Indication

X

X

O

O

X

X

O

O

O

0b01 to 0b11

RFU

Table 2.8: Common Extended Advertising Payload Format fields permitted in the AUX_SYNC_SUBEVENT_IND PDU


2.3.1.10. AUX_SYNC_SUBEVENT_RSP

The AUX_SYNC_SUBEVENT_RSP PDU uses the Common Extended Advertising Payload Format described in Section 2.3.4. This PDU is used in PAwR.

The AdvMode field shall be set to 0x00.

The Common Extended Advertising Payload Format fields permitted in the AUX_SYNC_SUBEVENT_RSP PDU are shown in Table 2.9.

The PHY used for the AUX_SYNC_SUBEVENT_RSP shall be that specified in Section 4.4.2.12.

Common Extended Advertising Payload Format fields

Adv Mode

Event Type

AdvA

TargetA

CTE Info

ADI

Aux Ptr

Sync Info

Tx Power

ACAD

Adv Data

0b00

Subevent Response

O

X

O

X

X

X

O

O

O

0b01 to 0b11

RFU

Table 2.9: Common Extended Advertising Payload Format fields permitted in the AUX_SYNC_SUBEVENT_RSP PDU


2.3.1.11. ADV_DECISION_IND

The Payload field of the ADV_DECISION_IND PDU is shown in Figure 2.10. The PDU may be used in the undirected advertising events indicated by the AdvMode field value.

ADV_DECISION_IND payload
Figure 2.10: ADV_DECISION_IND payload


The Extended Header field is the same as the Extended Header field of the Common Extended Advertising Payload Format (see Section 2.3.4); the fields permitted in the ADV_DECISION_IND PDU are shown in Table 2.10.

Common Extended Advertising Payload Format Extended Header fields

Adv Mode

Event Type

AdvA

TargetA

CTEInfo

ADI

AuxPtr

SyncInfo

TxPower

ACAD

0b00

Non-Connectable and Non-Scannable Undirected

O

X

X

O

M

X

C.1

X

0b01

Connectable Undirected

O

X

X

O

M

X

C.1

X

0b10

Scannable Undirected

O

X

X

O

M

X

C.1

X

0b11

RFU

C.1:

This field is optional on the LE 1M PHY and reserved for future use on the LE Coded PHY.

Table 2.10: Common Extended Advertising Payload Format fields permitted in the ADV_DECISION_IND PDU


The format of the Decision Data field is shown in Figure 2.11:

Decision Data format
Figure 2.11: Decision Data format


The Decision Type Flags bit field definitions are listed in Table 2.11.

Bit number

Subfield

0

Resolvable Tag

All other bits

Reserved for future use

Table 2.11: Decision Type Flags field interpretation


If a bit in the Decision Type Flags field is set to 1, then the corresponding subfield of Decision Data shall be present; otherwise, the corresponding subfield shall not be present. Therefore, the Decision Data field must be long enough to hold all the subfields indicated in the Decision Type Flags field. Any octets of the Decision Data following these subfields form the Arbitrary Data subfield.

A Resolvable Tag shall have the format shown in Figure 2.12.

Resolvable Tag format
Figure 2.12: Resolvable Tag format


A Resolvable Tag is said to resolve against a key provided by the Host if the Hash field equals the value ah(key, prand), where prand is the value of the Prand field and ah is the function defined in [Vol 3] Part H, Section 2.2.2.

The auxiliary PDU shall be an AUX_ADV_IND PDU.

2.3.2. Scanning PDUs

The following advertising physical channel PDU types are called scanning PDUs.

  • SCAN_REQ

  • SCAN_RSP

  • AUX_SCAN_REQ

  • AUX_SCAN_RSP

The SCAN_REQ and AUX_SCAN_REQ PDUs are called scan request PDUs. The SCAN_RSP and AUX_SCAN_RSP PDUs are called scan response PDUs.

Where these PDUs are used to reply to a scannable advertisement, the PHY used for them shall be the same as the PHY used for the PDU that they reply to.

2.3.2.1. SCAN_REQ and AUX_SCAN_REQ

The Payload field of the SCAN_REQ and AUX_SCAN_REQ PDUs is shown in Figure 2.13. The TxAdd in the advertising physical channel PDU header indicates whether the scanner’s address in the ScanA field is public (TxAdd = 0) or random (TxAdd = 1). The RxAdd in the advertising physical channel PDU header indicates whether the advertiser’s address in the AdvA field is public (RxAdd = 0) or random (RxAdd = 1).

SCAN_REQ and AUX_SCAN_REQ PDU Payload
Figure 2.13: SCAN_REQ and AUX_SCAN_REQ PDU Payload


The ScanA field shall contain the scanner’s public or random device address as indicated by TxAdd. The AdvA field is the address of the device to which this PDU is addressed. The AdvA field shall contain the advertiser’s public or random device address as indicated by RxAdd.

Note

Note: These PDUs do not contain any Host Data.

2.3.2.2. SCAN_RSP

The Payload field of the SCAN_RSP PDU is shown in Figure 2.14. The TxAdd in the advertising physical channel PDU header indicates whether the advertiser’s address in the AdvA field is public (TxAdd = 0) or random (TxAdd = 1). The Length field indicates the size of the payload (AdvA and ScanRspData) in octets.

SCAN_RSP PDU Payload
Figure 2.14: SCAN_RSP PDU Payload


The AdvA field shall contain the advertiser’s public or random device address as indicated by TxAdd. The ScanRspData field may contain any data from the advertiser’s Host.

2.3.2.3. AUX_SCAN_RSP

The AUX_SCAN_RSP PDU uses the Common Extended Advertising Payload Format described in Section 2.3.4.

The AdvMode field shall be set to 0b00.

The Common Extended Advertising Payload Format fields permitted in the AUX_SCAN_RSP PDU are shown in Table 2.12.

The ADI field, if present, shall have the same value as the field in the AUX_ADV_IND PDU that the scanner responded to.

Note

Note: The ADI field can be used to detect collisions.

Any auxiliary PDU shall be an AUX_CHAIN_IND PDU.

Common Extended Advertising Payload Format fields

Adv Mode

Event Type

AdvA

TargetA

CTE Info

ADI

Aux Ptr

Sync Info

Tx Power

ACAD

Adv Data

0b00

Scan response

M

X

X

O

O

X

O

O

M

0b01 to 0b11

RFU

Table 2.12: Common Extended Advertising Payload Format fields permitted in the AUX_SCAN_RSP PDU


2.3.3. Initiating PDUs

The following advertising physical channel PDU Types are called initiating PDUs:

  • CONNECT_IND

  • AUX_CONNECT_REQ

  • AUX_CONNECT_RSP

The CONNECT_IND and the AUX_CONNECT_REQ PDUs are sent by the Link Layer in the Initiating state and received by the Link Layer in the Advertising state. The AUX_CONNECT_RSP PDU is sent by the Link Layer in the Advertising state and received by the Link Layer in the Initiating state.

The PHY used for these PDUs shall be the same as the PHY used for the PDU that they reply to.

2.3.3.1. CONNECT_IND and AUX_CONNECT_REQ

The Payload field of the CONNECT_IND and AUX_CONNECT_REQ PDUs is shown in Figure 2.15. TxAdd in the advertising physical channel PDU header indicates whether the address in the InitA field is public (TxAdd = 0) or random (TxAdd = 1). The RxAdd in the advertising physical channel PDU header indicates whether the address in the AdvA field is public (RxAdd = 0) or random (RxAdd = 1).

The ChSel field in the CONNECT_IND PDU header shall be set to 1 if both the initiator and advertiser support the LE Channel Selection Algorithm #2 feature (see Section 4.5.8.3). If the initiator supports the LE Channel Selection Algorithm #2 feature but the advertiser does not, the initiator may set the ChSel field to 0 or 1. The ChSel field in the CONNECT_IND PDU header shall be set to 0 if the initiator does not support the LE Channel Algorithm #2 feature. The ChSel field in the AUX_CONNECT_REQ PDU header is reserved for future use.

CONNECT_IND and AUX_CONNECT_REQ PDU Payload
Figure 2.15: CONNECT_IND and AUX_CONNECT_REQ PDU Payload


The InitA field shall contain the Initiator’s public or random device address as indicated by TxAdd. The AdvA field shall contain the advertiser’s public or random device address as indicated by RxAdd.

The format of the LLData field is shown in Figure 2.16.

LLData field structure in CONNECT_IND and AUX_CONNECT_REQ PDU’s Payload
Figure 2.16: LLData field structure in CONNECT_IND and AUX_CONNECT_REQ PDU’s Payload


The AA field shall contain the ACL connection’s Access Address determined by the Link Layer following the rules specified in Section 2.1.2.

The CRCInit field shall contain the initialization value for the CRC calculation for the ACL connection, as defined in Section 3.1.1. It shall be a random value, generated by the Link Layer. The seed for the random number generator shall be from a physical source of entropy and should have at least 20 bits of entropy.

The WinSize field shall be set to indicate the transmitWindowSize value, as defined in Section 4.5.3 in the following manner:

transmitWindowSize = WinSize × 1.25 ms.

The WinOffset field shall be set to indicate the transmitWindowOffset value, as defined in Section 4.5.3 in the following manner:

transmitWindowOffset = WinOffset × 1.25 ms.

The Interval field shall be set to indicate the connInterval as defined in Section 4.5.1 in the following manner:

connInterval = Interval × 1.25 ms.

The Latency field shall be set to indicate the connPeripheralLatency value, as defined in Section 4.5.1 in the following manner:

connPeripheralLatency = Latency.

The Timeout field shall be set to indicate the connSupervisionTimeout value, as defined in Section 4.5.2, in the following manner:

connSupervisionTimeout = Timeout × 10 ms.

The ChM field shall contain the channel map indicating Used and Unused data channels. Every channel is represented with a bit positioned as per the data channel index as defined in Section 1.4.1. The LSB represents data channel index 0 and the bit in position 36 represents data channel index 36. A bit value of 0 indicates that the channel is Unused. A bit value of 1 indicates that the channel is Used. The bits in positions 37, 38 and 39 are reserved for future use.

Note

Note: When mapping from RF channels to data channel index, there is a gap where advertising channel index 38 is placed.

The Hop field shall be set to indicate the hopIncrement used in the data channel selection algorithm as defined in Section 4.5.8.2. It shall have a random value in the range 5 to 16.

The SCA field shall be set to indicate the centralSCA used to determine the Central's worst case sleep clock accuracy as defined in Section 4.2.2. The value of the SCA field shall be set as defined in Table 2.13.

SCA

centralSCA or peripheralSCA

0

251 ppm to 500 ppm

1

151 ppm to 250 ppm

2

101 ppm to 150 ppm

3

76 ppm to 100 ppm

4

51 ppm to 75 ppm

5

31 ppm to 50 ppm

6

21 ppm to 30 ppm

7

0 ppm to 20 ppm

Table 2.13: SCA field encoding


2.3.3.2. AUX_CONNECT_RSP

The AUX_CONNECT_RSP PDU uses the Common Extended Advertising Payload Format described in Section 2.3.4.

The AdvMode field shall be set to 0b00.

The Common Extended Advertising Payload Format fields permitted in the AUX_CONNECT_RSP PDU are shown in Table 2.14.

Common Extended Advertising Payload Format fields

Adv Mode

Event Type

AdvA

TargetA

CTE Info

ADI

Aux Ptr

Sync Info

Tx Power

ACAD

Adv Data

0b00

Connection response

M

M

X

X

X

X

X

X

X

0b01 to 0b11

RFU

Table 2.14: Common Extended Advertising Payload Format fields permitted in the AUX_CONNECT_RSP PDU


2.3.4. Common Extended Advertising Payload Format

The following extended Advertising Physical Channel PDUs share the same Advertising Physical Channel PDU payload format, referred to in the specification as the “Common Extended Advertising Payload Format”:

  • ADV_EXT_IND

  • AUX_ADV_IND

  • AUX_SCAN_RSP

  • AUX_SYNC_IND

  • AUX_CHAIN_IND

  • AUX_CONNECT_RSP

  • AUX_SYNC_SUBEVENT_IND

  • AUX_SYNC_SUBEVENT_RSP

The common extended advertising payload format is shown in Figure 2.17.

Common Extended Advertising Payload Format
Figure 2.17: Common Extended Advertising Payload Format


The Extended Header Length is a value between 0 and 63 and indicates the size of the variable length Extended Header field.

The AdvMode field indicates the mode of the advertisement. The value of the AdvMode field shall be set as defined in Table 2.15.

Value

Mode

0b00

Non-connectable

Non-scannable

0b01

Connectable

Non-scannable

0b10

Non-connectable

Scannable

0b11

Reserved for future use

Table 2.15: AdvMode field encoding


AdvData, if present, shall contain advertising data from the advertiser’s Host. The maximum size of AdvData depends on the size of the Extended Header. The size of the AdvData can be calculated by subtracting the length of the Extended Header plus one octet from the Length specified in the Advertising physical channel PDU Header.

The Extended Header field is a variable length header that is present if, and only if, the Extended Header Length field is non-zero. The format of the Extended Header is shown in Figure 2.18.

Extended Header
Figure 2.18: Extended Header


The Extended Header Flags bit field definitions are shown in Table 2.16.

Bit

Extended Header

0

AdvA

1

TargetA

2

CTEInfo

3

AdvDataInfo (ADI)

4

AuxPtr

5

SyncInfo

6

TxPower

7

Reserved for future use

Table 2.16: Extended Header Flags


If a flag bit is set to 1, the corresponding Extended Header field is present; otherwise, the corresponding Extended Header field is not present. The Extended Header fields that are present are always in the same order as the flags in the Extended Header flags (i.e., the AdvA field is first if present, then the TargetA field if present, etc.).

Whether an Extended Header flag and corresponding Extended Header field is mandatory, optional, or reserved for future use is dependent on the Advertising Physical Channel PDU in which the extended header is used.

2.3.4.1. AdvA field

When present, the AdvA field is six octets with the format shown in Figure 2.19.

AdvA field
Figure 2.19: AdvA field


The Advertising Address field contains the advertiser’s device address. If the AdvA field is present, TxAdd in the advertising physical channel PDU header indicates whether this address is public (TxAdd = 0) or random (TxAdd = 1).

2.3.4.2. TargetA field

When present, the TargetA field is six octets with the format shown in Figure 2.20.

TargetA field
Figure 2.20: TargetA field


The Target Address field contains the scanner’s or initiator’s device address to which the advertisement is directed. If the TargetA field is present, RxAdd in the advertising physical channel PDU header indicates whether this address is public (RxAdd = 0) or random (RxAdd = 1).

2.3.4.3. CTEInfo field

The presence of the CTEInfo field indicates that the packet includes a Constant Tone Extension. The CTEInfo field is defined in Section 2.5.2.

2.3.4.4. AdvDataInfo field

When present, the AdvDataInfo (ADI) field is two octets with the format shown in Figure 2.21.

AdvDataInfo field
Figure 2.21: AdvDataInfo field


The Advertising Set ID (SID) is set by the advertiser's Host to identify an advertising set transmitted by this device.

The Advertising Data ID (DID) is set by the advertiser to indicate to the scanner whether it can assume that the data contents in the AdvData are a duplicate of the previous AdvData sent in an earlier packet.

2.3.4.5. AuxPtr field

When present, the AuxPtr field is three octets with the format shown in Figure 2.22.

AuxPtr field
Figure 2.22: AuxPtr field


The presence of the AuxPtr field indicates that some or all of the advertisement data is in a subsequent auxiliary packet. The contents of the AuxPtr field describe this packet.

The Channel Index field contains the general-purpose channel index (see Section 1.4.1) used to transmit the auxiliary packet.

The Offset Units field indicates the units used by the Aux Offset Field. The value of the Offset Units field shall be set as defined in Table 2.17.

Value

Units

0

30 µs

1

300 µs

Table 2.17: Offset Units field encoding


The Aux Offset field contains the time from a reference point to the approximate start of the auxiliary packet, where the reference point is the start of the packet containing the AuxPtr field. The value of the AUX Offset field is in the unit of time indicated by the Offset Units field; the offset is determined by multiplying the value by the unit. The Aux Offset shall be at least the length of the packet plus T_MAFS (see Section 4.1.2). The Offset Units field shall be set to 0 if the Aux Offset is less than 245,700 µs.The auxiliary packet shall not start any earlier than the Aux Offset after the reference point and shall start no later than the Aux Offset plus one Offset Unit after the reference point. This allows the Link Layer to round the Aux Offset to the Offset Unit.

Aux Offset transmission window
Figure 2.23: Aux Offset transmission window


The Aux PHY field indicates the PHY used to transmit the auxiliary packet. The value of the Aux PHY field shall be set as defined in Table 2.18.

Value

PHY used

0b000

LE 1M

0b001

LE 2M

0b010

LE Coded

0b011 – 0b111

Reserved for future use

Table 2.18: Aux PHY field encoding


The CA field contains the clock accuracy of the advertiser that will be used between the packet containing this data and the auxiliary packet. The value of the CA field shall be set as defined in Table 2.19.

CA Value

Advertiser’s Clock Accuracy

0

51 ppm to 500 ppm

1

0 ppm to 50 ppm

Table 2.19: Clock Accuracy field encoding


An AuxPtr field with an Aux Offset of zero is permitted and indicates that no auxiliary packet will be transmitted but the Host advertising data in the current PDU is incomplete (see Section 2.3.4.9); it shall be treated as equivalent to one referring to an AUX_CHAIN_IND PDU that is never received. The remaining fields shall contain valid values.

2.3.4.6. SyncInfo field

When present, the SyncInfo field is 18 octets with the format shown in Figure 2.24.

SyncInfo field
Figure 2.24: SyncInfo field


The presence of the SyncInfo field indicates the presence of a periodic advertising train (using AUX_SYNC_IND PDUs or AUX_SYNC_SUBEVENT_IND PDUs). The contents of the SyncInfo field describe this periodic advertising train.

The Offset Units field indicates the units used by the Offset Base field. The value of the Offset Units field shall be set as defined in Table 2.20.

Value

Units

0

30 µs

1

300 µs

Table 2.20: Offset Units field encoding


The SyncInfo field can appear in an advertising PDU or in an LL_PERIODIC_SYNC_IND PDU or LL_PERIODIC_SYNC_WR_IND PDU (see Section 2.4.2.27 and Section 2.4.2.40).

The syncPacketWindowOffset value is the time from a reference point to the start of the AUX_SYNC_IND or the AUX_SYNC_SUBEVENT_IND of subevent 0 packet that this SyncInfo field describes. If the SyncInfo appears in an advertising PDU, the reference point is the start of the packet containing it. If it appears in an LL_PERIODIC_SYNC_IND PDU or an LL_PERIODIC_SYNC_WR_IND PDU, the reference point is specified by that PDU. The value of syncPacketWindowOffset is determined by multiplying the value of the Offset Base field by the unit of time indicated by the Offset Units field and then, if the Offset Adjust field is set to 1, adding 2.4576 seconds. The Offset Units field shall be set to 0 if syncPacketWindowOffset is less than 245,700 µs. The Offset Adjust field shall be set to 0 if the Offset Units field is set to 0 or if the SyncInfo field appears within an advertising PDU. As illustrated in Figure 2.25, the packet containing the AUX_SYNC_IND PDU or AUX_SYNC_SUBEVENT_IND PDU shall not start any earlier than syncPacketWindowOffset after the reference point and shall start no later than syncPacketWindowOffset plus one Offset unit after the reference point. This allows the Link Layer to round syncPacketWindowOffset to the Offset Unit.

Transmission window represented by syncPacketWindowOffset
Figure 2.25: Transmission window represented by syncPacketWindowOffset


A value of 0 for syncPacketWindowOffset indicates that the time to the next AUX_SYNC_IND or AUX_SYNC_SUBEVENT_IND packet is greater than can be represented.

The Interval field contains the time, in 1.25 ms units, from the start of one packet of the periodic advertising train to the start of the next packet. The value shall not be less than 6 (7.5 ms).

The ChM field contains the channel map indicating Used and Unused RF channels on the periodic physical channel. Every channel is represented with a bit positioned as per the channel index as defined in Section 1.4.1. The LSB represents channel index 0 and the bit in position 36 represents channel index 36. A bit value of 0 indicates that the channel is Unused. A bit value of 1 indicates that the channel is Used.

The AA, CRCInit, and SCA fields have the same meaning as the corresponding fields in the CONNECT_IND PDU (see Section 2.3.3.1).

The PeriodicEventCounter field contains the value of paEventCounter (see Section 4.4.2.1) that applies to the AUX_SYNC_IND or AUX_SYNC_SUBEVENT_IND packet that this SyncInfo field describes.

2.3.4.7. TxPower field

When present, the TxPower is one octet with the format shown in Figure 2.26.

TxPower field
Figure 2.26: TxPower field


The Tx Power Level field is the same value defined for the Tx Power Advertising Data type defined in Section 1.5 of [1].

If the Host instructs the Controller to include the TxPower field in an advertisement, then it shall be included in the AUX_ADV_IND PDU if the extended advertising event contains one and in all the ADV_EXT_IND PDUs otherwise. Any AUX_CHAIN_IND PDUs should not contain a TxPower field. If the Host instructs the Controller to include the TxPower field in a periodic advertisement, then it shall be included in the AUX_SYNC_IND, AUX_SYNC_SUBEVENT_IND, or AUX_SYNC_SUBEVENT_RSP PDUs but not in any AUX_CHAIN_IND PDUs.

2.3.4.8. ACAD field

The remainder of the extended header forms the Additional Controller Advertising Data (ACAD) field. The length of this field is the Extended Header length minus the sum of the size of the extended header flags (1 octet) and those fields indicated by the flags as present. ACAD cannot be fragmented across multiple advertising physical channel PDUs; it shall always fit inside a single advertising physical channel PDU.

The ACAD field, if present, shall hold data from the advertiser’s Controller or intended to be used by the recipient’s Controller. It uses the format described in [Vol 3] Part C, Section 11.

The ACAD type formats and meanings are defined in Section 1 of [1]. The ACAD type identifier values are defined in Assigned Numbers.

2.3.4.9. Host Advertising Data

The portion of the PDU after the extended header forms the AdvData field. The length of this field is specified in Section 2.3.4.

The AdvData field, if present, shall hold data from the advertiser’s Host in the format described in [Vol 3] Part C, Section 11. If the Host does not provide any data, the AdvData field shall be omitted but, for all other purposes in this Part, this shall be treated as if the Host had provided data.

The Controller may support fragmentation of Host Advertising Data. The total amount of Host Advertising Data before fragmentation shall not exceed 1650 octets. When the Link Layer fragments the Host advertising data, the number of fragments and the size of each fragment are chosen by the Controller. The Controller should minimize the number of fragments to ensure more reliability in delivering the entire Host advertising data. The Host may indicate a preference whether the Controller should fragment the Host advertising data, but the Controller may ignore the preference. If the amount of advertising or scan response data to be sent in an extended advertising or scanning PDU plus the Extended Header Length, AdvMode, and Extended Header exceed the maximum Advertising Physical Channel PDU payload (255 octets), the Link Layer shall fragment the Host advertising data.

The Link Layer shall place the multiple fragments in the AdvData field of different PDUs. When Host advertising data is fragmented the first fragment shall be placed in the AUX_ADV_IND, AUX_SYNC_IND or AUX_SCAN_RSP PDU while subsequent fragments shall be placed in AUX_CHAIN_IND PDUs. Each AUX_CHAIN_IND PDU is the auxiliary PDU of the PDU containing the previous fragment; AUX_CHAIN_IND PDUs not containing AdvData shall not have an auxiliary PDU containing AdvData.

If the Link Layer has fragmented the Host advertising data but is subsequently unable to transmit all the fragments, the last fragment that it is able to transmit should contain an AuxPtr field with an Aux Offset of zero so that scanners are aware that the data has been truncated.

2.4. Data Physical Channel PDU

The Data Physical Channel PDU has a 16 or 24 bit header, a variable size payload, and may include a Message Integrity Check (MIC) field.

The Data Physical Channel PDU is as shown in Figure 2.27.

Data Physical Channel PDU
Figure 2.27: Data Physical Channel PDU


The Header field of the Data Physical Channel PDU is as shown in Figure 2.28.

Data Physical Channel PDU header
Figure 2.28: Data Physical Channel PDU header


The 16 or 24 bit Header field consists of 6 or 7 fields that are specified in Table 2.21.

The MIC field shall not be included in an un-encrypted ACL connection, or in an encrypted ACL connection with a Data Channel PDU with a zero length Payload.

The MIC field shall be included in an encrypted ACL connection, with a Data Channel PDU with a non-zero length Payload and shall be calculated as specified in [Vol 6] Part E, Section 1.

The payload format depends on the LLID field of the Header. If the LLID field is 0b01 or 0b10, the Data Physical Channel PDU Payload contains an LL Data PDU as defined in Section 2.4.1. If the LLID field is 0b11 then the Data Physical Channel PDU Payload contains an LL Control PDU as defined in Section 2.4.2.

The NESN bit of the Header is defined in Section 4.5.9.

The SN bit of the Header is defined in Section 4.5.9.

The MD bit of the Header is defined in Section 4.5.6.

The CTEInfo Present (CP) field of the Header indicates whether the Data Physical Channel PDU Header has a CTEInfo field and therefore whether the data physical channel packet has a Constant Tone Extension. If the CP field is 0, then no CTEInfo field is present in the Data Channel PDU Header and there is no Constant Tone Extension in the data physical channel packet. If the CP field is 1, then the CTEInfo field in the Data Physical Channel PDU Header is present and the data physical channel packet includes a Constant Tone Extension.

The Length field of the Header indicates the length of the Payload and MIC if included. The length field has the range 0 to 255 octets. The Payload shall be less than or equal to 251 octets in length. The MIC is 4 octets in length.

The CTEInfo field of the Header is present if indicated in the CP field. The CTEInfo field is defined in Section 2.5.2. The CTEInfo field can be present in the header of any Data Physical Channel PDU. However, the Link Layer shall not transmit a Data Physical Channel PDU containing a CTEInfo field unless it has determined that the peer device supports the Receiving Constant Tone Extensions feature (see Section 4.6.22).

Note

Note: A Controller that transmits a PDU containing a CTEInfo field will not necessarily be able to receive one and vice-versa.

In this version of the specification, the only way to request a remote device to send a packet containing the CTEInfo field is via the Constant Tone Extension Request procedure.

Field name

Description

LLID

The LLID indicates whether the packet is an LL Data PDU or an LL Control PDU.

0b00 = Reserved for future use

0b01 = LL Data PDU: Continuation fragment of an L2CAP message, or an Empty PDU.

0b10 = LL Data PDU: Start of an L2CAP message or a complete L2CAP message with no fragmentation.

0b11 = LL Control PDU

NESN

Next Expected Sequence Number

SN

Sequence Number

MD

More Data

CP

CTEInfo Present

Length

The Length field indicates the size, in octets, of the Payload and MIC, if included.

CTEInfo

The CTEInfo field indicates the type and length of the Constant Tone Extension.

Table 2.21: Data Physical Channel PDU header field


2.4.1. LL Data PDU

An LL Data PDU is a Data Channel PDU that is used to send L2CAP data. The LLID field in the Header shall be set to either 0b01 or 0b10.

An LL Data PDU with the LLID field in the Header set to 0b01, and the Length field set to 0b00000000, is known as an Empty PDU. The Central’s Link Layer may send an Empty PDU to the Peripheral to allow the Peripheral to respond with any Data Physical Channel PDU, including an Empty PDU.

An LL Data PDU with the LLID field in the Header set to 0b10 shall not have the Length field set to 0 and should not have it set to less than 4.

Note

Note: If the Link Layer receives an HCI ACL Data Packet with Data_Total_Length equal to 0b00000000 and Packet_Boundary_Flag set to 0b00 (i.e., a start fragment), then the Link Layer cannot simply transmit the fragment over the air but, as this section requires, must instead combine it with one or more of the following continuation fragments to form a PDU with LLID set to 0b10 and non-zero length.

2.4.2. LL Control PDU

An LL Control PDU is a Data Physical Channel PDU that is used to control the Link Layer connection.

The Payload field of the LL Control PDU is shown in Figure 2.29.

LL Control PDU Payload
Figure 2.29: LL Control PDU Payload


An LL Control PDU shall not have the Length field set to 0b00000000.

The Opcode field identifies different types of LL Control PDU, as defined in Table 2.22.

The CtrData field in the LL Control PDU is specified by the Opcode field and is defined in the following subsections. For a given Opcode the length of the CtrData field is fixed.

Where the description of a field within the CtrData field gives a range of valid values or other restrictions on a value (e.g. that field X is less than field Y), all other values shall be reserved for future use. The range may be directly specified in the relevant subsection for the LL Control PDU or indirectly, possibly in a section referenced by that subsection (e.g. the range of the WinSize field in Section 2.4.2.1 is derived from the range of the transmitWindowSize value specified in Section 4.5.3).

If no range is specified for a field, then all values for that field are valid.

Except where explicitly stated otherwise, all fields within the CtrData field in an LL Control PDU that hold an integer shall be interpreted as unsigned.

Opcode

LL Control PDU Name

0x00

LL_CONNECTION_UPDATE_IND

0x01

LL_CHANNEL_MAP_IND

0x02

LL_TERMINATE_IND

0x03

LL_ENC_REQ

0x04

LL_ENC_RSP

0x05

LL_START_ENC_REQ

0x06

LL_START_ENC_RSP

0x07

LL_UNKNOWN_RSP

0x08

LL_FEATURE_REQ

0x09

LL_FEATURE_RSP

0x0A

LL_PAUSE_ENC_REQ

0x0B

LL_PAUSE_ENC_RSP

0x0C

LL_VERSION_IND

0x0D

LL_REJECT_IND

0x0E

LL_PERIPHERAL_FEATURE_REQ

0x0F

LL_CONNECTION_PARAM_REQ

0x10

LL_CONNECTION_PARAM_RSP

0x11

LL_REJECT_EXT_IND

0x12

LL_PING_REQ

0x13

LL_PING_RSP

0x14

LL_LENGTH_REQ

0x15

LL_LENGTH_RSP

0x16

LL_PHY_REQ

0x17

LL_PHY_RSP

0x18

LL_PHY_UPDATE_IND

0x19

LL_MIN_USED_CHANNELS_IND

0x1A

LL_CTE_REQ

0x1B

LL_CTE_RSP

0x1C

LL_PERIODIC_SYNC_IND

0x1D

LL_CLOCK_ACCURACY_REQ

0x1E

LL_CLOCK_ACCURACY_RSP

0x1F

LL_CIS_REQ

0x20

LL_CIS_RSP

0x21

LL_CIS_IND

0x22

LL_CIS_TERMINATE_IND

0x23

LL_POWER_CONTROL_REQ

0x24

LL_POWER_CONTROL_RSP

0x25

LL_POWER_CHANGE_IND

0x26

LL_SUBRATE_REQ

0x27

LL_SUBRATE_IND

0x28

LL_CHANNEL_REPORTING_IND

0x29

LL_CHANNEL_STATUS_IND

0x2A

LL_PERIODIC_SYNC_WR_IND

0x2B 

LL_FEATURE_EXT_REQ

0x2C 

LL_FEATURE_EXT_RSP

0x2D 

LL_CS_SEC_RSP

0x2E 

LL_CS_CAPABILITIES_REQ

0x2F 

LL_CS_CAPABILITIES_RSP

0x30 

LL_CS_CONFIG_REQ

0x31 

LL_CS_CONFIG_RSP

0x32 

LL_CS_REQ

0x33 

LL_CS_RSP

0x34 

LL_CS_IND

0x35 

LL_CS_TERMINATE_REQ

0x36 

LL_CS_FAE_REQ

0x37 

LL_CS_FAE_RSP

0x38 

LL_CS_CHANNEL_MAP_IND

0x39 

LL_CS_SEC_REQ

0x3A

LL_CS_TERMINATE_RSP

0x3B

LL_FRAME_SPACE_REQ

0x3C

LL_FRAME_SPACE_RSP

0xF0 to 0xFB

Reserved for specification development purposes

All other values

Reserved for future use

Table 2.22: LL Control PDU opcodes


If an LL Control PDU is received that is not supported or reserved for future use, the Link Layer shall respond with an LL_UNKNOWN_RSP PDU. The UnknownType field of the LL_UNKNOWN_RSP PDU shall be set to the value of the Opcode in the received PDU.

If an LL Control PDU is received with the wrong length or with invalid CtrData fields, the Link Layer may continue with the relevant Link Layer procedure with an implementation-specific interpretation of the data (e.g., if the PDU is too long it can ignore the extra data; if a field is out of range it can use the nearest permitted value). If it does not continue the procedure, it shall respond with an LL_UNKNOWN_RSP PDU or, if the relevant procedure allows it, an LL_REJECT_IND or LL_REJECT_EXT_IND PDU. The UnknownType field of the LL_UNKNOWN_RSP PDU or the RejectOpcode field of the LL_REJECT_EXT_IND PDU shall be set to the value of the Opcode in the received PDU.

2.4.2.1. LL_CONNECTION_UPDATE_IND

The format of the CtrData field is as shown in Figure 2.30.

CtrData field of the LL_CONNECTION_UPDATE_IND PDU
Figure 2.30: CtrData field of the LL_CONNECTION_UPDATE_IND PDU


The WinSize field shall be set to indicate the transmitWindowSize value, as defined in Section 4.5.3 in the following manner:

transmitWindowSize = WinSize × 1.25 ms.

The WinOffset field shall be set to indicate the transmitWindowOffset value, as defined in Section 4.5.3, in the following manner:

transmitWindowOffset = WinOffset × 1.25 ms.

The Interval field shall be set to indicate the connInterval value, as defined in Section 4.5.1, in the following manner:

connInterval = Interval × 1.25 ms.

The Latency field shall be set to indicate the connPeripheralLatency value, as defined by Section 4.5.1, in the following manner:

connPeripheralLatency = Latency.

The Timeout field shall be set to indicate the connSupervisionTimeout value, as defined by Section 4.5.2, in the following manner:

connSupervisionTimeout = Timeout × 10 ms.

The Instant field shall be set to indicate the instant described in Section 5.1.1.

2.4.2.2. LL_CHANNEL_MAP_IND

The format of the CtrData field is shown in Figure 2.31.

CtrData field of the LL_CHANNEL_MAP_IND PDU
Figure 2.31: CtrData field of the LL_CHANNEL_MAP_IND PDU


The ChM field shall contain the channel map indicating Used and Unused data channels. Every channel is represented with a bit positioned as per the data channel index defined by Section 1.4.1. The format of this field is identical to the ChM field in the CONNECT_IND PDU (see Section 2.3.3.1).

The Instant field shall be set to indicate the instant described in Section 5.1.2.

2.4.2.3. LL_TERMINATE_IND

The format of the CtrData field is shown in Figure 2.32.

CtrData field of the LL_TERMINATE_IND PDU
Figure 2.32: CtrData field of the LL_TERMINATE_IND PDU


The ErrorCode field shall be set to inform the remote device why the connection is about to be terminated. See [Vol 1] Part F, Controller Error Codes for details.

2.4.2.4. LL_ENC_REQ

The format of the CtrData field is shown in Figure 2.33.

CtrData field of the LL_ENC_REQ PDU
Figure 2.33: CtrData field of the LL_ENC_REQ PDU


The Rand field shall contain a random number that is provided by the Host and used with EDIV (see [Vol 3] Part H, Section 2.4.4).

The EDIV field shall contain the encrypted diversifier.

The SKD_C field shall contain the Central’s portion of the session key diversifier.

The IV_C field shall contain the Central’s portion of the initialization vector.

2.4.2.5. LL_ENC_RSP

The format of the CtrData field is shown in Figure 2.34.

CtrData field of the LL_ENC_ RSP PDU
Figure 2.34: CtrData field of the LL_ENC_ RSP PDU


The SKD_P field shall contain the Peripheral’s portion of the session key diversifier.

The IV_P field shall contain the Peripheral’s portion of the initialization vector.

2.4.2.6. LL_START_ENC_REQ

The LL_START_ENC_REQ PDU does not have a CtrData field.

2.4.2.7. LL_START_ENC_RSP

The LL_START_ENC_RSP PDU does not have a CtrData field.

2.4.2.8. LL_UNKNOWN_RSP

The format of the CtrData field is shown in Figure 2.35.

CtrData field of the LL_UNKNOWN_RSP PDU
Figure 2.35: CtrData field of the LL_UNKNOWN_RSP PDU


UnknownType shall contain the Opcode field value of the received LL Control PDU.

2.4.2.9. LL_FEATURE_REQ

The format of the CtrData field is shown in Figure 2.36.

CtrData field of the LL_FEATURE_REQ PDU
Figure 2.36: CtrData field of the LL_FEATURE_REQ PDU


FeatureSet shall contain the set of features supported by the Central’s Link Layer as specified in Section 4.6.

2.4.2.10. LL_FEATURE_RSP

The format of the CtrData field is shown in Figure 2.37.

CtrData field of the LL_FEATURE_RSP PDU
Figure 2.37: CtrData field of the LL_FEATURE_RSP PDU


FeatureSet[0] shall contain a set of features supported by the Link Layers of both the Central and Peripheral.

FeatureSet[1-7] shall contain a set of features supported by the Link Layer that transmits this PDU.

See Section 4.6 for the list of features.

2.4.2.11. LL_PAUSE_ENC_REQ

The LL_PAUSE_ENC_REQ packet does not have a CtrData field.

2.4.2.12. LL_PAUSE_ENC_RSP

The LL_PAUSE_ENC_RSP packet does not have a CtrData field.

2.4.2.13. LL_VERSION_IND

The format of the CtrData field is shown in Figure 2.38.

CtrData field of the LL_VERSION_IND PDU
Figure 2.38: CtrData field of the LL_VERSION_IND PDU


Version field shall contain the version of the Bluetooth Link Layer specification supported by the Controller (see Assigned Numbers).

Company_Identifier field shall contain the company identifier of the manufacturer of the Bluetooth Controller (see Assigned Numbers).

Subversion field shall contain a unique value for each implementation or revision of an implementation of the Bluetooth Controller.

Note

Note: A given value of Version does not indicate that the device supports all the features in the corresponding version of the specification; the relevant feature bits (see Section 4.6) should be checked instead.

Note

Note: A larger value for Version does not necessarily indicate a higher version of the specification.

2.4.2.14. LL_REJECT_IND

The format of the CtrData field is shown in Figure 2.39.

CtrData field of the LL_ REJECT_IND
Figure 2.39: CtrData field of the LL_ REJECT_IND


ErrorCode shall contain the reason a request was rejected; see [Vol 1] Part F, Controller Error Codes.

2.4.2.15. LL_PERIPHERAL_FEATURE_REQ

The format of the CtrData field is shown in Figure 2.40.

CtrData field of the LL_PERIPHERAL_FEATURE_REQ PDU
Figure 2.40: CtrData field of the LL_PERIPHERAL_FEATURE_REQ PDU


FeatureSet shall contain the set of features supported by the Peripheral’s Link Layer as specified in Section 4.6.

2.4.2.16. LL_CONNECTION_PARAM_REQ

The format of the CtrData field is shown in Figure 2.41.

CtrData field of the LL_CONNECTION_PARAM_REQ PDU
Figure 2.41: CtrData field of the LL_CONNECTION_PARAM_REQ PDU


The Interval_Min field shall be set to indicate the minimum value of connInterval, as defined in Section 4.5.1, in the following manner:

connInterval = Interval_Min × 1.25 ms.

The Interval_Max field shall be set to indicate the maximum value of connInterval, as defined in Section 4.5.1, in the following manner:

connInterval = Interval_Max × 1.25 ms.

The value shall not be less than the value of Interval_Min.

The Latency field shall be set to indicate the connPeripheralLatency value, as defined by Section 4.5.1, in the following manner:

connPeripheralLatency = Latency.

The Timeout field shall be set to indicate the connSupervisionTimeout value, as defined by Section 4.5.2, in the following manner:

connSupervisionTimeout = Timeout × 10 ms.

The PreferredPeriodicity field shall be set to indicate a value the connInterval is preferred to be a multiple of. PreferredPeriodicity is in units of 1.25 ms. E.g. if the PreferredPeriodicity is set to 100, it implies that connInterval is preferred to be any multiple of 125 ms. A value of zero means no preference. The PreferredPeriodicity shall be less than or equal to Interval_Max.

The ReferenceConnEventCount field shall be set to indicate the value of the connEventCounter relative to which all the valid Offset0 to Offset5 fields have been calculated.

Note

Note: The ReferenceConnEventCount field is independent of the Instant field in the LL_CONNECTION_UPDATE_IND PDU.

The Offset0, Offset1, Offset2, Offset3, Offset4, and Offset5 fields shall be set to indicate the possible values of the position of the anchor points of the LE connection with the updated connection parameters relative to the ReferenceConnEventCount. The Offset0 to Offset5 fields are in units of 1.25 ms and are in decreasing order of preference; that is, Offset0 is the most preferred value, followed by Offset1, and so on. Offset0 to Offset5 shall be less than Interval_Max. A value of 0xFFFF means not valid. Valid Offset0 to Offset5 fields shall contain unique values. Valid fields shall always be before invalid fields.

2.4.2.17. LL_CONNECTION_PARAM_RSP

The format of the LL_CONNECTION_PARAM_RSP PDU is identical to the format of the LL_CONNECTION_PARAM_REQ PDU (see Section 2.4.2.16).

2.4.2.18. LL_REJECT_EXT_IND

The format of the CtrData field is shown in Figure 2.42.

CtrData field of the LL_REJECT_EXT_IND PDU
Figure 2.42: CtrData field of the LL_REJECT_EXT_IND PDU


RejectOpcode shall contain the Opcode field value of the LL Control PDU being rejected.

ErrorCode shall contain the reason the LL Control PDU was being rejected. See [Vol 1] Part F, Controller Error Codes for a list of error codes and descriptions.

This PDU shall be issued only when the remote Link Layer supports the Extended Reject Indication Link Layer feature ( Section 4.6). Otherwise, the LL_REJECT_IND PDU ( Section 2.4.2.14) shall be issued instead.

2.4.2.19. LL_PING_REQ

The LL_PING_REQ PDU does not have a CtrData field.

2.4.2.20. LL_PING_RSP

The LL_PING_RSP PDU does not have a CtrData field.

2.4.2.21. LL_LENGTH_REQ and LL_LENGTH_RSP

The format of the CtrData field for both the LL_LENGTH_REQ and LL_LENGTH_RSP PDUs is shown in Figure 2.43.

CtrData field of the LL_LENGTH_REQ and LL_LENGTH_RSP PDUs
Figure 2.43: CtrData field of the LL_LENGTH_REQ and LL_LENGTH_RSP PDUs


MaxRxOctets shall be set to the sender’s connMaxRxOctets value, as defined in Section 4.5.10. The MaxRxOctets field shall have a value not less than 27 octets.

MaxRxTime shall be set to the sender’s connMaxRxTime value, as defined in Section 4.5.10. The MaxRxTime field shall have a value not less than 328 μs.

MaxTxOctets shall be set to the sender’s connMaxTxOctets value, as defined in Section 4.5.10. The MaxTxOctets field shall have a value not less than 27 octets.

MaxTxTime shall be set to the sender’s connMaxTxTime value, as defined in Section 4.5.10. The MaxTxTime field shall have a value not less than 328 μs.

2.4.2.22. LL_PHY_REQ and LL_PHY_RSP

The format of the CtrData field for both the LL_PHY_REQ and LL_PHY_RSP PDUs is shown in Figure 2.44.

CtrData field of the LL_PHY_REQ and LL_PHY_RSP PDUs
Figure 2.44: CtrData field of the LL_PHY_REQ and LL_PHY_RSP PDUs


TX_PHYS shall be set to indicate the transmitter PHYs that the sender prefers to use.

RX_PHYS shall be set to indicate the receiver PHYs that the sender prefers to use.

These fields each consist of 8 bits; at least one bit in each field shall be set to 1. The bits that are set indicate which PHY or PHYs the sender prefers to use.

Bit number

Meaning

0

LE 1M PHY

1

LE 2M PHY

2

LE Coded PHY

3

LE 2M 2BT PHY (for Channel Sounding only; otherwise RFU)

4–7

Reserved for future use

Table 2.23: PHY field bit meanings


2.4.2.23. LL_PHY_UPDATE_IND

The format of the CtrData field is shown in