Bluetooth Mesh Remote Provisioning Client Model#

Bluetooth Mesh Remote Provisioning Client Model.

Remote Provisioning Client model is used to provision devices which are not within one hop from the provisioner.

Modules#

sl_btmesh_evt_remote_provisioning_client_scan_capabilities

sl_btmesh_evt_remote_provisioning_client_scan_status

sl_btmesh_evt_remote_provisioning_client_scan_report

sl_btmesh_evt_remote_provisioning_client_extended_scan_report

sl_btmesh_evt_remote_provisioning_client_link_status

sl_btmesh_evt_remote_provisioning_client_link_report

Enumerations#

enum
sl_btmesh_remote_provisioning_client_link_state_idle = 0x0
sl_btmesh_remote_provisioning_client_link_state_opening = 0x1
sl_btmesh_remote_provisioning_client_link_state_active = 0x2
sl_btmesh_remote_provisioning_client_link_state_outbound_packet_transfer = 0x3
sl_btmesh_remote_provisioning_client_link_state_closing = 0x4
}

Possible remote provisioning link states.

enum
sl_btmesh_remote_provisioning_client_nppi_device_key_update = 0x0
sl_btmesh_remote_provisioning_client_nppi_address_update = 0x1
sl_btmesh_remote_provisioning_client_nppi_dcd_update = 0x2
sl_btmesh_remote_provisioning_client_remote_provisioning = 0xff
}

NPPI operation type.

Functions#

sl_status_t
sl_btmesh_remote_provisioning_client_get_scan_capabilities(uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index)
sl_status_t
sl_btmesh_remote_provisioning_client_start_scan(uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index, uint8_t item_limit, uint8_t timeout_sec, uint8_t single_scan, uuid_128 uuid)
sl_status_t
sl_btmesh_remote_provisioning_client_get_scan_status(uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index)
sl_status_t
sl_btmesh_remote_provisioning_client_stop_scan(uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index)
sl_status_t
sl_btmesh_remote_provisioning_client_start_extended_scan(uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index, uint8_t timeout_sec, uint8_t mode, uuid_128 uuid, size_t ad_types_len, const uint8_t *ad_types)
sl_status_t
sl_btmesh_remote_provisioning_client_open_link(uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index, uint8_t timeout_sec, uint8_t dkri, uuid_128 uuid)
sl_status_t
sl_btmesh_remote_provisioning_client_get_link_status(uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index)
sl_status_t
sl_btmesh_remote_provisioning_client_close_link(uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index, uint8_t reason)

Macros#

#define
sl_btmesh_cmd_remote_provisioning_client_init_id 0x00300028
#define
sl_btmesh_cmd_remote_provisioning_client_get_scan_capabilities_id 0x01300028
#define
sl_btmesh_cmd_remote_provisioning_client_start_scan_id 0x02300028
#define
sl_btmesh_cmd_remote_provisioning_client_get_scan_status_id 0x03300028
#define
sl_btmesh_cmd_remote_provisioning_client_stop_scan_id 0x04300028
#define
sl_btmesh_cmd_remote_provisioning_client_start_extended_scan_id 0x05300028
#define
sl_btmesh_cmd_remote_provisioning_client_open_link_id 0x06300028
#define
sl_btmesh_cmd_remote_provisioning_client_get_link_status_id 0x07300028
#define
sl_btmesh_cmd_remote_provisioning_client_close_link_id 0x08300028
#define
sl_btmesh_rsp_remote_provisioning_client_init_id 0x00300028
#define
sl_btmesh_rsp_remote_provisioning_client_get_scan_capabilities_id 0x01300028
#define
sl_btmesh_rsp_remote_provisioning_client_start_scan_id 0x02300028
#define
sl_btmesh_rsp_remote_provisioning_client_get_scan_status_id 0x03300028
#define
sl_btmesh_rsp_remote_provisioning_client_stop_scan_id 0x04300028
#define
sl_btmesh_rsp_remote_provisioning_client_start_extended_scan_id 0x05300028
#define
sl_btmesh_rsp_remote_provisioning_client_open_link_id 0x06300028
#define
sl_btmesh_rsp_remote_provisioning_client_get_link_status_id 0x07300028
#define
sl_btmesh_rsp_remote_provisioning_client_close_link_id 0x08300028

Enumeration Documentation#

sl_btmesh_remote_provisioning_client_link_state_t#

sl_btmesh_remote_provisioning_client_link_state_t

Possible remote provisioning link states.

Enumerator
sl_btmesh_remote_provisioning_client_link_state_idle

(0x0) Idle state

sl_btmesh_remote_provisioning_client_link_state_opening

(0x1) Link Opening

sl_btmesh_remote_provisioning_client_link_state_active

(0x2) Link active

sl_btmesh_remote_provisioning_client_link_state_outbound_packet_transfer

(0x3) Outbound packet transfer

sl_btmesh_remote_provisioning_client_link_state_closing

(0x4) Link Closing


sl_btmesh_remote_provisioning_client_nppi_operation_t#

sl_btmesh_remote_provisioning_client_nppi_operation_t

NPPI operation type.

Enumerator
sl_btmesh_remote_provisioning_client_nppi_device_key_update

(0x0) Update Device Key

sl_btmesh_remote_provisioning_client_nppi_address_update

(0x1) Update device address. Note that also DCD will be updated if updated DCD is available

sl_btmesh_remote_provisioning_client_nppi_dcd_update

(0x2) Update device DCD

sl_btmesh_remote_provisioning_client_remote_provisioning

(0xff) Provision a remote device.


Function Documentation#

sl_btmesh_remote_provisioning_client_init#

sl_status_t sl_btmesh_remote_provisioning_client_init ()

Initialize the remote provisioning client.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


sl_btmesh_remote_provisioning_client_get_scan_capabilities#

sl_status_t sl_btmesh_remote_provisioning_client_get_scan_capabilities (uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index)
Parameters
TypeDirectionArgument NameDescription
uint16_t[in]enc_netkey_index

Network key used to encrypt the request on the network layer

uint16_t[in]server

Server address.

uint16_t[in]elem_index

Client element index

Get the value of the Remote Provisioning Scan Capabilities state.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.

Events


sl_btmesh_remote_provisioning_client_start_scan#

sl_status_t sl_btmesh_remote_provisioning_client_start_scan (uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index, uint8_t item_limit, uint8_t timeout_sec, uint8_t single_scan, uuid_128 uuid)
Parameters
TypeDirectionArgument NameDescription
uint16_t[in]enc_netkey_index

Network key used to encrypt the request on the network layer

uint16_t[in]server

Server address

uint16_t[in]elem_index

Client element index

uint8_t[in]item_limit

Maximum number of scanned items to be reported.

uint8_t[in]timeout_sec

Time limit for a scan (in seconds). Valid value range: [1 - 255].

uint8_t[in]single_scan

Whether to perform single UUID scan or multiple target scan.

uuid_128[in]uuid

UUID of the device to scan. Valid only for single UUID scan

Start scanning for remote unprovisioned devices, within immediate radio range of the Remote Provisioning Server.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.

Events


sl_btmesh_remote_provisioning_client_get_scan_status#

sl_status_t sl_btmesh_remote_provisioning_client_get_scan_status (uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index)
Parameters
TypeDirectionArgument NameDescription
uint16_t[in]enc_netkey_index

Network key used to encrypt the request on the network layer

uint16_t[in]server

Server address.

uint16_t[in]elem_index

Client element index

Request scan status.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.

Events


sl_btmesh_remote_provisioning_client_stop_scan#

sl_status_t sl_btmesh_remote_provisioning_client_stop_scan (uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index)
Parameters
TypeDirectionArgument NameDescription
uint16_t[in]enc_netkey_index

Network key used to encrypt the request on the network layer

uint16_t[in]server

Server address.

uint16_t[in]elem_index

Client element index

Stop Remote Provisioning Scan procedure.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.

Events


sl_btmesh_remote_provisioning_client_start_extended_scan#

sl_status_t sl_btmesh_remote_provisioning_client_start_extended_scan (uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index, uint8_t timeout_sec, uint8_t mode, uuid_128 uuid, size_t ad_types_len, const uint8_t * ad_types)
Parameters
TypeDirectionArgument NameDescription
uint16_t[in]enc_netkey_index

Network key used to encrypt the request on the network layer

uint16_t[in]server

Server address.

uint16_t[in]elem_index

Client element index

uint8_t[in]timeout_sec

Time limit for a scan (in seconds). Used only if selected mode is 1 and then valid value range: [1 - 5].

uint8_t[in]mode

If 1 request additional information about a specific unprovisioned device. If 0 request additional information about the Remote Provisioning Server itself.

uuid_128[in]uuid

If mode is 1 identifies the Device UUID of the unprovisioned device for which additional information is requested.

size_t[in]ad_types_len

Length of data in ad_types

const uint8_t *[in]ad_types

list AD_types to be reported. List maximun size being 16. See https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/.

Request additional information about a specific unprovisioned device or about the Remote Provisioning Server itself.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.

Events


sl_btmesh_remote_provisioning_client_open_link#

sl_status_t sl_btmesh_remote_provisioning_client_open_link (uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index, uint8_t timeout_sec, uint8_t dkri, uuid_128 uuid)
Parameters
TypeDirectionArgument NameDescription
uint16_t[in]enc_netkey_index

Network key used to encrypt the request on the network layer

uint16_t[in]server

Server address.

uint16_t[in]elem_index

Client element index

uint8_t[in]timeout_sec

Time limit for a scan (in seconds).

uint8_t[in]dkri

Enum sl_btmesh_remote_provisioning_client_nppi_operation_t. Selection of Network Interface Operation or remote provisioning.

uuid_128[in]uuid

UUID of the device to provision. Valid if NPPI(dkri) procedure is not sl_btmesh_remote_provisioning_client_remote_provisioning

Establish the provisioning bearer between a node supporting the Remote Provisioning Server model and an unprovisioned device, or to open the Node Provisioning Protocol Interface.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.

Events


sl_btmesh_remote_provisioning_client_get_link_status#

sl_status_t sl_btmesh_remote_provisioning_client_get_link_status (uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index)
Parameters
TypeDirectionArgument NameDescription
uint16_t[in]enc_netkey_index

Network key used to encrypt the request on the network layer

uint16_t[in]server

Server address.

uint16_t[in]elem_index

Client element index

Get the Remote Provisioning Link state of a Remote Provisioning Server model.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.

Events


sl_btmesh_remote_provisioning_client_close_link#

sl_status_t sl_btmesh_remote_provisioning_client_close_link (uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index, uint8_t reason)
Parameters
TypeDirectionArgument NameDescription
uint16_t[in]enc_netkey_index

Network key used to encrypt the request on the network layer

uint16_t[in]server

Server address.

uint16_t[in]elem_index

Client element index

uint8_t[in]reason

0: success, 2:procedure failed, other not allowed.

Close remote provisioning link.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.

Events