xref: /btstack/src/mesh/mesh_foundation.h (revision 2fca4dad957cd7b88f4657ed51e89c12615dda72)
1f4854a5eSMatthias Ringwald /*
2f4854a5eSMatthias Ringwald  * Copyright (C) 2018 BlueKitchen GmbH
3f4854a5eSMatthias Ringwald  *
4f4854a5eSMatthias Ringwald  * Redistribution and use in source and binary forms, with or without
5f4854a5eSMatthias Ringwald  * modification, are permitted provided that the following conditions
6f4854a5eSMatthias Ringwald  * are met:
7f4854a5eSMatthias Ringwald  *
8f4854a5eSMatthias Ringwald  * 1. Redistributions of source code must retain the above copyright
9f4854a5eSMatthias Ringwald  *    notice, this list of conditions and the following disclaimer.
10f4854a5eSMatthias Ringwald  * 2. Redistributions in binary form must reproduce the above copyright
11f4854a5eSMatthias Ringwald  *    notice, this list of conditions and the following disclaimer in the
12f4854a5eSMatthias Ringwald  *    documentation and/or other materials provided with the distribution.
13f4854a5eSMatthias Ringwald  * 3. Neither the name of the copyright holders nor the names of
14f4854a5eSMatthias Ringwald  *    contributors may be used to endorse or promote products derived
15f4854a5eSMatthias Ringwald  *    from this software without specific prior written permission.
16f4854a5eSMatthias Ringwald  * 4. Any redistribution, use, or modification is done solely for
17f4854a5eSMatthias Ringwald  *    personal benefit and not for any commercial purpose or for
18f4854a5eSMatthias Ringwald  *    monetary gain.
19f4854a5eSMatthias Ringwald  *
20f4854a5eSMatthias Ringwald  * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
21f4854a5eSMatthias Ringwald  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22f4854a5eSMatthias Ringwald  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23*2fca4dadSMilanka Ringwald  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BLUEKITCHEN
24*2fca4dadSMilanka Ringwald  * GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25f4854a5eSMatthias Ringwald  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26f4854a5eSMatthias Ringwald  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
27f4854a5eSMatthias Ringwald  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28f4854a5eSMatthias Ringwald  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29f4854a5eSMatthias Ringwald  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
30f4854a5eSMatthias Ringwald  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31f4854a5eSMatthias Ringwald  * SUCH DAMAGE.
32f4854a5eSMatthias Ringwald  *
33f4854a5eSMatthias Ringwald  * Please inquire about commercial licensing options at
34f4854a5eSMatthias Ringwald  * [email protected]
35f4854a5eSMatthias Ringwald  *
36f4854a5eSMatthias Ringwald  */
37f4854a5eSMatthias Ringwald 
38f4854a5eSMatthias Ringwald #ifndef __MESH_FOUNDATION_H
39f4854a5eSMatthias Ringwald #define __MESH_FOUNDATION_H
40f4854a5eSMatthias Ringwald 
41f4854a5eSMatthias Ringwald #include <stdint.h>
42f4854a5eSMatthias Ringwald 
43f4854a5eSMatthias Ringwald #include "mesh/mesh_network.h"
44f4854a5eSMatthias Ringwald 
45f4854a5eSMatthias Ringwald #ifdef __cplusplus
46f4854a5eSMatthias Ringwald extern "C"
47f4854a5eSMatthias Ringwald {
48f4854a5eSMatthias Ringwald #endif
49f4854a5eSMatthias Ringwald 
50f4854a5eSMatthias Ringwald #define MESH_TTL_MAX 0x7f
51f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATE_NOT_SUPPORTED 2
52f4854a5eSMatthias Ringwald 
53f4854a5eSMatthias Ringwald // Mesh Model Identifiers
54f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_CONFIGURATION_SERVER  0x0000u
55f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_CONFIGURATION_CLIENT  0x0001u
56f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_HEALTH_SERVER         0x0002u
57f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_HEALTH_CLIENT         0x0003u
58f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_GENERIC_ON_OFF_SERVER 0x1000u
59f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_GENERIC_ON_OFF_CLIENT 0x1001u
607ee2bdaeSMatthias Ringwald #define MESH_SIG_MODEL_ID_GENERIC_LEVEL_SERVER  0x1002u
617ee2bdaeSMatthias Ringwald #define MESH_SIG_MODEL_ID_GENERIC_LEVEL_CLIENT  0x1003u
62f4854a5eSMatthias Ringwald 
63f4854a5eSMatthias Ringwald // Foundation Model Operations
64f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_ADD                                      0x00
65f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_UPDATE                                   0x01
66f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_COMPOSITION_DATA_STATUS                         0x02
67f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_SET                           0x03
68f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_CURRENT_STATUS                           0x04
69f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_STATUS                             0x05
70f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_PUBLICATION_STATUS                    0x06
71f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_DELETE                                 0x8000
72f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_GET                                    0x8001
73f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_LIST                                   0x8002
74f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_STATUS                                 0x8003
75584bbe7dSMilanka Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_ATTENTION_GET                          0x8004
76584bbe7dSMilanka Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_ATTENTION_SET                          0x8005
77584bbe7dSMilanka Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_ATTENTION_SET_UNACKNOWLEDGED           0x8006
78584bbe7dSMilanka Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_ATTENTION_STATUS                       0x8007
79f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_COMPOSITION_DATA_GET                          0x8008
80f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_BEACON_GET                                    0x8009
81f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_BEACON_SET                                    0x800a
82f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_BEACON_STATUS                                 0x800b
83f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_DEFAULT_TTL_GET                               0x800c
84f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_DEFAULT_TTL_SET                               0x800d
85f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_DEFAULT_TTL_STATUS                            0x800e
86f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_FRIEND_GET                                    0x800f
87f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_FRIEND_SET                                    0x8010
88f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_FRIEND_STATUS                                 0x8011
89f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_GATT_PROXY_GET                                0x8012
90f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_GATT_PROXY_SET                                0x8013
91f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_GATT_PROXY_STATUS                             0x8014
92f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_KEY_REFRESH_PHASE_GET                         0x8015
93f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_KEY_REFRESH_PHASE_SET                         0x8016
94f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_KEY_REFRESH_PHASE_STATUS                      0x8017
95f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_GET                         0x8018
96f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_STATUS                      0x8019
97f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_VIRTUAL_ADDRESS_SET         0x801a
98f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_ADD                        0x801b
99f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_DELETE                     0x801c
100f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_DELETE_ALL                 0x801d
101f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_OVERWRITE                  0x801e
102f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_STATUS                     0x801f
103f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_ADD        0x8020
104f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_DELETE     0x8021
105f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_OVERWRITE  0x8022
106f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETWORK_TRANSMIT_GET                          0x8023
107f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETWORK_TRANSMIT_SET                          0x8024
108f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETWORK_TRANSMIT_STATUS                       0x8025
109f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_RELAY_GET                                     0x8026
110f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_RELAY_SET                                     0x8027
111f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_RELAY_STATUS                                  0x8028
112f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_SUBSCRIPTION_GET                    0x8029
113f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_SUBSCRIPTION_LIST                   0x802a
114f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_SUBSCRIPTION_GET                 0x802b
115f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_SUBSCRIPTION_LIST                0x802c
116f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_LOW_POWER_NODE_POLL_TIMEOUT_GET               0x802d
117f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_LOW_POWER_NODE_POLL_TIMEOUT_STATUS            0x802e
118f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_CLEAR                            0x802f
119f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_CLEAR_UNACKNOWLEDGED             0x8030
120f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_GET                              0x8031
121f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_TEST                             0x8032
122f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_TEST_UNACKNOWLEDGED              0x8033
123f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_GET                             0x8034
124f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_SET                             0x8035
125f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_SET_UNACKNOWLEDGED              0x8036
126f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_STATUS                          0x8037
127f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_PUBLICATION_GET                     0x8038
128f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_PUBLICATION_SET                     0x8039
129f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_SUBSCRIPTION_GET                    0x803a
130f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_SUBSCRIPTION_SET                    0x803b
131f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_SUBSCRIPTION_STATUS                 0x803c
132f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_APP_BIND                                0x803d
133f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_APP_STATUS                              0x803e
134f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_APP_UNBIND                              0x803f
135f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_ADD                                    0x8040
136f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_DELETE                                 0x8041
137f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_GET                                    0x8042
138f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_LIST                                   0x8043
139f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_STATUS                                 0x8044
140f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_UPDATE                                 0x8045
141f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_IDENTITY_GET                             0x8046
142f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_IDENTITY_SET                             0x8047
143f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_IDENTITY_STATUS                          0x8048
144f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_RESET                                    0x8049
145f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_RESET_STATUS                             0x804a
146f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_APP_GET                             0x804b
147f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_APP_LIST                            0x804c
148f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_APP_GET                          0x804d
149f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_APP_LIST                         0x804e
150f4854a5eSMatthias Ringwald 
151f4854a5eSMatthias Ringwald // Foundation Models Status Codes
152f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_SUCCESS                                           0x00
153f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_ADDRESS                                   0x01
154f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_MODEL                                     0x02
155f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_APPKEY_INDEX                              0x03
156f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_NETKEY_INDEX                              0x04
157f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INSUFFICIENT_RESOURCES                            0x05
158f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_KEY_INDEX_ALREADY_STORED                          0x06
159f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_PUBLISH_PARAMETER                         0x07
160f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_NOT_A_SUBSCRIPTION_MODEL                          0x08
161f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_STORAGE_FAILURE                                   0x09
162f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_FEATURE_NOT_SUPPORTED                             0x0a
163f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_UPDATE                                     0x0b
164f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_REMOVE                                     0x0c
165f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_BIND                                       0x0d
166f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_TEMPORARILY_UNABLE_TO_CHANGE_STATE                0x0e
167f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_SET                                        0x0f
168f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_UNSPECIFIED_ERROR                                 0x10
169f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_BINDING                                   0x11
170f4854a5eSMatthias Ringwald 
171f4854a5eSMatthias Ringwald /**
172f4854a5eSMatthias Ringwald  *
173f4854a5eSMatthias Ringwald  * @param value on/off
174f4854a5eSMatthias Ringwald  */
175f4854a5eSMatthias Ringwald void mesh_foundation_gatt_proxy_set(uint8_t value);
176f4854a5eSMatthias Ringwald 
177f4854a5eSMatthias Ringwald /**
178f4854a5eSMatthias Ringwald  *
179f4854a5eSMatthias Ringwald  * @return
180f4854a5eSMatthias Ringwald  */
181f4854a5eSMatthias Ringwald uint8_t mesh_foundation_gatt_proxy_get(void);
182f4854a5eSMatthias Ringwald 
183f4854a5eSMatthias Ringwald /**
184f4854a5eSMatthias Ringwald  *
185f4854a5eSMatthias Ringwald  * @param value on/off
186f4854a5eSMatthias Ringwald  */
187f4854a5eSMatthias Ringwald void mesh_foundation_beacon_set(uint8_t value);
188f4854a5eSMatthias Ringwald 
189f4854a5eSMatthias Ringwald /**
190f4854a5eSMatthias Ringwald  *
191f4854a5eSMatthias Ringwald  * @return
192f4854a5eSMatthias Ringwald  */
193f4854a5eSMatthias Ringwald uint8_t mesh_foundation_beacon_get(void);
194f4854a5eSMatthias Ringwald 
195f4854a5eSMatthias Ringwald /**
196f4854a5eSMatthias Ringwald  *
197f4854a5eSMatthias Ringwald  * @param ttl
198f4854a5eSMatthias Ringwald  */
199f4854a5eSMatthias Ringwald void mesh_foundation_default_ttl_set(uint8_t ttl);
200f4854a5eSMatthias Ringwald 
201f4854a5eSMatthias Ringwald /**
202f4854a5eSMatthias Ringwald  *
203f4854a5eSMatthias Ringwald  * @return
204f4854a5eSMatthias Ringwald  */
205f4854a5eSMatthias Ringwald uint8_t mesh_foundation_default_ttl_get(void);
206f4854a5eSMatthias Ringwald 
207f4854a5eSMatthias Ringwald /**
208f4854a5eSMatthias Ringwald  *
209f4854a5eSMatthias Ringwald  * @param value on/off
210f4854a5eSMatthias Ringwald  */
211f4854a5eSMatthias Ringwald void mesh_foundation_friend_set(uint8_t value);
212f4854a5eSMatthias Ringwald 
213f4854a5eSMatthias Ringwald /**
214f4854a5eSMatthias Ringwald  *
215f4854a5eSMatthias Ringwald  * @return
216f4854a5eSMatthias Ringwald  */
217f4854a5eSMatthias Ringwald uint8_t mesh_foundation_friend_get(void);
218f4854a5eSMatthias Ringwald 
219f4854a5eSMatthias Ringwald /**
220f4854a5eSMatthias Ringwald  *
221f4854a5eSMatthias Ringwald  * @param value on/off
222f4854a5eSMatthias Ringwald  */
223f4854a5eSMatthias Ringwald void mesh_foundation_low_power_set(uint8_t value);
224f4854a5eSMatthias Ringwald 
225f4854a5eSMatthias Ringwald /**
226f4854a5eSMatthias Ringwald  *
227f4854a5eSMatthias Ringwald  * @return
228f4854a5eSMatthias Ringwald  */
229f4854a5eSMatthias Ringwald uint8_t mesh_foundation_low_power_get(void);
230f4854a5eSMatthias Ringwald 
231f4854a5eSMatthias Ringwald /**
232f4854a5eSMatthias Ringwald  *
233f4854a5eSMatthias Ringwald  * @param network_transmit
234f4854a5eSMatthias Ringwald  */
235f4854a5eSMatthias Ringwald void mesh_foundation_network_transmit_set(uint8_t network_transmit);
236f4854a5eSMatthias Ringwald 
237f4854a5eSMatthias Ringwald /**
238f4854a5eSMatthias Ringwald  *
239f4854a5eSMatthias Ringwald  * @return
240f4854a5eSMatthias Ringwald  */
241f4854a5eSMatthias Ringwald uint8_t mesh_foundation_network_transmit_get(void);
242f4854a5eSMatthias Ringwald /**
243f4854a5eSMatthias Ringwald  *
244f4854a5eSMatthias Ringwald  * @param relay
245f4854a5eSMatthias Ringwald  */
246f4854a5eSMatthias Ringwald void mesh_foundation_relay_set(uint8_t relay);
247f4854a5eSMatthias Ringwald 
248f4854a5eSMatthias Ringwald /**
249f4854a5eSMatthias Ringwald  *
250f4854a5eSMatthias Ringwald  * @return
251f4854a5eSMatthias Ringwald  */
252f4854a5eSMatthias Ringwald uint8_t mesh_foundation_relay_get(void);
253f4854a5eSMatthias Ringwald 
254f4854a5eSMatthias Ringwald /**
255f4854a5eSMatthias Ringwald  *
256f4854a5eSMatthias Ringwald  * @param relay_retransmit
257f4854a5eSMatthias Ringwald  */
258f4854a5eSMatthias Ringwald void mesh_foundation_relay_retransmit_set(uint8_t relay_retransmit);
259f4854a5eSMatthias Ringwald 
260f4854a5eSMatthias Ringwald /**
261f4854a5eSMatthias Ringwald  *
262f4854a5eSMatthias Ringwald  * @return
263f4854a5eSMatthias Ringwald  */
264f4854a5eSMatthias Ringwald uint8_t mesh_foundation_relay_retransmit_get(void);
265f4854a5eSMatthias Ringwald 
266f4854a5eSMatthias Ringwald /**
267f4854a5eSMatthias Ringwald  * @brief Get Features map (Relay, Proxy, Friend, Low Power)
268f4854a5eSMatthias Ringwald  */
269f4854a5eSMatthias Ringwald uint16_t mesh_foundation_get_features(void);
270f4854a5eSMatthias Ringwald 
271f4854a5eSMatthias Ringwald #ifdef __cplusplus
272f4854a5eSMatthias Ringwald } /* end of extern "C" */
273f4854a5eSMatthias Ringwald #endif
274f4854a5eSMatthias Ringwald 
275f4854a5eSMatthias Ringwald #endif
276