283 lines
9.0 KiB
Plaintext
283 lines
9.0 KiB
Plaintext
# Bluetooth ATT/GATT configuration options
|
|
|
|
# Copyright (c) 2019 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "ATT and GATT Options"
|
|
|
|
config BT_ATT_ENFORCE_FLOW
|
|
bool "Enforce strict flow control semantics for incoming PDUs"
|
|
default y if !(BOARD_QEMU_CORTEX_M3 || BOARD_QEMU_X86 || ARCH_POSIX)
|
|
help
|
|
Enforce flow control rules on incoming PDUs, preventing a peer
|
|
from sending new requests until a previous one has been responded
|
|
or sending a new indication until a previous one has been
|
|
confirmed. This may need to be disabled to avoid potential race
|
|
conditions arising from a USB based HCI transport that splits
|
|
HCI events and ACL data to separate endpoints.
|
|
|
|
config BT_ATT_PREPARE_COUNT
|
|
int "Number of ATT prepare write buffers"
|
|
default 0
|
|
range 0 64
|
|
help
|
|
Number of buffers available for ATT prepare write, setting
|
|
this to 0 disables GATT long/reliable writes.
|
|
|
|
config BT_ATT_RETRY_ON_SEC_ERR
|
|
bool "Automatic security elevation and retry on security errors"
|
|
default y
|
|
depends on BT_SMP
|
|
help
|
|
If an ATT request fails due to insufficient security, the host will
|
|
try to elevate the security level and retry the ATT request.
|
|
|
|
config BT_EATT
|
|
bool "Enhanced ATT Bearers support [EXPERIMENTAL]"
|
|
depends on BT_L2CAP_ECRED
|
|
select EXPERIMENTAL
|
|
select BT_GATT_READ_MULT_VAR_LEN
|
|
help
|
|
This option enables support for Enhanced ATT bearers support. When
|
|
enabled additional L2CAP channels can be connected as bearers enabling
|
|
multiple outstanding request.
|
|
|
|
if BT_EATT
|
|
|
|
config BT_EATT_MAX
|
|
int "Maximum number of Enhanced ATT bearers"
|
|
default 3
|
|
range 1 16
|
|
|
|
help
|
|
Number of Enhanced ATT bearers available.
|
|
|
|
|
|
config BT_EATT_AUTO_CONNECT
|
|
bool "Automatically connect EATT bearers when a link is established"
|
|
default y
|
|
help
|
|
The device will try to connect BT_EATT_MAX enhanced ATT bearers when a
|
|
connection to a peer is established.
|
|
|
|
endif # BT_EATT
|
|
|
|
config BT_GATT_AUTO_SEC_REQ
|
|
bool "Automatic security re-establishment request as a peripheral"
|
|
default y
|
|
depends on BT_SMP
|
|
help
|
|
This option requests security re-establishment automatically whenever
|
|
a reconnection to a GATT client is established and
|
|
there are notifiable or indicatable characteristics for which security
|
|
is required. This configuration option only applies to the peripheral
|
|
role, which sends a Security Request for this purpose.
|
|
When disabled, it is the application's responsibility to call
|
|
bt_conn_set_security() to re-establish security prior to sending any
|
|
notifications or indications on the characteristics that require
|
|
security (unless the central does that first).
|
|
This option has been introduced to avoid interoperability issues with
|
|
commercially available central devices that react negatively to
|
|
receiving a Security Request immediately after reconnection.
|
|
|
|
config BT_GATT_SERVICE_CHANGED
|
|
bool "GATT Service Changed support"
|
|
default y
|
|
help
|
|
This option enables support for the service changed characteristic.
|
|
|
|
config BT_GATT_DYNAMIC_DB
|
|
bool "GATT dynamic database support"
|
|
depends on BT_GATT_SERVICE_CHANGED
|
|
help
|
|
This option enables registering/unregistering services at runtime.
|
|
|
|
config BT_GATT_CACHING
|
|
bool "GATT Caching support"
|
|
default y
|
|
depends on BT_GATT_SERVICE_CHANGED
|
|
select TINYCRYPT
|
|
select TINYCRYPT_AES
|
|
select TINYCRYPT_AES_CMAC
|
|
help
|
|
This option enables support for GATT Caching. When enabled the stack
|
|
will register Client Supported Features and Database Hash
|
|
characteristics which can be used by clients to detect if anything has
|
|
changed on the GATT database.
|
|
|
|
if BT_GATT_CACHING
|
|
|
|
config BT_GATT_NOTIFY_MULTIPLE
|
|
bool "GATT Notify Multiple Characteristic Values support"
|
|
depends on BT_GATT_CACHING
|
|
help
|
|
This option enables support for the GATT Notify Multiple
|
|
Characteristic Values procedure.
|
|
|
|
if BT_GATT_NOTIFY_MULTIPLE
|
|
|
|
config BT_GATT_NOTIFY_MULTIPLE_FLUSH_MS
|
|
int "Delay for batching multiple notifications in a single PDU."
|
|
default 1
|
|
range 0 4000
|
|
help
|
|
Sets the time (in milliseconds) during which consecutive GATT
|
|
notifications will be tentatively appended to form a single
|
|
ATT_MULTIPLE_HANDLE_VALUE_NTF PDU.
|
|
|
|
If set to 0, batching is disabled. Then, the only way to send
|
|
ATT_MULTIPLE_HANDLE_VALUE_NTF PDUs is to use bt_gatt_notify_multiple.
|
|
|
|
See the documentation of bt_gatt_notify() for more details.
|
|
|
|
endif # BT_GATT_NOTIFY_MULTIPLE
|
|
|
|
config BT_GATT_ENFORCE_CHANGE_UNAWARE
|
|
bool "GATT Enforce change-unaware state"
|
|
depends on BT_GATT_CACHING
|
|
help
|
|
When enable this option blocks notification and indications to client
|
|
to conform to the following statement from the Bluetooth 5.1
|
|
specification:
|
|
'...the server shall not send notifications and indications to such
|
|
a client until it becomes change-aware."
|
|
In case the service cannot deal with sudden errors (-EAGAIN) then it
|
|
shall not use this option.
|
|
|
|
endif # BT_GATT_CACHING
|
|
|
|
config BT_GATT_ENFORCE_SUBSCRIPTION
|
|
bool "GATT Enforce characteristic subscription"
|
|
default y
|
|
help
|
|
When enabled, this option will make the server block sending
|
|
notifications and indications to a device which has not subscribed to
|
|
the supplied characteristic.
|
|
|
|
config BT_GATT_CLIENT
|
|
bool "GATT client support"
|
|
help
|
|
This option enables support for the GATT Client role.
|
|
|
|
config BT_GATT_READ_MULTIPLE
|
|
bool "GATT Read Multiple Characteristic Values support"
|
|
default y
|
|
help
|
|
This option enables support for the GATT Read Multiple Characteristic
|
|
Values procedure.
|
|
|
|
config BT_GATT_READ_MULT_VAR_LEN
|
|
bool "GATT Read Multiple Variable Length Characteristic Values support"
|
|
default y
|
|
help
|
|
This option enables support for the GATT Read Multiple Variable Length
|
|
Characteristic Values procedure. Mandatory if EATT is enabled, optional
|
|
otherwise (Core spec v5.3, Vol 3, Part G, Section 4.2, Table 4.1).
|
|
|
|
config BT_GATT_AUTO_DISCOVER_CCC
|
|
bool "Support to automatic discover the CCC handles of characteristics"
|
|
depends on BT_GATT_CLIENT
|
|
help
|
|
This option enables support for GATT to initiate discovery for CCC
|
|
handles if the CCC handle is unknown by the application.
|
|
|
|
config BT_GATT_AUTO_UPDATE_MTU
|
|
bool "Automatically send ATT MTU exchange request on connect"
|
|
depends on BT_GATT_CLIENT
|
|
help
|
|
This option if enabled allows automatically sending request for ATT
|
|
MTU exchange.
|
|
|
|
config BT_GAP_AUTO_UPDATE_CONN_PARAMS
|
|
bool "Automatic Update of Connection Parameters"
|
|
default y
|
|
depends on BT_PERIPHERAL
|
|
help
|
|
This option if enabled allows automatically sending request for connection
|
|
parameters update after GAP recommended 5 seconds of connection as
|
|
peripheral.
|
|
|
|
config BT_GAP_PERIPHERAL_PREF_PARAMS
|
|
bool "Configure peripheral preferred connection parameters"
|
|
default y
|
|
depends on BT_PERIPHERAL
|
|
help
|
|
This allows to configure peripheral preferred connection parameters.
|
|
Enabling this option results in adding PPCP characteristic in GAP.
|
|
If disabled it is up to application to set expected connection parameters.
|
|
|
|
if BT_GAP_PERIPHERAL_PREF_PARAMS
|
|
config BT_PERIPHERAL_PREF_MIN_INT
|
|
int "Peripheral preferred minimum connection interval in 1.25ms units"
|
|
default 24
|
|
range 6 65535
|
|
help
|
|
Range 3200 to 65534 is invalid. 65535 represents no specific value.
|
|
|
|
config BT_PERIPHERAL_PREF_MAX_INT
|
|
int "Peripheral preferred maximum connection interval in 1.25ms units"
|
|
default 40
|
|
range 6 65535
|
|
help
|
|
Range 3200 to 65534 is invalid. 65535 represents no specific value.
|
|
|
|
config BT_PERIPHERAL_PREF_LATENCY
|
|
int "Peripheral preferred peripheral latency in Connection Intervals"
|
|
default 0
|
|
range 0 499
|
|
|
|
config BT_PERIPHERAL_PREF_TIMEOUT
|
|
int "Peripheral preferred supervision timeout in 10ms units"
|
|
default 42
|
|
range 10 65535
|
|
help
|
|
It is up to user to provide valid timeout which pass required minimum
|
|
value: in milliseconds it shall be larger than
|
|
"(1+ Conn_Latency) * Conn_Interval_Max * 2"
|
|
where Conn_Interval_Max is given in milliseconds.
|
|
Range 3200 to 65534 is invalid. 65535 represents no specific value.
|
|
endif # BT_GAP_PERIPHERAL_PREF_PARAMS
|
|
|
|
config BT_DEVICE_NAME_GATT_WRITABLE
|
|
bool "Allow to write name by remote GATT clients"
|
|
depends on BT_DEVICE_NAME_DYNAMIC
|
|
default y
|
|
help
|
|
Enabling this option allows remote GATT clients to write to device
|
|
name GAP characteristic.
|
|
|
|
if BT_DEVICE_NAME_GATT_WRITABLE
|
|
config DEVICE_NAME_GATT_WRITABLE_ENCRYPT
|
|
bool "Encryption required to write name by remote GATT clients"
|
|
default y
|
|
help
|
|
Enabling this option requires the connection to be encrypted to write
|
|
to the device name GAP characteristic.
|
|
|
|
|
|
config DEVICE_NAME_GATT_WRITABLE_AUTHEN
|
|
bool "Authentication required to write name by remote GATT clients"
|
|
help
|
|
Enabling this option requires the connection to be encrypted and
|
|
authenticated to write to the device name GAP characteristic.
|
|
|
|
endif #BT_DEVICE_NAME_GATT_WRITABLE
|
|
|
|
if BT_DEBUG
|
|
|
|
config BT_DEBUG_ATT
|
|
bool "Bluetooth Attribute Protocol (ATT) debug"
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
Attribute Protocol (ATT).
|
|
|
|
config BT_DEBUG_GATT
|
|
bool "Bluetooth Generic Attribute Profile (GATT) debug"
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
Generic Attribute Profile (GATT).
|
|
|
|
endif # BT_DEBUG
|
|
|
|
endmenu
|