1# SMP over Bluetooth
2
3This document specifies how the mcumgr Simple Management Procotol (SMP) is
4transmitted over Bluetooth.
5
6## Overview
7
8All SMP communication utilizes a single GATT characteristic.  An SMP request is
9sent in the form of either 1) a GATT Write Command, or 2) a GATT Write Without
10Response command.  An SMP response is sent in the form of a GATT Notification
11specifying the same characteristic that was written.
12
13If an SMP request or response is too large to fit in a single GATT command, the
14sender fragments it across several commands.  No additional framing is
15introduced when a request or response is fragmented; the payload is simply
16split among several commands.  Since Bluetooth guarantees ordered delivery of
17packets, the SMP header in the first fragment contains sufficient information
18for reassembly.
19
20## Services
21
22### SMP service
23
24UUID: `8D53DC1D-1DB7-4CD3-868B-8A527460AA84`
25
26### Characteristics
27
28#### SMP Characteristic
29
30| Field | Value                                                             |
31| ----- | ----------------------------------------------------------------- |
32| Name                  | SMP                                               |
33| Description           | Used for both SMP requests and responses.         |
34| Read                  | Excluded                                          |
35| Write                 | Mandatory                                         |
36| WriteWithoutResponse  | Mandatory                                         |
37| SignedWrite           | Excluded                                          |
38| Notify                | Mandatory                                         |
39| Indicate              | Excluded                                          |
40| WritableAuxiliaries   | Excluded                                          |
41| Broadcast             | Excluded                                          |
42| ExtendedProperties    |                                                   |
43
44As indicated, SMP requests can be sent in the form of either a Write or a Write
45Without Response.  The Write Without Response form is generally preferred, as
46an application-layer response is always sent in the form of a Notification.
47The regular Write form is accepted in case the client requires a GATT response
48to initiate pairing.
49
50Security for this characteristic is optional.
51