mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-10-14 01:37:23 +00:00
nimble/ll: Disallow periodic adv on incompatible ext adv instance
We shall not allow enabling periodic advertising on an incompatible extended advertising instance, i.e. scannable, connectable, legacy or anonymous. This fixes HCI/DDI/BI-37-C, HCI/DDI/BI-38-C, HCI/DDI/BI-39-C, HCI/DDI/BI-40-C, HCI/DDI/BI-41-C, HCI/DDI/BI-42-C, HCI/DDI/BI-43-C, HCI/DDI/BI-44-C, HCI/DDI/BI-45-C, HCI/DDI/BI-46-C, HCI/DDI/BI-47-C, HCI/DDI/BI-53-C, HCI/DDI/BI-54-C, HCI/DDI/BI-55-C, HCI/DDI/BI-56-C, HCI/DDI/BI-57-C, HCI/DDI/BI-58-C, HCI/DDI/BI-59-C, HCI/DDI/BI-60-C, HCI/DDI/BI-61-C. (yup, there are so many test cases for testing the same scenario)
This commit is contained in:
@@ -3975,6 +3975,13 @@ ble_ll_adv_periodic_enable(const uint8_t *cmdbuf, uint8_t len)
|
||||
#endif
|
||||
|
||||
if (cmd->enable) {
|
||||
if (advsm->props & (BLE_HCI_LE_SET_EXT_ADV_PROP_ANON_ADV |
|
||||
BLE_HCI_LE_SET_EXT_ADV_PROP_SCANNABLE |
|
||||
BLE_HCI_LE_SET_EXT_ADV_PROP_CONNECTABLE |
|
||||
BLE_HCI_LE_SET_EXT_ADV_PROP_LEGACY)) {
|
||||
return BLE_ERR_CMD_DISALLOWED;
|
||||
}
|
||||
|
||||
if (advsm->flags & BLE_LL_ADV_SM_FLAG_PERIODIC_DATA_INCOMPLETE) {
|
||||
return BLE_ERR_CMD_DISALLOWED;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user