Line data Source code
1 0 : /* 2 : * Copyright (c) 2020 Nordic Semiconductor ASA 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : #ifndef ZEPHYR_INCLUDE_BLUETOOTH_MESH_DFD_H__ 8 : #define ZEPHYR_INCLUDE_BLUETOOTH_MESH_DFD_H__ 9 : 10 : #include <zephyr/bluetooth/mesh.h> 11 : 12 : #ifdef __cplusplus 13 : extern "C" { 14 : #endif 15 : 16 : /** 17 : * @defgroup bt_mesh_dfd Firmware Distribution models 18 : * @ingroup bt_mesh 19 : * @{ 20 : */ 21 : 22 : /** Firmware distribution status. */ 23 1 : enum bt_mesh_dfd_status { 24 : /** The message was processed successfully. */ 25 : BT_MESH_DFD_SUCCESS, 26 : 27 : /** Insufficient resources on the node. */ 28 : BT_MESH_DFD_ERR_INSUFFICIENT_RESOURCES, 29 : 30 : /** The operation cannot be performed while the Server is in the current 31 : * phase. 32 : */ 33 : BT_MESH_DFD_ERR_WRONG_PHASE, 34 : 35 : /** An internal error occurred on the node. */ 36 : BT_MESH_DFD_ERR_INTERNAL, 37 : 38 : /** The requested firmware image is not stored on the Distributor. */ 39 : BT_MESH_DFD_ERR_FW_NOT_FOUND, 40 : 41 : /** The AppKey identified by the AppKey Index is not known to the node. 42 : */ 43 : BT_MESH_DFD_ERR_INVALID_APPKEY_INDEX, 44 : 45 : /** There are no Target nodes in the Distribution Receivers List 46 : * state. 47 : */ 48 : BT_MESH_DFD_ERR_RECEIVERS_LIST_EMPTY, 49 : 50 : /** Another firmware image distribution is in progress. */ 51 : BT_MESH_DFD_ERR_BUSY_WITH_DISTRIBUTION, 52 : 53 : /** Another upload is in progress. */ 54 : BT_MESH_DFD_ERR_BUSY_WITH_UPLOAD, 55 : 56 : /** The URI scheme name indicated by the Update URI is not supported. */ 57 : BT_MESH_DFD_ERR_URI_NOT_SUPPORTED, 58 : 59 : /** The format of the Update URI is invalid. */ 60 : BT_MESH_DFD_ERR_URI_MALFORMED, 61 : 62 : /** The URI is currently unreachable. */ 63 : BT_MESH_DFD_ERR_URI_UNREACHABLE, 64 : 65 : /** The Check Firmware OOB procedure did not find any new firmware. */ 66 : BT_MESH_DFD_ERR_NEW_FW_NOT_AVAILABLE, 67 : 68 : /** The suspension of the Distribute Firmware procedure failed. */ 69 : BT_MESH_DFD_ERR_SUSPEND_FAILED, 70 : }; 71 : 72 : /** Firmware distribution phases. */ 73 1 : enum bt_mesh_dfd_phase { 74 : /** No firmware distribution is in progress. */ 75 : BT_MESH_DFD_PHASE_IDLE, 76 : 77 : /** Firmware distribution is in progress. */ 78 : BT_MESH_DFD_PHASE_TRANSFER_ACTIVE, 79 : 80 : /** The Transfer BLOB procedure has completed successfully. */ 81 : BT_MESH_DFD_PHASE_TRANSFER_SUCCESS, 82 : 83 : /** The Apply Firmware on Target Nodes procedure is being executed. */ 84 : BT_MESH_DFD_PHASE_APPLYING_UPDATE, 85 : 86 : /** The Distribute Firmware procedure has completed successfully. */ 87 : BT_MESH_DFD_PHASE_COMPLETED, 88 : 89 : /** The Distribute Firmware procedure has failed. */ 90 : BT_MESH_DFD_PHASE_FAILED, 91 : 92 : /** The Cancel Firmware Update procedure is being executed. */ 93 : BT_MESH_DFD_PHASE_CANCELING_UPDATE, 94 : 95 : /** The Transfer BLOB procedure is suspended. */ 96 : BT_MESH_DFD_PHASE_TRANSFER_SUSPENDED, 97 : }; 98 : 99 : /** Firmware upload phases. */ 100 1 : enum bt_mesh_dfd_upload_phase { 101 : /** No firmware upload is in progress. */ 102 : BT_MESH_DFD_UPLOAD_PHASE_IDLE, 103 : 104 : /** The Store Firmware procedure is being executed. */ 105 : BT_MESH_DFD_UPLOAD_PHASE_TRANSFER_ACTIVE, 106 : 107 : /** The Store Firmware procedure or Store Firmware OOB procedure failed. 108 : */ 109 : BT_MESH_DFD_UPLOAD_PHASE_TRANSFER_ERROR, 110 : 111 : /** The Store Firmware procedure or the Store Firmware OOB procedure 112 : * completed successfully. 113 : */ 114 : BT_MESH_DFD_UPLOAD_PHASE_TRANSFER_SUCCESS, 115 : }; 116 : 117 : /** @} */ 118 : 119 : #ifdef __cplusplus 120 : } 121 : #endif 122 : 123 : #endif /* ZEPHYR_INCLUDE_BLUETOOTH_MESH_DFD_H__ */