mcumgr/transport/smp-bluetooth.md

51 lines
2.3 KiB
Markdown

# 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.