Skip to content

Commit

Permalink
Bluetooth: ATT: Add documentation for ATT error codes
Browse files Browse the repository at this point in the history
Add the description of each error code as defined by the
core spec and the CSS.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
  • Loading branch information
Thalley authored and nashif committed Jun 6, 2023
1 parent c764c34 commit 773198d
Showing 1 changed file with 41 additions and 2 deletions.
43 changes: 41 additions & 2 deletions include/zephyr/bluetooth/att.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,32 +24,71 @@
extern "C" {
#endif

/* Error codes for Error response PDU */
/* Error codes for Error response PDU
*
* Defined by The Bluetooth Core Specification, Version 5.4, Vol 3, Part F, Section 3.4.1.1
*/
/** The ATT operation was successful */
#define BT_ATT_ERR_SUCCESS 0x00
/** The attribute handle given was not valid on the server */
#define BT_ATT_ERR_INVALID_HANDLE 0x01
/** The attribute cannot be read */
#define BT_ATT_ERR_READ_NOT_PERMITTED 0x02
/** The attribute cannot be written */
#define BT_ATT_ERR_WRITE_NOT_PERMITTED 0x03
/** The attribute PDU was invalid */
#define BT_ATT_ERR_INVALID_PDU 0x04
/** The attribute requires authentication before it can be read or written */
#define BT_ATT_ERR_AUTHENTICATION 0x05
/** The ATT Server does not support the request received from the client */
#define BT_ATT_ERR_NOT_SUPPORTED 0x06
/** Offset specified was past the end of the attribute */
#define BT_ATT_ERR_INVALID_OFFSET 0x07
/** The attribute requires authorization before it can be read or written */
#define BT_ATT_ERR_AUTHORIZATION 0x08
/** Too many prepare writes have been queued */
#define BT_ATT_ERR_PREPARE_QUEUE_FULL 0x09
/** No attribute found within the given attribute handle range */
#define BT_ATT_ERR_ATTRIBUTE_NOT_FOUND 0x0a
/** The attribute cannot be read using the ATT_READ_BLOB_REQ PDU */
#define BT_ATT_ERR_ATTRIBUTE_NOT_LONG 0x0b
/** The Encryption Key Size used for encrypting this link is too short */
#define BT_ATT_ERR_ENCRYPTION_KEY_SIZE 0x0c
/** The attribute value length is invalid for the operation */
#define BT_ATT_ERR_INVALID_ATTRIBUTE_LEN 0x0d
/**
* @brief The attribute request that was requested has encountered an error that was unlikely
*
* The attribute request could therefore not be completed as requested
*/
#define BT_ATT_ERR_UNLIKELY 0x0e
/** The attribute requires encryption before it can be read or written */
#define BT_ATT_ERR_INSUFFICIENT_ENCRYPTION 0x0f
/**
* @brief 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.
*/
#define BT_ATT_ERR_UNSUPPORTED_GROUP_TYPE 0x10
/** Insufficient Resources to complete the request */
#define BT_ATT_ERR_INSUFFICIENT_RESOURCES 0x11
/** The server requests the client to rediscover the database */
#define BT_ATT_ERR_DB_OUT_OF_SYNC 0x12
/** The attribute parameter value was not allowed */
#define BT_ATT_ERR_VALUE_NOT_ALLOWED 0x13

/* Common Profile Error Codes (from CSS) */
/* Common Profile Error Codes
*
* Defined by the Supplement to the Bluetooth Core Specification (CSS), v11, Part B, Section 1.2.
*/
/** Write Request Rejected */
#define BT_ATT_ERR_WRITE_REQ_REJECTED 0xfc
/** Client Characteristic Configuration Descriptor Improperly Configured */
#define BT_ATT_ERR_CCC_IMPROPER_CONF 0xfd
/** Procedure Already in Progress */
#define BT_ATT_ERR_PROCEDURE_IN_PROGRESS 0xfe
/** Out of Range */
#define BT_ATT_ERR_OUT_OF_RANGE 0xff

/* Version 5.2, Vol 3, Part F, 3.2.9 defines maximum attribute length to 512 */
Expand Down

0 comments on commit 773198d

Please sign in to comment.