mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
4f402486c6
Old version of BLE Mesh has no device role storage, because previously we only support storing mesh node info. If the binary of the node is upgraded from old version to a new version (support storing provisioner info), the mesh info of the node will not be restored because mesh role does not exist in the flash.
2723 lines
103 KiB
Plaintext
2723 lines
103 KiB
Plaintext
menu Bluetooth
|
|
|
|
|
|
config BT_ENABLED
|
|
bool "Bluetooth"
|
|
help
|
|
Select this option to enable Bluetooth and show the submenu with Bluetooth configuration choices.
|
|
|
|
menu "Bluetooth controller"
|
|
visible if BT_ENABLED
|
|
|
|
choice BTDM_CONTROLLER_MODE
|
|
prompt "Bluetooth controller mode (BR/EDR/BLE/DUALMODE)"
|
|
depends on BT_ENABLED
|
|
help
|
|
Specify the bluetooth controller mode (BR/EDR, BLE or dual mode).
|
|
|
|
config BTDM_CONTROLLER_MODE_BLE_ONLY
|
|
bool "BLE Only"
|
|
|
|
config BTDM_CONTROLLER_MODE_BR_EDR_ONLY
|
|
bool "BR/EDR Only"
|
|
|
|
config BTDM_CONTROLLER_MODE_BTDM
|
|
bool "Bluetooth Dual Mode"
|
|
|
|
endchoice
|
|
|
|
config BTDM_CONTROLLER_BLE_MAX_CONN
|
|
int "BLE Max Connections"
|
|
depends on BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM
|
|
default 3
|
|
range 1 9
|
|
help
|
|
BLE maximum connections of bluetooth controller.
|
|
Each connection uses 1KB static DRAM whenever the BT controller is enabled.
|
|
|
|
config BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN
|
|
int "BR/EDR ACL Max Connections"
|
|
depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
|
|
default 2
|
|
range 1 7
|
|
help
|
|
BR/EDR ACL maximum connections of bluetooth controller.
|
|
Each connection uses 1.2KB static DRAM whenever the BT controller is enabled.
|
|
|
|
config BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN
|
|
int "BR/EDR Sync(SCO/eSCO) Max Connections"
|
|
depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
|
|
default 0
|
|
range 0 3
|
|
help
|
|
BR/EDR Synchronize maximum connections of bluetooth controller.
|
|
Each connection uses 2KB static DRAM whenever the BT controller is enabled.
|
|
|
|
choice BTDM_CTRL_BR_EDR_SCO_DATA_PATH
|
|
prompt "BR/EDR Sync(SCO/eSCO) default data path"
|
|
depends on BTDM_CTRL_MODE_BR_EDR_ONLY || BTDM_CTRL_MODE_BTDM
|
|
default BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
|
|
help
|
|
SCO data path, i.e. HCI or PCM.
|
|
SCO data can be sent/received through HCI synchronous packets, or the data
|
|
can be routed to on-chip PCM module on ESP32. PCM input/output signals can
|
|
be "matrixed" to GPIOs. The default data path can also be set using API
|
|
"esp_bredr_sco_datapath_set"
|
|
|
|
config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI
|
|
bool "HCI"
|
|
config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
|
|
bool "PCM"
|
|
endchoice
|
|
|
|
config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF
|
|
int
|
|
default 0 if BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI
|
|
default 1 if BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
|
|
default 0
|
|
|
|
config BTDM_CTRL_AUTO_LATENCY
|
|
bool "Auto latency"
|
|
depends on BTDM_CONTROLLER_MODE_BTDM
|
|
default n
|
|
help
|
|
BLE auto latency, used to enhance classic BT performance
|
|
while classic BT and BLE are enabled at the same time.
|
|
|
|
config BTDM_CTRL_AUTO_LATENCY_EFF
|
|
bool
|
|
default BTDM_CTRL_AUTO_LATENCY if BTDM_CONTROLLER_MODE_BTDM
|
|
default n
|
|
|
|
|
|
config BTDM_CONTROLLER_BLE_MAX_CONN_EFF
|
|
int
|
|
default BTDM_CONTROLLER_BLE_MAX_CONN if BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM
|
|
default 0
|
|
|
|
config BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF
|
|
int
|
|
default BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM # NOERROR
|
|
default 0
|
|
|
|
config BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF
|
|
int
|
|
default BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM # NOERROR
|
|
default 0
|
|
|
|
choice BTDM_CONTROLLER_PINNED_TO_CORE_CHOICE
|
|
prompt "The cpu core which bluetooth controller run"
|
|
depends on BT_ENABLED && !FREERTOS_UNICORE
|
|
help
|
|
Specify the cpu core to run bluetooth controller.
|
|
Can not specify no-affinity.
|
|
|
|
config BTDM_CONTROLLER_PINNED_TO_CORE_0
|
|
bool "Core 0 (PRO CPU)"
|
|
config BTDM_CONTROLLER_PINNED_TO_CORE_1
|
|
bool "Core 1 (APP CPU)"
|
|
depends on !FREERTOS_UNICORE
|
|
endchoice
|
|
|
|
config BTDM_CONTROLLER_PINNED_TO_CORE
|
|
int
|
|
default 0 if BTDM_CONTROLLER_PINNED_TO_CORE_0
|
|
default 1 if BTDM_CONTROLLER_PINNED_TO_CORE_1
|
|
default 0
|
|
|
|
choice BTDM_CONTROLLER_HCI_MODE_CHOICE
|
|
prompt "HCI mode"
|
|
depends on BT_ENABLED
|
|
help
|
|
Speicify HCI mode as VHCI or UART(H4)
|
|
|
|
config BTDM_CONTROLLER_HCI_MODE_VHCI
|
|
bool "VHCI"
|
|
help
|
|
Normal option. Mostly, choose this VHCI when bluetooth host run on ESP32, too.
|
|
|
|
config BTDM_CONTROLLER_HCI_MODE_UART_H4
|
|
bool "UART(H4)"
|
|
help
|
|
If use external bluetooth host which run on other hardware and use UART as the HCI interface,
|
|
choose this option.
|
|
endchoice
|
|
|
|
menu "HCI UART(H4) Options"
|
|
visible if BTDM_CONTROLLER_HCI_MODE_UART_H4
|
|
|
|
config BT_HCI_UART_NO
|
|
int "UART Number for HCI"
|
|
depends on BTDM_CONTROLLER_HCI_MODE_UART_H4
|
|
range 1 2
|
|
default 1
|
|
help
|
|
Uart number for HCI. The available uart is UART1 and UART2.
|
|
|
|
config BT_HCI_UART_BAUDRATE
|
|
int "UART Baudrate for HCI"
|
|
depends on BTDM_CONTROLLER_HCI_MODE_UART_H4
|
|
range 115200 921600
|
|
default 921600
|
|
help
|
|
UART Baudrate for HCI. Please use standard baudrate.
|
|
|
|
endmenu
|
|
|
|
menu "MODEM SLEEP Options"
|
|
visible if BT_ENABLED
|
|
|
|
config BTDM_CONTROLLER_MODEM_SLEEP
|
|
bool "Bluetooth modem sleep"
|
|
depends on BT_ENABLED
|
|
default y
|
|
help
|
|
Enable/disable bluetooth controller low power mode.
|
|
|
|
choice BTDM_MODEM_SLEEP_MODE
|
|
prompt "Bluetooth Modem sleep mode"
|
|
depends on BTDM_CONTROLLER_MODEM_SLEEP
|
|
help
|
|
To select which strategy to use for modem sleep
|
|
|
|
config BTDM_MODEM_SLEEP_MODE_ORIG
|
|
bool "ORIG Mode(sleep with low power clock)"
|
|
help
|
|
ORIG mode is a bluetooth sleep mode that can be used for dual mode controller. In this mode,
|
|
bluetooth controller sleeps between BR/EDR frames and BLE events. A low power clock is used to
|
|
maintain bluetooth reference clock.
|
|
|
|
config BTDM_MODEM_SLEEP_MODE_EVED
|
|
bool "EVED Mode(For internal test only)"
|
|
help
|
|
EVED mode is for BLE only and is only for internal test. Do not use it for production. this
|
|
mode is not compatible with DFS nor light sleep
|
|
endchoice
|
|
|
|
choice BTDM_LOW_POWER_CLOCK
|
|
prompt "Bluetooth low power clock"
|
|
depends on BTDM_MODEM_SLEEP_MODE_ORIG
|
|
help
|
|
Select the low power clock source for bluetooth controller
|
|
|
|
config BTDM_LPCLK_SEL_MAIN_XTAL
|
|
bool "Main crystal"
|
|
help
|
|
Main crystal can be used as low power clock for bluetooth modem sleep. If this option is
|
|
selected, bluetooth modem sleep can work under Dynamic Frequency Scaling(DFS) enabled, but
|
|
cannot work when light sleep is enabled. Main crystal has a relatively better performance than
|
|
other bluetooth low power clock sources.
|
|
|
|
config BTDM_LPCLK_SEL_EXT_32K_XTAL
|
|
bool "External 32kHz crystal"
|
|
depends on ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL
|
|
endchoice
|
|
|
|
endmenu
|
|
|
|
config BLE_SCAN_DUPLICATE
|
|
bool "BLE Scan Duplicate Options"
|
|
depends on (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
|
|
default y
|
|
help
|
|
This select enables parameters setting of BLE scan duplicate.
|
|
|
|
choice SCAN_DUPLICATE_TYPE
|
|
prompt "Scan Duplicate Type"
|
|
default SCAN_DUPLICATE_BY_DEVICE_ADDR
|
|
depends on BLE_SCAN_DUPLICATE
|
|
help
|
|
Scan duplicate have three ways. one is "Scan Duplicate By Device Address", This way is to use
|
|
advertiser address filtering. The adv packet of the same address is only allowed to be reported once.
|
|
Another way is "Scan Duplicate By Device Address And Advertising Data". This way is to use advertising
|
|
data and device address filtering. All different adv packets with the same address are allowed to be
|
|
reported. The last way is "Scan Duplicate By Advertising Data". This way is to use advertising data
|
|
filtering. All same advertising data only allow to be reported once even though they are from
|
|
different devices.
|
|
|
|
config SCAN_DUPLICATE_BY_DEVICE_ADDR
|
|
bool "Scan Duplicate By Device Address"
|
|
help
|
|
This way is to use advertiser address filtering. The adv packet of the same address is only
|
|
allowed to be reported once
|
|
|
|
config SCAN_DUPLICATE_BY_ADV_DATA
|
|
bool "Scan Duplicate By Advertising Data"
|
|
help
|
|
This way is to use advertising data filtering. All same advertising data only allow to be reported
|
|
once even though they are from different devices.
|
|
|
|
config SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR
|
|
bool "Scan Duplicate By Device Address And Advertising Data"
|
|
help
|
|
This way is to use advertising data and device address filtering. All different adv packets with
|
|
the same address are allowed to be reported.
|
|
endchoice
|
|
|
|
config SCAN_DUPLICATE_TYPE
|
|
int
|
|
depends on BLE_SCAN_DUPLICATE
|
|
default 0 if SCAN_DUPLICATE_BY_DEVICE_ADDR
|
|
default 1 if SCAN_DUPLICATE_BY_ADV_DATA
|
|
default 2 if SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR
|
|
default 0
|
|
|
|
config DUPLICATE_SCAN_CACHE_SIZE
|
|
int "Maximum number of devices in scan duplicate filter"
|
|
depends on BLE_SCAN_DUPLICATE
|
|
range 10 1000
|
|
default 200
|
|
help
|
|
Maximum number of devices which can be recorded in scan duplicate filter.
|
|
When the maximum amount of device in the filter is reached, the cache will be refreshed.
|
|
|
|
config BLE_MESH_SCAN_DUPLICATE_EN
|
|
bool "Special duplicate scan mechanism for BLE Mesh scan"
|
|
depends on BLE_SCAN_DUPLICATE
|
|
default n
|
|
help
|
|
This enables the BLE scan duplicate for special BLE Mesh scan.
|
|
|
|
config MESH_DUPLICATE_SCAN_CACHE_SIZE
|
|
int "Maximum number of Mesh adv packets in scan duplicate filter"
|
|
depends on BLE_MESH_SCAN_DUPLICATE_EN
|
|
range 10 1000
|
|
default 200
|
|
help
|
|
Maximum number of adv packets which can be recorded in duplicate scan cache for BLE Mesh.
|
|
When the maximum amount of device in the filter is reached, the cache will be refreshed.
|
|
|
|
config BTDM_CONTROLLER_FULL_SCAN_SUPPORTED
|
|
bool "BLE full scan feature supported"
|
|
depends on BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM
|
|
default y
|
|
help
|
|
The full scan function is mainly used to provide BLE scan performance.
|
|
This is required for scenes with high scan performance requirements, such as BLE Mesh scenes.
|
|
|
|
config BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED
|
|
bool "BLE adv report flow control supported"
|
|
depends on (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
|
|
default y
|
|
help
|
|
The function is mainly used to enable flow control for advertising reports. When it is enabled,
|
|
advertising reports will be discarded by the controller if the number of unprocessed advertising
|
|
reports exceeds the size of BLE adv report flow control.
|
|
|
|
config BLE_ADV_REPORT_FLOW_CONTROL_NUM
|
|
int "BLE adv report flow control number"
|
|
depends on BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED
|
|
range 50 1000
|
|
default 100
|
|
help
|
|
The number of unprocessed advertising report that Bluedroid can save.If you set
|
|
`BLE_ADV_REPORT_FLOW_CONTROL_NUM` to a small value, this may cause adv packets lost.
|
|
If you set `BLE_ADV_REPORT_FLOW_CONTROL_NUM` to a large value, Bluedroid may cache a
|
|
lot of adv packets and this may cause system memory run out. For example, if you set
|
|
it to 50, the maximum memory consumed by host is 35 * 50 bytes. Please set
|
|
`BLE_ADV_REPORT_FLOW_CONTROL_NUM` according to your system free memory and handle adv
|
|
packets as fast as possible, otherwise it will cause adv packets lost.
|
|
|
|
config BLE_ADV_REPORT_DISCARD_THRSHOLD
|
|
int "BLE adv lost event threshold value"
|
|
depends on BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED
|
|
range 1 1000
|
|
default 20
|
|
help
|
|
When adv report flow control is enabled, The ADV lost event will be generated when the number
|
|
of ADV packets lost in the controller reaches this threshold. It is better to set a larger value.
|
|
If you set `BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
|
|
may cause adv packets lost more.
|
|
|
|
menuconfig BTDM_COEX_BT_OPTIONS
|
|
bool "Coexistence Bluetooth Side Options"
|
|
depends on SW_COEXIST_ENABLE
|
|
default n
|
|
help
|
|
Options of Bluetooth Side of WiFi and bluetooth coexistence.
|
|
|
|
config BTDM_COEX_BLE_ADV_HIGH_PRIORITY
|
|
bool "Improve BLE ADV priority for WiFi & BLE coexistence"
|
|
depends on BTDM_COEX_BT_OPTIONS
|
|
default n
|
|
help
|
|
Improve BLE ADV coexistence priority to make it better performance.
|
|
For example, BLE mesh need to enable this option to improve BLE adv performance.
|
|
|
|
endmenu
|
|
|
|
menuconfig BLUEDROID_ENABLED
|
|
bool "Bluedroid Enable"
|
|
depends on BTDM_CONTROLLER_HCI_MODE_VHCI
|
|
default y
|
|
help
|
|
This enables the default Bluedroid Bluetooth stack
|
|
|
|
choice BLUEDROID_PINNED_TO_CORE_CHOICE
|
|
prompt "The cpu core which Bluedroid run"
|
|
depends on BLUEDROID_ENABLED && !FREERTOS_UNICORE
|
|
help
|
|
Which the cpu core to run Bluedroid. Can choose core0 and core1.
|
|
Can not specify no-affinity.
|
|
|
|
config BLUEDROID_PINNED_TO_CORE_0
|
|
bool "Core 0 (PRO CPU)"
|
|
config BLUEDROID_PINNED_TO_CORE_1
|
|
bool "Core 1 (APP CPU)"
|
|
depends on !FREERTOS_UNICORE
|
|
endchoice
|
|
|
|
config BLUEDROID_PINNED_TO_CORE
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if BLUEDROID_PINNED_TO_CORE_0
|
|
default 1 if BLUEDROID_PINNED_TO_CORE_1
|
|
default 0
|
|
|
|
config BTC_TASK_STACK_SIZE
|
|
int "Bluetooth event (callback to application) task stack size"
|
|
depends on BLUEDROID_ENABLED
|
|
default 3072
|
|
help
|
|
This select btc task stack size
|
|
|
|
config BTU_TASK_STACK_SIZE
|
|
int "Bluetooth Bluedroid Host Stack task stack size"
|
|
depends on BLUEDROID_ENABLED
|
|
default 4096
|
|
help
|
|
This select btu task stack size
|
|
|
|
config BLUEDROID_MEM_DEBUG
|
|
bool "Bluedroid memory debug"
|
|
depends on BLUEDROID_ENABLED
|
|
default n
|
|
help
|
|
Bluedroid memory debug
|
|
|
|
config CLASSIC_BT_ENABLED
|
|
bool "Classic Bluetooth"
|
|
depends on BLUEDROID_ENABLED
|
|
default n
|
|
help
|
|
For now this option needs "SMP_ENABLE" to be set to yes
|
|
|
|
config A2DP_ENABLE
|
|
bool "A2DP"
|
|
depends on CLASSIC_BT_ENABLED
|
|
default n
|
|
help
|
|
Advanced Audio Distrubution Profile
|
|
|
|
config A2DP_SINK_TASK_STACK_SIZE
|
|
int "A2DP sink (audio stream decoding) task stack size"
|
|
depends on A2DP_ENABLE
|
|
default 2048
|
|
|
|
config A2DP_SOURCE_TASK_STACK_SIZE
|
|
int "A2DP source (audio stream encoding) task stack size"
|
|
depends on A2DP_ENABLE
|
|
default 2048
|
|
|
|
config BT_SPP_ENABLED
|
|
bool "SPP"
|
|
depends on CLASSIC_BT_ENABLED
|
|
default n
|
|
help
|
|
This enables the Serial Port Profile
|
|
|
|
config HFP_ENABLE
|
|
bool "Hands Free/Handset Profile"
|
|
depends on CLASSIC_BT_ENABLED
|
|
default n
|
|
|
|
choice HFP_ROLE
|
|
prompt "Hands-free Profile Role configuration"
|
|
depends on HFP_ENABLE
|
|
|
|
config HFP_CLIENT_ENABLE
|
|
bool "Hands Free Unit"
|
|
endchoice
|
|
|
|
choice HFP_AUDIO_DATA_PATH
|
|
prompt "audio(SCO) data path"
|
|
depends on HFP_ENABLE
|
|
help
|
|
SCO data path, i.e. HCI or PCM. This option is set using API
|
|
"esp_bredr_sco_datapath_set" in Bluetooth host. Default SCO data
|
|
path can also be set in Bluetooth Controller.
|
|
|
|
config HFP_AUDIO_DATA_PATH_PCM
|
|
bool "PCM"
|
|
config HFP_AUDIO_DATA_PATH_HCI
|
|
bool "HCI"
|
|
endchoice
|
|
|
|
config BT_SSP_ENABLED
|
|
bool "Secure Simple Pairing"
|
|
depends on CLASSIC_BT_ENABLED
|
|
default y
|
|
help
|
|
This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing
|
|
|
|
config GATTS_ENABLE
|
|
bool "Include GATT server module(GATTS)"
|
|
depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
|
|
default y
|
|
help
|
|
This option can be disabled when the app work only on gatt client mode
|
|
|
|
choice GATTS_SEND_SERVICE_CHANGE_MODE
|
|
prompt "GATTS Service Change Mode"
|
|
default GATTS_SEND_SERVICE_CHANGE_AUTO
|
|
depends on GATTS_ENABLE
|
|
help
|
|
Service change indication mode for GATT Server.
|
|
|
|
config GATTS_SEND_SERVICE_CHANGE_MANUAL
|
|
bool "GATTS manually send service change indication"
|
|
help
|
|
Manually send service change indication through API esp_ble_gatts_send_service_change_indication()
|
|
|
|
config GATTS_SEND_SERVICE_CHANGE_AUTO
|
|
bool "GATTS automatically send service change indication"
|
|
help
|
|
Let Bluedroid handle the service change indication internally
|
|
|
|
endchoice
|
|
|
|
config GATTS_SEND_SERVICE_CHANGE_MODE
|
|
int
|
|
depends on GATTS_ENABLE
|
|
default 0 if GATTS_SEND_SERVICE_CHANGE_AUTO
|
|
default 1 if GATTS_SEND_SERVICE_CHANGE_MANUAL
|
|
default 0
|
|
|
|
config GATTC_ENABLE
|
|
bool "Include GATT client module(GATTC)"
|
|
depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
|
|
default y
|
|
help
|
|
This option can be close when the app work only on gatt server mode
|
|
|
|
config GATTC_CACHE_NVS_FLASH
|
|
bool "Save gattc cache data to nvs flash"
|
|
depends on GATTC_ENABLE && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
|
|
default n
|
|
help
|
|
This select can save gattc cache data to nvs flash
|
|
|
|
config BLE_SMP_ENABLE
|
|
bool "Include BLE security module(SMP)"
|
|
depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
|
|
default y
|
|
help
|
|
This option can be close when the app not used the ble security connect.
|
|
|
|
config SMP_SLAVE_CON_PARAMS_UPD_ENABLE
|
|
bool "Slave enable connection parameters update during pairing"
|
|
depends on BLE_SMP_ENABLE
|
|
default n
|
|
help
|
|
In order to reduce the pairing time, slave actively initiates connection parameters update during pairing.
|
|
|
|
config BT_STACK_NO_LOG
|
|
bool "Disable BT debug logs (minimize bin size)"
|
|
depends on BLUEDROID_ENABLED
|
|
default n
|
|
help
|
|
This select can save the rodata code size
|
|
|
|
menu "BT DEBUG LOG LEVEL"
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
|
|
choice HCI_INITIAL_TRACE_LEVEL
|
|
prompt "HCI layer"
|
|
default HCI_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for HCI layer
|
|
|
|
config HCI_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config HCI_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config HCI_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config HCI_TRACE_LEVEL_API
|
|
bool "API"
|
|
config HCI_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config HCI_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config HCI_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config HCI_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if HCI_TRACE_LEVEL_NONE
|
|
default 1 if HCI_TRACE_LEVEL_ERROR
|
|
default 2 if HCI_TRACE_LEVEL_WARNING
|
|
default 3 if HCI_TRACE_LEVEL_API
|
|
default 4 if HCI_TRACE_LEVEL_EVENT
|
|
default 5 if HCI_TRACE_LEVEL_DEBUG
|
|
default 6 if HCI_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice BTM_INITIAL_TRACE_LEVEL
|
|
prompt "BTM layer"
|
|
default BTM_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for BTM layer
|
|
|
|
config BTM_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config BTM_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config BTM_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config BTM_TRACE_LEVEL_API
|
|
bool "API"
|
|
config BTM_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config BTM_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config BTM_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config BTM_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if BTM_TRACE_LEVEL_NONE
|
|
default 1 if BTM_TRACE_LEVEL_ERROR
|
|
default 2 if BTM_TRACE_LEVEL_WARNING
|
|
default 3 if BTM_TRACE_LEVEL_API
|
|
default 4 if BTM_TRACE_LEVEL_EVENT
|
|
default 5 if BTM_TRACE_LEVEL_DEBUG
|
|
default 6 if BTM_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice L2CAP_INITIAL_TRACE_LEVEL
|
|
prompt "L2CAP layer"
|
|
default L2CAP_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for L2CAP layer
|
|
|
|
config L2CAP_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config L2CAP_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config L2CAP_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config L2CAP_TRACE_LEVEL_API
|
|
bool "API"
|
|
config L2CAP_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config L2CAP_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config L2CAP_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config L2CAP_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if L2CAP_TRACE_LEVEL_NONE
|
|
default 1 if L2CAP_TRACE_LEVEL_ERROR
|
|
default 2 if L2CAP_TRACE_LEVEL_WARNING
|
|
default 3 if L2CAP_TRACE_LEVEL_API
|
|
default 4 if L2CAP_TRACE_LEVEL_EVENT
|
|
default 5 if L2CAP_TRACE_LEVEL_DEBUG
|
|
default 6 if L2CAP_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice RFCOMM_INITIAL_TRACE_LEVEL
|
|
prompt "RFCOMM layer"
|
|
default RFCOMM_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for RFCOMM layer
|
|
|
|
config RFCOMM_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config RFCOMM_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config RFCOMM_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config RFCOMM_TRACE_LEVEL_API
|
|
bool "API"
|
|
config RFCOMM_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config RFCOMM_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config RFCOMM_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config RFCOMM_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if RFCOMM_TRACE_LEVEL_NONE
|
|
default 1 if RFCOMM_TRACE_LEVEL_ERROR
|
|
default 2 if RFCOMM_TRACE_LEVEL_WARNING
|
|
default 3 if RFCOMM_TRACE_LEVEL_API
|
|
default 4 if RFCOMM_TRACE_LEVEL_EVENT
|
|
default 5 if RFCOMM_TRACE_LEVEL_DEBUG
|
|
default 6 if RFCOMM_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice SDP_INITIAL_TRACE_LEVEL
|
|
prompt "SDP layer"
|
|
default SDP_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for SDP layer
|
|
|
|
config SDP_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config SDP_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config SDP_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config SDP_TRACE_LEVEL_API
|
|
bool "API"
|
|
config SDP_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config SDP_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config SDP_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config SDP_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if SDP_TRACE_LEVEL_NONE
|
|
default 1 if SDP_TRACE_LEVEL_ERROR
|
|
default 2 if SDP_TRACE_LEVEL_WARNING
|
|
default 3 if SDP_TRACE_LEVEL_API
|
|
default 4 if SDP_TRACE_LEVEL_EVENT
|
|
default 5 if SDP_TRACE_LEVEL_DEBUG
|
|
default 6 if SDP_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice GAP_INITIAL_TRACE_LEVEL
|
|
prompt "GAP layer"
|
|
default GAP_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for GAP layer
|
|
|
|
config GAP_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config GAP_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config GAP_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config GAP_TRACE_LEVEL_API
|
|
bool "API"
|
|
config GAP_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config GAP_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config GAP_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config GAP_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if GAP_TRACE_LEVEL_NONE
|
|
default 1 if GAP_TRACE_LEVEL_ERROR
|
|
default 2 if GAP_TRACE_LEVEL_WARNING
|
|
default 3 if GAP_TRACE_LEVEL_API
|
|
default 4 if GAP_TRACE_LEVEL_EVENT
|
|
default 5 if GAP_TRACE_LEVEL_DEBUG
|
|
default 6 if GAP_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice BNEP_INITIAL_TRACE_LEVEL
|
|
prompt "BNEP layer"
|
|
default BNEP_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for BNEP layer
|
|
|
|
config BNEP_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config BNEP_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config BNEP_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config BNEP_TRACE_LEVEL_API
|
|
bool "API"
|
|
config BNEP_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config BNEP_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config BNEP_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config BNEP_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if BNEP_TRACE_LEVEL_NONE
|
|
default 1 if BNEP_TRACE_LEVEL_ERROR
|
|
default 2 if BNEP_TRACE_LEVEL_WARNING
|
|
default 3 if BNEP_TRACE_LEVEL_API
|
|
default 4 if BNEP_TRACE_LEVEL_EVENT
|
|
default 5 if BNEP_TRACE_LEVEL_DEBUG
|
|
default 6 if BNEP_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice PAN_INITIAL_TRACE_LEVEL
|
|
prompt "PAN layer"
|
|
default PAN_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for PAN layer
|
|
|
|
config PAN_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config PAN_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config PAN_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config PAN_TRACE_LEVEL_API
|
|
bool "API"
|
|
config PAN_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config PAN_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config PAN_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config PAN_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if PAN_TRACE_LEVEL_NONE
|
|
default 1 if PAN_TRACE_LEVEL_ERROR
|
|
default 2 if PAN_TRACE_LEVEL_WARNING
|
|
default 3 if PAN_TRACE_LEVEL_API
|
|
default 4 if PAN_TRACE_LEVEL_EVENT
|
|
default 5 if PAN_TRACE_LEVEL_DEBUG
|
|
default 6 if PAN_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice A2D_INITIAL_TRACE_LEVEL
|
|
prompt "A2D layer"
|
|
default A2D_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for A2D layer
|
|
|
|
config A2D_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config A2D_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config A2D_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config A2D_TRACE_LEVEL_API
|
|
bool "API"
|
|
config A2D_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config A2D_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config A2D_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config A2D_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if A2D_TRACE_LEVEL_NONE
|
|
default 1 if A2D_TRACE_LEVEL_ERROR
|
|
default 2 if A2D_TRACE_LEVEL_WARNING
|
|
default 3 if A2D_TRACE_LEVEL_API
|
|
default 4 if A2D_TRACE_LEVEL_EVENT
|
|
default 5 if A2D_TRACE_LEVEL_DEBUG
|
|
default 6 if A2D_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice AVDT_INITIAL_TRACE_LEVEL
|
|
prompt "AVDT layer"
|
|
default AVDT_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for AVDT layer
|
|
|
|
config AVDT_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config AVDT_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config AVDT_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config AVDT_TRACE_LEVEL_API
|
|
bool "API"
|
|
config AVDT_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config AVDT_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config AVDT_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config AVDT_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if AVDT_TRACE_LEVEL_NONE
|
|
default 1 if AVDT_TRACE_LEVEL_ERROR
|
|
default 2 if AVDT_TRACE_LEVEL_WARNING
|
|
default 3 if AVDT_TRACE_LEVEL_API
|
|
default 4 if AVDT_TRACE_LEVEL_EVENT
|
|
default 5 if AVDT_TRACE_LEVEL_DEBUG
|
|
default 6 if AVDT_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice AVCT_INITIAL_TRACE_LEVEL
|
|
prompt "AVCT layer"
|
|
default AVCT_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for AVCT layer
|
|
|
|
config AVCT_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config AVCT_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config AVCT_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config AVCT_TRACE_LEVEL_API
|
|
bool "API"
|
|
config AVCT_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config AVCT_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config AVCT_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config AVCT_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if AVCT_TRACE_LEVEL_NONE
|
|
default 1 if AVCT_TRACE_LEVEL_ERROR
|
|
default 2 if AVCT_TRACE_LEVEL_WARNING
|
|
default 3 if AVCT_TRACE_LEVEL_API
|
|
default 4 if AVCT_TRACE_LEVEL_EVENT
|
|
default 5 if AVCT_TRACE_LEVEL_DEBUG
|
|
default 6 if AVCT_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice AVRC_INITIAL_TRACE_LEVEL
|
|
prompt "AVRC layer"
|
|
default AVRC_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for AVRC layer
|
|
|
|
config AVRC_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config AVRC_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config AVRC_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config AVRC_TRACE_LEVEL_API
|
|
bool "API"
|
|
config AVRC_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config AVRC_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config AVRC_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config AVRC_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if AVRC_TRACE_LEVEL_NONE
|
|
default 1 if AVRC_TRACE_LEVEL_ERROR
|
|
default 2 if AVRC_TRACE_LEVEL_WARNING
|
|
default 3 if AVRC_TRACE_LEVEL_API
|
|
default 4 if AVRC_TRACE_LEVEL_EVENT
|
|
default 5 if AVRC_TRACE_LEVEL_DEBUG
|
|
default 6 if AVRC_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice MCA_INITIAL_TRACE_LEVEL
|
|
prompt "MCA layer"
|
|
default MCA_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for MCA layer
|
|
|
|
config MCA_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config MCA_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config MCA_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config MCA_TRACE_LEVEL_API
|
|
bool "API"
|
|
config MCA_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config MCA_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config MCA_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config MCA_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if MCA_TRACE_LEVEL_NONE
|
|
default 1 if MCA_TRACE_LEVEL_ERROR
|
|
default 2 if MCA_TRACE_LEVEL_WARNING
|
|
default 3 if MCA_TRACE_LEVEL_API
|
|
default 4 if MCA_TRACE_LEVEL_EVENT
|
|
default 5 if MCA_TRACE_LEVEL_DEBUG
|
|
default 6 if MCA_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice HID_INITIAL_TRACE_LEVEL
|
|
prompt "HID layer"
|
|
default HID_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for HID layer
|
|
|
|
config HID_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config HID_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config HID_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config HID_TRACE_LEVEL_API
|
|
bool "API"
|
|
config HID_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config HID_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config HID_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config HID_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if HID_TRACE_LEVEL_NONE
|
|
default 1 if HID_TRACE_LEVEL_ERROR
|
|
default 2 if HID_TRACE_LEVEL_WARNING
|
|
default 3 if HID_TRACE_LEVEL_API
|
|
default 4 if HID_TRACE_LEVEL_EVENT
|
|
default 5 if HID_TRACE_LEVEL_DEBUG
|
|
default 6 if HID_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice APPL_INITIAL_TRACE_LEVEL
|
|
prompt "APPL layer"
|
|
default APPL_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for APPL layer
|
|
|
|
config APPL_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config APPL_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config APPL_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config APPL_TRACE_LEVEL_API
|
|
bool "API"
|
|
config APPL_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config APPL_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config APPL_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config APPL_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if APPL_TRACE_LEVEL_NONE
|
|
default 1 if APPL_TRACE_LEVEL_ERROR
|
|
default 2 if APPL_TRACE_LEVEL_WARNING
|
|
default 3 if APPL_TRACE_LEVEL_API
|
|
default 4 if APPL_TRACE_LEVEL_EVENT
|
|
default 5 if APPL_TRACE_LEVEL_DEBUG
|
|
default 6 if APPL_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice GATT_INITIAL_TRACE_LEVEL
|
|
prompt "GATT layer"
|
|
default GATT_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for GATT layer
|
|
|
|
config GATT_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config GATT_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config GATT_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config GATT_TRACE_LEVEL_API
|
|
bool "API"
|
|
config GATT_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config GATT_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config GATT_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config GATT_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if GATT_TRACE_LEVEL_NONE
|
|
default 1 if GATT_TRACE_LEVEL_ERROR
|
|
default 2 if GATT_TRACE_LEVEL_WARNING
|
|
default 3 if GATT_TRACE_LEVEL_API
|
|
default 4 if GATT_TRACE_LEVEL_EVENT
|
|
default 5 if GATT_TRACE_LEVEL_DEBUG
|
|
default 6 if GATT_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice SMP_INITIAL_TRACE_LEVEL
|
|
prompt "SMP layer"
|
|
default SMP_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for SMP layer
|
|
|
|
config SMP_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config SMP_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config SMP_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config SMP_TRACE_LEVEL_API
|
|
bool "API"
|
|
config SMP_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config SMP_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config SMP_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config SMP_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if SMP_TRACE_LEVEL_NONE
|
|
default 1 if SMP_TRACE_LEVEL_ERROR
|
|
default 2 if SMP_TRACE_LEVEL_WARNING
|
|
default 3 if SMP_TRACE_LEVEL_API
|
|
default 4 if SMP_TRACE_LEVEL_EVENT
|
|
default 5 if SMP_TRACE_LEVEL_DEBUG
|
|
default 6 if SMP_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice BTIF_INITIAL_TRACE_LEVEL
|
|
prompt "BTIF layer"
|
|
default BTIF_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for BTIF layer
|
|
|
|
config BTIF_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config BTIF_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config BTIF_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config BTIF_TRACE_LEVEL_API
|
|
bool "API"
|
|
config BTIF_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config BTIF_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config BTIF_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config BTIF_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if BTIF_TRACE_LEVEL_NONE
|
|
default 1 if BTIF_TRACE_LEVEL_ERROR
|
|
default 2 if BTIF_TRACE_LEVEL_WARNING
|
|
default 3 if BTIF_TRACE_LEVEL_API
|
|
default 4 if BTIF_TRACE_LEVEL_EVENT
|
|
default 5 if BTIF_TRACE_LEVEL_DEBUG
|
|
default 6 if BTIF_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice BTC_INITIAL_TRACE_LEVEL
|
|
prompt "BTC layer"
|
|
default BTC_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for BTC layer
|
|
|
|
config BTC_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config BTC_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config BTC_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config BTC_TRACE_LEVEL_API
|
|
bool "API"
|
|
config BTC_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config BTC_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config BTC_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config BTC_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if BTC_TRACE_LEVEL_NONE
|
|
default 1 if BTC_TRACE_LEVEL_ERROR
|
|
default 2 if BTC_TRACE_LEVEL_WARNING
|
|
default 3 if BTC_TRACE_LEVEL_API
|
|
default 4 if BTC_TRACE_LEVEL_EVENT
|
|
default 5 if BTC_TRACE_LEVEL_DEBUG
|
|
default 6 if BTC_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice OSI_INITIAL_TRACE_LEVEL
|
|
prompt "OSI layer"
|
|
default OSI_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for OSI layer
|
|
|
|
config OSI_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config OSI_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config OSI_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config OSI_TRACE_LEVEL_API
|
|
bool "API"
|
|
config OSI_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config OSI_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config OSI_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config OSI_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if OSI_TRACE_LEVEL_NONE
|
|
default 1 if OSI_TRACE_LEVEL_ERROR
|
|
default 2 if OSI_TRACE_LEVEL_WARNING
|
|
default 3 if OSI_TRACE_LEVEL_API
|
|
default 4 if OSI_TRACE_LEVEL_EVENT
|
|
default 5 if OSI_TRACE_LEVEL_DEBUG
|
|
default 6 if OSI_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
choice BLUFI_INITIAL_TRACE_LEVEL
|
|
prompt "BLUFI layer"
|
|
default BLUFI_TRACE_LEVEL_WARNING
|
|
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
|
|
help
|
|
Define BT trace level for BLUFI layer
|
|
|
|
config BLUFI_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config BLUFI_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config BLUFI_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config BLUFI_TRACE_LEVEL_API
|
|
bool "API"
|
|
config BLUFI_TRACE_LEVEL_EVENT
|
|
bool "EVENT"
|
|
config BLUFI_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config BLUFI_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config BLUFI_INITIAL_TRACE_LEVEL
|
|
int
|
|
depends on BLUEDROID_ENABLED
|
|
default 0 if BLUFI_TRACE_LEVEL_NONE
|
|
default 1 if BLUFI_TRACE_LEVEL_ERROR
|
|
default 2 if BLUFI_TRACE_LEVEL_WARNING
|
|
default 3 if BLUFI_TRACE_LEVEL_API
|
|
default 4 if BLUFI_TRACE_LEVEL_EVENT
|
|
default 5 if BLUFI_TRACE_LEVEL_DEBUG
|
|
default 6 if BLUFI_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
endmenu #BT DEBUG LOG LEVEL
|
|
|
|
|
|
config BT_ACL_CONNECTIONS
|
|
int "BT/BLE MAX ACL CONNECTIONS(1~7)"
|
|
depends on BLUEDROID_ENABLED
|
|
range 1 7
|
|
default 4
|
|
help
|
|
Maximum BT/BLE connection count
|
|
|
|
config BT_ALLOCATION_FROM_SPIRAM_FIRST
|
|
bool "BT/BLE will first malloc the memory from the PSRAM"
|
|
depends on BLUEDROID_ENABLED
|
|
default n
|
|
help
|
|
This select can save the internal RAM if there have the PSRAM
|
|
|
|
config BT_BLE_DYNAMIC_ENV_MEMORY
|
|
bool "Use dynamic memory allocation in BT/BLE stack"
|
|
depends on BLUEDROID_ENABLED
|
|
default n
|
|
help
|
|
This select can make the allocation of memory will become more flexible
|
|
|
|
config BLE_HOST_QUEUE_CONGESTION_CHECK
|
|
bool "BLE queue congestion check"
|
|
depends on BLUEDROID_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.
|
|
|
|
config SMP_ENABLE
|
|
bool
|
|
depends on BLUEDROID_ENABLED
|
|
default CLASSIC_BT_ENABLED || BLE_SMP_ENABLE
|
|
|
|
config BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY
|
|
bool "Report adv data and scan response individually when BLE active scan"
|
|
depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
|
|
default n
|
|
help
|
|
Originally, when doing BLE active scan, Bluedroid will not report adv to application layer
|
|
until receive scan response. This option is used to disable the behavior. When enable this option,
|
|
Bluedroid will report adv data or scan response to application layer immediately.
|
|
|
|
# Memory reserved at start of DRAM for Bluetooth stack
|
|
|
|
config BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT
|
|
int "Timeout of BLE connection establishment"
|
|
depends on BLUEDROID_ENABLED
|
|
range 1 60
|
|
default 30
|
|
help
|
|
Bluetooth Connection establishment maximum time, if connection time exceeds this value, the connection
|
|
establishment fails, ESP_GATTC_OPEN_EVT or ESP_GATTS_OPEN_EVT is triggered.
|
|
|
|
config BT_RESERVE_DRAM
|
|
hex
|
|
default 0xdb5c if BT_ENABLED
|
|
default 0
|
|
|
|
|
|
menuconfig NIMBLE_ENABLED
|
|
bool "Enable NimBLE host stack"
|
|
depends on BTDM_CONTROLLER_HCI_MODE_VHCI && !BLUEDROID_ENABLED
|
|
default n
|
|
help
|
|
This enables NimBLE host stack
|
|
|
|
choice NIMBLE_MEM_ALLOC_MODE
|
|
prompt "Memory allocation strategy"
|
|
default NIMBLE_MEM_ALLOC_MODE_INTERNAL
|
|
depends on NIMBLE_ENABLED
|
|
help
|
|
Allocation strategy for NimBLE host stack, essentially provides ability to
|
|
allocate all required dynamic allocations from,
|
|
|
|
- Internal DRAM memory only
|
|
- External SPIRAM memory only
|
|
- Either internal or external memory based on default malloc()
|
|
behavior in ESP-IDF
|
|
|
|
Recommended mode here is always internal, since that is most preferred
|
|
from security perspective. But if application requirement does not
|
|
allow sufficient free internal memory then alternate mode can be
|
|
selected.
|
|
|
|
config NIMBLE_MEM_ALLOC_MODE_INTERNAL
|
|
bool "Internal memory"
|
|
|
|
config NIMBLE_MEM_ALLOC_MODE_EXTERNAL
|
|
bool "External SPIRAM"
|
|
depends on ESP32_SPIRAM_SUPPORT
|
|
|
|
config NIMBLE_MEM_ALLOC_MODE_DEFAULT
|
|
bool "Default alloc mode"
|
|
|
|
endchoice
|
|
|
|
config NIMBLE_MAX_CONNECTIONS
|
|
int "Maximum number of concurrent connections"
|
|
range 1 9
|
|
default BTDM_CONTROLLER_BLE_MAX_CONN
|
|
depends on NIMBLE_ENABLED
|
|
help
|
|
Defines maximum number of concurrent BLE connections
|
|
|
|
config NIMBLE_MAX_BONDS
|
|
int "Maximum number of bonds to save across reboots"
|
|
default 3
|
|
depends on NIMBLE_ENABLED
|
|
help
|
|
Defines maximum number of bonds to save for peer security and our security
|
|
|
|
config NIMBLE_MAX_CCCDS
|
|
int "Maximum number of CCC descriptors to save across reboots"
|
|
default 8
|
|
depends on NIMBLE_ENABLED
|
|
help
|
|
Defines maximum number of CCC descriptors to save
|
|
|
|
config NIMBLE_L2CAP_COC_MAX_NUM
|
|
int "Maximum number of connection oriented channels"
|
|
range 0 9
|
|
depends on NIMBLE_ENABLED
|
|
default 0
|
|
help
|
|
Defines maximum number of BLE Connection Oriented Channels. When set to (0), BLE COC is not compiled in
|
|
|
|
choice NIMBLE_PINNED_TO_CORE_CHOICE
|
|
prompt "The CPU core on which NimBLE host will run"
|
|
depends on NIMBLE_ENABLED && !FREERTOS_UNICORE
|
|
help
|
|
The CPU core on which NimBLE host will run. You can choose Core 0 or Core 1.
|
|
Cannot specify no-affinity
|
|
|
|
config NIMBLE_PINNED_TO_CORE_0
|
|
bool "Core 0 (PRO CPU)"
|
|
config NIMBLE_PINNED_TO_CORE_1
|
|
bool "Core 1 (APP CPU)"
|
|
depends on !FREERTOS_UNICORE
|
|
endchoice
|
|
|
|
config NIMBLE_PINNED_TO_CORE
|
|
int
|
|
depends on NIMBLE_ENABLED
|
|
default 0 if NIMBLE_PINNED_TO_CORE_0
|
|
default 1 if NIMBLE_PINNED_TO_CORE_1
|
|
default 0
|
|
|
|
config NIMBLE_TASK_STACK_SIZE
|
|
int "NimBLE Host task stack size"
|
|
depends on NIMBLE_ENABLED
|
|
default 5120 if BLE_MESH
|
|
default 4096
|
|
help
|
|
This configures stack size of NimBLE host task
|
|
|
|
config NIMBLE_ROLE_CENTRAL
|
|
bool "Enable BLE Central role"
|
|
depends on NIMBLE_ENABLED
|
|
default y
|
|
|
|
config NIMBLE_ROLE_PERIPHERAL
|
|
bool "Enable BLE Peripheral role"
|
|
depends on NIMBLE_ENABLED
|
|
default y
|
|
|
|
config NIMBLE_ROLE_BROADCASTER
|
|
bool "Enable BLE Broadcaster role"
|
|
depends on NIMBLE_ENABLED
|
|
default y
|
|
|
|
config NIMBLE_ROLE_OBSERVER
|
|
bool "Enable BLE Observer role"
|
|
depends on NIMBLE_ENABLED
|
|
default y
|
|
|
|
config NIMBLE_NVS_PERSIST
|
|
bool "Persist the BLE Bonding keys in NVS"
|
|
depends on NIMBLE_ENABLED
|
|
default y
|
|
help
|
|
Enable this flag to make bonding persistent across device reboots
|
|
|
|
config NIMBLE_SM_LEGACY
|
|
bool "Security manager legacy pairing"
|
|
depends on NIMBLE_ENABLED
|
|
default y
|
|
help
|
|
Enable security manager legacy pairing
|
|
|
|
config NIMBLE_SM_SC
|
|
bool "Security manager secure connections (4.2)"
|
|
depends on NIMBLE_ENABLED
|
|
default y
|
|
help
|
|
Enable security manager secure connections
|
|
|
|
config NIMBLE_DEBUG
|
|
bool "Enable extra runtime asserts and host debugging"
|
|
default n
|
|
depends on NIMBLE_ENABLED
|
|
help
|
|
This enables extra runtime asserts and host debugging
|
|
|
|
config NIMBLE_SM_SC_DEBUG_KEYS
|
|
bool "Use predefined public-private key pair"
|
|
default n
|
|
depends on NIMBLE_ENABLED && NIMBLE_SM_SC
|
|
help
|
|
If this option is enabled, SM uses predefined DH key pair as described
|
|
in Core Specification, Vol. 3, Part H, 2.3.5.6.1. This allows to
|
|
decrypt air traffic easily and thus should only be used for debugging.
|
|
|
|
config NIMBLE_SVC_GAP_DEVICE_NAME
|
|
string "BLE GAP default device name"
|
|
depends on NIMBLE_ENABLED
|
|
default "nimble"
|
|
help
|
|
The Device Name characteristic shall contain the name of the device as an UTF-8 string.
|
|
This name can be changed by using API ble_svc_gap_device_name_set()
|
|
|
|
config NIMBLE_GAP_DEVICE_NAME_MAX_LEN
|
|
int "Maximum length of BLE device name in octets"
|
|
depends on NIMBLE_ENABLED
|
|
default 31
|
|
help
|
|
Device Name characteristic value shall be 0 to 248 octets in length
|
|
|
|
config NIMBLE_ATT_PREFERRED_MTU
|
|
int "Preferred MTU size in octets"
|
|
depends on NIMBLE_ENABLED
|
|
default 256
|
|
help
|
|
This is the default value of ATT MTU indicated by the device during an ATT MTU exchange.
|
|
This value can be changed using API ble_att_set_preferred_mtu()
|
|
|
|
config NIMBLE_SVC_GAP_APPEARANCE
|
|
hex "External appearance of the device"
|
|
depends on NIMBLE_ENABLED
|
|
default 0
|
|
help
|
|
Standard BLE GAP Appearance value in HEX format e.g. 0x02C0
|
|
|
|
config NIMBLE_ACL_BUF_COUNT
|
|
int "ACL Buffer count"
|
|
depends on NIMBLE_ENABLED
|
|
default 12
|
|
help
|
|
The number of ACL data buffers.
|
|
|
|
config NIMBLE_ACL_BUF_SIZE
|
|
int "ACL Buffer size"
|
|
depends on NIMBLE_ENABLED
|
|
default 255
|
|
help
|
|
This is the maximum size of the data portion of HCI ACL data packets.
|
|
It does not include the HCI data header (of 4 bytes)
|
|
|
|
config NIMBLE_HCI_EVT_BUF_SIZE
|
|
int "HCI Event Buffer size"
|
|
depends on NIMBLE_ENABLED
|
|
default 70
|
|
help
|
|
This is the size of each HCI event buffer in bytes
|
|
|
|
config NIMBLE_HCI_EVT_HI_BUF_COUNT
|
|
int "High Priority HCI Event Buffer count"
|
|
depends on NIMBLE_ENABLED
|
|
default 30
|
|
help
|
|
This is the high priority HCI events' buffer size. High-priority
|
|
event buffers are for everything except advertising reports. If there
|
|
are no free high-priority event buffers then host will try to allocate a
|
|
low-priority buffer instead
|
|
|
|
config NIMBLE_HCI_EVT_LO_BUF_COUNT
|
|
int "Low Priority HCI Event Buffer count"
|
|
depends on NIMBLE_ENABLED
|
|
default 8
|
|
help
|
|
This is the low priority HCI events' buffer size. Low-priority event
|
|
buffers are only used for advertising reports. If there are no free
|
|
low-priority event buffers, then an incoming advertising report will
|
|
get dropped
|
|
|
|
config NIMBLE_MSYS1_BLOCK_COUNT
|
|
int "MSYS_1 Block Count"
|
|
depends on NIMBLE_ENABLED
|
|
default 12
|
|
help
|
|
MSYS is a system level mbuf registry. For prepare write & prepare
|
|
responses MBUFs are allocated out of msys_1 pool. For NIMBLE_MESH
|
|
enabled cases, this block count is increased by 8 than user defined
|
|
count.
|
|
|
|
config NIMBLE_HS_FLOW_CTRL
|
|
bool "Enable Host Flow control"
|
|
depends on NIMBLE_ENABLED
|
|
default y
|
|
help
|
|
Enable Host Flow control
|
|
|
|
config NIMBLE_HS_FLOW_CTRL_ITVL
|
|
int "Host Flow control interval"
|
|
depends on NIMBLE_HS_FLOW_CTRL
|
|
default 1000
|
|
help
|
|
Host flow control interval in msecs
|
|
|
|
config NIMBLE_HS_FLOW_CTRL_THRESH
|
|
int "Host Flow control threshold"
|
|
depends on NIMBLE_HS_FLOW_CTRL
|
|
default 2
|
|
help
|
|
Host flow control threshold, if the number of free buffers are at or
|
|
below this threshold, send an immediate number-of-completed-packets
|
|
event
|
|
|
|
config NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT
|
|
bool "Host Flow control on disconnect"
|
|
depends on NIMBLE_HS_FLOW_CTRL
|
|
default y
|
|
help
|
|
Enable this option to send number-of-completed-packets event to
|
|
controller after disconnection
|
|
|
|
config NIMBLE_RPA_TIMEOUT
|
|
int "RPA timeout in seconds"
|
|
range 1 41400
|
|
depends on NIMBLE_ENABLED
|
|
default 900
|
|
help
|
|
Time interval between RPA address change. This is applicable in case of
|
|
Host based RPA
|
|
|
|
menuconfig NIMBLE_MESH
|
|
bool "Enable BLE mesh functionality"
|
|
select NIMBLE_SM_SC
|
|
depends on NIMBLE_ENABLED
|
|
default n
|
|
help
|
|
Enable BLE Mesh functionality
|
|
|
|
config NIMBLE_MESH_PROXY
|
|
bool "Enable mesh proxy functionality"
|
|
default n
|
|
depends on NIMBLE_MESH
|
|
help
|
|
Enable proxy. This is automatically set whenever NIMBLE_MESH_PB_GATT or
|
|
NIMBLE_MESH_GATT_PROXY is set
|
|
|
|
|
|
config NIMBLE_MESH_PROV
|
|
bool "Enable BLE mesh provisioning"
|
|
default y
|
|
depends on NIMBLE_MESH
|
|
help
|
|
Enable mesh provisioning
|
|
|
|
config NIMBLE_MESH_PB_ADV
|
|
bool "Enable mesh provisioning over advertising bearer"
|
|
default y
|
|
depends on NIMBLE_MESH_PROV
|
|
help
|
|
Enable this option to allow the device to be provisioned over
|
|
the advertising bearer
|
|
|
|
|
|
config NIMBLE_MESH_PB_GATT
|
|
bool "Enable mesh provisioning over GATT bearer"
|
|
default y
|
|
select NIMBLE_MESH_PROXY
|
|
depends on NIMBLE_MESH_PROV
|
|
help
|
|
Enable this option to allow the device to be provisioned over the GATT
|
|
bearer
|
|
|
|
config NIMBLE_MESH_GATT_PROXY
|
|
bool "Enable GATT Proxy functionality"
|
|
default y
|
|
select NIMBLE_MESH_PROXY
|
|
depends on NIMBLE_MESH
|
|
help
|
|
This option enables support for the Mesh GATT Proxy Service,
|
|
i.e. the ability to act as a proxy between a Mesh GATT Client
|
|
and a Mesh network
|
|
|
|
config NIMBLE_MESH_RELAY
|
|
bool "Enable mesh relay functionality"
|
|
default n
|
|
depends on NIMBLE_MESH
|
|
help
|
|
Support for acting as a Mesh Relay Node
|
|
|
|
config NIMBLE_MESH_LOW_POWER
|
|
bool "Enable mesh low power mode"
|
|
default n
|
|
depends on NIMBLE_MESH
|
|
help
|
|
Enable this option to be able to act as a Low Power Node
|
|
|
|
config NIMBLE_MESH_FRIEND
|
|
bool "Enable mesh friend functionality"
|
|
default n
|
|
depends on NIMBLE_MESH
|
|
help
|
|
Enable this option to be able to act as a Friend Node
|
|
|
|
config NIMBLE_MESH_DEVICE_NAME
|
|
string "Set mesh device name"
|
|
default "nimble-mesh-node"
|
|
depends on NIMBLE_MESH
|
|
help
|
|
This value defines Bluetooth Mesh device/node name
|
|
|
|
config NIMBLE_CRYPTO_STACK_MBEDTLS
|
|
bool "Override TinyCrypt with mbedTLS for crypto computations"
|
|
default y
|
|
depends on NIMBLE_ENABLED
|
|
select MBEDTLS_ECP_RESTARTABLE
|
|
select MBEDTLS_CMAC_C
|
|
help
|
|
Enable this option to choose mbedTLS instead of TinyCrypt for crypto
|
|
computations.
|
|
|
|
endmenu
|
|
|
|
menuconfig BLE_MESH
|
|
bool "ESP BLE Mesh Support"
|
|
help
|
|
This option enables ESP BLE Mesh support. The specific features that are
|
|
available may depend on other features that have been enabled in the
|
|
stack, such as Bluetooth Support, Bluedroid Support & GATT support.
|
|
|
|
if BLE_MESH
|
|
|
|
config BLE_MESH_HCI_5_0
|
|
bool "Support sending 20ms non-connectable adv packets"
|
|
default y
|
|
help
|
|
It is a temporary solution and needs further modifications.
|
|
|
|
config BLE_MESH_USE_DUPLICATE_SCAN
|
|
bool "Support Duplicate Scan in BLE Mesh"
|
|
depends on BLUEDROID_ENABLED
|
|
select BLE_SCAN_DUPLICATE
|
|
select BLE_MESH_SCAN_DUPLICATE_EN
|
|
default y
|
|
help
|
|
Enable this option to allow using specific duplicate scan filter
|
|
in BLE Mesh, and Scan Duplicate Type must be set by choosing the
|
|
option in the Bluetooth Controller section in menuconfig, which is
|
|
"Scan Duplicate By Device Address and Advertising Data".
|
|
|
|
config BLE_MESH_ALLOC_FROM_PSRAM_FIRST
|
|
bool "BLE Mesh will first allocate memory from PSRAM"
|
|
default n
|
|
help
|
|
When this option is enabled, BLE Mesh stack will try to allocate memory
|
|
from PSRAM firstly. This will save the internal RAM if PSRAM exists.
|
|
|
|
config BLE_MESH_FAST_PROV
|
|
bool "Enable BLE Mesh Fast Provisioning"
|
|
select BLE_MESH_NODE
|
|
select BLE_MESH_PROVISIONER
|
|
select BLE_MESH_PB_ADV
|
|
default n
|
|
help
|
|
Enable this option to allow BLE Mesh fast provisioning solution to be used.
|
|
When there are multiple unprovisioned devices around, fast provisioning can
|
|
greatly reduce the time consumption of the whole provisioning process.
|
|
When this option is enabled, and after an unprovisioned device is provisioned
|
|
into a node successfully, it can be changed to a temporary Provisioner.
|
|
|
|
config BLE_MESH_NODE
|
|
bool "Support for BLE Mesh Node"
|
|
help
|
|
Enable the device to be provisioned into a node. This option should be
|
|
enabled when an unprovisioned device is going to be provisioned into a
|
|
node and communicate with other nodes in the BLE Mesh network.
|
|
|
|
config BLE_MESH_PROVISIONER
|
|
bool "Support for BLE Mesh Provisioner"
|
|
help
|
|
Enable the device to be a Provisioner. The option should be enabled when
|
|
a device is going to act as a Provisioner and provision unprovisioned
|
|
devices into the BLE Mesh network.
|
|
|
|
if BLE_MESH_PROVISIONER
|
|
|
|
config BLE_MESH_WAIT_FOR_PROV_MAX_DEV_NUM
|
|
int "Maximum number of unprovisioned devices that can be added to device queue"
|
|
default 10
|
|
range 1 100
|
|
help
|
|
This option specifies how many unprovisioned devices can be added to device
|
|
queue for provisioning. Users can use this option to define the size of the
|
|
queue in the bottom layer which is used to store unprovisioned device
|
|
information (e.g. Device UUID, address).
|
|
|
|
config BLE_MESH_MAX_PROV_NODES
|
|
int "Maximum number of devices that can be provisioned by Provisioner"
|
|
default 10
|
|
range 1 1000
|
|
help
|
|
This option specifies how many devices can be provisioned by a Provisioner.
|
|
This value indicates the maximum number of unprovisioned devices which can be
|
|
provisioned by a Provisioner. For instance, if the value is 6 then it means the
|
|
Provisioner can provision up to 6 unprovisioned devices.
|
|
Theoretically a Provisioner without the limitation of its memory can provision
|
|
up to 32766 unprovisioned devices, here we limit the maximum number to 100
|
|
just to limit the memory used by a Provisioner. The bigger the value is, the
|
|
more memory it will cost by a Provisioner to store the information of nodes.
|
|
|
|
if BLE_MESH_PB_ADV
|
|
config BLE_MESH_PBA_SAME_TIME
|
|
int "Maximum number of PB-ADV running at the same time by Provisioner"
|
|
default 2
|
|
range 1 10
|
|
help
|
|
This option specifies how many devices can be provisioned at the same time
|
|
using PB-ADV. For examples, if the value is 2, it means a Provisioner can
|
|
provision two unprovisioned devices with PB-ADV at the same time.
|
|
|
|
endif # BLE_MESH_PB_ADV
|
|
|
|
if BLE_MESH_PB_GATT
|
|
config BLE_MESH_PBG_SAME_TIME
|
|
int "Maximum number of PB-GATT running at the same time by Provisioner"
|
|
default 1
|
|
range 1 5
|
|
help
|
|
This option specifies how many devices can be provisioned at the same
|
|
time using PB-GATT. For example, if the value is 2, it means a Provisioner
|
|
can provision two unprovisioned devices with PB-GATT at the same time.
|
|
|
|
endif # BLE_MESH_PB_GATT
|
|
|
|
config BLE_MESH_PROVISIONER_SUBNET_COUNT
|
|
int "Maximum number of mesh subnets that can be created by Provisioner"
|
|
default 3
|
|
range 1 4096
|
|
help
|
|
This option specifies how many subnets per network a Provisioner can create.
|
|
Indeed, this value decides the number of network keys which can be added by a Provisioner.
|
|
|
|
config BLE_MESH_PROVISIONER_APP_KEY_COUNT
|
|
int "Maximum number of application keys that can be owned by Provisioner"
|
|
default 3
|
|
range 1 4096
|
|
help
|
|
This option specifies how many application keys the Provisioner can have.
|
|
Indeed, this value decides the number of the application keys which can be added by a Provisioner.
|
|
|
|
endif # BLE_MESH_PROVISIONER
|
|
|
|
# Virtual option enabled whenever Generic Provisioning layer is needed
|
|
config BLE_MESH_PROV
|
|
bool "BLE Mesh Provisioning support"
|
|
default y
|
|
help
|
|
Enable this option to support BLE Mesh Provisioning functionality. For
|
|
BLE Mesh, this option should be always enabled.
|
|
|
|
config BLE_MESH_PB_ADV
|
|
bool "Provisioning support using the advertising bearer (PB-ADV)"
|
|
select BLE_MESH_PROV
|
|
default y
|
|
help
|
|
Enable this option to allow the device to be provisioned over the
|
|
advertising bearer. This option should be enabled if PB-ADV is
|
|
going to be used during provisioning procedure.
|
|
|
|
config BLE_MESH_PB_GATT
|
|
bool "Provisioning support using GATT (PB-GATT)"
|
|
select BLE_MESH_PROXY
|
|
select BLE_MESH_PROV
|
|
help
|
|
Enable this option to allow the device to be provisioned over GATT.
|
|
This option should be enabled if PB-GATT is going to be used during
|
|
provisioning procedure.
|
|
|
|
# Virtual option enabled whenever any Proxy protocol is needed
|
|
config BLE_MESH_PROXY
|
|
bool "BLE Mesh Proxy protocol support"
|
|
default y
|
|
help
|
|
Enable this option to support BLE Mesh Proxy protocol used by PB-GATT
|
|
and other proxy pdu transmission.
|
|
|
|
config BLE_MESH_GATT_PROXY_SERVER
|
|
bool "BLE Mesh GATT Proxy Server"
|
|
select BLE_MESH_PROXY
|
|
depends on BLE_MESH_NODE
|
|
default y
|
|
help
|
|
This option enables support for Mesh GATT Proxy Service, i.e. the
|
|
ability to act as a proxy between a Mesh GATT Client and a Mesh network.
|
|
This option should be enabled if a node is going to be a Proxy Server.
|
|
|
|
config BLE_MESH_NODE_ID_TIMEOUT
|
|
int "Node Identity advertising timeout"
|
|
depends on BLE_MESH_GATT_PROXY_SERVER
|
|
range 1 60
|
|
default 60
|
|
help
|
|
This option determines for how long the local node advertises using
|
|
Node Identity. The given value is in seconds. The specification limits
|
|
this to 60 seconds and lists it as the recommended value as well.
|
|
So leaving the default value is the safest option.
|
|
When an unprovisioned device is provisioned successfully and becomes a
|
|
node, it will start to advertise using Node Identity during the time
|
|
set by this option. And after that, Network ID will be advertised.
|
|
|
|
config BLE_MESH_PROXY_FILTER_SIZE
|
|
int "Maximum number of filter entries per Proxy Client"
|
|
depends on BLE_MESH_GATT_PROXY_SERVER
|
|
default 4
|
|
range 1 32767
|
|
help
|
|
This option specifies how many Proxy Filter entries the local node supports.
|
|
The entries of Proxy filter (whitelist or blacklist) are used to store a
|
|
list of addresses which can be used to decide which messages will be forwarded
|
|
to the Proxy Client by the Proxy Server.
|
|
|
|
config BLE_MESH_GATT_PROXY_CLIENT
|
|
bool "BLE Mesh GATT Proxy Client"
|
|
select BLE_MESH_PROXY
|
|
default n
|
|
help
|
|
This option enables support for Mesh GATT Proxy Client. The Proxy Client
|
|
can use the GATT bearer to send mesh messages to a node that supports the
|
|
advertising bearer.
|
|
|
|
config BLE_MESH_NET_BUF_POOL_USAGE
|
|
bool "BLE Mesh net buffer pool usage tracking"
|
|
default y
|
|
help
|
|
Enable BLE Mesh net buffer pool tracking. This option is used to introduce another
|
|
variable in the bottom layer to record the usage of advertising buffers of BLE Mesh
|
|
devices. Recommend to enable this option as default.
|
|
|
|
config BLE_MESH_SETTINGS
|
|
bool "Store BLE Mesh configuration persistently"
|
|
default n
|
|
help
|
|
When selected, the BLE Mesh stack will take care of storing/restoring the BLE
|
|
Mesh configuration persistently in flash.
|
|
If the device is a BLE Mesh node, when this option is enabled, the configuration
|
|
of the device will be stored persistently, including unicast address, NetKey,
|
|
AppKey, etc.
|
|
And if the device is a BLE Mesh Provisioner, the information of the device will
|
|
be stored persistently, including the information of provisioned nodes, NetKey,
|
|
AppKey, etc.
|
|
|
|
if BLE_MESH_SETTINGS
|
|
|
|
config BLE_MESH_SPECIFIC_PARTITION
|
|
bool "Use a specific NVS partition for BLE Mesh"
|
|
default n
|
|
help
|
|
When selected, the mesh stack will use a specified NVS partition instead of
|
|
default NVS partition. Note that the specified partition must be registered
|
|
with NVS using nvs_flash_init_partition() API, and the partition must exists
|
|
in the csv file.
|
|
When Provisioner needs to store a large amount of nodes' information in the
|
|
flash (e.g. more than 20), this option is recommended to be enabled.
|
|
|
|
if BLE_MESH_SPECIFIC_PARTITION
|
|
|
|
config BLE_MESH_PARTITION_NAME
|
|
string "Name of the NVS partition for BLE Mesh"
|
|
default "ble_mesh"
|
|
help
|
|
This value defines the name of the specified NVS partition used by the
|
|
mesh stack.
|
|
|
|
endif # BLE_MESH_SPECIFIC_PARTITION
|
|
|
|
config BLE_MESH_STORE_TIMEOUT
|
|
int "Delay (in seconds) before storing anything persistently"
|
|
range 0 1000000
|
|
default 0
|
|
help
|
|
This value defines in seconds how soon any pending changes are actually
|
|
written into persistent storage (flash) after a change occurs.
|
|
The option allows nodes to delay a certain period of time to save proper
|
|
information to flash. The default value is 0, which means information
|
|
will be stored immediately once there are updates.
|
|
|
|
config BLE_MESH_SEQ_STORE_RATE
|
|
int "How often the sequence number gets updated in storage"
|
|
range 0 1000000
|
|
default 6
|
|
help
|
|
This value defines how often the local sequence number gets updated in
|
|
persistent storage (i.e. flash). e.g. a value of 100 means that the
|
|
sequence number will be stored to flash on every 100th increment.
|
|
If the node sends messages very frequently a higher value makes more
|
|
sense, whereas if the node sends infrequently a value as low as 0
|
|
(update storage for every increment) can make sense. When the stack
|
|
gets initialized it will add sequence number to the last stored one,
|
|
so that it starts off with a value that's guaranteed to be larger than
|
|
the last one used before power off.
|
|
|
|
config BLE_MESH_RPL_STORE_TIMEOUT
|
|
int "Minimum frequency that the RPL gets updated in storage"
|
|
range 0 1000000
|
|
default 5
|
|
help
|
|
This value defines in seconds how soon the RPL (Replay Protection List)
|
|
gets written to persistent storage after a change occurs. If the node
|
|
receives messages frequently, then a large value is recommended. If the
|
|
node receives messages rarely, then the value can be as low as 0 (which
|
|
means the RPL is written into the storage immediately).
|
|
Note that if the node operates in a security-sensitive case, and there is
|
|
a risk of sudden power-off, then a value of 0 is strongly recommended.
|
|
Otherwise, a power loss before RPL being written into the storage may
|
|
introduce message replay attacks and system security will be in a
|
|
vulnerable state.
|
|
|
|
config BLE_MESH_SETTINGS_BACKWARD_COMPATIBILITY
|
|
bool "A specific option for settings backward compatibility"
|
|
depends on BLE_MESH_NODE
|
|
default n
|
|
help
|
|
This option is created to solve the issue of failure in recovering
|
|
node information after mesh stack updates. In the old version mesh
|
|
stack, there is no key of "mesh/role" in nvs. In the new version
|
|
mesh stack, key of "mesh/role" is added in nvs, recovering node
|
|
information needs to check "mesh/role" key in nvs and implements
|
|
selective recovery of mesh node information. Therefore, there may
|
|
be failure in recovering node information during node restarting
|
|
after OTA.
|
|
|
|
The new version mesh stack adds the option of "mesh/role" because
|
|
we have added the support of storing Provisioner information, while
|
|
the old version only supports storing node information.
|
|
|
|
If users are updating their nodes from old version to new version,
|
|
we recommend enabling this option, so that system could set the flag
|
|
in advance before recovering node information and make sure the node
|
|
information recovering could work as expected.
|
|
|
|
endif # if BLE_MESH_SETTINGS
|
|
|
|
config BLE_MESH_SUBNET_COUNT
|
|
int "Maximum number of mesh subnets per network"
|
|
default 3
|
|
range 1 4096
|
|
help
|
|
This option specifies how many subnets a Mesh network can have at the same time.
|
|
Indeed, this value decides the number of the network keys which can be owned by a node.
|
|
|
|
config BLE_MESH_APP_KEY_COUNT
|
|
int "Maximum number of application keys per network"
|
|
default 3
|
|
range 1 4096
|
|
help
|
|
This option specifies how many application keys the device can store per network.
|
|
Indeed, this value decides the number of the application keys which can be owned by a node.
|
|
|
|
config BLE_MESH_MODEL_KEY_COUNT
|
|
int "Maximum number of application keys per model"
|
|
default 3
|
|
range 1 4096
|
|
help
|
|
This option specifies the maximum number of application keys to which each model
|
|
can be bound.
|
|
|
|
config BLE_MESH_MODEL_GROUP_COUNT
|
|
int "Maximum number of group address subscriptions per model"
|
|
default 3
|
|
range 1 4096
|
|
help
|
|
This option specifies the maximum number of addresses to which each model can
|
|
be subscribed.
|
|
|
|
config BLE_MESH_LABEL_COUNT
|
|
int "Maximum number of Label UUIDs used for Virtual Addresses"
|
|
default 3
|
|
range 0 4096
|
|
help
|
|
This option specifies how many Label UUIDs can be stored.
|
|
Indeed, this value decides the number of the Virtual Addresses can be supported by a node.
|
|
|
|
config BLE_MESH_CRPL
|
|
int "Maximum capacity of the replay protection list"
|
|
default 10
|
|
range 2 65535
|
|
help
|
|
This option specifies the maximum capacity of the replay protection list.
|
|
It is similar to Network message cache size, but has a different purpose.
|
|
The replay protection list is used to prevent a node from replay attack,
|
|
which will store the source address and sequence number of the received
|
|
mesh messages.
|
|
For Provisioner, the replay protection list size should not be smaller than
|
|
the maximum number of nodes whose information can be stored. And the element
|
|
number of each node should also be taken into consideration. For example, if
|
|
Provisioner can provision up to 20 nodes and each node contains two elements,
|
|
then the replay protection list size of Provisioner should be at least 40.
|
|
|
|
config BLE_MESH_MSG_CACHE_SIZE
|
|
int "Network message cache size"
|
|
default 10
|
|
range 2 65535
|
|
help
|
|
Number of messages that are cached for the network. This helps prevent
|
|
unnecessary decryption operations and unnecessary relays. This option
|
|
is similar to Replay protection list, but has a different purpose.
|
|
A node is not required to cache the entire Network PDU and may cache
|
|
only part of it for tracking, such as values for SRC/SEQ or others.
|
|
|
|
config BLE_MESH_ADV_BUF_COUNT
|
|
int "Number of advertising buffers"
|
|
default 60
|
|
range 6 256
|
|
help
|
|
Number of advertising buffers available. The transport layer reserves
|
|
ADV_BUF_COUNT - 3 buffers for outgoing segments. The maximum outgoing
|
|
SDU size is 12 times this value (out of which 4 or 8 bytes are used
|
|
for the Transport Layer MIC). For example, 5 segments means the maximum
|
|
SDU size is 60 bytes, which leaves 56 bytes for application layer data
|
|
using a 4-byte MIC, or 52 bytes using an 8-byte MIC.
|
|
|
|
config BLE_MESH_SUPPORT_BLE_ADV
|
|
bool "Support sending normal BLE advertising packets"
|
|
default n
|
|
help
|
|
When selected, users can send normal BLE advertising packets
|
|
with specific API.
|
|
|
|
if BLE_MESH_SUPPORT_BLE_ADV
|
|
|
|
config BLE_MESH_BLE_ADV_BUF_COUNT
|
|
int "Number of advertising buffers for BLE advertising packets"
|
|
default 3
|
|
range 1 255
|
|
help
|
|
Number of advertising buffers for BLE packets available.
|
|
|
|
endif # BLE_MESH_SUPPORT_BLE_ADV
|
|
|
|
config BLE_MESH_IVU_DIVIDER
|
|
int "Divider for IV Update state refresh timer"
|
|
default 4
|
|
range 2 96
|
|
help
|
|
When the IV Update state enters Normal operation or IV Update
|
|
in Progress, we need to keep track of how many hours has passed
|
|
in the state, since the specification requires us to remain in
|
|
the state at least for 96 hours (Update in Progress has an
|
|
additional upper limit of 144 hours).
|
|
|
|
In order to fulfill the above requirement, even if the node might
|
|
be powered off once in a while, we need to store persistently
|
|
how many hours the node has been in the state. This doesn't
|
|
necessarily need to happen every hour (thanks to the flexible
|
|
duration range). The exact cadence will depend a lot on the
|
|
ways that the node will be used and what kind of power source it
|
|
has.
|
|
|
|
Since there is no single optimal answer, this configuration
|
|
option allows specifying a divider, i.e. how many intervals
|
|
the 96 hour minimum gets split into. After each interval the
|
|
duration that the node has been in the current state gets
|
|
stored to flash. E.g. the default value of 4 means that the
|
|
state is saved every 24 hours (96 / 4).
|
|
|
|
config BLE_MESH_TX_SEG_MSG_COUNT
|
|
int "Maximum number of simultaneous outgoing segmented messages"
|
|
default 1
|
|
range 1 BLE_MESH_ADV_BUF_COUNT
|
|
help
|
|
Maximum number of simultaneous outgoing multi-segment and/or reliable messages.
|
|
The default value is 1, which means the device can only send one segmented
|
|
message at a time. And if another segmented message is going to be sent, it
|
|
should wait for the completion of the previous one.
|
|
If users are going to send multiple segmented messages at the same time, this
|
|
value should be configured properly.
|
|
|
|
config BLE_MESH_RX_SEG_MSG_COUNT
|
|
int "Maximum number of simultaneous incoming segmented messages"
|
|
default 1
|
|
range 1 255
|
|
help
|
|
Maximum number of simultaneous incoming multi-segment and/or reliable messages.
|
|
The default value is 1, which means the device can only receive one segmented
|
|
message at a time. And if another segmented message is going to be received,
|
|
it should wait for the completion of the previous one.
|
|
If users are going to receive multiple segmented messages at the same time, this
|
|
value should be configured properly.
|
|
|
|
config BLE_MESH_RX_SDU_MAX
|
|
int "Maximum incoming Upper Transport Access PDU length"
|
|
default 384
|
|
range 36 384
|
|
help
|
|
Maximum incoming Upper Transport Access PDU length. Leave this to the default
|
|
value, unless you really need to optimize memory usage.
|
|
|
|
config BLE_MESH_TX_SEG_MAX
|
|
int "Maximum number of segments in outgoing messages"
|
|
default 32
|
|
range 2 32
|
|
help
|
|
Maximum number of segments supported for outgoing messages.
|
|
This value should typically be fine-tuned based on what
|
|
models the local node supports, i.e. what's the largest
|
|
message payload that the node needs to be able to send.
|
|
This value affects memory and call stack consumption, which
|
|
is why the default is lower than the maximum that the
|
|
specification would allow (32 segments).
|
|
|
|
The maximum outgoing SDU size is 12 times this number (out of
|
|
which 4 or 8 bytes is used for the Transport Layer MIC). For
|
|
example, 5 segments means the maximum SDU size is 60 bytes,
|
|
which leaves 56 bytes for application layer data using a
|
|
4-byte MIC and 52 bytes using an 8-byte MIC.
|
|
|
|
Be sure to specify a sufficient number of advertising buffers
|
|
when setting this option to a higher value. There must be at
|
|
least three more advertising buffers (BLE_MESH_ADV_BUF_COUNT)
|
|
as there are outgoing segments.
|
|
|
|
config BLE_MESH_RELAY
|
|
bool "Relay support"
|
|
depends on BLE_MESH_NODE
|
|
default y
|
|
help
|
|
Support for acting as a Mesh Relay Node. Enabling this option will allow
|
|
a node to support the Relay feature, and the Relay feature can still
|
|
be enabled or disabled by proper configuration messages. Disabling this
|
|
option will let a node not support the Relay feature.
|
|
|
|
if BLE_MESH_RELAY
|
|
|
|
config BLE_MESH_RELAY_ADV_BUF
|
|
bool "Use separate advertising buffers for relay packets"
|
|
default n
|
|
help
|
|
When selected, self-send packets will be put in a high-priority
|
|
queue and relay packets will be put in a low-priority queue.
|
|
|
|
if BLE_MESH_RELAY_ADV_BUF
|
|
|
|
config BLE_MESH_RELAY_ADV_BUF_COUNT
|
|
int "Number of advertising buffers for relay packets"
|
|
default 60
|
|
range 6 256
|
|
help
|
|
Number of advertising buffers for relay packets available.
|
|
|
|
endif # BLE_MESH_RELAY_ADV_BUF
|
|
|
|
endif # BLE_MESH_RELAY
|
|
|
|
config BLE_MESH_LOW_POWER
|
|
bool "Support for Low Power features"
|
|
depends on BLE_MESH_NODE
|
|
help
|
|
Enable this option to operate as a Low Power Node. If low power consumption
|
|
is required by a node, this option should be enabled. And once the node
|
|
enters the mesh network, it will try to find a Friend node and establish a
|
|
friendship.
|
|
|
|
if BLE_MESH_LOW_POWER
|
|
|
|
config BLE_MESH_LPN_ESTABLISHMENT
|
|
bool "Perform Friendship establishment using low power"
|
|
default n
|
|
help
|
|
Perform the Friendship establishment using low power with the help of a
|
|
reduced scan duty cycle. The downside of this is that the node may miss
|
|
out on messages intended for it until it has successfully set up Friendship
|
|
with a Friend node.
|
|
When this option is enabled, the node will stop scanning for a period of
|
|
time after a Friend Request or Friend Poll is sent, so as to reduce more
|
|
power consumption.
|
|
|
|
config BLE_MESH_LPN_AUTO
|
|
bool "Automatically start looking for Friend nodes once provisioned"
|
|
default n
|
|
help
|
|
Once provisioned, automatically enable LPN functionality and start looking
|
|
for Friend nodes. If this option is disabled LPN mode needs to be manually
|
|
enabled by calling bt_mesh_lpn_set(true).
|
|
When an unprovisioned device is provisioned successfully and becomes a node,
|
|
enabling this option will trigger the node starts to send Friend Request at
|
|
a certain period until it finds a proper Friend node.
|
|
|
|
config BLE_MESH_LPN_AUTO_TIMEOUT
|
|
int "Time from last received message before going to LPN mode"
|
|
default 15
|
|
range 0 3600
|
|
depends on BLE_MESH_LPN_AUTO
|
|
help
|
|
Time in seconds from the last received message, that the node waits out
|
|
before starting to look for Friend nodes.
|
|
|
|
config BLE_MESH_LPN_RETRY_TIMEOUT
|
|
int "Retry timeout for Friend requests"
|
|
default 6
|
|
range 1 3600
|
|
help
|
|
Time in seconds between Friend Requests, if a previous Friend Request did
|
|
not yield any acceptable Friend Offers.
|
|
|
|
config BLE_MESH_LPN_RSSI_FACTOR
|
|
int "RSSIFactor, used in Friend Offer Delay calculation"
|
|
range 0 3
|
|
default 0
|
|
help
|
|
The contribution of the RSSI, measured by the Friend node, used in Friend
|
|
Offer Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
|
|
RSSIFactor, one of the parameters carried by Friend Request sent by Low Power
|
|
node, which is used to calculate the Friend Offer Delay.
|
|
|
|
config BLE_MESH_LPN_RECV_WIN_FACTOR
|
|
int "ReceiveWindowFactor, used in Friend Offer Delay calculation"
|
|
range 0 3
|
|
default 0
|
|
help
|
|
The contribution of the supported Receive Window used in Friend Offer
|
|
Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
|
|
ReceiveWindowFactor, one of the parameters carried by Friend Request sent by
|
|
Low Power node, which is used to calculate the Friend Offer Delay.
|
|
|
|
config BLE_MESH_LPN_MIN_QUEUE_SIZE
|
|
int "Minimum size of the acceptable friend queue (MinQueueSizeLog)"
|
|
range 1 7
|
|
default 1
|
|
help
|
|
The MinQueueSizeLog field is defined as log_2(N), where N is the minimum
|
|
number of maximum size Lower Transport PDUs that the Friend node can store
|
|
in its Friend Queue. As an example, MinQueueSizeLog value 1 gives N = 2,
|
|
and value 7 gives N = 128.
|
|
|
|
config BLE_MESH_LPN_RECV_DELAY
|
|
int "Receive delay requested by the local node"
|
|
range 10 255
|
|
default 100
|
|
help
|
|
The ReceiveDelay is the time between the Low Power node sending a
|
|
request and listening for a response. This delay allows the Friend
|
|
node time to prepare the response. The value is in units of milliseconds.
|
|
|
|
config BLE_MESH_LPN_POLL_TIMEOUT
|
|
int "The value of the PollTimeout timer"
|
|
range 10 244735
|
|
default 300
|
|
help
|
|
PollTimeout timer is used to measure time between two consecutive
|
|
requests sent by a Low Power node. If no requests are received
|
|
the Friend node before the PollTimeout timer expires, then the
|
|
friendship is considered terminated. The value is in units of 100
|
|
milliseconds, so e.g. a value of 300 means 30 seconds.
|
|
The smaller the value, the faster the Low Power node tries to get
|
|
messages from corresponding Friend node and vice versa.
|
|
|
|
config BLE_MESH_LPN_INIT_POLL_TIMEOUT
|
|
int "The starting value of the PollTimeout timer"
|
|
range 10 BLE_MESH_LPN_POLL_TIMEOUT
|
|
default BLE_MESH_LPN_POLL_TIMEOUT
|
|
help
|
|
The initial value of the PollTimeout timer when Friendship is to be
|
|
established for the first time. After this, the timeout gradually
|
|
grows toward the actual PollTimeout, doubling in value for each iteration.
|
|
The value is in units of 100 milliseconds, so e.g. a value of 300 means
|
|
30 seconds.
|
|
|
|
config BLE_MESH_LPN_SCAN_LATENCY
|
|
int "Latency for enabling scanning"
|
|
range 0 50
|
|
default 10
|
|
help
|
|
Latency (in milliseconds) is the time it takes to enable scanning. In
|
|
practice, it means how much time in advance of the Receive Window, the
|
|
request to enable scanning is made.
|
|
|
|
config BLE_MESH_LPN_GROUPS
|
|
int "Number of groups the LPN can subscribe to"
|
|
range 0 16384
|
|
default 8
|
|
help
|
|
Maximum number of groups to which the LPN can subscribe.
|
|
|
|
endif # BLE_MESH_LOW_POWER
|
|
|
|
config BLE_MESH_FRIEND
|
|
bool "Support for Friend feature"
|
|
help
|
|
Enable this option to be able to act as a Friend Node.
|
|
|
|
if BLE_MESH_FRIEND
|
|
|
|
config BLE_MESH_FRIEND_RECV_WIN
|
|
int "Friend Receive Window"
|
|
range 1 255
|
|
default 255
|
|
help
|
|
Receive Window in milliseconds supported by the Friend node.
|
|
|
|
config BLE_MESH_FRIEND_QUEUE_SIZE
|
|
int "Minimum number of buffers supported per Friend Queue"
|
|
range 2 65536
|
|
default 16
|
|
help
|
|
Minimum number of buffers available to be stored for each local Friend Queue.
|
|
This option decides the size of each buffer which can be used by a Friend node
|
|
to store messages for each Low Power node.
|
|
|
|
config BLE_MESH_FRIEND_SUB_LIST_SIZE
|
|
int "Friend Subscription List Size"
|
|
range 0 1023
|
|
default 3
|
|
help
|
|
Size of the Subscription List that can be supported by a Friend node for a
|
|
Low Power node. And Low Power node can send Friend Subscription List Add or
|
|
Friend Subscription List Remove messages to the Friend node to add or remove
|
|
subscription addresses.
|
|
|
|
config BLE_MESH_FRIEND_LPN_COUNT
|
|
int "Number of supported LPN nodes"
|
|
range 1 1000
|
|
default 2
|
|
help
|
|
Number of Low Power Nodes with which a Friend can have Friendship simultaneously.
|
|
A Friend node can have friendship with multiple Low Power nodes at the same time,
|
|
while a Low Power node can only establish friendship with only one Friend node at
|
|
the same time.
|
|
|
|
config BLE_MESH_FRIEND_SEG_RX
|
|
int "Number of incomplete segment lists per LPN"
|
|
range 1 1000
|
|
default 1
|
|
help
|
|
Number of incomplete segment lists tracked for each Friends' LPN.
|
|
In other words, this determines from how many elements can segmented
|
|
messages destined for the Friend queue be received simultaneously.
|
|
|
|
endif # BLE_MESH_FRIEND
|
|
|
|
config BLE_MESH_NO_LOG
|
|
bool "Disable BLE Mesh debug logs (minimize bin size)"
|
|
depends on BLE_MESH
|
|
default n
|
|
help
|
|
Select this to save the BLE Mesh related rodata code size. Enabling this option
|
|
will disable the output of BLE Mesh debug log.
|
|
|
|
menu "BLE Mesh STACK DEBUG LOG LEVEL"
|
|
depends on BLE_MESH && !BLE_MESH_NO_LOG
|
|
|
|
choice BLE_MESH_STACK_TRACE_LEVEL
|
|
prompt "BLE_MESH_STACK"
|
|
default BLE_MESH_TRACE_LEVEL_WARNING
|
|
depends on BLE_MESH && !BLE_MESH_NO_LOG
|
|
help
|
|
Define BLE Mesh trace level for BLE Mesh stack.
|
|
|
|
config BLE_MESH_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config BLE_MESH_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config BLE_MESH_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config BLE_MESH_TRACE_LEVEL_INFO
|
|
bool "INFO"
|
|
config BLE_MESH_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config BLE_MESH_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config BLE_MESH_STACK_TRACE_LEVEL
|
|
int
|
|
depends on BLE_MESH
|
|
default 0 if BLE_MESH_TRACE_LEVEL_NONE
|
|
default 1 if BLE_MESH_TRACE_LEVEL_ERROR
|
|
default 2 if BLE_MESH_TRACE_LEVEL_WARNING
|
|
default 3 if BLE_MESH_TRACE_LEVEL_INFO
|
|
default 4 if BLE_MESH_TRACE_LEVEL_DEBUG
|
|
default 5 if BLE_MESH_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
endmenu #BLE Mesh DEBUG LOG LEVEL
|
|
|
|
menu "BLE Mesh NET BUF DEBUG LOG LEVEL"
|
|
depends on BLE_MESH && !BLE_MESH_NO_LOG
|
|
|
|
choice BLE_MESH_NET_BUF_TRACE_LEVEL
|
|
prompt "BLE_MESH_NET_BUF"
|
|
default BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
|
|
depends on BLE_MESH && !BLE_MESH_NO_LOG
|
|
help
|
|
Define BLE Mesh trace level for BLE Mesh net buffer.
|
|
|
|
config BLE_MESH_NET_BUF_TRACE_LEVEL_NONE
|
|
bool "NONE"
|
|
config BLE_MESH_NET_BUF_TRACE_LEVEL_ERROR
|
|
bool "ERROR"
|
|
config BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
|
|
bool "WARNING"
|
|
config BLE_MESH_NET_BUF_TRACE_LEVEL_INFO
|
|
bool "INFO"
|
|
config BLE_MESH_NET_BUF_TRACE_LEVEL_DEBUG
|
|
bool "DEBUG"
|
|
config BLE_MESH_NET_BUF_TRACE_LEVEL_VERBOSE
|
|
bool "VERBOSE"
|
|
endchoice
|
|
|
|
config BLE_MESH_NET_BUF_TRACE_LEVEL
|
|
int
|
|
depends on BLE_MESH
|
|
default 0 if BLE_MESH_NET_BUF_TRACE_LEVEL_NONE
|
|
default 1 if BLE_MESH_NET_BUF_TRACE_LEVEL_ERROR
|
|
default 2 if BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
|
|
default 3 if BLE_MESH_NET_BUF_TRACE_LEVEL_INFO
|
|
default 4 if BLE_MESH_NET_BUF_TRACE_LEVEL_DEBUG
|
|
default 5 if BLE_MESH_NET_BUF_TRACE_LEVEL_VERBOSE
|
|
default 2
|
|
|
|
endmenu #BLE Mesh NET BUF DEBUG LOG LEVEL
|
|
|
|
config BLE_MESH_CLIENT_MSG_TIMEOUT
|
|
int "Timeout(ms) for client message response"
|
|
range 100 1200000
|
|
default 4000
|
|
help
|
|
Timeout value used by the node to get response of the acknowledged
|
|
message which is sent by the client model.
|
|
This value indicates the maximum time that a client model waits for
|
|
the response of the sent acknowledged messages. If a client model
|
|
uses 0 as the timeout value when sending acknowledged messages, then
|
|
the default value will be used which is four seconds.
|
|
|
|
menu "Support for BLE Mesh Client Models"
|
|
|
|
config BLE_MESH_CFG_CLI
|
|
bool "Configuration Client Model"
|
|
help
|
|
Enable support for Configuration client model.
|
|
|
|
config BLE_MESH_HEALTH_CLI
|
|
bool "Health Client Model"
|
|
help
|
|
Enable support for Health client model.
|
|
|
|
config BLE_MESH_GENERIC_ONOFF_CLI
|
|
bool "Generic OnOff Client Model"
|
|
help
|
|
Enable support for Generic OnOff client model.
|
|
|
|
config BLE_MESH_GENERIC_LEVEL_CLI
|
|
bool "Generic Level Client Model"
|
|
help
|
|
Enable support for Generic Level client model.
|
|
|
|
config BLE_MESH_GENERIC_DEF_TRANS_TIME_CLI
|
|
bool "Generic Default Transition Time Client Model"
|
|
help
|
|
Enable support for Generic Default Transition Time client model.
|
|
|
|
config BLE_MESH_GENERIC_POWER_ONOFF_CLI
|
|
bool "Generic Power Onoff Client Model"
|
|
help
|
|
Enable support for Generic Power Onoff client model.
|
|
|
|
config BLE_MESH_GENERIC_POWER_LEVEL_CLI
|
|
bool "Generic Power Level Client Model"
|
|
help
|
|
Enable support for Generic Power Level client model.
|
|
|
|
config BLE_MESH_GENERIC_BATTERY_CLI
|
|
bool "Generic Battery Client Model"
|
|
help
|
|
Enable support for Generic Battery client model.
|
|
|
|
config BLE_MESH_GENERIC_LOCATION_CLI
|
|
bool "Generic Location Client Model"
|
|
help
|
|
Enable support for Generic Location client model.
|
|
|
|
config BLE_MESH_GENERIC_PROPERTY_CLI
|
|
bool "Generic Property Client Model"
|
|
help
|
|
Enable support for Generic Property client model.
|
|
|
|
config BLE_MESH_SENSOR_CLI
|
|
bool "Sensor Client Model"
|
|
help
|
|
Enable support for Sensor client model.
|
|
|
|
config BLE_MESH_TIME_CLI
|
|
bool "Time Client Model"
|
|
help
|
|
Enable support for Time client model.
|
|
|
|
config BLE_MESH_SCENE_CLI
|
|
bool "Scene Client Model"
|
|
help
|
|
Enable support for Scene client model.
|
|
|
|
config BLE_MESH_SCHEDULER_CLI
|
|
bool "Scheduler Client Model"
|
|
help
|
|
Enable support for Scheduler client model.
|
|
|
|
config BLE_MESH_LIGHT_LIGHTNESS_CLI
|
|
bool "Light Lightness Client Model"
|
|
help
|
|
Enable support for Light Lightness client model.
|
|
|
|
config BLE_MESH_LIGHT_CTL_CLI
|
|
bool "Light CTL Client Model"
|
|
help
|
|
Enable support for Light CTL client model.
|
|
|
|
config BLE_MESH_LIGHT_HSL_CLI
|
|
bool "Light HSL Client Model"
|
|
help
|
|
Enable support for Light HSL client model.
|
|
|
|
config BLE_MESH_LIGHT_XYL_CLI
|
|
bool "Light XYL Client Model"
|
|
help
|
|
Enable support for Light XYL client model.
|
|
|
|
config BLE_MESH_LIGHT_LC_CLI
|
|
bool "Light LC Client Model"
|
|
help
|
|
Enable support for Light LC client model.
|
|
|
|
endmenu
|
|
|
|
config BLE_MESH_IV_UPDATE_TEST
|
|
bool "Test the IV Update Procedure"
|
|
default n
|
|
help
|
|
This option removes the 96 hour limit of the IV Update Procedure and
|
|
lets the state to be changed at any time.
|
|
If IV Update test mode is going to be used, this option should be enabled.
|
|
|
|
menu "BLE Mesh specific test option"
|
|
|
|
config BLE_MESH_SELF_TEST
|
|
bool "Perform BLE Mesh self-tests"
|
|
default n
|
|
help
|
|
This option adds extra self-tests which are run every time BLE Mesh
|
|
networking is initialized.
|
|
|
|
if BLE_MESH_SELF_TEST
|
|
|
|
config BLE_MESH_TEST_AUTO_ENTER_NETWORK
|
|
bool "Unprovisioned device enters mesh network automatically"
|
|
default y
|
|
help
|
|
With this option enabled, an unprovisioned device can automatically
|
|
enters mesh network using a specific test function without the pro-
|
|
visioning procedure. And on the Provisioner side, a test function
|
|
needs to be invoked to add the node information into the mesh stack.
|
|
|
|
config BLE_MESH_TEST_USE_WHITE_LIST
|
|
bool "Use white list to filter mesh advertising packets"
|
|
default n
|
|
help
|
|
With this option enabled, users can use whilte list to filter mesh
|
|
advertising packets while scanning.
|
|
|
|
endif # BLE_MESH_SELF_TEST
|
|
|
|
config BLE_MESH_SHELL
|
|
bool "Enable BLE Mesh shell"
|
|
default n
|
|
help
|
|
Activate shell module that provides BLE Mesh commands to the console.
|
|
|
|
config BLE_MESH_DEBUG
|
|
bool "Enable BLE Mesh debug logs"
|
|
default n
|
|
help
|
|
Enable debug logs for the BLE Mesh functionality.
|
|
|
|
if BLE_MESH_DEBUG
|
|
|
|
config BLE_MESH_DEBUG_NET
|
|
bool "Network layer debug"
|
|
help
|
|
Enable Network layer debug logs for the BLE Mesh functionality.
|
|
|
|
config BLE_MESH_DEBUG_TRANS
|
|
bool "Transport layer debug"
|
|
help
|
|
Enable Transport layer debug logs for the BLE Mesh functionality.
|
|
|
|
config BLE_MESH_DEBUG_BEACON
|
|
bool "Beacon debug"
|
|
help
|
|
Enable Beacon-related debug logs for the BLE Mesh functionality.
|
|
|
|
config BLE_MESH_DEBUG_CRYPTO
|
|
bool "Crypto debug"
|
|
help
|
|
Enable cryptographic debug logs for the BLE Mesh functionality.
|
|
|
|
config BLE_MESH_DEBUG_PROV
|
|
bool "Provisioning debug"
|
|
help
|
|
Enable Provisioning debug logs for the BLE Mesh functionality.
|
|
|
|
config BLE_MESH_DEBUG_ACCESS
|
|
bool "Access layer debug"
|
|
help
|
|
Enable Access layer debug logs for the BLE Mesh functionality.
|
|
|
|
config BLE_MESH_DEBUG_MODEL
|
|
bool "Foundation model debug"
|
|
help
|
|
Enable Foundation Models debug logs for the BLE Mesh functionality.
|
|
|
|
config BLE_MESH_DEBUG_ADV
|
|
bool "Advertising debug"
|
|
help
|
|
Enable advertising debug logs for the BLE Mesh functionality.
|
|
|
|
config BLE_MESH_DEBUG_LOW_POWER
|
|
bool "Low Power debug"
|
|
help
|
|
Enable Low Power debug logs for the BLE Mesh functionality.
|
|
|
|
config BLE_MESH_DEBUG_FRIEND
|
|
bool "Friend debug"
|
|
help
|
|
Enable Friend debug logs for the BLE Mesh functionality.
|
|
|
|
config BLE_MESH_DEBUG_PROXY
|
|
bool "Proxy debug"
|
|
depends on BLE_MESH_PROXY
|
|
help
|
|
Enable Proxy protocol debug logs for the BLE Mesh functionality.
|
|
|
|
endif # BLE_MESH_DEBUG
|
|
|
|
endmenu
|
|
|
|
endif # BLE_MESH
|
|
|