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/12/02 02:26:43 UTC

[1/3] incubator-mynewt-core git commit: BLE Host - Fix SM unit test.

Repository: incubator-mynewt-core
Updated Branches:
  refs/heads/develop 0d402e54a -> 198143989


BLE Host - Fix SM unit test.

This test was testing two things at once; it should only be testing one.


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/80f4e7f1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/80f4e7f1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/80f4e7f1

Branch: refs/heads/develop
Commit: 80f4e7f167ba66664010bdecc6ca1690782cf88d
Parents: 0d402e5
Author: Christopher Collins <cc...@apache.org>
Authored: Thu Dec 1 16:39:05 2016 -0800
Committer: Christopher Collins <cc...@apache.org>
Committed: Thu Dec 1 16:39:05 2016 -0800

----------------------------------------------------------------------
 net/nimble/host/test/src/ble_sm_test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/80f4e7f1/net/nimble/host/test/src/ble_sm_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/test/src/ble_sm_test.c b/net/nimble/host/test/src/ble_sm_test.c
index 06430ee..a98f4bb 100644
--- a/net/nimble/host/test/src/ble_sm_test.c
+++ b/net/nimble/host/test/src/ble_sm_test.c
@@ -634,7 +634,7 @@ TEST_CASE(ble_sm_test_case_us_fail_inval)
             .io_cap = 0x04,
             .oob_data_flag = 0,
             .authreq = 0x05,
-            .max_enc_key_size = 17,
+            .max_enc_key_size = 16,
             .init_key_dist = 0x07,
             .resp_key_dist = 0x10,
         },


[3/3] incubator-mynewt-core git commit: MYNEWT-353 BLE Host - Timeout for ATT queued write

Posted by cc...@apache.org.
MYNEWT-353 BLE Host - Timeout for ATT queued write

If a queued write is only partially received, and 30 seconds has passed
since the last prepare write was received, a timeout occurs.  When this
happens, the connection is terminated.


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/19814398
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/19814398
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/19814398

Branch: refs/heads/develop
Commit: 198143989112b3b55f1d50619c938e3b34fc63f9
Parents: defd62a
Author: Christopher Collins <cc...@apache.org>
Authored: Thu Dec 1 18:25:46 2016 -0800
Committer: Christopher Collins <cc...@apache.org>
Committed: Thu Dec 1 18:25:46 2016 -0800

----------------------------------------------------------------------
 net/nimble/host/src/ble_att_priv.h          |  4 +-
 net/nimble/host/src/ble_att_svr.c           | 40 ++++++++++++++++
 net/nimble/host/src/ble_gap.c               | 10 +++-
 net/nimble/host/src/ble_hs.c                |  2 +-
 net/nimble/host/src/ble_hs_conn.c           | 50 +++++++++++++++----
 net/nimble/host/src/ble_hs_priv.h           |  8 ++++
 net/nimble/host/src/ble_l2cap.c             |  6 ++-
 net/nimble/host/src/ble_l2cap_priv.h        |  2 -
 net/nimble/host/syscfg.yml                  | 13 +++++
 net/nimble/host/test/src/ble_att_svr_test.c | 61 +++++++++++++++++++++++-
 net/nimble/host/test/src/ble_l2cap_test.c   |  8 ++--
 11 files changed, 184 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/net/nimble/host/src/ble_att_priv.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att_priv.h b/net/nimble/host/src/ble_att_priv.h
index c10418a..5a0eb35 100644
--- a/net/nimble/host/src/ble_att_priv.h
+++ b/net/nimble/host/src/ble_att_priv.h
@@ -120,7 +120,7 @@ SLIST_HEAD(ble_att_prep_entry_list, ble_att_prep_entry);
 struct ble_att_svr_conn {
     /** This list is sorted by attribute handle ID. */
     struct ble_att_prep_entry_list basc_prep_list;
-    uint32_t basc_prep_write_rx_time;
+    os_time_t basc_prep_timeout_at;
 };
 
 /**
@@ -187,6 +187,8 @@ ble_att_svr_find_by_uuid(struct ble_att_svr_entry *start_at,
 uint16_t ble_att_svr_prev_handle(void);
 int ble_att_svr_rx_mtu(uint16_t conn_handle, struct os_mbuf **rxom);
 struct ble_att_svr_entry *ble_att_svr_find_by_handle(uint16_t handle_id);
+int32_t ble_att_svr_ticks_until_tmo(const struct ble_att_svr_conn *svr,
+                                    os_time_t now);
 int ble_att_svr_rx_find_info(uint16_t conn_handle, struct os_mbuf **rxom);
 int ble_att_svr_rx_find_type_value(uint16_t conn_handle,
                                    struct os_mbuf **rxom);

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/net/nimble/host/src/ble_att_svr.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att_svr.c b/net/nimble/host/src/ble_att_svr.c
index 46daf87..25aa341 100644
--- a/net/nimble/host/src/ble_att_svr.c
+++ b/net/nimble/host/src/ble_att_svr.c
@@ -291,6 +291,39 @@ ble_att_svr_check_perms(uint16_t conn_handle, int is_read,
 }
 
 /**
+ * Calculates the number of ticks until a queued write times out on the
+ * specified ATT server.  If this server is not in the process of receiving a
+ * queued write, then BLE_HS_FOREVER is returned.  If a timeout just occurred,
+ * 0 is returned.
+ *
+ * @param svr                   The ATT server to check.
+ * @param now                   The current OS time.
+ *
+ * @return                      The number of ticks until the current queued
+ *                                  write times out.  
+ */
+int32_t
+ble_att_svr_ticks_until_tmo(const struct ble_att_svr_conn *svr, os_time_t now)
+{
+#if BLE_HS_ATT_SVR_QUEUED_WRITE_TMO == 0
+    return BLE_HS_FOREVER;
+#endif
+
+    int32_t time_diff;
+
+    if (SLIST_EMPTY(&svr->basc_prep_list)) {
+        return BLE_HS_FOREVER;
+    }
+
+    time_diff = svr->basc_prep_timeout_at - now;
+    if (time_diff < 0) {
+        return 0;
+    }
+
+    return time_diff;
+}
+
+/**
  * Allocates an mbuf to be used for an ATT response.  If an mbuf cannot be
  * allocated, the received request mbuf is reused for the error response.
  */
@@ -2377,6 +2410,13 @@ ble_att_svr_insert_prep_entry(uint16_t conn_handle,
         SLIST_INSERT_AFTER(prep_prev, prep_entry, bape_next);
     }
 
+#if BLE_HS_ATT_SVR_QUEUED_WRITE_TMO != 0
+    conn->bhc_att_svr.basc_prep_timeout_at =
+        os_time_get() + BLE_HS_ATT_SVR_QUEUED_WRITE_TMO;
+
+    ble_hs_timer_resched();
+#endif
+
     return 0;
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/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 863fc5d..fcfdc57 100644
--- a/net/nimble/host/src/ble_gap.c
+++ b/net/nimble/host/src/ble_gap.c
@@ -2549,17 +2549,24 @@ int
 ble_gap_terminate(uint16_t conn_handle, uint8_t hci_reason)
 {
     uint8_t buf[BLE_HCI_CMD_HDR_LEN + BLE_HCI_DISCONNECT_CMD_LEN];
+    struct ble_hs_conn *conn;
     int rc;
 
     STATS_INC(ble_gap_stats, terminate);
 
     ble_hs_lock();
 
-    if (!ble_hs_conn_exists(conn_handle)) {
+    conn = ble_hs_conn_find(conn_handle);
+    if (conn == NULL) {
         rc = BLE_HS_ENOTCONN;
         goto done;
     }
 
+    if (conn->bhc_flags & BLE_HS_CONN_F_TERMINATING) {
+        rc = BLE_HS_EALREADY;
+        goto done;
+    }
+
     BLE_HS_LOG(INFO, "GAP procedure initiated: terminate connection; "
                      "conn_handle=%d hci_reason=%d\n",
                conn_handle, hci_reason);
@@ -2571,6 +2578,7 @@ ble_gap_terminate(uint16_t conn_handle, uint8_t hci_reason)
         goto done;
     }
 
+    conn->bhc_flags |= BLE_HS_CONN_F_TERMINATING;
     rc = 0;
 
 done:

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/net/nimble/host/src/ble_hs.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hs.c b/net/nimble/host/src/ble_hs.c
index c5799ee..0d35a88 100644
--- a/net/nimble/host/src/ble_hs.c
+++ b/net/nimble/host/src/ble_hs.c
@@ -405,7 +405,7 @@ ble_hs_enqueue_hci_event(uint8_t *hci_evt)
         ble_hci_trans_buf_free(hci_evt);
     } else {
         ev->ev_queued = 0;
-        ev->ev_cb = ble_hs_event_rx_hci_ev,
+        ev->ev_cb = ble_hs_event_rx_hci_ev;
         ev->ev_arg = hci_evt;
         os_eventq_put(ble_hs_evq_get(), ev);
     }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/net/nimble/host/src/ble_hs_conn.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hs_conn.c b/net/nimble/host/src/ble_hs_conn.c
index 9a6517e..e92f9e5 100644
--- a/net/nimble/host/src/ble_hs_conn.c
+++ b/net/nimble/host/src/ble_hs_conn.c
@@ -381,6 +381,13 @@ ble_hs_conn_addrs(const struct ble_hs_conn *conn,
 int32_t
 ble_hs_conn_timer(void)
 {
+    /* If there are no timeouts configured, then there is nothing to check. */
+#if MYNEWT_VAL(BLE_L2CAP_RX_FRAG_TIMEOUT) == 0 && \
+    BLE_HS_ATT_SVR_QUEUED_WRITE_TMO == 0
+     
+    return BLE_HS_FOREVER;
+#endif
+
     struct ble_hs_conn *conn;
     os_time_t now;
     int32_t next_exp_in;
@@ -400,20 +407,44 @@ ble_hs_conn_timer(void)
      * 2. Otherwise, determine when the next timeout will occur.
      */
     SLIST_FOREACH(conn, &ble_hs_conns, bhc_next) {
-        /* Check each connection's rx fragment timer.  If too much time passes
-         * after a partial packet is received, the connection is terminated.
-         */
-        if (!(conn->bhc_flags & BLE_HS_CONN_F_TERMINATING) &&
-            conn->bhc_rx_chan != NULL) {
-
-            time_diff = conn->bhc_rx_timeout - now;
+        if (!(conn->bhc_flags & BLE_HS_CONN_F_TERMINATING)) {
+
+#if MYNEWT_VAL(BLE_L2CAP_RX_FRAG_TIMEOUT) != 0
+            /* Check each connection's rx fragment timer.  If too much time
+             * passes after a partial packet is received, the connection is
+             * terminated.
+             */
+            if (conn->bhc_rx_chan != NULL) {
+                time_diff = conn->bhc_rx_timeout - now;
+
+                if (time_diff <= 0) {
+                    /* ACL reassembly has timed out.  Remember the connection
+                     * handle so it can be terminated after the mutex is
+                     * unlocked.
+                     */
+                    conn_handle = conn->bhc_handle;
+                    break;
+                }
+
+                /* Determine if this connection is the soonest to time out. */
+                if (time_diff < next_exp_in) {
+                    next_exp_in = time_diff;
+                }
+            }
+#endif
 
+#if BLE_HS_ATT_SVR_QUEUED_WRITE_TMO
+            /* Check each connection's rx queued write timer.  If too much
+             * time passes after a prep write is received, the queue is
+             * cleared.
+             */
+            time_diff = ble_att_svr_ticks_until_tmo(&conn->bhc_att_svr, now);
             if (time_diff <= 0) {
                 /* ACL reassembly has timed out.  Remember the connection
-                 * handle so it can be terminated after the mutex is unlocked.
+                 * handle so it can be terminated after the mutex is
+                 * unlocked.
                  */
                 conn_handle = conn->bhc_handle;
-                conn->bhc_flags |= BLE_HS_CONN_F_TERMINATING;
                 break;
             }
 
@@ -421,6 +452,7 @@ ble_hs_conn_timer(void)
             if (time_diff < next_exp_in) {
                 next_exp_in = time_diff;
             }
+#endif
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/net/nimble/host/src/ble_hs_priv.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hs_priv.h b/net/nimble/host/src/ble_hs_priv.h
index 905386b..2cc8b40 100644
--- a/net/nimble/host/src/ble_hs_priv.h
+++ b/net/nimble/host/src/ble_hs_priv.h
@@ -22,6 +22,7 @@
 
 #include <assert.h>
 #include <inttypes.h>
+#include "os/os_time.h"
 #include "ble_att_cmd_priv.h"
 #include "ble_att_priv.h"
 #include "ble_gap_priv.h"
@@ -64,6 +65,13 @@ struct os_event;
 #define BLE_HS_MAX_CONNECTIONS 0
 #endif
 
+#if !MYNEWT_VAL(BLE_ATT_SVR_QUEUED_WRITE)
+#define BLE_HS_ATT_SVR_QUEUED_WRITE_TMO 0
+#else
+#define BLE_HS_ATT_SVR_QUEUED_WRITE_TMO \
+    MYNEWT_VAL(BLE_ATT_SVR_QUEUED_WRITE_TMO)
+#endif
+
 STATS_SECT_START(ble_hs_stats)
     STATS_SECT_ENTRY(conn_create)
     STATS_SECT_ENTRY(conn_delete)

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/net/nimble/host/src/ble_l2cap.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_l2cap.c b/net/nimble/host/src/ble_l2cap.c
index aa37784..7f66b57 100644
--- a/net/nimble/host/src/ble_l2cap.c
+++ b/net/nimble/host/src/ble_l2cap.c
@@ -180,8 +180,12 @@ ble_l2cap_rx_payload(struct ble_hs_conn *conn, struct ble_l2cap_chan *chan,
         rc = 0;
     } else {
         /* More fragments remain. */
-        conn->bhc_rx_timeout = os_time_get() + BLE_L2CAP_REASSEM_TIMEOUT;
+#if MYNEWT_VAL(BLE_L2CAP_RX_FRAG_TIMEOUT) != 0
+        conn->bhc_rx_timeout =
+            os_time_get() + MYNEWT_VAL(BLE_L2CAP_RX_FRAG_TIMEOUT);
+
         ble_hs_timer_resched();
+#endif
         rc = BLE_HS_EAGAIN;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/net/nimble/host/src/ble_l2cap_priv.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_l2cap_priv.h b/net/nimble/host/src/ble_l2cap_priv.h
index 2087e81..79d58a7 100644
--- a/net/nimble/host/src/ble_l2cap_priv.h
+++ b/net/nimble/host/src/ble_l2cap_priv.h
@@ -29,8 +29,6 @@
 extern "C" {
 #endif
 
-#define BLE_L2CAP_REASSEM_TIMEOUT       (30 * OS_TICKS_PER_SEC)
-
 struct ble_hs_conn;
 struct hci_data_hdr;
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/net/nimble/host/syscfg.yml
----------------------------------------------------------------------
diff --git a/net/nimble/host/syscfg.yml b/net/nimble/host/syscfg.yml
index c4bbca9..361b4b5 100644
--- a/net/nimble/host/syscfg.yml
+++ b/net/nimble/host/syscfg.yml
@@ -42,6 +42,12 @@ syscfg.defs:
     BLE_L2CAP_SIG_MAX_PROCS:
         description: 'TBD'
         value: 1
+    BLE_L2CAP_RX_FRAG_TIMEOUT:
+        description: >
+            Expiry time for incoming data packets (ms).  If this much time
+            passes since the previous fragment was received, the connection is
+            terminated.  A value of 0 means no timeout.
+        value: 30000
 
     # Security manager settings.
     BLE_SM:
@@ -204,6 +210,13 @@ syscfg.defs:
             sends a partial write.
         value: 64
 
+    BLE_ATT_SVR_QUEUED_WRITE_TMO:
+        description: >
+            Expiry time for incoming ATT queued writes (ms).  If this much
+            time passes since the previous prepared write was received, the
+            connection is terminated.  A value of 0 means no timeout.
+        value: 30000
+
     # Privacy options.
     BLE_RPA_TIMEOUT:
         description: 'TBD'

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/net/nimble/host/test/src/ble_att_svr_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/test/src/ble_att_svr_test.c b/net/nimble/host/test/src/ble_att_svr_test.c
index 5de166b..4a1ea61 100644
--- a/net/nimble/host/test/src/ble_att_svr_test.c
+++ b/net/nimble/host/test/src/ble_att_svr_test.c
@@ -1763,6 +1763,65 @@ TEST_CASE(ble_att_svr_test_notify)
 
 }
 
+TEST_CASE(ble_att_svr_test_prep_write_tmo)
+{
+    int32_t ticks_from_now;
+    uint16_t conn_handle;
+    int rc;
+    int i;
+
+    static uint8_t data[1024];
+
+    conn_handle = ble_att_svr_test_misc_init(205);
+
+    /* Initialize some attribute data. */
+    for (i = 0; i < sizeof data; i++) {
+        data[i] = i;
+    }
+
+    /* Register a writable attribute. */
+    ble_att_svr_test_misc_register_uuid16(0x1234, HA_FLAG_PERM_RW, 1,
+                                          ble_att_svr_test_misc_attr_fn_w_1);
+
+    /* Ensure timer is not set. */
+    ticks_from_now = ble_hs_conn_timer();
+    TEST_ASSERT_FATAL(ticks_from_now == BLE_HS_FOREVER);
+
+    /* Receive a prepare write request. */
+    ble_att_svr_test_misc_prep_write(conn_handle, 1, 0, data, 7, 0);
+
+    /* Ensure timer will expire in 30 seconds. */
+    ticks_from_now = ble_hs_conn_timer();
+    TEST_ASSERT(ticks_from_now == BLE_HS_ATT_SVR_QUEUED_WRITE_TMO);
+
+    /* Almost let the timer expire. */
+    os_time_advance(BLE_HS_ATT_SVR_QUEUED_WRITE_TMO - 1);
+    ticks_from_now = ble_hs_conn_timer();
+    TEST_ASSERT(ticks_from_now == 1);
+
+    /* Receive a second prepare write request. */
+    ble_att_svr_test_misc_prep_write(conn_handle, 1, 7, data + 7, 10, 0);
+
+    /* Ensure timer got reset. */
+    ticks_from_now = ble_hs_conn_timer();
+    TEST_ASSERT(ticks_from_now == BLE_HS_ATT_SVR_QUEUED_WRITE_TMO);
+
+    /* Allow the timer to expire. */
+    ble_hs_test_util_set_ack_disconnect(0);
+    os_time_advance(BLE_HS_ATT_SVR_QUEUED_WRITE_TMO);
+    ticks_from_now = ble_hs_conn_timer();
+    TEST_ASSERT(ticks_from_now == BLE_HS_FOREVER);
+
+    /* Ensure connection was terminated. */
+    ble_hs_test_util_verify_tx_disconnect(2, BLE_ERR_REM_USER_CONN_TERM);
+
+    /* Free connection.  This is needed so that the prep write mbufs get
+     * freed and no mbuf leak gets reported.
+     */
+    rc = ble_hs_atomic_conn_delete(conn_handle);
+    TEST_ASSERT_FATAL(rc == 0);
+}
+
 TEST_CASE(ble_att_svr_test_indicate)
 {
     uint16_t conn_handle;
@@ -1783,7 +1842,6 @@ TEST_CASE(ble_att_svr_test_indicate)
     /* Attribute handle of 0. */
     ble_att_svr_test_misc_verify_indicate(conn_handle, 0,
                                           (uint8_t[]) { 1, 2, 3 }, 3, 0);
-
 }
 
 TEST_CASE(ble_att_svr_test_oom)
@@ -1996,6 +2054,7 @@ TEST_SUITE(ble_att_svr_suite)
     ble_att_svr_test_read_type();
     ble_att_svr_test_read_group_type();
     ble_att_svr_test_prep_write();
+    ble_att_svr_test_prep_write_tmo();
     ble_att_svr_test_notify();
     ble_att_svr_test_indicate();
     ble_att_svr_test_oom();

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/19814398/net/nimble/host/test/src/ble_l2cap_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/test/src/ble_l2cap_test.c b/net/nimble/host/test/src/ble_l2cap_test.c
index 55d6afe..9858660 100644
--- a/net/nimble/host/test/src/ble_l2cap_test.c
+++ b/net/nimble/host/test/src/ble_l2cap_test.c
@@ -372,10 +372,10 @@ TEST_CASE(ble_l2cap_test_case_frag_timeout)
 
     /* Ensure timer will expire in 30 seconds. */
     ticks_from_now = ble_hs_conn_timer();
-    TEST_ASSERT(ticks_from_now == BLE_L2CAP_REASSEM_TIMEOUT);
+    TEST_ASSERT(ticks_from_now == MYNEWT_VAL(BLE_L2CAP_RX_FRAG_TIMEOUT));
 
     /* Almost let the timer expire. */
-    os_time_advance(BLE_L2CAP_REASSEM_TIMEOUT - 1);
+    os_time_advance(MYNEWT_VAL(BLE_L2CAP_RX_FRAG_TIMEOUT) - 1);
     ticks_from_now = ble_hs_conn_timer();
     TEST_ASSERT(ticks_from_now == 1);
 
@@ -385,11 +385,11 @@ TEST_CASE(ble_l2cap_test_case_frag_timeout)
 
     /* Ensure timer got reset. */
     ticks_from_now = ble_hs_conn_timer();
-    TEST_ASSERT(ticks_from_now == BLE_L2CAP_REASSEM_TIMEOUT);
+    TEST_ASSERT(ticks_from_now == MYNEWT_VAL(BLE_L2CAP_RX_FRAG_TIMEOUT));
 
     /* Allow the timer to expire. */
     ble_hs_test_util_set_ack_disconnect(0);
-    os_time_advance(BLE_L2CAP_REASSEM_TIMEOUT);
+    os_time_advance(MYNEWT_VAL(BLE_L2CAP_RX_FRAG_TIMEOUT));
     ticks_from_now = ble_hs_conn_timer();
     TEST_ASSERT(ticks_from_now == BLE_HS_FOREVER);
 


[2/3] incubator-mynewt-core git commit: BLE Host - Combine PREP_WRITE, EXEC_WRITE syscfg

Posted by cc...@apache.org.
BLE Host - Combine PREP_WRITE, EXEC_WRITE syscfg

This commit combines the BLE_ATT_SVR_PREP_WRITE and
BLE_ATT_SVR_EXEC_WRITE syscfg settings into one:
BLE_ATT_SVR_QUEUED_WRITE.

It didn't make sense to support one without the other.


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/defd62a7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/defd62a7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/defd62a7

Branch: refs/heads/develop
Commit: defd62a78d62563a151b1efdac9e68491b02fde3
Parents: 80f4e7f
Author: Christopher Collins <cc...@apache.org>
Authored: Thu Dec 1 18:25:08 2016 -0800
Committer: Christopher Collins <cc...@apache.org>
Committed: Thu Dec 1 18:25:08 2016 -0800

----------------------------------------------------------------------
 net/nimble/host/src/ble_att_svr.c | 4 ++--
 net/nimble/host/syscfg.yml        | 9 ++++-----
 2 files changed, 6 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/defd62a7/net/nimble/host/src/ble_att_svr.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att_svr.c b/net/nimble/host/src/ble_att_svr.c
index f13105e..46daf87 100644
--- a/net/nimble/host/src/ble_att_svr.c
+++ b/net/nimble/host/src/ble_att_svr.c
@@ -2383,7 +2383,7 @@ ble_att_svr_insert_prep_entry(uint16_t conn_handle,
 int
 ble_att_svr_rx_prep_write(uint16_t conn_handle, struct os_mbuf **rxom)
 {
-#if !MYNEWT_VAL(BLE_ATT_SVR_PREP_WRITE)
+#if !MYNEWT_VAL(BLE_ATT_SVR_QUEUED_WRITE)
     return BLE_HS_ENOTSUP;
 #endif
 
@@ -2498,7 +2498,7 @@ done:
 int
 ble_att_svr_rx_exec_write(uint16_t conn_handle, struct os_mbuf **rxom)
 {
-#if !MYNEWT_VAL(BLE_ATT_SVR_EXEC_WRITE)
+#if !MYNEWT_VAL(BLE_ATT_SVR_QUEUED_WRITE)
     return BLE_HS_ENOTSUP;
 #endif
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/defd62a7/net/nimble/host/syscfg.yml
----------------------------------------------------------------------
diff --git a/net/nimble/host/syscfg.yml b/net/nimble/host/syscfg.yml
index 2223c56..c4bbca9 100644
--- a/net/nimble/host/syscfg.yml
+++ b/net/nimble/host/syscfg.yml
@@ -183,11 +183,10 @@ syscfg.defs:
     BLE_ATT_SVR_SIGNED_WRITE:
         description: 'TBD'
         value: 1
-    BLE_ATT_SVR_PREP_WRITE:
-        description: 'TBD'
-        value: 1
-    BLE_ATT_SVR_EXEC_WRITE:
-        description: 'TBD'
+    BLE_ATT_SVR_QUEUED_WRITE:
+        description: >
+            Whether the device can receive ATT queued writes (prepare write
+            and execute write requests).
         value: 1
     BLE_ATT_SVR_NOTIFY:
         description: 'TBD'