2.3 KiB
SMP over Bluetooth
This document specifies how the mcumgr Simple Management Procotol (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.