Przeglądaj źródła

Merge branch 'feature/adv_queue_congestion' into 'master'

feat(nimble): Added adv queue congestion check

See merge request espressif/esp-idf!25310
Rahul Tank 2 lat temu
rodzic
commit
c0977bf730

+ 9 - 0
components/bt/host/nimble/Kconfig.in

@@ -863,3 +863,12 @@ config BT_NIMBLE_HIGH_DUTY_ADV_ITVL
     depends on BT_NIMBLE_ENABLED
     help
         This enable BLE high duty advertising interval feature
+
+config BT_NIMBLE_HOST_QUEUE_CONG_CHECK
+    bool "BLE queue congestion check"
+    depends on BT_NIMBLE_ENABLED
+    default n
+    help
+        When scanning and scan duplicate is not enabled, if there are a lot of adv packets around
+        or application layer handling adv packets is slow, it will cause the controller memory
+        to run out. if enabled, adv packets will be lost when host queue is congested.

+ 8 - 0
components/bt/host/nimble/esp-hci/src/esp_nimble_hci.c

@@ -265,6 +265,10 @@ esp_err_t esp_nimble_hci_init(void)
 
     xSemaphoreGive(vhci_send_sem);
 
+#if MYNEWT_VAL(BLE_QUEUE_CONG_CHECK)
+    ble_adv_list_init();
+#endif
+
     return ret;
 err:
     ble_buf_free();
@@ -286,5 +290,9 @@ esp_err_t esp_nimble_hci_deinit(void)
 
     ble_buf_free();
 
+#if MYNEWT_VAL(BLE_QUEUE_CONG_CHECK)
+    ble_adv_list_deinit();
+#endif
+
     return ESP_OK;
 }

+ 1 - 1
components/bt/host/nimble/nimble

@@ -1 +1 @@
-Subproject commit 37877f9b643c03e0ce9e39db4b9301f3a711a1b5
+Subproject commit d826fefc3ad172beb43e4e986575eb132c2c3936

+ 8 - 0
components/bt/host/nimble/port/include/esp_nimble_cfg.h

@@ -1738,4 +1738,12 @@
 #endif
 #endif
 
+#ifndef MYNEWT_VAL_BLE_QUEUE_CONG_CHECK
+#ifdef CONFIG_BT_NIMBLE_HOST_QUEUE_CONG_CHECK
+#define MYNEWT_VAL_BLE_QUEUE_CONG_CHECK   CONFIG_BT_NIMBLE_HOST_QUEUE_CONG_CHECK
+#else
+#define MYNEWT_VAL_BLE_QUEUE_CONG_CHECK   FALSE
+#endif
+#endif
+
 #endif