Skip to content

Add Bluetooth 5.4 GAP advertising data types - #210

Merged
colemancda merged 1 commit into
masterfrom
feature/gap-5-4
Jul 9, 2026
Merged

Add Bluetooth 5.4 GAP advertising data types#210
colemancda merged 1 commit into
masterfrom
feature/gap-5-4

Conversation

@colemancda

Copy link
Copy Markdown
Member

Phase 2 of Bluetooth Core 5.4 support: the advertising-data layer.

What changed

  • GAPEncryptedAdvertisingData<Payload> (AD type 0x31) — carries the 5-octet Randomizer, opaque encrypted payload, and 4-octet MIC of the Encrypted Advertising Data feature. Generic over the payload container like GAPManufacturerSpecificData. CCM encryption/decryption is intentionally out of scope (no crypto dependency); the type exposes the raw fields for consumers. Registered in GAPDataDecoder.defaultTypes.
  • GAPPeriodicAdvertisingResponseTimingInformation (AD type 0x32) — the PAwR synchronization info carried in the ACAD field of AUX_ADV_IND: response access address, number of subevents, subevent interval (×1.25 ms), response slot delay (×1.25 ms), and response slot spacing (×0.125 ms).
  • GAPDataType gap fill — added the missing 5.1–5.4 assigned AD type constants between meshBeacon (0x2B) and informationData3D (0x3D): BIGInfo (0x2C), Broadcast_Code (0x2D), Resolvable Set Identifier (0x2E), Advertising Interval - long (0x2F), Broadcast_Name (0x30), and Electronic Shelf Label (0x34), with name-table entries. Values verified against the Bluetooth SIG assigned-numbers repository.

Tests

Decode/encode tests with byte-exact vectors, length-validation rejection cases, and generic-container round trips. Full suite: 281 tests pass; no new lint warnings.

Add Encrypted Advertising Data (0x31) and Periodic Advertising Response
Timing Information (0x32) GAP types, and fill in the missing 5.1-5.3
AD type constants (BIGInfo, Broadcast_Code, Resolvable Set Identifier,
Advertising Interval - long, Broadcast_Name, Electronic Shelf Label).

The Encrypted Advertising Data type carries the raw randomizer,
ciphertext, and MIC fields; CCM encryption is out of scope.
@colemancda
colemancda merged commit fa166fd into master Jul 9, 2026
38 checks passed
@colemancda
colemancda deleted the feature/gap-5-4 branch July 9, 2026 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant