diff --git a/nimble/host/include/host/ble_gap.h b/nimble/host/include/host/ble_gap.h index ed7fbb128..97643280b 100644 --- a/nimble/host/include/host/ble_gap.h +++ b/nimble/host/include/host/ble_gap.h @@ -1821,6 +1821,22 @@ int ble_gap_wl_tx_rmv(const ble_addr_t *addrs); int ble_gap_update_params(uint16_t conn_handle, const struct ble_gap_upd_params *params); +/** + * Configure LE Data Length in controller (OGF = 0x08, OCF = 0x0022). + * + * @param conn_handle Connection handle. + * @param tx_octets The preferred value of payload octets that the Controller + * should use for a new connection (Range + * 0x001B-0x00FB). + * @param tx_time The preferred maximum number of microseconds that the local Controller + * should use to transmit a single link layer packet + * (Range 0x0148-0x4290). + * + * @return 0 on success, + * other error code on failure. + */ +int ble_gap_set_data_len(uint16_t conn_handle, uint16_t tx_octets, uint16_t tx_time); + /** * Initiates the GAP security procedure. * diff --git a/nimble/host/src/ble_gap.c b/nimble/host/src/ble_gap.c index 17ff4eae0..332e0d829 100644 --- a/nimble/host/src/ble_gap.c +++ b/nimble/host/src/ble_gap.c @@ -2246,11 +2246,6 @@ ble_gap_wl_set(const ble_addr_t *addrs, uint8_t white_list_count) ble_hs_lock(); - if (white_list_count == 0) { - rc = BLE_HS_EINVAL; - goto done; - } - for (i = 0; i < white_list_count; i++) { if (addrs[i].type != BLE_ADDR_PUBLIC && addrs[i].type != BLE_ADDR_RANDOM) { @@ -5617,6 +5612,11 @@ done: #endif } +int ble_gap_set_data_len(uint16_t conn_handle, uint16_t tx_octets, uint16_t tx_time) +{ + return ble_hs_hci_util_set_data_len(conn_handle, tx_octets, tx_time); +} + /***************************************************************************** * $security * *****************************************************************************/ diff --git a/nimble/host/test/src/ble_gap_test.c b/nimble/host/test/src/ble_gap_test.c index 7496e3168..876ef8f25 100644 --- a/nimble/host/test/src/ble_gap_test.c +++ b/nimble/host/test/src/ble_gap_test.c @@ -449,9 +449,10 @@ TEST_CASE_SELF(ble_gap_test_case_wl_bad_args) ble_gap_test_util_init(); - /*** 0 white list entries. */ + /*** 0 white list entries. This is acceptable now with the wl_set API + * change. */ rc = ble_hs_test_util_wl_set(NULL, 0, 0, 0); - TEST_ASSERT(rc == BLE_HS_EINVAL); + TEST_ASSERT(rc == 0); /*** Invalid address type. */ rc = ble_hs_test_util_wl_set(