Mesh Profile / Specification
Bluetooth SIG Proprietary Page 20 of 333
application keys and makes sure that devices that need to communicate with each other share proper
keys for both network and access layers. The Configuration Client also knows device keys (see Section
3.8.6.1), which are used to secure communication with each individual node, including distributing
updated network and application keys.
2.2.2 Devices and nodes
A device that is not a member of a mesh network is known as an unprovisioned device. A device that is a
member of a mesh network is known as a node. A Provisioner is used to manage the transitions between
an unprovisioned device and a node.
An unprovisioned device cannot send or receive mesh messages; however, it advertises its presence to
Provisioners. A Provisioner will invite an unprovisioned device into a mesh network after it has been
authenticated, converting the unprovisioned device into a node.
A node can send or receive mesh messages and is managed by a Configuration Client, that may also be
the same device as the Provisioner, over the mesh network to configure how the node communicates
with other nodes. A Configuration Client can remove a node from a mesh network, which reverts it back
to an unprovisioned device.
A device may support multiple instances of a node by offering itself to be provisioned to another mesh
network after already being provisioned to a mesh network. Each instance of a mesh network is
determined by addresses and a device key obtained by the device during provisioning.
2.2.3 Adding devices to a mesh network
Devices are added to a mesh network by a Provisioner, at which point they become nodes. The
provisioning of devices into a mesh network differs from the point-to-point bonding and pairing that is
typically used in Bluetooth wireless technology. Provisioning of devices is enabled using either a simple
advertising bearer or a point-to-point GATT-based bearer. A single provisioning protocol is used over both
bearers. Provisioning over an advertising-based bearer is implemented by all devices. Provisioning over a
GATT-based bearer allows devices such as legacy phones (i.e., devices that do not support provisioning
over an advertising bearer natively) to be Provisioners.
To assist with provisioning of multiple devices, a device has an attention timer that can be set by a
Provisioner. When set to a non-zero value, the device identifies itself using any means it can. For
example, the device may flash a light, make a sound, or vibrate. When the attention timer expires, the
device stops identifying itself. This allows a Provisioner to send a single message to a device to cause it
to identify itself and the device automatically stops identifying itself after a given time.
The protocol to run over these two bearers is a derivative of the Security Manager protocol of v4.2 of the
Bluetooth Core Specification to introduce the ability to authenticate devices that have a very limited user
interface, such as a light or a switch. The Security Manager protocol requires a reliable bearer, something
that cannot be guaranteed by the advertising provisioning bearer; therefore the protocol used in this
specification is designed to enable reliable delivery of messages independent of the bearer. The similarity
to the Security Manager protocol enables significant reuse of existing code on devices that have
implemented such functionality.