This is an automated email from the ASF dual-hosted git repository. andk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git
commit 352d4792cfee96ed15397fa2cb06259156540c5a Author: Andrzej Kaczmarek <andrzej.kaczma...@codecoup.pl> AuthorDate: Fri Apr 22 00:43:29 2022 +0200 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) --- nimble/controller/src/ble_ll_adv.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nimble/controller/src/ble_ll_adv.c b/nimble/controller/src/ble_ll_adv.c index 74e8bf56..7c13743b 100644 --- a/nimble/controller/src/ble_ll_adv.c +++ b/nimble/controller/src/ble_ll_adv.c @@ -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; }