Zephyr Project API  3.4.0
A Scalable Open Source RTOS
Bluetooth Mesh Device Firmware Update

Modules

 
 Firmware Update Server model
 API for the Bluetooth mesh Firmware Update Server model.
 
 Firmware Uppdate Client model
 API for the Bluetooth mesh Firmware Update Client model.
 

Data Structures

struct  bt_mesh_dfu_img
 
struct  bt_mesh_dfu_slot
 

Macros

#define CONFIG_BT_MESH_DFU_FWID_MAXLEN   0
 
#define CONFIG_BT_MESH_DFU_METADATA_MAXLEN   0
 
#define CONFIG_BT_MESH_DFU_URI_MAXLEN   0
 

Enumerations

enum  bt_mesh_dfu_phase {
  BT_MESH_DFU_PHASE_IDLE , BT_MESH_DFU_PHASE_TRANSFER_ERR , BT_MESH_DFU_PHASE_TRANSFER_ACTIVE , BT_MESH_DFU_PHASE_VERIFY ,
  BT_MESH_DFU_PHASE_VERIFY_OK , BT_MESH_DFU_PHASE_VERIFY_FAIL , BT_MESH_DFU_PHASE_APPLYING , BT_MESH_DFU_PHASE_TRANSFER_CANCELED ,
  BT_MESH_DFU_PHASE_APPLY_SUCCESS , BT_MESH_DFU_PHASE_APPLY_FAIL , BT_MESH_DFU_PHASE_UNKNOWN
}
 
enum  bt_mesh_dfu_status {
  BT_MESH_DFU_SUCCESS , BT_MESH_DFU_ERR_RESOURCES , BT_MESH_DFU_ERR_WRONG_PHASE , BT_MESH_DFU_ERR_INTERNAL ,
  BT_MESH_DFU_ERR_FW_IDX , BT_MESH_DFU_ERR_METADATA , BT_MESH_DFU_ERR_TEMPORARILY_UNAVAILABLE , BT_MESH_DFU_ERR_BLOB_XFER_BUSY
}
 
enum  bt_mesh_dfu_effect { BT_MESH_DFU_EFFECT_NONE , BT_MESH_DFU_EFFECT_COMP_CHANGE_NO_RPR , BT_MESH_DFU_EFFECT_COMP_CHANGE , BT_MESH_DFU_EFFECT_UNPROV }
 
enum  bt_mesh_dfu_iter { BT_MESH_DFU_ITER_STOP , BT_MESH_DFU_ITER_CONTINUE }
 

Detailed Description

Macro Definition Documentation

◆ CONFIG_BT_MESH_DFU_FWID_MAXLEN

#define CONFIG_BT_MESH_DFU_FWID_MAXLEN   0

◆ CONFIG_BT_MESH_DFU_METADATA_MAXLEN

#define CONFIG_BT_MESH_DFU_METADATA_MAXLEN   0

◆ CONFIG_BT_MESH_DFU_URI_MAXLEN

#define CONFIG_BT_MESH_DFU_URI_MAXLEN   0

Enumeration Type Documentation

◆ bt_mesh_dfu_effect

#include <include/zephyr/bluetooth/mesh/dfu.h>

Expected effect of a DFU transfer.

Enumerator
BT_MESH_DFU_EFFECT_NONE 

No changes to node Composition Data.

BT_MESH_DFU_EFFECT_COMP_CHANGE_NO_RPR 

Node Composition Data changed and the node does not support remote provisioning.

BT_MESH_DFU_EFFECT_COMP_CHANGE 

Node Composition Data changed, and remote provisioning is supported. The node supports remote provisioning and Composition Data Page 0x80. Page 0x80 contains different Composition Data than Page 0x0.

BT_MESH_DFU_EFFECT_UNPROV 

Node will be unprovisioned after the update.

◆ bt_mesh_dfu_iter

#include <include/zephyr/bluetooth/mesh/dfu.h>

Action for DFU iteration callbacks.

Enumerator
BT_MESH_DFU_ITER_STOP 

Stop iterating.

BT_MESH_DFU_ITER_CONTINUE 

Continue iterating.

◆ bt_mesh_dfu_phase

#include <include/zephyr/bluetooth/mesh/dfu.h>

DFU transfer phase.

Enumerator
BT_MESH_DFU_PHASE_IDLE 

Ready to start a Receive Firmware procedure.

BT_MESH_DFU_PHASE_TRANSFER_ERR 

The Transfer BLOB procedure failed.

BT_MESH_DFU_PHASE_TRANSFER_ACTIVE 

The Receive Firmware procedure is being executed.

BT_MESH_DFU_PHASE_VERIFY 

The Verify Firmware procedure is being executed.

BT_MESH_DFU_PHASE_VERIFY_OK 

The Verify Firmware procedure completed successfully.

BT_MESH_DFU_PHASE_VERIFY_FAIL 

The Verify Firmware procedure failed.

BT_MESH_DFU_PHASE_APPLYING 

The Apply New Firmware procedure is being executed.

BT_MESH_DFU_PHASE_TRANSFER_CANCELED 

Firmware transfer has been canceled.

BT_MESH_DFU_PHASE_APPLY_SUCCESS 

Firmware applying succeeded.

BT_MESH_DFU_PHASE_APPLY_FAIL 

Firmware applying failed.

BT_MESH_DFU_PHASE_UNKNOWN 

The current phase is unknown.

    This is a metaphase, used by the Firmware Update Client to keep track of
    the Target state, and is not defined by the specification.

◆ bt_mesh_dfu_status

#include <include/zephyr/bluetooth/mesh/dfu.h>

DFU status.

Enumerator
BT_MESH_DFU_SUCCESS 

The message was processed successfully.

BT_MESH_DFU_ERR_RESOURCES 

Insufficient resources on the node

BT_MESH_DFU_ERR_WRONG_PHASE 

The operation cannot be performed while the Server is in the current phase.

BT_MESH_DFU_ERR_INTERNAL 

An internal error occurred on the node.

BT_MESH_DFU_ERR_FW_IDX 

The message contains a firmware index value that is not expected.

BT_MESH_DFU_ERR_METADATA 

The metadata check failed.

BT_MESH_DFU_ERR_TEMPORARILY_UNAVAILABLE 

The Server cannot start a firmware update.

BT_MESH_DFU_ERR_BLOB_XFER_BUSY 

Another BLOB transfer is in progress.