mcumgr/transport/smp-bluetooth.md

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.