This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down list at the bottom of the left panel and select the desired version.

Remote Provisioning Server

The Remote Provisioning Server model is a foundation model defined by the Bluetooth mesh specification. It is enabled with the CONFIG_BT_MESH_RPR_SRV option.

The Remote Provisioning Server model is introduced in the Bluetooth Mesh Protocol Specification version 1.1, and is used to support the functionality of remotely provisioning devices into a mesh network.

The Remote Provisioning Server does not have an API of its own, but relies on a Remote Provisioning Client to control it. The Remote Provisioning Server model only accepts messages encrypted with the node’s device key.

If present, the Remote Provisioning Server model must be instantiated on the primary element.

Note that after refreshing the device key, node address or Composition Data through a Node Provisioning Protocol Interface (NPPI) procedure, the bt_mesh_prov.reprovisioned callback is triggered. See section Remote Provisioning Client for further details.


The following limitations apply to Remote Provisioning Server model:

  • Provisioning of unprovisioned device using PB-GATT is not supported.

  • All Node Provisioning Protocol Interface (NPPI) procedures are supported. However, if the composition data of a device gets changed after device firmware update (see firmware effect), it is not possible for the device to remain provisioned. The device should be unprovisioned if its composition data is expected to change.

API reference

group bt_mesh_rpr_srv



Remote Provisioning Server model composition data entry.