Attribute Protocol (ATT)

API Reference

group bt_att

Attribute Protocol (ATT)

Defines

BT_ATT_ERR_SUCCESS

The ATT operation was successful.

BT_ATT_ERR_INVALID_HANDLE

The attribute handle given was not valid on the server.

BT_ATT_ERR_READ_NOT_PERMITTED

The attribute cannot be read.

BT_ATT_ERR_WRITE_NOT_PERMITTED

The attribute cannot be written.

BT_ATT_ERR_INVALID_PDU

The attribute PDU was invalid.

BT_ATT_ERR_AUTHENTICATION

The attribute requires authentication before it can be read or written.

BT_ATT_ERR_NOT_SUPPORTED

The ATT Server does not support the request received from the client.

BT_ATT_ERR_INVALID_OFFSET

Offset specified was past the end of the attribute.

BT_ATT_ERR_AUTHORIZATION

The attribute requires authorization before it can be read or written.

BT_ATT_ERR_PREPARE_QUEUE_FULL

Too many prepare writes have been queued.

BT_ATT_ERR_ATTRIBUTE_NOT_FOUND

No attribute found within the given attribute handle range.

BT_ATT_ERR_ATTRIBUTE_NOT_LONG

The attribute cannot be read using the ATT_READ_BLOB_REQ PDU.

BT_ATT_ERR_ENCRYPTION_KEY_SIZE

The Encryption Key Size used for encrypting this link is too short.

BT_ATT_ERR_INVALID_ATTRIBUTE_LEN

The attribute value length is invalid for the operation.

BT_ATT_ERR_UNLIKELY

The attribute request that was requested has encountered an error that was unlikely.

The attribute request could therefore not be completed as requested

BT_ATT_ERR_INSUFFICIENT_ENCRYPTION

The attribute requires encryption before it can be read or written.

BT_ATT_ERR_UNSUPPORTED_GROUP_TYPE

The attribute type is not a supported grouping attribute.

The attribute type is not a supported grouping attribute as defined by a higher layer specification.

BT_ATT_ERR_INSUFFICIENT_RESOURCES

Insufficient Resources to complete the request.

BT_ATT_ERR_DB_OUT_OF_SYNC

The server requests the client to rediscover the database.

BT_ATT_ERR_VALUE_NOT_ALLOWED

The attribute parameter value was not allowed.

BT_ATT_ERR_WRITE_REQ_REJECTED

Write Request Rejected.

BT_ATT_ERR_CCC_IMPROPER_CONF

Client Characteristic Configuration Descriptor Improperly Configured.

BT_ATT_ERR_PROCEDURE_IN_PROGRESS

Procedure Already in Progress.

BT_ATT_ERR_OUT_OF_RANGE

Out of Range.

BT_ATT_MAX_ATTRIBUTE_LEN
BT_ATT_FIRST_ATTRIBUTE_HANDLE
BT_ATT_LAST_ATTRIBUTE_HANDLE

Enums

enum bt_att_chan_opt

ATT channel option bit field values.

Note

BT_ATT_CHAN_OPT_UNENHANCED_ONLY and BT_ATT_CHAN_OPT_ENHANCED_ONLY are mutually exclusive and both bits may not be set.

Values:

enumerator BT_ATT_CHAN_OPT_NONE = 0x0

Both Enhanced and Unenhanced channels can be used

enumerator BT_ATT_CHAN_OPT_UNENHANCED_ONLY = BIT(0)

Only Unenhanced channels will be used

enumerator BT_ATT_CHAN_OPT_ENHANCED_ONLY = BIT(1)

Only Enhanced channels will be used

Functions

static inline const char *bt_att_err_to_str(uint8_t att_err)

Converts a ATT error to string.

The error codes are described in the Bluetooth Core specification, Vol 3, Part F, Section 3.4.1.1 and in The Supplement to the Bluetooth Core Specification (CSS), v11, Part B, Section 1.2.

The ATT and GATT documentation found in Vol 4, Part F and Part G describe when the different error codes are used.

See also the defined BT_ATT_ERR_* macros.

Returns:

The string representation of the ATT error code. If CONFIG_BT_ATT_ERR_TO_STR is not enabled, this just returns the empty string

int bt_eatt_connect(struct bt_conn *conn, size_t num_channels)

Connect Enhanced ATT channels.

Sends a series of Credit Based Connection Requests to connect num_channels Enhanced ATT channels. The peer may have limited resources and fewer channels may be created.

Parameters:
  • conn – The connection to send the request on

  • num_channels – The number of Enhanced ATT beares to request. Must be in the range 1 - CONFIG_BT_EATT_MAX , inclusive.

Return values:
  • -EINVAL – if num_channels is not in the allowed range or conn is NULL.

  • -ENOMEM – if less than num_channels are allocated.

  • 0 – in case of success

Returns:

0 in case of success or negative value in case of error.

size_t bt_eatt_count(struct bt_conn *conn)

Get number of EATT channels connected.

Parameters:
  • conn – The connection to get the number of EATT channels for.

Returns:

The number of EATT channels connected. Returns 0 if conn is NULL or not connected.