This document specifies how the mcumgr Simple Management Procotol (SMP) is transmitted over Bluetooth.
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.
UUID: 8D53DC1D-1DB7-4CD3-868B-8A527460AA84
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.