mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-08-21 17:30:00 +00:00
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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user