OVMS3-idf/components/bt/host/nimble/Kconfig.in
Prasad Alatkar 4047f7e180 NimBLE: Misc changes in host flow control, ble_gap_unpair, ble_hs_hci_rx_evt & example
- Add menuconfig option for NimBLE host flow control
- Include changes in `blecent` example from upstream PR!702
- add ble_hs_lock in ble_gap_unpair Upstream PR!584
- ble_hs_hci_rx_evt, upstream PR!738

Closes https://github.com/espressif/esp-idf/issues/4243
2020-01-31 10:46:55 +05:30

338 lines
10 KiB
Text

choice BT_NIMBLE_MEM_ALLOC_MODE
prompt "Memory allocation strategy"
default BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL
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 BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL
bool "Internal memory"
config BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL
bool "External SPIRAM"
depends on ESP32_SPIRAM_SUPPORT
config BT_NIMBLE_MEM_ALLOC_MODE_DEFAULT
bool "Default alloc mode"
endchoice
config BT_NIMBLE_MAX_CONNECTIONS
int "Maximum number of concurrent connections"
range 1 9
default BTDM_CTRL_BLE_MAX_CONN
depends on BT_NIMBLE_ENABLED
help
Defines maximum number of concurrent BLE connections
config BT_NIMBLE_MAX_BONDS
int "Maximum number of bonds to save across reboots"
default 3
depends on BT_NIMBLE_ENABLED
help
Defines maximum number of bonds to save for peer security and our security
config BT_NIMBLE_MAX_CCCDS
int "Maximum number of CCC descriptors to save across reboots"
default 8
depends on BT_NIMBLE_ENABLED
help
Defines maximum number of CCC descriptors to save
config BT_NIMBLE_L2CAP_COC_MAX_NUM
int "Maximum number of connection oriented channels"
range 0 9
depends on BT_NIMBLE_ENABLED
default 0
help
Defines maximum number of BLE Connection Oriented Channels. When set to (0), BLE COC is not compiled in
choice BT_NIMBLE_PINNED_TO_CORE_CHOICE
prompt "The CPU core on which NimBLE host will run"
depends on BT_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 BT_NIMBLE_PINNED_TO_CORE_0
bool "Core 0 (PRO CPU)"
config BT_NIMBLE_PINNED_TO_CORE_1
bool "Core 1 (APP CPU)"
depends on !FREERTOS_UNICORE
endchoice
config BT_NIMBLE_PINNED_TO_CORE
int
depends on BT_NIMBLE_ENABLED
default 0 if BT_NIMBLE_PINNED_TO_CORE_0
default 1 if BT_NIMBLE_PINNED_TO_CORE_1
default 0
config BT_NIMBLE_TASK_STACK_SIZE
int "NimBLE Host task stack size"
depends on BT_NIMBLE_ENABLED
default 5120 if BLE_MESH
default 4096
help
This configures stack size of NimBLE host task
config BT_NIMBLE_ROLE_CENTRAL
bool "Enable BLE Central role"
depends on BT_NIMBLE_ENABLED
default y
config BT_NIMBLE_ROLE_PERIPHERAL
bool "Enable BLE Peripheral role"
depends on BT_NIMBLE_ENABLED
default y
config BT_NIMBLE_ROLE_BROADCASTER
bool "Enable BLE Broadcaster role"
depends on BT_NIMBLE_ENABLED
default y
config BT_NIMBLE_ROLE_OBSERVER
bool "Enable BLE Observer role"
depends on BT_NIMBLE_ENABLED
default y
config BT_NIMBLE_NVS_PERSIST
bool "Persist the BLE Bonding keys in NVS"
depends on BT_NIMBLE_ENABLED
default y
help
Enable this flag to make bonding persistent across device reboots
config BT_NIMBLE_SM_LEGACY
bool "Security manager legacy pairing"
depends on BT_NIMBLE_ENABLED
default y
help
Enable security manager legacy pairing
config BT_NIMBLE_SM_SC
bool "Security manager secure connections (4.2)"
depends on BT_NIMBLE_ENABLED
default y
help
Enable security manager secure connections
config BT_NIMBLE_DEBUG
bool "Enable extra runtime asserts and host debugging"
default n
depends on BT_NIMBLE_ENABLED
help
This enables extra runtime asserts and host debugging
config BT_NIMBLE_SM_SC_DEBUG_KEYS
bool "Use predefined public-private key pair"
default n
depends on BT_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 BT_NIMBLE_SVC_GAP_DEVICE_NAME
string "BLE GAP default device name"
depends on BT_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 BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN
int "Maximum length of BLE device name in octets"
depends on BT_NIMBLE_ENABLED
default 31
help
Device Name characteristic value shall be 0 to 248 octets in length
config BT_NIMBLE_ATT_PREFERRED_MTU
int "Preferred MTU size in octets"
depends on BT_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 BT_NIMBLE_SVC_GAP_APPEARANCE
hex "External appearance of the device"
depends on BT_NIMBLE_ENABLED
default 0
help
Standard BLE GAP Appearance value in HEX format e.g. 0x02C0
config BT_NIMBLE_ACL_BUF_COUNT
int "ACL Buffer count"
depends on BT_NIMBLE_ENABLED
default 12
help
The number of ACL data buffers.
config BT_NIMBLE_ACL_BUF_SIZE
int "ACL Buffer size"
depends on BT_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 BT_NIMBLE_HCI_EVT_BUF_SIZE
int "HCI Event Buffer size"
depends on BT_NIMBLE_ENABLED
default 70
help
This is the size of each HCI event buffer in bytes
config BT_NIMBLE_HCI_EVT_HI_BUF_COUNT
int "High Priority HCI Event Buffer count"
depends on BT_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 BT_NIMBLE_HCI_EVT_LO_BUF_COUNT
int "Low Priority HCI Event Buffer count"
depends on BT_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 BT_NIMBLE_HS_FLOW_CTRL
bool "Enable Host Flow control"
depends on BT_NIMBLE_ENABLED
default y
help
Enable Host Flow control
config BT_NIMBLE_HS_FLOW_CTRL_ITVL
int "Host Flow control interval"
depends on BT_NIMBLE_HS_FLOW_CTRL
default 1000
help
Host flow control interval in msecs
config BT_NIMBLE_HS_FLOW_CTRL_THRESH
int "Host Flow control threshold"
depends on BT_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 BT_NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT
bool "Host Flow control on disconnect"
depends on BT_NIMBLE_HS_FLOW_CTRL
default y
help
Enable this option to send number-of-completed-packets event to
controller after disconnection
menuconfig BT_NIMBLE_MESH
bool "Enable BLE mesh functionality"
select BT_NIMBLE_SM_SC
depends on BT_NIMBLE_ENABLED
default n
help
Enable BLE Mesh functionality
config BT_NIMBLE_MESH_PROXY
bool "Enable mesh proxy functionality"
default n
depends on BT_NIMBLE_MESH
help
Enable proxy. This is automatically set whenever NIMBLE_MESH_PB_GATT or
NIMBLE_MESH_GATT_PROXY is set
config BT_NIMBLE_MESH_PROV
bool "Enable BLE mesh provisioning"
default y
depends on BT_NIMBLE_MESH
help
Enable mesh provisioning
config BT_NIMBLE_MESH_PB_ADV
bool "Enable mesh provisioning over advertising bearer"
default y
depends on BT_NIMBLE_MESH_PROV
help
Enable this option to allow the device to be provisioned over
the advertising bearer
config BT_NIMBLE_MESH_PB_GATT
bool "Enable mesh provisioning over GATT bearer"
default y
select BT_NIMBLE_MESH_PROXY
depends on BT_NIMBLE_MESH_PROV
help
Enable this option to allow the device to be provisioned over the GATT
bearer
config BT_NIMBLE_MESH_GATT_PROXY
bool "Enable GATT Proxy functionality"
default y
select BT_NIMBLE_MESH_PROXY
depends on BT_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 BT_NIMBLE_MESH_RELAY
bool "Enable mesh relay functionality"
default n
depends on BT_NIMBLE_MESH
help
Support for acting as a Mesh Relay Node
config BT_NIMBLE_MESH_LOW_POWER
bool "Enable mesh low power mode"
default n
depends on BT_NIMBLE_MESH
help
Enable this option to be able to act as a Low Power Node
config BT_NIMBLE_MESH_FRIEND
bool "Enable mesh friend functionality"
default n
depends on BT_NIMBLE_MESH
help
Enable this option to be able to act as a Friend Node
config BT_NIMBLE_MESH_DEVICE_NAME
string "Set mesh device name"
default "nimble-mesh-node"
depends on BT_NIMBLE_MESH
help
This value defines Bluetooth Mesh device/node name
config BT_NIMBLE_CRYPTO_STACK_MBEDTLS
bool "Override TinyCrypt with mbedTLS for crypto computations"
default y
depends on BT_NIMBLE_ENABLED
select MBEDTLS_ECP_RESTARTABLE
select MBEDTLS_CMAC_C
help
Enable this option to choose mbedTLS instead of TinyCrypt for crypto
computations.