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__ */
|