| # SMP over Bluetooth |
| |
| This document specifies how the mcumgr Simple Management Protocol (SMP) is |
| transmitted over Bluetooth. |
| |
| ## Overview |
| |
| All SMP communication utilizes a single GATT characteristic. An SMP request is |
| sent in the form of either 1) a GATT Write Command, or 2) a GATT Write Without |
| Response command. An SMP response is sent in the form of a GATT Notification |
| specifying the same characteristic that was written. |
| |
| If an SMP request or response is too large to fit in a single GATT command, the |
| sender fragments it across several commands. No additional framing is |
| introduced when a request or response is fragmented; the payload is simply |
| split among several commands. Since Bluetooth guarantees ordered delivery of |
| packets, the SMP header in the first fragment contains sufficient information |
| for reassembly. |
| |
| ## Services |
| |
| ### SMP service |
| |
| UUID: `8D53DC1D-1DB7-4CD3-868B-8A527460AA84` |
| |
| ### Characteristics |
| |
| #### SMP Characteristic |
| |
| | Field | Value | |
| | ----- | ----------------------------------------------------------------- | |
| | Name | SMP | |
| | Description | Used for both SMP requests and responses. | |
| | Read | Excluded | |
| | Write | Mandatory | |
| | WriteWithoutResponse | Mandatory | |
| | SignedWrite | Excluded | |
| | Notify | Mandatory | |
| | Indicate | Excluded | |
| | WritableAuxiliaries | Excluded | |
| | Broadcast | Excluded | |
| | ExtendedProperties | | |
| |
| As indicated, SMP requests can be sent in the form of either a Write or a Write |
| Without Response. The Write Without Response form is generally preferred, as |
| an application-layer response is always sent in the form of a Notification. |
| The regular Write form is accepted in case the client requires a GATT response |
| to initiate pairing. |
| |
| Security for this characteristic is optional. |