You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2016/07/12 02:43:13 UTC
incubator-mynewt-core git commit: BLE Host - Add duration param to
ble_gap_connect()
Repository: incubator-mynewt-core
Updated Branches:
refs/heads/ble_hs_api 5ccea9b6c -> 8da07efd3
BLE Host - Add duration param to ble_gap_connect()
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/8da07efd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/8da07efd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/8da07efd
Branch: refs/heads/ble_hs_api
Commit: 8da07efd3c2bcad79d4efbafe451c4a3a99f7206
Parents: 5ccea9b
Author: Christopher Collins <cc...@apache.org>
Authored: Mon Jul 11 19:42:43 2016 -0700
Committer: Christopher Collins <cc...@apache.org>
Committed: Mon Jul 11 19:42:43 2016 -0700
----------------------------------------------------------------------
apps/bletiny/src/bletiny.h | 4 +-
apps/bletiny/src/cmd.c | 8 +-
apps/bletiny/src/main.c | 8 +-
net/nimble/host/include/host/ble_gap.h | 4 +
net/nimble/host/src/ble_gap.c | 61 ++++++++++--
net/nimble/host/src/test/ble_gap_test.c | 113 ++++++++++++++++++++---
net/nimble/host/src/test/ble_hs_conn_test.c | 2 +-
net/nimble/host/src/test/ble_hs_test_util.c | 12 +--
net/nimble/host/src/test/ble_hs_test_util.h | 4 +-
net/nimble/host/src/test/ble_os_test.c | 12 +--
10 files changed, 187 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/8da07efd/apps/bletiny/src/bletiny.h
----------------------------------------------------------------------
diff --git a/apps/bletiny/src/bletiny.h b/apps/bletiny/src/bletiny.h
index 95a0706..cb5206b 100644
--- a/apps/bletiny/src/bletiny.h
+++ b/apps/bletiny/src/bletiny.h
@@ -158,8 +158,8 @@ int bletiny_adv_start(uint8_t own_addr_type, uint8_t peer_addr_type,
const uint8_t *peer_addr, int32_t duration_ms,
const struct ble_gap_adv_params *params);
int bletiny_adv_stop(void);
-int bletiny_conn_initiate(uint8_t own_addr_type,
- uint8_t peer_addr_type, uint8_t *peer_addr,
+int bletiny_conn_initiate(uint8_t own_addr_type, uint8_t peer_addr_type,
+ uint8_t *peer_addr, int32_t duration_ms,
struct ble_gap_conn_params *params);
int bletiny_conn_cancel(void);
int bletiny_term_conn(uint16_t conn_handle, uint8_t reason);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/8da07efd/apps/bletiny/src/cmd.c
----------------------------------------------------------------------
diff --git a/apps/bletiny/src/cmd.c b/apps/bletiny/src/cmd.c
index 3d05fb7..e05a081 100644
--- a/apps/bletiny/src/cmd.c
+++ b/apps/bletiny/src/cmd.c
@@ -380,6 +380,7 @@ static int
cmd_conn(int argc, char **argv)
{
struct ble_gap_conn_params params;
+ int32_t duration_ms;
uint8_t peer_addr[6];
int peer_addr_type;
int own_addr_type;
@@ -465,8 +466,13 @@ cmd_conn(int argc, char **argv)
return rc;
}
+ duration_ms = parse_arg_long_bounds_default("dur", 1, INT32_MAX, 0, &rc);
+ if (rc != 0) {
+ return rc;
+ }
+
rc = bletiny_conn_initiate(own_addr_type, peer_addr_type, peer_addr,
- ¶ms);
+ duration_ms, ¶ms);
if (rc != 0) {
return rc;
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/8da07efd/apps/bletiny/src/main.c
----------------------------------------------------------------------
diff --git a/apps/bletiny/src/main.c b/apps/bletiny/src/main.c
index e7aab28..042660f 100755
--- a/apps/bletiny/src/main.c
+++ b/apps/bletiny/src/main.c
@@ -1291,12 +1291,14 @@ bletiny_adv_start(uint8_t own_addr_type, uint8_t peer_addr_type,
int
bletiny_conn_initiate(uint8_t own_addr_type, uint8_t peer_addr_type,
- uint8_t *peer_addr, struct ble_gap_conn_params *params)
+ uint8_t *peer_addr, int32_t duration_ms,
+ struct ble_gap_conn_params *params)
{
int rc;
- rc = ble_gap_connect(own_addr_type, peer_addr_type, peer_addr, params,
- bletiny_gap_event, NULL);
+ rc = ble_gap_connect(own_addr_type, peer_addr_type, peer_addr, duration_ms,
+ params, bletiny_gap_event, NULL);
+
return rc;
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/8da07efd/net/nimble/host/include/host/ble_gap.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/include/host/ble_gap.h b/net/nimble/host/include/host/ble_gap.h
index 79868c5..e26a4c0 100644
--- a/net/nimble/host/include/host/ble_gap.h
+++ b/net/nimble/host/include/host/ble_gap.h
@@ -64,6 +64,9 @@ struct hci_conn_update;
/** 10.24 seconds. */
#define BLE_GAP_DISC_DUR_DFLT (10.24 * 1000)
+/** 30 seconds (not from the spec). */
+#define BLE_GAP_CONN_DUR_DFLT (30 * 1000)
+
/** 1 second. */
#define BLE_GAP_CONN_PAUSE_CENTRAL (1 * 1000)
@@ -444,6 +447,7 @@ int ble_gap_disc_cancel(void);
int ble_gap_disc_active(void);
int ble_gap_connect(uint8_t own_addr_type,
uint8_t peer_addr_type, const uint8_t *peer_addr,
+ int32_t duration_ms,
const struct ble_gap_conn_params *params,
ble_gap_event_fn *cb, void *cb_arg);
int ble_gap_conn_cancel(void);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/8da07efd/net/nimble/host/src/ble_gap.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_gap.c b/net/nimble/host/src/ble_gap.c
index 27616f2..bd85cf3 100644
--- a/net/nimble/host/src/ble_gap.c
+++ b/net/nimble/host/src/ble_gap.c
@@ -66,6 +66,12 @@
#define BLE_GAP_OP_S_ADV 1
/**
+ * If an attempt to cancel an active procedure fails, the attempt is retried
+ * at this rate (ms).
+ */
+#define BLE_GAP_CANCEL_RETRY_RATE 100 /* ms */
+
+/**
* The maximum amount of user data that can be put into the advertising data.
* The stack will automatically insert the flags field on its own if requested
* by the application, limiting the maximum amount of user data.
@@ -134,8 +140,9 @@ static bssnz_t struct {
unsigned adv_auto_flags:1;
} ble_gap_slave;
-static int ble_gap_disc_tx_disable(void);
+static int ble_gap_disc_disable_tx(void);
static int ble_gap_adv_disable_tx(void);
+static int ble_gap_conn_cancel_tx(void);
struct ble_gap_snapshot {
struct ble_gap_conn_desc *desc;
@@ -1064,15 +1071,21 @@ ble_gap_master_heartbeat(void)
switch (ble_gap_master.op) {
case BLE_GAP_OP_M_CONN:
+ rc = ble_gap_conn_cancel_tx();
+ if (rc != 0) {
+ /* Failed to stop connecting; try again in 100 ms. */
+ return BLE_GAP_CANCEL_RETRY_RATE;
+ }
+
ble_gap_master_failed(BLE_HS_ETIMEOUT);
break;
case BLE_GAP_OP_M_DISC:
/* When a discovery procedure times out, it is not a failure. */
- rc = ble_gap_disc_tx_disable();
+ rc = ble_gap_disc_disable_tx();
if (rc != 0) {
/* Failed to stop discovery; try again in 100 ms. */
- return 100;
+ return BLE_GAP_CANCEL_RETRY_RATE;
}
ble_gap_disc_complete();
@@ -1851,7 +1864,7 @@ ble_gap_adv_active(void)
*****************************************************************************/
static int
-ble_gap_disc_tx_disable(void)
+ble_gap_disc_disable_tx(void)
{
uint8_t buf[BLE_HCI_CMD_HDR_LEN + BLE_HCI_SET_SCAN_ENABLE_LEN];
int rc;
@@ -1936,7 +1949,7 @@ ble_gap_disc_cancel(void)
goto done;
}
- rc = ble_gap_disc_tx_disable();
+ rc = ble_gap_disc_disable_tx();
if (rc != 0) {
goto done;
}
@@ -2205,6 +2218,7 @@ ble_gap_conn_create_tx(uint8_t own_addr_type,
int
ble_gap_connect(uint8_t own_addr_type,
uint8_t peer_addr_type, const uint8_t *peer_addr,
+ int32_t duration_ms,
const struct ble_gap_conn_params *conn_params,
ble_gap_event_fn *cb, void *cb_arg)
{
@@ -2212,6 +2226,7 @@ ble_gap_connect(uint8_t own_addr_type,
return BLE_HS_ENOTSUP;
#endif
+ uint32_t duration_ticks;
int rc;
STATS_INC(ble_gap_stats, initiate);
@@ -2242,6 +2257,19 @@ ble_gap_connect(uint8_t own_addr_type,
conn_params = &ble_gap_conn_params_dflt;
}
+ if (duration_ms == 0) {
+ duration_ms = BLE_GAP_CONN_DUR_DFLT;
+ }
+
+ if (duration_ms != BLE_HS_FOREVER) {
+ rc = os_time_ms_to_ticks(duration_ms, &duration_ticks);
+ if (rc != 0) {
+ /* Duration too great. */
+ rc = BLE_HS_EINVAL;
+ goto done;
+ }
+ }
+
/* XXX: Verify conn_params. */
rc = ble_hs_id_use_addr(own_addr_type);
@@ -2264,6 +2292,10 @@ ble_gap_connect(uint8_t own_addr_type,
goto done;
}
+ if (duration_ms != BLE_HS_FOREVER) {
+ ble_gap_master_set_timer(duration_ticks);
+ }
+
ble_gap_master.op = BLE_GAP_OP_M_CONN;
rc = 0;
@@ -2348,6 +2380,21 @@ done:
* $cancel *
*****************************************************************************/
+static int
+ble_gap_conn_cancel_tx(void)
+{
+ uint8_t buf[BLE_HCI_CMD_HDR_LEN];
+ int rc;
+
+ host_hci_cmd_build_le_create_conn_cancel(buf, sizeof buf);
+ rc = ble_hci_cmd_tx_empty_ack(buf);
+ if (rc != 0) {
+ return rc;
+ }
+
+ return 0;
+}
+
/**
* Aborts a connect procedure in progress.
*
@@ -2359,7 +2406,6 @@ done:
int
ble_gap_conn_cancel(void)
{
- uint8_t buf[BLE_HCI_CMD_HDR_LEN];
int rc;
STATS_INC(ble_gap_stats, cancel);
@@ -2373,8 +2419,7 @@ ble_gap_conn_cancel(void)
BLE_HS_LOG(INFO, "GAP procedure initiated: cancel connection\n");
- host_hci_cmd_build_le_create_conn_cancel(buf, sizeof buf);
- rc = ble_hci_cmd_tx_empty_ack(buf);
+ rc = ble_gap_conn_cancel_tx();
if (rc != 0) {
goto done;
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/8da07efd/net/nimble/host/src/test/ble_gap_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gap_test.c b/net/nimble/host/src/test/ble_gap_test.c
index 51469a2..aac297b 100644
--- a/net/nimble/host/src/test/ble_gap_test.c
+++ b/net/nimble/host/src/test/ble_gap_test.c
@@ -204,7 +204,7 @@ ble_gap_test_util_verify_tx_scan_enable(uint8_t enable,
}
static void
-ble_gap_test_util_verify_tx_create_conn(uint8_t filter_policy)
+ble_gap_test_util_verify_tx_create_conn(const struct hci_create_conn *exp)
{
uint8_t param_len;
uint8_t *param;
@@ -214,9 +214,52 @@ ble_gap_test_util_verify_tx_create_conn(uint8_t filter_policy)
¶m_len);
TEST_ASSERT(param_len == BLE_HCI_CREATE_CONN_LEN);
- TEST_ASSERT(param[4] == filter_policy);
+ TEST_ASSERT(le16toh(param + 0) == exp->scan_itvl);
+ TEST_ASSERT(le16toh(param + 2) == exp->scan_window);
+ TEST_ASSERT(param[4] == exp->filter_policy);
+ TEST_ASSERT(param[5] == exp->peer_addr_type);
+ TEST_ASSERT(memcmp(param + 6, exp->peer_addr, 6) == 0);
+ TEST_ASSERT(param[12] == exp->own_addr_type);
+ TEST_ASSERT(le16toh(param + 13) == exp->conn_itvl_min);
+ TEST_ASSERT(le16toh(param + 15) == exp->conn_itvl_max);
+ TEST_ASSERT(le16toh(param + 17) == exp->conn_latency);
+ TEST_ASSERT(le16toh(param + 19) == exp->supervision_timeout);
+ TEST_ASSERT(le16toh(param + 21) == exp->min_ce_len);
+ TEST_ASSERT(le16toh(param + 23) == exp->max_ce_len);
+}
+
+static void
+ble_gap_test_util_hcc_from_conn_params(
+ struct hci_create_conn *hcc, uint8_t own_addr_type, uint8_t peer_addr_type,
+ const uint8_t *peer_addr, const struct ble_gap_conn_params *conn_params)
+{
+ hcc->scan_itvl = conn_params->scan_itvl;
+ hcc->scan_window = conn_params->scan_window;
+ hcc->filter_policy = peer_addr_type == BLE_GAP_ADDR_TYPE_WL ?
+ BLE_HCI_CONN_FILT_USE_WL :
+ BLE_HCI_CONN_FILT_NO_WL;
+ hcc->peer_addr_type = peer_addr_type;
+ memcpy(hcc->peer_addr, peer_addr, 6);
+ hcc->own_addr_type = own_addr_type;
+ hcc->conn_itvl_min = conn_params->itvl_min;
+ hcc->conn_itvl_max = conn_params->itvl_max;
+ hcc->conn_latency = conn_params->latency;
+ hcc->supervision_timeout = conn_params->supervision_timeout;
+ hcc->min_ce_len = conn_params->min_ce_len;
+ hcc->max_ce_len = conn_params->max_ce_len;
+}
- /* XXX: Verify other fields. */
+static void
+ble_gap_test_util_conn_params_dflt(struct ble_gap_conn_params *conn_params)
+{
+ conn_params->scan_itvl = 0x0010;
+ conn_params->scan_window = 0x0010;
+ conn_params->itvl_min = BLE_GAP_INITIAL_CONN_ITVL_MIN;
+ conn_params->itvl_max = BLE_GAP_INITIAL_CONN_ITVL_MAX;
+ conn_params->latency = BLE_GAP_INITIAL_CONN_LATENCY;
+ conn_params->supervision_timeout = BLE_GAP_INITIAL_SUPERVISION_TIMEOUT;
+ conn_params->min_ce_len = BLE_GAP_INITIAL_CONN_MIN_CE_LEN;
+ conn_params->max_ce_len = BLE_GAP_INITIAL_CONN_MAX_CE_LEN;
}
static void
@@ -458,7 +501,7 @@ TEST_CASE(ble_gap_test_case_wl_bad_args)
/*** White-list-using connection in progress. */
rc = ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC,
- BLE_GAP_ADDR_TYPE_WL, NULL, NULL,
+ BLE_GAP_ADDR_TYPE_WL, NULL, 0, NULL,
ble_gap_test_util_connect_cb, NULL, 0);
TEST_ASSERT(rc == 0);
@@ -584,7 +627,7 @@ TEST_CASE(ble_gap_test_case_disc_bad_args)
/*** Master operation already in progress. */
params.filter_policy = BLE_HCI_SCAN_FILT_NO_WL;
rc = ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC,
- BLE_GAP_ADDR_TYPE_WL, NULL, NULL,
+ BLE_GAP_ADDR_TYPE_WL, NULL, 0, NULL,
ble_gap_test_util_connect_cb, NULL, 0);
rc = ble_gap_disc(BLE_ADDR_TYPE_PUBLIC, 0, ¶ms,
ble_gap_test_util_disc_cb, NULL);
@@ -785,6 +828,8 @@ TEST_SUITE(ble_gap_test_suite_disc)
TEST_CASE(ble_gap_test_case_conn_dir_good)
{
struct hci_le_conn_complete evt;
+ struct ble_gap_conn_params params;
+ struct hci_create_conn hcc;
int rc;
uint8_t peer_addr[6] = { 1, 2, 3, 4, 5, 6 };
@@ -794,8 +839,17 @@ TEST_CASE(ble_gap_test_case_conn_dir_good)
TEST_ASSERT(!ble_gap_master_in_progress());
TEST_ASSERT(!ble_gap_conn_active());
+ params.scan_itvl = 0x12;
+ params.scan_window = 0x11;
+ params.itvl_min = 25;
+ params.itvl_max = 26;
+ params.latency = 1;
+ params.supervision_timeout = 20;
+ params.min_ce_len = 3;
+ params.max_ce_len = 4;
+
rc = ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC,
- BLE_ADDR_TYPE_PUBLIC, peer_addr, NULL,
+ BLE_ADDR_TYPE_PUBLIC, peer_addr, 0, ¶ms,
ble_gap_test_util_connect_cb, NULL, 0);
TEST_ASSERT(rc == 0);
@@ -803,7 +857,10 @@ TEST_CASE(ble_gap_test_case_conn_dir_good)
TEST_ASSERT(ble_gap_conn_active());
/* Verify tx of create connection command. */
- ble_gap_test_util_verify_tx_create_conn(BLE_HCI_CONN_FILT_NO_WL);
+ ble_gap_test_util_hcc_from_conn_params(&hcc, BLE_ADDR_TYPE_PUBLIC,
+ BLE_ADDR_TYPE_PUBLIC, peer_addr,
+ ¶ms);
+ ble_gap_test_util_verify_tx_create_conn(&hcc);
TEST_ASSERT(ble_gap_master_in_progress());
TEST_ASSERT(ble_hs_atomic_conn_flags(2, NULL) == BLE_HS_ENOTCONN);
@@ -836,7 +893,7 @@ TEST_CASE(ble_gap_test_case_conn_dir_bad_args)
/*** Invalid address type. */
rc = ble_gap_connect(BLE_ADDR_TYPE_PUBLIC, 5,
- ((uint8_t[]){ 1, 2, 3, 4, 5, 6 }), NULL,
+ ((uint8_t[]){ 1, 2, 3, 4, 5, 6 }), 0, NULL,
ble_gap_test_util_connect_cb, NULL);
TEST_ASSERT(rc == BLE_HS_EINVAL);
TEST_ASSERT(!ble_gap_master_in_progress());
@@ -844,22 +901,45 @@ TEST_CASE(ble_gap_test_case_conn_dir_bad_args)
/*** Connection already in progress. */
rc = ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC,
BLE_ADDR_TYPE_PUBLIC,
- ((uint8_t[]){ 1, 2, 3, 4, 5, 6 }),
+ ((uint8_t[]){ 1, 2, 3, 4, 5, 6 }), 0,
NULL, ble_gap_test_util_connect_cb,
NULL, 0);
TEST_ASSERT(rc == 0);
TEST_ASSERT(ble_gap_master_in_progress());
rc = ble_gap_connect(BLE_ADDR_TYPE_PUBLIC, BLE_ADDR_TYPE_PUBLIC,
- ((uint8_t[]){ 2, 3, 4, 5, 6, 7 }), NULL,
- ble_gap_test_util_connect_cb, NULL);
+ ((uint8_t[]){ 1, 2, 3, 4, 5, 6 }), 0, NULL,
+ ble_gap_test_util_connect_cb, NULL);
TEST_ASSERT(rc == BLE_HS_EALREADY);
}
+TEST_CASE(ble_gap_test_case_conn_dir_dflt_params)
+{
+ static const uint8_t peer_addr[6] = { 2, 3, 8, 6, 6, 1 };
+
+ struct ble_gap_conn_params conn_params;
+ struct hci_create_conn hcc;
+ int rc;
+
+ ble_gap_test_util_init();
+
+ rc = ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC,
+ BLE_ADDR_TYPE_PUBLIC, peer_addr, 0, NULL,
+ ble_gap_test_util_connect_cb, NULL, 0);
+ TEST_ASSERT(rc == 0);
+
+ ble_gap_test_util_conn_params_dflt(&conn_params);
+ ble_gap_test_util_hcc_from_conn_params(&hcc, BLE_ADDR_TYPE_PUBLIC,
+ BLE_ADDR_TYPE_PUBLIC, peer_addr,
+ &conn_params);
+ ble_gap_test_util_verify_tx_create_conn(&hcc);
+}
+
TEST_SUITE(ble_gap_test_suite_conn_dir)
{
ble_gap_test_case_conn_dir_good();
ble_gap_test_case_conn_dir_bad_args();
+ ble_gap_test_case_conn_dir_dflt_params();
}
/*****************************************************************************
@@ -870,17 +950,24 @@ static void
ble_gap_test_util_conn_cancel(uint8_t *peer_addr, uint8_t hci_status)
{
struct hci_le_conn_complete evt;
+ struct ble_gap_conn_params conn_params;
+ struct hci_create_conn hcc;
int rc;
ble_gap_test_util_init();
/* Begin creating a connection. */
rc = ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC,
- BLE_ADDR_TYPE_PUBLIC, peer_addr, NULL,
+ BLE_ADDR_TYPE_PUBLIC, peer_addr, 0, NULL,
ble_gap_test_util_connect_cb, NULL, 0);
TEST_ASSERT(rc == 0);
TEST_ASSERT(ble_gap_master_in_progress());
- ble_gap_test_util_verify_tx_create_conn(BLE_HCI_CONN_FILT_NO_WL);
+
+ ble_gap_test_util_conn_params_dflt(&conn_params);
+ ble_gap_test_util_hcc_from_conn_params(&hcc, BLE_ADDR_TYPE_PUBLIC,
+ BLE_ADDR_TYPE_PUBLIC, peer_addr,
+ &conn_params);
+ ble_gap_test_util_verify_tx_create_conn(&hcc);
/* Initiate cancel procedure. */
rc = ble_hs_test_util_conn_cancel(hci_status);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/8da07efd/net/nimble/host/src/test/ble_hs_conn_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_hs_conn_test.c b/net/nimble/host/src/test/ble_hs_conn_test.c
index 02eba78..87df5b1 100644
--- a/net/nimble/host/src/test/ble_hs_conn_test.c
+++ b/net/nimble/host/src/test/ble_hs_conn_test.c
@@ -56,7 +56,7 @@ TEST_CASE(ble_hs_conn_test_direct_connect_success)
/* Initiate connection. */
rc = ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC,
BLE_ADDR_TYPE_PUBLIC,
- addr, NULL, NULL, NULL, 0);
+ addr, 0, NULL, NULL, NULL, 0);
TEST_ASSERT(rc == 0);
TEST_ASSERT(ble_gap_master_in_progress());
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/8da07efd/net/nimble/host/src/test/ble_hs_test_util.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_hs_test_util.c b/net/nimble/host/src/test/ble_hs_test_util.c
index 895a608..c5d72c6 100644
--- a/net/nimble/host/src/test/ble_hs_test_util.c
+++ b/net/nimble/host/src/test/ble_hs_test_util.c
@@ -376,7 +376,7 @@ ble_hs_test_util_create_rpa_conn(uint16_t handle, uint8_t own_addr_type,
int rc;
ble_hs_test_util_connect(own_addr_type, peer_addr_type,
- peer_id_addr, NULL, cb, cb_arg, 0);
+ peer_id_addr, 0, NULL, cb, cb_arg, 0);
memset(&evt, 0, sizeof evt);
evt.subevent_code = BLE_HCI_LE_SUBEV_CONN_COMPLETE;
@@ -410,10 +410,10 @@ ble_hs_test_util_create_conn(uint16_t handle, uint8_t *peer_id_addr,
int
ble_hs_test_util_connect(uint8_t own_addr_type, uint8_t peer_addr_type,
- const uint8_t *peer_addr,
- const struct ble_gap_conn_params *params,
- ble_gap_event_fn *cb, void *cb_arg,
- uint8_t ack_status)
+ const uint8_t *peer_addr, int32_t duration_ms,
+ const struct ble_gap_conn_params *params,
+ ble_gap_event_fn *cb, void *cb_arg,
+ uint8_t ack_status)
{
int rc;
@@ -421,7 +421,7 @@ ble_hs_test_util_connect(uint8_t own_addr_type, uint8_t peer_addr_type,
host_hci_opcode_join(BLE_HCI_OGF_LE, BLE_HCI_OCF_LE_CREATE_CONN),
ack_status);
- rc = ble_gap_connect(own_addr_type, peer_addr_type, peer_addr,
+ rc = ble_gap_connect(own_addr_type, peer_addr_type, peer_addr, duration_ms,
params, cb, cb_arg);
TEST_ASSERT(rc == BLE_HS_HCI_ERR(ack_status));
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/8da07efd/net/nimble/host/src/test/ble_hs_test_util.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_hs_test_util.h b/net/nimble/host/src/test/ble_hs_test_util.h
index 8d2221a..350f8e5 100644
--- a/net/nimble/host/src/test/ble_hs_test_util.h
+++ b/net/nimble/host/src/test/ble_hs_test_util.h
@@ -66,8 +66,10 @@ void ble_hs_test_util_create_conn(uint16_t handle, uint8_t *addr,
int ble_hs_test_util_connect(uint8_t own_addr_type,
uint8_t peer_addr_type,
const uint8_t *peer_addr,
+ int32_t duration_ms,
const struct ble_gap_conn_params *params,
- ble_gap_event_fn *cb, void *cb_arg,
+ ble_gap_event_fn *cb,
+ void *cb_arg,
uint8_t ack_status);
int ble_hs_test_util_conn_cancel(uint8_t ack_status);
int ble_hs_test_util_conn_terminate(uint16_t conn_handle, uint8_t hci_status);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/8da07efd/net/nimble/host/src/test/ble_os_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_os_test.c b/net/nimble/host/src/test/ble_os_test.c
index 4df85d9..ef51d9e 100644
--- a/net/nimble/host/src/test/ble_os_test.c
+++ b/net/nimble/host/src/test/ble_os_test.c
@@ -129,9 +129,9 @@ ble_gap_direct_connect_test_task_handler(void *arg)
/* Initiate a direct connection. */
ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC, BLE_ADDR_TYPE_PUBLIC,
- addr, NULL,
- ble_gap_direct_connect_test_connect_cb,
- &cb_called, 0);
+ addr, 0, NULL,
+ ble_gap_direct_connect_test_connect_cb,
+ &cb_called, 0);
TEST_ASSERT(!ble_os_test_misc_conn_exists(BLE_HS_CONN_HANDLE_NONE));
TEST_ASSERT(!cb_called);
@@ -291,7 +291,7 @@ ble_gap_terminate_test_task_handler(void *arg)
/* Create two direct connections. */
ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC, BLE_ADDR_TYPE_PUBLIC,
- addr1, NULL, ble_gap_terminate_cb,
+ addr1, 0, NULL, ble_gap_terminate_cb,
&disconn_handle, 0);
memset(&conn_evt, 0, sizeof conn_evt);
conn_evt.subevent_code = BLE_HCI_LE_SUBEV_CONN_COMPLETE;
@@ -302,8 +302,8 @@ ble_gap_terminate_test_task_handler(void *arg)
TEST_ASSERT(rc == 0);
ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC, BLE_ADDR_TYPE_PUBLIC,
- addr2, NULL, ble_gap_terminate_cb,
- &disconn_handle, 0);
+ addr2, 0, NULL, ble_gap_terminate_cb,
+ &disconn_handle, 0);
memset(&conn_evt, 0, sizeof conn_evt);
conn_evt.subevent_code = BLE_HCI_LE_SUBEV_CONN_COMPLETE;
conn_evt.status = BLE_ERR_SUCCESS;