Bluetooth Mesh Firmware Distribution Server Model#

Bluetooth Mesh Firmware Distribution Server Model.

The Bluetooth Mesh Firmware Distribution Server Model is used to receive new firmware images from the Firmware Distribution Client model and distribute them to Target Nodes. As a transport layer Bluetooth Mesh BLOB Transfer (MBT) models are in use.

Modules#

sl_btmesh_evt_fw_dist_server_nodes_added

sl_btmesh_evt_fw_dist_server_nodes_deleted

sl_btmesh_evt_fw_dist_server_dist_start_req

sl_btmesh_evt_fw_dist_server_dist_cancel

sl_btmesh_evt_fw_dist_server_dist_cancel_complete

sl_btmesh_evt_fw_dist_server_upload_start_metadata

sl_btmesh_evt_fw_dist_server_upload_start_req

sl_btmesh_evt_fw_dist_server_upload_cancel

sl_btmesh_evt_fw_dist_server_dist_state_changed

sl_btmesh_evt_fw_dist_server_node_failed

sl_btmesh_evt_fw_dist_server_upload_complete_metadata

sl_btmesh_evt_fw_dist_server_upload_complete

sl_btmesh_evt_fw_dist_server_upload_failed

sl_btmesh_evt_fw_dist_server_upload_oob_start_uri

sl_btmesh_evt_fw_dist_server_upload_oob_start_req

sl_btmesh_evt_fw_dist_server_fw_delete_req

sl_btmesh_evt_fw_dist_server_fw_delete_all_req

sl_btmesh_evt_fw_dist_server_dist_suspend

sl_btmesh_evt_fw_dist_server_resume_req

Enumerations#

enum
sl_btmesh_fw_dist_server_dist_step_idle = 0x0
sl_btmesh_fw_dist_server_dist_step_starting_update = 0x1
sl_btmesh_fw_dist_server_dist_step_transferring_image = 0x2
sl_btmesh_fw_dist_server_dist_step_checking_verification = 0x3
sl_btmesh_fw_dist_server_dist_step_waiting_for_apply = 0x4
sl_btmesh_fw_dist_server_dist_step_applying_update = 0x5
sl_btmesh_fw_dist_server_dist_step_checking_update_result = 0x6
sl_btmesh_fw_dist_server_dist_step_completed = 0x7
sl_btmesh_fw_dist_server_dist_step_failed = 0x8
sl_btmesh_fw_dist_server_dist_step_cancelling = 0x9
sl_btmesh_fw_dist_server_dist_step_suspended = 0xa
}

The state machine states of the Distribution Server's distribution procedure.

enum
sl_btmesh_fw_dist_server_dfu_policy_verify_only = 0x0
sl_btmesh_fw_dist_server_dfu_policy_verify_and_apply = 0x1
}

The Update Policy determines whether the Distribution Server will send Update Apply messages to the Target Nodes immediately, or wait for the Distribution Client to send it the Distribution Apply message.

enum
sl_btmesh_fw_dist_server_dist_node_phase_idle = 0x0
sl_btmesh_fw_dist_server_dist_node_phase_transfer_error = 0x1
sl_btmesh_fw_dist_server_dist_node_phase_transfer_in_progress = 0x2
sl_btmesh_fw_dist_server_dist_node_phase_verifying_update = 0x3
sl_btmesh_fw_dist_server_dist_node_phase_verification_success = 0x4
sl_btmesh_fw_dist_server_dist_node_phase_verification_failed = 0x5
sl_btmesh_fw_dist_server_dist_node_phase_apply_in_progress = 0x6
sl_btmesh_fw_dist_server_dist_node_phase_transfer_cancelled = 0x7
sl_btmesh_fw_dist_server_dist_node_phase_apply_success = 0x8
sl_btmesh_fw_dist_server_dist_node_phase_apply_failed = 0x9
sl_btmesh_fw_dist_server_dist_node_phase_unknown = 0xa
}

The phase of the Target Node as determined by the Distribution Server.

enum
sl_btmesh_fw_dist_server_dist_status_success = 0x0
sl_btmesh_fw_dist_server_dist_status_out_of_resources = 0x1
sl_btmesh_fw_dist_server_dist_status_wrong_phase = 0x2
sl_btmesh_fw_dist_server_dist_status_internal_error = 0x3
sl_btmesh_fw_dist_server_dist_status_fwid_not_found = 0x4
sl_btmesh_fw_dist_server_dist_status_invalid_appkey_index = 0x5
sl_btmesh_fw_dist_server_dist_status_receivers_list_empty = 0x6
sl_btmesh_fw_dist_server_dist_status_busy_with_distribution = 0x7
sl_btmesh_fw_dist_server_dist_status_busy_with_upload = 0x8
sl_btmesh_fw_dist_server_dist_status_uri_not_supported = 0x9
sl_btmesh_fw_dist_server_dist_status_uri_malformed = 0xa
sl_btmesh_fw_dist_server_dist_status_uri_unreachable = 0xb
sl_btmesh_fw_dist_server_dist_status_new_fw_not_available = 0xc
sl_btmesh_fw_dist_server_dist_status_suspend_failed = 0xd
}

Status codes reported by the Firmware Distribution Server.

Functions#

sl_status_t
sl_btmesh_fw_dist_server_init(uint16_t elem_index, uint16_t max_node_list_size, uint16_t max_fw_entries, uint32_t max_fw_size, uint32_t total_store_size, uint16_t multicast_threshold, size_t oob_supported_uri_scheme_names_len, const uint8_t *oob_supported_uri_scheme_names)
sl_status_t
sl_btmesh_fw_dist_server_deinit(uint16_t elem_index)
sl_status_t
sl_btmesh_fw_dist_server_upload_start_rsp(uint16_t elem_index, uint8_t status)
sl_status_t
sl_btmesh_fw_dist_server_upload_oob_start_rsp(uint16_t elem_index, uint8_t status_code, size_t fwid_len, const uint8_t *fwid)
sl_status_t
sl_btmesh_fw_dist_server_set_upload_oob_metadata(uint16_t elem_index, size_t metadata_len, const uint8_t *metadata)
sl_status_t
sl_btmesh_fw_dist_server_set_upload_oob_image_size(uint16_t elem_index, uint32_t size)
sl_status_t
sl_btmesh_fw_dist_server_set_upload_oob_progress(uint16_t elem_index, uint8_t error, uint8_t progress, uint16_t *fw_list_index)
sl_status_t
sl_btmesh_fw_dist_server_get_node_status_by_index(uint16_t elem_index, uint16_t entry_index, uint16_t *address, uint8_t *retrieved_phase, uint8_t *update_server_status, uint8_t *mbt_server_status, uint8_t *transfer_progress, uint8_t *fw_index)
sl_status_t
sl_btmesh_fw_dist_server_get_node_status_by_address(uint16_t elem_index, uint16_t node_address, uint16_t *address, uint8_t *retrieved_phase, uint8_t *update_server_status, uint8_t *mbt_server_status, uint8_t *transfer_progress, uint8_t *fw_index)
sl_status_t
sl_btmesh_fw_dist_server_delete_rsp(uint16_t elem_index, uint16_t status, size_t fwid_len, const uint8_t *fwid)
sl_status_t
sl_btmesh_fw_dist_server_dist_start_rsp(uint16_t elem_index, uint16_t status)
sl_status_t
sl_btmesh_fw_dist_server_set_multicast_threshold(uint16_t elem_index, uint16_t multicast_threshold)
sl_status_t
sl_btmesh_fw_dist_server_delete_all_rsp(uint16_t elem_index, uint16_t status)
sl_status_t
sl_btmesh_fw_dist_server_resume_rsp(uint16_t elem_index, uint16_t status)

Macros#

Enumeration Documentation#

sl_btmesh_fw_dist_server_dist_step_t#

sl_btmesh_fw_dist_server_dist_step_t

The state machine states of the Distribution Server's distribution procedure.

Enumerator
sl_btmesh_fw_dist_server_dist_step_idle

(0x0) No distribution is active.

sl_btmesh_fw_dist_server_dist_step_starting_update

(0x1) Sending Update Start messages.

sl_btmesh_fw_dist_server_dist_step_transferring_image

(0x2) Firmware image BLOB transfer is in progress.

sl_btmesh_fw_dist_server_dist_step_checking_verification

(0x3) Sending Update Get messages to check verification status.

sl_btmesh_fw_dist_server_dist_step_waiting_for_apply

(0x4) Park state if Update Policy is Verify Only: wait for Distribution Apply. If the policy is Verify and Apply, this state is skipped.

sl_btmesh_fw_dist_server_dist_step_applying_update

(0x5) Sending Update Apply messages.

sl_btmesh_fw_dist_server_dist_step_checking_update_result

(0x6) Sending Information Get messages to determine if new firmware was applied.

sl_btmesh_fw_dist_server_dist_step_completed

(0x7) Completed successfully for at least one Target Node.

sl_btmesh_fw_dist_server_dist_step_failed

(0x8) Distribution failed for all Target Nodes.

sl_btmesh_fw_dist_server_dist_step_cancelling

(0x9) Cancelling an ongoing distribution.

sl_btmesh_fw_dist_server_dist_step_suspended

(0xa) Firmware image BLOB transfer is temporarily suspended.


Definition at line 16930 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_dfu_policy_t#

sl_btmesh_fw_dist_server_dfu_policy_t

The Update Policy determines whether the Distribution Server will send Update Apply messages to the Target Nodes immediately, or wait for the Distribution Client to send it the Distribution Apply message.

Enumerator
sl_btmesh_fw_dist_server_dfu_policy_verify_only

(0x0) The Distribution Server will wait for the Distribution Apply message, and then send the Update Apply messages.

sl_btmesh_fw_dist_server_dfu_policy_verify_and_apply

(0x1) The Distribution Server will send the Update Apply messages immediately, after the firmware image verification is complete.


Definition at line 17026 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_dist_node_phase_t#

sl_btmesh_fw_dist_server_dist_node_phase_t

The phase of the Target Node as determined by the Distribution Server.

Enumerator
sl_btmesh_fw_dist_server_dist_node_phase_idle

(0x0) No firmware transfer is in progress.

sl_btmesh_fw_dist_server_dist_node_phase_transfer_error

(0x1) Error occurred during firmware image BLOB transfer.

sl_btmesh_fw_dist_server_dist_node_phase_transfer_in_progress

(0x2) Firmware image BLOB transfer is in progress.

sl_btmesh_fw_dist_server_dist_node_phase_verifying_update

(0x3) Firmware image transfer completed, and the node is verifying the image.

sl_btmesh_fw_dist_server_dist_node_phase_verification_success

(0x4) Firmware image verification succeeded.

sl_btmesh_fw_dist_server_dist_node_phase_verification_failed

(0x5) Firmware image verification failed.

sl_btmesh_fw_dist_server_dist_node_phase_apply_in_progress

(0x6) The node is applying the firmware update.

sl_btmesh_fw_dist_server_dist_node_phase_transfer_cancelled

(0x7) Firmware transfer was cancelled.

sl_btmesh_fw_dist_server_dist_node_phase_apply_success

(0x8) Firmware was applied successfully.

sl_btmesh_fw_dist_server_dist_node_phase_apply_failed

(0x9) Firmware applying failed.

sl_btmesh_fw_dist_server_dist_node_phase_unknown

(0xa) The phase of the node has not been retrieved yet.


Definition at line 17055 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_dist_status_t#

sl_btmesh_fw_dist_server_dist_status_t

Status codes reported by the Firmware Distribution Server.

Enumerator
sl_btmesh_fw_dist_server_dist_status_success

(0x0) The message was processed successfully.

sl_btmesh_fw_dist_server_dist_status_out_of_resources

(0x1) Insufficient resources on the node.

sl_btmesh_fw_dist_server_dist_status_wrong_phase

(0x2) The operation cannot be performed while the server is in the current phase.

sl_btmesh_fw_dist_server_dist_status_internal_error

(0x3) An internal error occurred on the node.

sl_btmesh_fw_dist_server_dist_status_fwid_not_found

(0x4) The requested firmware image is not stored on the server.

sl_btmesh_fw_dist_server_dist_status_invalid_appkey_index

(0x5) The appkey identified by the appkey index is not known.

sl_btmesh_fw_dist_server_dist_status_receivers_list_empty

(0x6) There are no Target Nodes in the Distribution Receivers List.

sl_btmesh_fw_dist_server_dist_status_busy_with_distribution

(0x7) Another distribution is already in progress.

sl_btmesh_fw_dist_server_dist_status_busy_with_upload

(0x8) Another upload is already in progress.

sl_btmesh_fw_dist_server_dist_status_uri_not_supported

(0x9) The URI scheme name indicated by the URI is not supported.

sl_btmesh_fw_dist_server_dist_status_uri_malformed

(0xa) The format of the URI is invalid.

sl_btmesh_fw_dist_server_dist_status_uri_unreachable

(0xb) The URI is currently unreachable.

sl_btmesh_fw_dist_server_dist_status_new_fw_not_available

(0xc) No new firmware was available with given the URI + Current FWID.

sl_btmesh_fw_dist_server_dist_status_suspend_failed

(0xd) Suspending a distribution failed.


Definition at line 17151 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

Function Documentation#

sl_btmesh_fw_dist_server_init#

sl_status_t sl_btmesh_fw_dist_server_init (uint16_t elem_index, uint16_t max_node_list_size, uint16_t max_fw_entries, uint32_t max_fw_size, uint32_t total_store_size, uint16_t multicast_threshold, size_t oob_supported_uri_scheme_names_len, const uint8_t * oob_supported_uri_scheme_names)
Parameters
[in]elem_index

Server model element index

[in]max_node_list_size

Maximum number of nodes that can be updated simultaneously

[in]max_fw_entries

Maximum number of firmware images that can be stored

[in]max_fw_size

Maximum size of a single firmware image

[in]total_store_size

Maximum combined size of all firmware images

[in]multicast_threshold

This value will be passed to the MBT Client. If the number of servers for any step exceeds or is equal to this number, the group address will be used. Otherwise, servers will be looped through one by one. Value of 0 disables the feature.

[in]oob_supported_uri_scheme_names_len

Length of data in oob_supported_uri_scheme_names

[in]oob_supported_uri_scheme_names

To indicate Upload OOB support, list the supported URI Scheme Names UTF-8 code points here (see https://www.bluetooth.com/specifications/assigned-numbers/uri-scheme-name-string-mapping/). To indicate Upload OOB is not supported, give a zero-length string.

Initializes the Firmware Distribution Server model. Before initializing the Distribution Server model, the Update Client and MBT Server models on the same element must be initialized.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 17777 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_deinit#

sl_status_t sl_btmesh_fw_dist_server_deinit (uint16_t elem_index)
Parameters
[in]elem_index

Server model element index

Deinitializes the Firmware Distribution Server model. The corresponding Update Client and MBT Server models can be deinitialized before or after this model.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 17797 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_upload_start_rsp#

sl_status_t sl_btmesh_fw_dist_server_upload_start_rsp (uint16_t elem_index, uint8_t status)
Parameters
[in]elem_index

Server model element index

[in]status

Enum sl_btmesh_fw_dist_server_dist_status_t. Status code to the client

Response for the upload_start_req event

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 17810 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_execute_distribution_step#

sl_status_t sl_btmesh_fw_dist_server_execute_distribution_step (uint16_t elem_index)
Parameters
[in]elem_index

Server model element index

Execute the next action for the distribution state machine.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 17822 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_upload_oob_start_rsp#

sl_status_t sl_btmesh_fw_dist_server_upload_oob_start_rsp (uint16_t elem_index, uint8_t status_code, size_t fwid_len, const uint8_t * fwid)
Parameters
[in]elem_index

Server model element index

[in]status_code

Enum sl_btmesh_fw_dist_server_dist_status_t. Status code to use for the response. Must be one of the following:

  • 0: success - retrieving the firmware archive was started or will start shortly

  • 1: out of resources

  • 3: internal error occurred

  • 9: URI scheme name not supported

  • 10: URI malformed

  • 11: URI was unreachable

  • 12: No new firmware was available

All other status codes are reserved or automatically sent by the stack.

[in]fwid_len

Length of data in fwid

[in]fwid

Firmware ID of the image that will be retrieved OOB. The Firmware ID is retrieved by executing the Check Firmware OOB procedure.

Response to the sl_btmesh_evt_fw_dist_server_upload_oob_start_req event. The application should run the Check Firmware OOB procedure (as detailed in the specification) in order to check that the given URI is reachable, and a new firmware image is available.

When the size of the image is known, sl_btmesh_fw_dist_server_set_upload_oob_image_size must be called to inform the stack about the size of the image.

If the image has an associated set of metadata, sl_btmesh_fw_dist_server_set_upload_oob_metadata must be called to inform the stack about the image metadata.

The command sl_btmesh_fw_dist_server_set_upload_oob_progress must be called at minimum when the transfer completes or an error is encountered. It can be called earlier to inform the stack about the transfer progress.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 17865 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_set_upload_oob_metadata#

sl_status_t sl_btmesh_fw_dist_server_set_upload_oob_metadata (uint16_t elem_index, size_t metadata_len, const uint8_t * metadata)
Parameters
[in]elem_index

Server model element index

[in]metadata_len

Length of data in metadata

[in]metadata

Metadata of the image. May be zero-length.

Set the metadata of an image retrieved via OOB Upload. This command can be used after sl_btmesh_fw_dist_server_upload_oob_start_rsp, and cannot be used after the OOB Upload completes. If the uploaded firmware image has no associated metadata, this command does not need to be called.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 17884 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_set_upload_oob_image_size#

sl_status_t sl_btmesh_fw_dist_server_set_upload_oob_image_size (uint16_t elem_index, uint32_t size)
Parameters
[in]elem_index

Server model element index

[in]size

Size of the new firmware image

Set the size of the image being retrieved via OOB Upload. This command must be used after sl_btmesh_fw_dist_server_upload_oob_start_rsp, as soon as the size of the image is known. The upload cannot be completed with sl_btmesh_fw_dist_server_set_upload_oob_progress before the size is set.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 17901 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_set_upload_oob_progress#

sl_status_t sl_btmesh_fw_dist_server_set_upload_oob_progress (uint16_t elem_index, uint8_t error, uint8_t progress, uint16_t * fw_list_index)
Parameters
[in]elem_index

Server model element index

[in]error

Set to zero if no error occurred. If nonzero, the transfer will be considered a failure, and the Upload Phase will be set to Transfer Error. A nonzero value cannot be used in conjuction with progress 100.

Note that there is no way in the specification to indicate what kind of error occurred during the OOB retrieval. Only the initial start request can be rejected with a specific error code; see sl_btmesh_fw_dist_server_upload_oob_start_rsp.

[in]progress

Progress of the transfer, in percentage. Range: 0-100. If set 100, the upload will be completed, and the fw_list_index return parameter is populated with the Firmware List Index that was assigned to the new image.

[out]fw_list_index

Firmware List Index that was assigned to the image, if progress was set to 100. Otherwise will be set to 0xffff, and should be ignored.

Set the progress of the Upload OOB image retrieval. Used to inform the stack about the progress, and to indicate when the process is complete.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 17931 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_get_node_status_by_index#

sl_status_t sl_btmesh_fw_dist_server_get_node_status_by_index (uint16_t elem_index, uint16_t entry_index, uint16_t * address, uint8_t * retrieved_phase, uint8_t * update_server_status, uint8_t * mbt_server_status, uint8_t * transfer_progress, uint8_t * fw_index)
Parameters
[in]elem_index

Server model element index

[in]entry_index

Node entry index

[out]address

Address of the Update Server

[out]retrieved_phase

Enum sl_btmesh_fw_dist_server_dist_node_phase_t. Phase of the Update Server

[out]update_server_status

Enum sl_btmesh_fw_update_server_update_status_t. Last Update Status message received from the Update Server

[out]mbt_server_status

Enum sl_btmesh_mbt_server_status_t. Last Transfer Status message received from the BLOB Transfer Server

[out]transfer_progress

0-100, percentage of BLOB Transfer octets delivered and confirmed

[out]fw_index

Index of the firmware being updated

Retrieve information about the ongoing update on a node

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 17957 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_get_node_status_by_address#

sl_status_t sl_btmesh_fw_dist_server_get_node_status_by_address (uint16_t elem_index, uint16_t node_address, uint16_t * address, uint8_t * retrieved_phase, uint8_t * update_server_status, uint8_t * mbt_server_status, uint8_t * transfer_progress, uint8_t * fw_index)
Parameters
[in]elem_index

Server model element index

[in]node_address

Node mesh address

[out]address

Address of the Update Server

[out]retrieved_phase

Enum sl_btmesh_fw_dist_server_dist_node_phase_t. Phase of the Update Server

[out]update_server_status

Enum sl_btmesh_fw_update_server_update_status_t. Last Update Status message received from the Update Server

[out]mbt_server_status

Enum sl_btmesh_mbt_server_status_t. Last Transfer Status message received from the BLOB Transfer Server

[out]transfer_progress

0-100, percentage of BLOB Transfer octets delivered and confirmed

[out]fw_index

Index of the firmware being updated

Retrieve information about the ongoing update by a node address

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 17987 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_delete_rsp#

sl_status_t sl_btmesh_fw_dist_server_delete_rsp (uint16_t elem_index, uint16_t status, size_t fwid_len, const uint8_t * fwid)
Parameters
[in]elem_index

Server model element index

[in]status

Enum sl_btmesh_fw_dist_server_dist_status_t. Status code to use for the response. Must be one of the following:

  • 0: success - requested firmware entry deleted by the application

  • 1: out of resources

  • 3: internal error occurred

All other status codes are reserved or automatically sent by the stack.

[in]fwid_len

Length of data in fwid

[in]fwid

Firmware ID of the image that was requested to be deleted.

Response to the sl_btmesh_evt_fw_dist_server_fw_delete_req event. The application should check that requested firmware image exists and can be deleted. The stack will ignore incoming sl_btmesh_fw_dist_client_start_distribution, sl_btmesh_fw_dist_client_start_upload, sl_btmesh_fw_dist_client_get_fw, sl_btmesh_fw_dist_client_get_fw_by_index, sl_btmesh_fw_dist_client_delete_all_fw commands until the response is called.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 18022 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_dist_start_rsp#

sl_status_t sl_btmesh_fw_dist_server_dist_start_rsp (uint16_t elem_index, uint16_t status)
Parameters
[in]elem_index

Server model element index

[in]status

mesh_dfu_dist_status_success to accept, mesh_dfu_dist_status_internal_error to reject

Response to the sl_btmesh_evt_fw_dist_server_dist_start_req event. The stack will ignore incoming sl_btmesh_fw_dist_client_start_distribution, sl_btmesh_fw_dist_client_start_upload, sl_btmesh_fw_dist_client_get_fw, sl_btmesh_fw_dist_client_get_fw_by_index, sl_btmesh_fw_dist_client_delete_all_fw commands until the response is called.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 18043 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_set_multicast_threshold#

sl_status_t sl_btmesh_fw_dist_server_set_multicast_threshold (uint16_t elem_index, uint16_t multicast_threshold)
Parameters
[in]elem_index

Element index

[in]multicast_threshold

This value will be passed to the MBT Client. If the number of servers for any step exceeds or is equal to this number, the group address will be used. Otherwise, servers will be looped through one by one. Value of 0 disables the feature.

Set the multicast threshold value.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 18059 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_delete_all_rsp#

sl_status_t sl_btmesh_fw_dist_server_delete_all_rsp (uint16_t elem_index, uint16_t status)
Parameters
[in]elem_index

Server model element index

[in]status

Enum sl_btmesh_fw_dist_server_dist_status_t. Status code to use for the response. Must be one of the following:

  • 0: success - firmware entries deleted by the application

  • 1: out of resources

  • 3: internal error occurred

All other status codes are reserved or automatically sent by the stack.

Response to the sl_btmesh_evt_fw_dist_server_fw_delete_all_req event. The application should check that all firmware images can be deleted. The stack will ignore incoming sl_btmesh_fw_dist_client_start_distribution, sl_btmesh_fw_dist_client_start_upload, sl_btmesh_fw_dist_client_get_fw, sl_btmesh_fw_dist_client_get_fw_by_index, sl_btmesh_fw_dist_client_delete_all_fw commands until the response is called.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 18086 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_fw_dist_server_resume_rsp#

sl_status_t sl_btmesh_fw_dist_server_resume_rsp (uint16_t elem_index, uint16_t status)
Parameters
[in]elem_index

Server model element index

[in]status

Enum sl_btmesh_fw_dist_server_dist_status_t. Status code to use for the response. Must be one of the following:

  • 0: success - resume distribution

  • 1: out of resources

  • 3: internal error occurred

All other status codes are reserved or automatically sent by the stack.

Response to the sl_btmesh_evt_fw_dist_server_resume_req event.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


Definition at line 18107 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

Macro Definition Documentation#

sl_btmesh_cmd_fw_dist_server_init_id#

#define sl_btmesh_cmd_fw_dist_server_init_id
Value:
0x00580028

Definition at line 16895 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_deinit_id#

#define sl_btmesh_cmd_fw_dist_server_deinit_id
Value:
0x01580028

Definition at line 16896 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_upload_start_rsp_id#

#define sl_btmesh_cmd_fw_dist_server_upload_start_rsp_id
Value:
0x02580028

Definition at line 16897 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_execute_distribution_step_id#

#define sl_btmesh_cmd_fw_dist_server_execute_distribution_step_id
Value:
0x03580028

Definition at line 16898 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_upload_oob_start_rsp_id#

#define sl_btmesh_cmd_fw_dist_server_upload_oob_start_rsp_id
Value:
0x08580028

Definition at line 16899 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_set_upload_oob_metadata_id#

#define sl_btmesh_cmd_fw_dist_server_set_upload_oob_metadata_id
Value:
0x09580028

Definition at line 16900 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_set_upload_oob_image_size_id#

#define sl_btmesh_cmd_fw_dist_server_set_upload_oob_image_size_id
Value:
0x0a580028

Definition at line 16901 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_set_upload_oob_progress_id#

#define sl_btmesh_cmd_fw_dist_server_set_upload_oob_progress_id
Value:
0x0b580028

Definition at line 16902 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_get_node_status_by_index_id#

#define sl_btmesh_cmd_fw_dist_server_get_node_status_by_index_id
Value:
0x0c580028

Definition at line 16903 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_get_node_status_by_address_id#

#define sl_btmesh_cmd_fw_dist_server_get_node_status_by_address_id
Value:
0x0d580028

Definition at line 16904 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_delete_rsp_id#

#define sl_btmesh_cmd_fw_dist_server_delete_rsp_id
Value:
0x0e580028

Definition at line 16905 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_dist_start_rsp_id#

#define sl_btmesh_cmd_fw_dist_server_dist_start_rsp_id
Value:
0x13580028

Definition at line 16906 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_set_multicast_threshold_id#

#define sl_btmesh_cmd_fw_dist_server_set_multicast_threshold_id
Value:
0x14580028

Definition at line 16907 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_delete_all_rsp_id#

#define sl_btmesh_cmd_fw_dist_server_delete_all_rsp_id
Value:
0x0f580028

Definition at line 16908 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_cmd_fw_dist_server_resume_rsp_id#

#define sl_btmesh_cmd_fw_dist_server_resume_rsp_id
Value:
0x10580028

Definition at line 16909 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_init_id#

#define sl_btmesh_rsp_fw_dist_server_init_id
Value:
0x00580028

Definition at line 16910 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_deinit_id#

#define sl_btmesh_rsp_fw_dist_server_deinit_id
Value:
0x01580028

Definition at line 16911 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_upload_start_rsp_id#

#define sl_btmesh_rsp_fw_dist_server_upload_start_rsp_id
Value:
0x02580028

Definition at line 16912 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_execute_distribution_step_id#

#define sl_btmesh_rsp_fw_dist_server_execute_distribution_step_id
Value:
0x03580028

Definition at line 16913 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_upload_oob_start_rsp_id#

#define sl_btmesh_rsp_fw_dist_server_upload_oob_start_rsp_id
Value:
0x08580028

Definition at line 16914 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_set_upload_oob_metadata_id#

#define sl_btmesh_rsp_fw_dist_server_set_upload_oob_metadata_id
Value:
0x09580028

Definition at line 16915 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_set_upload_oob_image_size_id#

#define sl_btmesh_rsp_fw_dist_server_set_upload_oob_image_size_id
Value:
0x0a580028

Definition at line 16916 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_set_upload_oob_progress_id#

#define sl_btmesh_rsp_fw_dist_server_set_upload_oob_progress_id
Value:
0x0b580028

Definition at line 16917 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_get_node_status_by_index_id#

#define sl_btmesh_rsp_fw_dist_server_get_node_status_by_index_id
Value:
0x0c580028

Definition at line 16918 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_get_node_status_by_address_id#

#define sl_btmesh_rsp_fw_dist_server_get_node_status_by_address_id
Value:
0x0d580028

Definition at line 16919 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_delete_rsp_id#

#define sl_btmesh_rsp_fw_dist_server_delete_rsp_id
Value:
0x0e580028

Definition at line 16920 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_dist_start_rsp_id#

#define sl_btmesh_rsp_fw_dist_server_dist_start_rsp_id
Value:
0x13580028

Definition at line 16921 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_set_multicast_threshold_id#

#define sl_btmesh_rsp_fw_dist_server_set_multicast_threshold_id
Value:
0x14580028

Definition at line 16922 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_delete_all_rsp_id#

#define sl_btmesh_rsp_fw_dist_server_delete_all_rsp_id
Value:
0x0f580028

Definition at line 16923 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h

sl_btmesh_rsp_fw_dist_server_resume_rsp_id#

#define sl_btmesh_rsp_fw_dist_server_resume_rsp_id
Value:
0x10580028

Definition at line 16924 of file /mnt/raid/workspaces/ws.wDIAeKYhQ/overlay/gsdk/protocol/bluetooth/build/native/mesh_app/inc/sl_btmesh_api.h