# 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_TX_MAX int "Maximum number of queued outgoing ATT PDUs" default BT_L2CAP_TX_BUF_COUNT range 1 BT_L2CAP_TX_BUF_COUNT help Number of ATT PDUs that can be at a single moment queued for transmission. If the application tries to send more than this amount the calls will block until an existing queued PDU gets sent. config BT_EATT bool "Enhanced ATT Bearers support [EXPERIMENTAL]" depends on BT_L2CAP_DYNAMIC_CHANNEL 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_RX_MTU int "Maximum supported Enhanced ATT MTU for incoming data" default 70 range 70 519 depends on BT_EATT help Maximum size incoming PDUs on EATT bearers, value shall include L2CAP headers and SDU length, maximum is limited to 512 bytes payload, which is the maximum size for a GATT attribute, plus 1 byte for ATT opcode. This option influences the stack buffer size and by that may also limit the outgoing MTU. config BT_EATT_SEC_LEVEL int "Enhanced ATT bearer security level" default 1 range 1 4 help L2CAP server required security level of EATT bearers: Level 1 (BT_SECURITY_L1) = No encryption or authentication required Level 2 (BT_SECURITY_L2) = Only encryption required Level 3 (BT_SECURITY_L3) = Encryption and authentication required Level 4 (BT_SECURITY_L4) = Secure connection required endif # BT_EATT 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 default y help This option enables support for the GATT Notify Multiple Characteristic Values procedure. 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_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_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_SLAVE_LATENCY int "Peripheral preferred slave 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_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