327 lines
10 KiB
Plaintext
327 lines
10 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_ERR_TO_STR
|
|
bool "Print ATT error codes as strings [EXPERIMENTAL]"
|
|
select EXPERIMENTAL
|
|
help
|
|
This configuration enables printing of ATT error
|
|
codes represented as strings.
|
|
See bt_att_err_to_str() for more details.
|
|
|
|
config BT_ATT_TX_COUNT
|
|
int "Number of ATT buffers"
|
|
default BT_BUF_ACL_TX_COUNT
|
|
default 3
|
|
range 1 $(UINT8_MAX)
|
|
help
|
|
These buffers are only used for sending anything over ATT.
|
|
Requests, responses, indications, confirmations, notifications.
|
|
|
|
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_RESUBSCRIBE
|
|
bool "Automatic re-subscription to characteristics"
|
|
default y
|
|
imply BT_GATT_AUTO_SEC_REQ
|
|
depends on BT_GATT_CLIENT
|
|
help
|
|
Quirk: upon re-establishing a bonded connection, assumes the remote
|
|
forgot the CCC values and sets them again. If this behavior is not
|
|
desired for a particular subscription, set the
|
|
`BT_GATT_SUBSCRIBE_FLAG_NO_RESUB` flag.
|
|
This also means that upon a reconnection, the application will get an
|
|
unprompted call to its `subscribe` callback.
|
|
|
|
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 if !BT_USE_PSA_API
|
|
select TINYCRYPT_AES if !BT_USE_PSA_API
|
|
select TINYCRYPT_AES_CMAC if !BT_USE_PSA_API
|
|
select PSA_WANT_KEY_TYPE_AES if BT_USE_PSA_API
|
|
select PSA_WANT_ALG_CMAC if BT_USE_PSA_API
|
|
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 $(UINT16_MAX) if !BT_CONN_PARAM_ANY
|
|
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 $(UINT16_MAX) if !BT_CONN_PARAM_ANY
|
|
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 if !BT_CONN_PARAM_ANY
|
|
|
|
config BT_PERIPHERAL_PREF_TIMEOUT
|
|
int "Peripheral preferred supervision timeout in 10ms units"
|
|
default 42
|
|
range 10 $(UINT16_MAX) if !BT_CONN_PARAM_ANY
|
|
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 device 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
|
|
choice BT_DEVICE_NAME_GATT_WRITABLE_SECURITY
|
|
prompt "Security requirements"
|
|
default DEVICE_NAME_GATT_WRITABLE_ENCRYPT
|
|
help
|
|
Select security requirementsf for writing device name by remote GATT
|
|
clients.
|
|
|
|
config DEVICE_NAME_GATT_WRITABLE_NONE
|
|
bool "No requirements"
|
|
|
|
config DEVICE_NAME_GATT_WRITABLE_ENCRYPT
|
|
bool "Encryption required"
|
|
|
|
config DEVICE_NAME_GATT_WRITABLE_AUTHEN
|
|
bool "Encryption and authentication required"
|
|
|
|
endchoice #BT_DEVICE_NAME_GATT_WRITABLE_SECURITY
|
|
endif #BT_DEVICE_NAME_GATT_WRITABLE
|
|
|
|
config BT_DEVICE_APPEARANCE_GATT_WRITABLE
|
|
bool "Allow to write GAP Appearance by remote GATT clients"
|
|
depends on BT_DEVICE_APPEARANCE_DYNAMIC
|
|
default y
|
|
help
|
|
Enabling this option allows remote GATT clients to write to device
|
|
appearance GAP characteristic.
|
|
|
|
if BT_DEVICE_APPEARANCE_GATT_WRITABLE
|
|
choice BT_DEVICE_APPEARANCE_GATT_WRITABLE
|
|
prompt "Security requirements"
|
|
default DEVICE_APPEARANCE_GATT_WRITABLE_AUTHEN
|
|
help
|
|
Select security requirementsf for writing device name by remote GATT
|
|
clients.
|
|
|
|
config BT_DEVICE_APPEARANCE_GATT_WRITABLE_NONE
|
|
bool "No requirements"
|
|
|
|
config BT_DEVICE_APPEARANCE_GATT_WRITABLE_ENCRYPT
|
|
bool "Encryption required"
|
|
|
|
config DEVICE_APPEARANCE_GATT_WRITABLE_AUTHEN
|
|
bool "Encryption and authentication required"
|
|
|
|
endchoice #BT_DEVICE_APPEARANCE_GATT_WRITABLE
|
|
endif #BT_DEVICE_APPEARANCE_GATT_WRITABLE
|
|
|
|
config BT_GATT_AUTHORIZATION_CUSTOM
|
|
bool "Custom authorization of GATT operations"
|
|
help
|
|
This option allows the user to define application-specific
|
|
authorization logic for GATT operations that can be registered
|
|
with the bt_gatt_authorization_cb_register API. See the API
|
|
documentation for more details.
|
|
|
|
endmenu
|