Repository: incubator-mynewt-larva
Updated Branches:
  refs/heads/master faa7814db -> 063324d36


MYNEWT-95: fix whitelist enable/disable in the controller code.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/commit/8b94064d
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/tree/8b94064d
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/diff/8b94064d

Branch: refs/heads/master
Commit: 8b94064d7e45e7bc9336a8c25f3df6fdf96d553c
Parents: 8bc63a5
Author: wes3 <w...@micosa.io>
Authored: Thu Mar 3 16:32:59 2016 -0800
Committer: wes3 <w...@micosa.io>
Committed: Thu Mar 3 16:33:16 2016 -0800

----------------------------------------------------------------------
 net/nimble/controller/src/ble_ll_adv.c  | 18 +++++++-----------
 net/nimble/controller/src/ble_ll_conn.c |  3 +++
 net/nimble/controller/src/ble_ll_scan.c | 17 +++++++----------
 project/bletest/src/main.c              |  4 ++--
 4 files changed, 19 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/8b94064d/net/nimble/controller/src/ble_ll_adv.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_adv.c 
b/net/nimble/controller/src/ble_ll_adv.c
index c8a3255..352cfb1 100644
--- a/net/nimble/controller/src/ble_ll_adv.c
+++ b/net/nimble/controller/src/ble_ll_adv.c
@@ -387,6 +387,13 @@ ble_ll_adv_tx_start_cb(struct ble_ll_sched_item *sch)
             STATS_INC(ble_ll_stats, adv_late_starts);
         }
 
+        /* Enable/disable whitelisting based on filter policy */
+        if (advsm->adv_filter_policy != BLE_HCI_ADV_FILT_NONE) {
+            ble_ll_whitelist_enable();
+        } else {
+            ble_ll_whitelist_disable();
+        }
+
         /* Set link layer state to advertising */
         ble_ll_state_set(BLE_LL_STATE_ADV);
 
@@ -587,9 +594,6 @@ ble_ll_adv_sm_stop(struct ble_ll_adv_sm *advsm)
     os_sr_t sr;
 
     if (advsm->enabled) {
-        /* Disable whitelisting (just in case) */
-        ble_ll_whitelist_disable();
-
         /* Remove any scheduled advertising items */
         ble_ll_sched_rmv_elem(&advsm->adv_sch);
         os_eventq_remove(&g_ble_ll_data.ll_evq, &advsm->adv_txdone_ev);
@@ -660,13 +664,6 @@ ble_ll_adv_sm_start(struct ble_ll_adv_sm *advsm)
     adv_chan = ble_ll_adv_first_chan(advsm);
     advsm->adv_chan = adv_chan;
 
-    /* Enable/disable whitelisting based on filter policy */
-    if (advsm->adv_filter_policy != BLE_HCI_ADV_FILT_NONE) {
-        ble_ll_whitelist_enable();
-    } else {
-        ble_ll_whitelist_disable();
-    }
-
     /* 
      * Schedule advertising. We set the initial schedule start and end
      * times to the earliest possible start/end.
@@ -1197,7 +1194,6 @@ ble_ll_adv_event_done(void *arg)
         if (advsm->adv_pdu_start_time >= advsm->adv_dir_hd_end_time) {
             /* Disable advertising */
             advsm->enabled = 0;
-            ble_ll_whitelist_disable();
             ble_ll_conn_comp_event_send(NULL, BLE_ERR_DIR_ADV_TMO);
             ble_ll_scan_chk_resume();
             return;

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/8b94064d/net/nimble/controller/src/ble_ll_conn.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_conn.c 
b/net/nimble/controller/src/ble_ll_conn.c
index 1d61c3d..36c63e3 100644
--- a/net/nimble/controller/src/ble_ll_conn.c
+++ b/net/nimble/controller/src/ble_ll_conn.c
@@ -789,6 +789,9 @@ ble_ll_conn_event_start_cb(struct ble_ll_sched_item *sch)
     g_ble_ll_conn_cur_sm = connsm;
     assert(connsm);
 
+    /* Disable whitelisting as connections do not use it */
+    ble_ll_whitelist_disable();
+
     /* Set LL state */
     ble_ll_state_set(BLE_LL_STATE_CONNECTION);
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/8b94064d/net/nimble/controller/src/ble_ll_scan.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_scan.c 
b/net/nimble/controller/src/ble_ll_scan.c
index 32aee48..1f6704f 100644
--- a/net/nimble/controller/src/ble_ll_scan.c
+++ b/net/nimble/controller/src/ble_ll_scan.c
@@ -502,6 +502,13 @@ ble_ll_scan_start(struct ble_ll_scan_sm *scansm, uint8_t 
chan)
     /* Start receiving */
     rc = ble_phy_rx();
     if (!rc) {
+        /* Enable/disable whitelisting */
+        if (scansm->scan_filt_policy & 1) {
+            ble_ll_whitelist_enable();
+        } else {
+            ble_ll_whitelist_disable();
+        }
+
         /* Set link layer state to scanning */
         if (scansm->scan_type == BLE_SCAN_TYPE_INITIATE) {
             ble_ll_state_set(BLE_LL_STATE_INITIATING);
@@ -590,9 +597,6 @@ ble_ll_scan_sm_stop(int chk_disable)
             /* Disable phy */
             ble_phy_disable();
 
-            /* Disable whitelisting  */
-            ble_ll_whitelist_disable();
-
             /* Set LL state to standby */
             ble_ll_state_set(BLE_LL_STATE_STANDBY);
         }
@@ -616,13 +620,6 @@ ble_ll_scan_sm_start(struct ble_ll_scan_sm *scansm)
         }
     }
 
-    /* Enable/disable whitelisting */
-    if (scansm->scan_filt_policy & 1) {
-        ble_ll_whitelist_enable();
-    } else {
-        ble_ll_whitelist_disable();
-    }
-
     /* Count # of times started */
     STATS_INC(ble_ll_stats, scan_starts);
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/8b94064d/project/bletest/src/main.c
----------------------------------------------------------------------
diff --git a/project/bletest/src/main.c b/project/bletest/src/main.c
index a69e966..d004aa9 100755
--- a/project/bletest/src/main.c
+++ b/project/bletest/src/main.c
@@ -93,11 +93,11 @@ os_membuf_t g_mbuf_buffer[MBUF_MEMPOOL_SIZE];
 #define BLETEST_CFG_ROLE                (BLETEST_ROLE_INITIATOR)
 //#define BLETEST_CFG_ROLE                (BLETEST_ROLE_ADVERTISER)
 //#define BLETEST_CFG_ROLE                (BLETEST_ROLE_SCANNER)
-#define BLETEST_CFG_ADV_OWN_ADDR_TYPE   (BLE_HCI_ADV_OWN_ADDR_RANDOM)
+#define BLETEST_CFG_ADV_OWN_ADDR_TYPE   (BLE_HCI_ADV_OWN_ADDR_PUBLIC)
 #define BLETEST_CFG_ADV_PEER_ADDR_TYPE  (BLE_HCI_ADV_PEER_ADDR_PUBLIC)
 #define BLETEST_CFG_FILT_DUP_ADV        (0)
 #define BLETEST_CFG_ADV_ITVL            (600000 / BLE_HCI_ADV_ITVL)
-#define BLETEST_CFG_ADV_TYPE            BLE_HCI_ADV_TYPE_ADV_DIRECT_IND_LD
+#define BLETEST_CFG_ADV_TYPE            BLE_HCI_ADV_TYPE_ADV_IND
 #define BLETEST_CFG_ADV_FILT_POLICY     (BLE_HCI_ADV_FILT_NONE)
 #define BLETEST_CFG_SCAN_ITVL           (700000 / BLE_HCI_SCAN_ITVL)
 #define BLETEST_CFG_SCAN_WINDOW         (700000 / BLE_HCI_SCAN_ITVL)

Reply via email to