nimble/ll: Fix scan window/interval limits for ext scan

Max scan window and interval is different for ext scan, we should allow
proper value to be used.

Also change func name to have proper prefix and define values to hex
values, as defined Core spec.
This commit is contained in:
Andrzej Kaczmarek
2021-11-03 14:58:30 +01:00
parent 8135e51185
commit 4f70d00335
2 changed files with 11 additions and 9 deletions
+5 -5
View File
@@ -2028,7 +2028,7 @@ ble_ll_scan_set_scan_params(const uint8_t *cmdbuf, uint8_t len)
#if MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_EXT_ADV)
static int
ble_ll_check_scan_params(uint8_t type, uint16_t itvl, uint16_t window)
ble_ll_scan_check_phy_params(uint8_t type, uint16_t itvl, uint16_t window)
{
/* Check scan type */
if ((type != BLE_HCI_SCAN_TYPE_PASSIVE) &&
@@ -2038,9 +2038,9 @@ ble_ll_check_scan_params(uint8_t type, uint16_t itvl, uint16_t window)
/* Check interval and window */
if ((itvl < BLE_HCI_SCAN_ITVL_MIN) ||
(itvl > BLE_HCI_SCAN_ITVL_MAX) ||
(itvl > BLE_HCI_SCAN_ITVL_MAX_EXT) ||
(window < BLE_HCI_SCAN_WINDOW_MIN) ||
(window > BLE_HCI_SCAN_WINDOW_MAX) ||
(window > BLE_HCI_SCAN_WINDOW_MAX_EXT) ||
(itvl < window)) {
return BLE_ERR_INV_HCI_CMD_PARMS;
}
@@ -2098,7 +2098,7 @@ ble_ll_set_ext_scan_params(const uint8_t *cmdbuf, uint8_t len)
interval = le16toh(params->itvl);
window = le16toh(params->window);
rc = ble_ll_check_scan_params(params->type, interval, window);
rc = ble_ll_scan_check_phy_params(params->type, interval, window);
if (rc) {
return rc;
}
@@ -2122,7 +2122,7 @@ ble_ll_set_ext_scan_params(const uint8_t *cmdbuf, uint8_t len)
interval = le16toh(params->itvl);
window = le16toh(params->window);
rc = ble_ll_check_scan_params(params->type, interval, window);
rc = ble_ll_scan_check_phy_params(params->type, interval, window);
if (rc) {
return rc;
}
+6 -4
View File
@@ -1152,11 +1152,13 @@ struct ble_hci_vs_rd_static_addr_rp {
/* Scan interval and scan window timing */
#define BLE_HCI_SCAN_ITVL (625) /* usecs */
#define BLE_HCI_SCAN_ITVL_MIN (4) /* units */
#define BLE_HCI_SCAN_ITVL_MAX (16384) /* units */
#define BLE_HCI_SCAN_ITVL_MIN (0x0004) /* units */
#define BLE_HCI_SCAN_ITVL_MAX (0x4000) /* units */
#define BLE_HCI_SCAN_ITVL_MAX_EXT (0xffff) /* units */
#define BLE_HCI_SCAN_ITVL_DEF (16) /* units */
#define BLE_HCI_SCAN_WINDOW_MIN (4) /* units */
#define BLE_HCI_SCAN_WINDOW_MAX (16384) /* units */
#define BLE_HCI_SCAN_WINDOW_MIN (0x0004) /* units */
#define BLE_HCI_SCAN_WINDOW_MAX (0x4000) /* units */
#define BLE_HCI_SCAN_WINDOW_MAX_EXT (0xffff) /* units */
#define BLE_HCI_SCAN_WINDOW_DEF (16) /* units */
/*