| # 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 |