<aside>
✏️
通用擴展廣播酬載格式 - Common Extend Advertising Payload Format

- 在 Advertising Physical Channel 中,有一部分的 PDU 會共用 Payload 的 Format (不是所有 AUX 都會用)
- 這個被共用的 Payload 格式,稱作 Common Extend Advertising Payload Format
- 他相當於對原本 Advertising PDU 的 Header 做了額外的擴展,因此裡面最主要的欄位稱作 Extended Header
- Common Extend Advertising Payload Format 的適用範圍:
ADV_EXT_IND
AUX_ADV_IND
AUX_SYNC_IND
AUX_CHAIN_IND
AUX_SCAN_RSP
AUX_CONNECT_RSP
AUX_SYNC_SUBEVENT_IND
AUX_SYNC_SUBEVENT_RSP
</aside>
<aside>
✏️
擴展標頭長度 - Extended Header Length
- Extended Header Length 表示 Extended Header 的長度,總共有 6 bits
- 6 bits 限制了 Extended Header 的長度介於 0~63 octets
</aside>
<aside>
✏️
廣播模式 - AdvMode
</aside>
<aside>
✏️
擴展標頭 - Extended Header

Extended Header 用來標示 Aux PDU 中包含的額外資訊類型
Extended Header Flags (1 octet)
AdvA & TargetA (6 octets for each)
CTEInfo (1 octet)
ADI (2 octets)
AuxPtr (3 octets)
SyncInfo (18 octets)
TxPower (1 octet)
ACAD (Varies)
</aside>
<aside>
✏️
廣播資料 - AdvData
- AdvData 儲存額外的 Host 資訊 (Extended Header 的 ACAD 存的是 Controller 的資訊)
- AdvData 的容量是動態的,容量 = PDU 的長度 $-$ Extended Header 的長度 $-$ 1 octet 的 Length & AdvMode
- Controller 可以分割 Host 的 AdvData,但須遵守:
- 總額不得超過 1650 octets
- Controller 可以自行決定 fragment 的數量與大小,但減少數量將有助於提升整體的 reliability
- Host 可以提供 fragment 的偏好給 Controller,但 Controller 可以選擇忽略
- 當待廣播或回應的資料量加上 Extended Header Length、AdvMode、Extended Header 後超過 Payload 的容量 (255 octets),就需要做分割
- 當廣播資料被分割時,第一個 fragment 應該放在
AUX_ADV_IND
、AUX_SYNC_IND
或 AUX_SCAN_RSP
;之後的則放在 AUX_CHAIN_IND
AUX_CHAIN_IND
的 AdvData 裝的是他 superior 的下一段 fragment;如果 AUX_CHAIN_IND
沒有 AdvData,那他的 aux 包不可以有 AdvData
- 如果廣播資料有分段,但 LL 持續無法傳送所有 fragment,則最後一個能傳的 fragment 的 PDU 的 AuxPtr 的 Aux Offset 將設為
0
</aside>