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 23f4854a5eSMatthias Ringwald * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS 24f4854a5eSMatthias Ringwald * RINGWALD 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 60f4854a5eSMatthias Ringwald 61f4854a5eSMatthias Ringwald // Foundation Model Operations 62f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_ADD 0x00 63f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_UPDATE 0x01 64f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_COMPOSITION_DATA_STATUS 0x02 65f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_SET 0x03 66f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_CURRENT_STATUS 0x04 67f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_STATUS 0x05 68f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_PUBLICATION_STATUS 0x06 69f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_DELETE 0x8000 70f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_GET 0x8001 71f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_LIST 0x8002 72f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_STATUS 0x8003 73*584bbe7dSMilanka Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_ATTENTION_GET 0x8004 74*584bbe7dSMilanka Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_ATTENTION_SET 0x8005 75*584bbe7dSMilanka Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_ATTENTION_SET_UNACKNOWLEDGED 0x8006 76*584bbe7dSMilanka Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_ATTENTION_STATUS 0x8007 77f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_COMPOSITION_DATA_GET 0x8008 78f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_BEACON_GET 0x8009 79f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_BEACON_SET 0x800a 80f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_BEACON_STATUS 0x800b 81f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_DEFAULT_TTL_GET 0x800c 82f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_DEFAULT_TTL_SET 0x800d 83f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_DEFAULT_TTL_STATUS 0x800e 84f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_FRIEND_GET 0x800f 85f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_FRIEND_SET 0x8010 86f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_FRIEND_STATUS 0x8011 87f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_GATT_PROXY_GET 0x8012 88f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_GATT_PROXY_SET 0x8013 89f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_GATT_PROXY_STATUS 0x8014 90f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_KEY_REFRESH_PHASE_GET 0x8015 91f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_KEY_REFRESH_PHASE_SET 0x8016 92f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_KEY_REFRESH_PHASE_STATUS 0x8017 93f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_GET 0x8018 94f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_STATUS 0x8019 95f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_VIRTUAL_ADDRESS_SET 0x801a 96f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_ADD 0x801b 97f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_DELETE 0x801c 98f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_DELETE_ALL 0x801d 99f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_OVERWRITE 0x801e 100f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_STATUS 0x801f 101f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_ADD 0x8020 102f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_DELETE 0x8021 103f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_OVERWRITE 0x8022 104f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETWORK_TRANSMIT_GET 0x8023 105f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETWORK_TRANSMIT_SET 0x8024 106f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETWORK_TRANSMIT_STATUS 0x8025 107f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_RELAY_GET 0x8026 108f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_RELAY_SET 0x8027 109f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_RELAY_STATUS 0x8028 110f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_SUBSCRIPTION_GET 0x8029 111f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_SUBSCRIPTION_LIST 0x802a 112f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_SUBSCRIPTION_GET 0x802b 113f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_SUBSCRIPTION_LIST 0x802c 114f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_LOW_POWER_NODE_POLL_TIMEOUT_GET 0x802d 115f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_LOW_POWER_NODE_POLL_TIMEOUT_STATUS 0x802e 116f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_CLEAR 0x802f 117f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_CLEAR_UNACKNOWLEDGED 0x8030 118f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_GET 0x8031 119f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_TEST 0x8032 120f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_TEST_UNACKNOWLEDGED 0x8033 121f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_GET 0x8034 122f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_SET 0x8035 123f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_SET_UNACKNOWLEDGED 0x8036 124f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_STATUS 0x8037 125f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_PUBLICATION_GET 0x8038 126f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_PUBLICATION_SET 0x8039 127f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_SUBSCRIPTION_GET 0x803a 128f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_SUBSCRIPTION_SET 0x803b 129f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_SUBSCRIPTION_STATUS 0x803c 130f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_APP_BIND 0x803d 131f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_APP_STATUS 0x803e 132f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_APP_UNBIND 0x803f 133f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_ADD 0x8040 134f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_DELETE 0x8041 135f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_GET 0x8042 136f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_LIST 0x8043 137f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_STATUS 0x8044 138f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_UPDATE 0x8045 139f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_IDENTITY_GET 0x8046 140f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_IDENTITY_SET 0x8047 141f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_IDENTITY_STATUS 0x8048 142f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_RESET 0x8049 143f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_RESET_STATUS 0x804a 144f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_APP_GET 0x804b 145f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_APP_LIST 0x804c 146f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_APP_GET 0x804d 147f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_APP_LIST 0x804e 148f4854a5eSMatthias Ringwald 149f4854a5eSMatthias Ringwald // Foundation Models Status Codes 150f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_SUCCESS 0x00 151f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_ADDRESS 0x01 152f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_MODEL 0x02 153f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_APPKEY_INDEX 0x03 154f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_NETKEY_INDEX 0x04 155f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INSUFFICIENT_RESOURCES 0x05 156f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_KEY_INDEX_ALREADY_STORED 0x06 157f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_PUBLISH_PARAMETER 0x07 158f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_NOT_A_SUBSCRIPTION_MODEL 0x08 159f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_STORAGE_FAILURE 0x09 160f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_FEATURE_NOT_SUPPORTED 0x0a 161f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_UPDATE 0x0b 162f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_REMOVE 0x0c 163f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_BIND 0x0d 164f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_TEMPORARILY_UNABLE_TO_CHANGE_STATE 0x0e 165f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_SET 0x0f 166f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_UNSPECIFIED_ERROR 0x10 167f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_BINDING 0x11 168f4854a5eSMatthias Ringwald 169f4854a5eSMatthias Ringwald /** 170f4854a5eSMatthias Ringwald * 171f4854a5eSMatthias Ringwald * @param value on/off 172f4854a5eSMatthias Ringwald */ 173f4854a5eSMatthias Ringwald void mesh_foundation_gatt_proxy_set(uint8_t value); 174f4854a5eSMatthias Ringwald 175f4854a5eSMatthias Ringwald /** 176f4854a5eSMatthias Ringwald * 177f4854a5eSMatthias Ringwald * @return 178f4854a5eSMatthias Ringwald */ 179f4854a5eSMatthias Ringwald uint8_t mesh_foundation_gatt_proxy_get(void); 180f4854a5eSMatthias Ringwald 181f4854a5eSMatthias Ringwald /** 182f4854a5eSMatthias Ringwald * 183f4854a5eSMatthias Ringwald * @param value on/off 184f4854a5eSMatthias Ringwald */ 185f4854a5eSMatthias Ringwald void mesh_foundation_beacon_set(uint8_t value); 186f4854a5eSMatthias Ringwald 187f4854a5eSMatthias Ringwald /** 188f4854a5eSMatthias Ringwald * 189f4854a5eSMatthias Ringwald * @return 190f4854a5eSMatthias Ringwald */ 191f4854a5eSMatthias Ringwald uint8_t mesh_foundation_beacon_get(void); 192f4854a5eSMatthias Ringwald 193f4854a5eSMatthias Ringwald /** 194f4854a5eSMatthias Ringwald * 195f4854a5eSMatthias Ringwald * @param ttl 196f4854a5eSMatthias Ringwald */ 197f4854a5eSMatthias Ringwald void mesh_foundation_default_ttl_set(uint8_t ttl); 198f4854a5eSMatthias Ringwald 199f4854a5eSMatthias Ringwald /** 200f4854a5eSMatthias Ringwald * 201f4854a5eSMatthias Ringwald * @return 202f4854a5eSMatthias Ringwald */ 203f4854a5eSMatthias Ringwald uint8_t mesh_foundation_default_ttl_get(void); 204f4854a5eSMatthias Ringwald 205f4854a5eSMatthias Ringwald /** 206f4854a5eSMatthias Ringwald * 207f4854a5eSMatthias Ringwald * @param value on/off 208f4854a5eSMatthias Ringwald */ 209f4854a5eSMatthias Ringwald void mesh_foundation_friend_set(uint8_t value); 210f4854a5eSMatthias Ringwald 211f4854a5eSMatthias Ringwald /** 212f4854a5eSMatthias Ringwald * 213f4854a5eSMatthias Ringwald * @return 214f4854a5eSMatthias Ringwald */ 215f4854a5eSMatthias Ringwald uint8_t mesh_foundation_friend_get(void); 216f4854a5eSMatthias Ringwald 217f4854a5eSMatthias Ringwald /** 218f4854a5eSMatthias Ringwald * 219f4854a5eSMatthias Ringwald * @param value on/off 220f4854a5eSMatthias Ringwald */ 221f4854a5eSMatthias Ringwald void mesh_foundation_low_power_set(uint8_t value); 222f4854a5eSMatthias Ringwald 223f4854a5eSMatthias Ringwald /** 224f4854a5eSMatthias Ringwald * 225f4854a5eSMatthias Ringwald * @return 226f4854a5eSMatthias Ringwald */ 227f4854a5eSMatthias Ringwald uint8_t mesh_foundation_low_power_get(void); 228f4854a5eSMatthias Ringwald 229f4854a5eSMatthias Ringwald /** 230f4854a5eSMatthias Ringwald * 231f4854a5eSMatthias Ringwald * @param network_transmit 232f4854a5eSMatthias Ringwald */ 233f4854a5eSMatthias Ringwald void mesh_foundation_network_transmit_set(uint8_t network_transmit); 234f4854a5eSMatthias Ringwald 235f4854a5eSMatthias Ringwald /** 236f4854a5eSMatthias Ringwald * 237f4854a5eSMatthias Ringwald * @return 238f4854a5eSMatthias Ringwald */ 239f4854a5eSMatthias Ringwald uint8_t mesh_foundation_network_transmit_get(void); 240f4854a5eSMatthias Ringwald /** 241f4854a5eSMatthias Ringwald * 242f4854a5eSMatthias Ringwald * @param relay 243f4854a5eSMatthias Ringwald */ 244f4854a5eSMatthias Ringwald void mesh_foundation_relay_set(uint8_t relay); 245f4854a5eSMatthias Ringwald 246f4854a5eSMatthias Ringwald /** 247f4854a5eSMatthias Ringwald * 248f4854a5eSMatthias Ringwald * @return 249f4854a5eSMatthias Ringwald */ 250f4854a5eSMatthias Ringwald uint8_t mesh_foundation_relay_get(void); 251f4854a5eSMatthias Ringwald 252f4854a5eSMatthias Ringwald /** 253f4854a5eSMatthias Ringwald * 254f4854a5eSMatthias Ringwald * @param relay_retransmit 255f4854a5eSMatthias Ringwald */ 256f4854a5eSMatthias Ringwald void mesh_foundation_relay_retransmit_set(uint8_t relay_retransmit); 257f4854a5eSMatthias Ringwald 258f4854a5eSMatthias Ringwald /** 259f4854a5eSMatthias Ringwald * 260f4854a5eSMatthias Ringwald * @return 261f4854a5eSMatthias Ringwald */ 262f4854a5eSMatthias Ringwald uint8_t mesh_foundation_relay_retransmit_get(void); 263f4854a5eSMatthias Ringwald 264f4854a5eSMatthias Ringwald /** 265f4854a5eSMatthias Ringwald * @brief Get Features map (Relay, Proxy, Friend, Low Power) 266f4854a5eSMatthias Ringwald */ 267f4854a5eSMatthias Ringwald uint16_t mesh_foundation_get_features(void); 268f4854a5eSMatthias Ringwald 269f4854a5eSMatthias Ringwald #ifdef __cplusplus 270f4854a5eSMatthias Ringwald } /* end of extern "C" */ 271f4854a5eSMatthias Ringwald #endif 272f4854a5eSMatthias Ringwald 273f4854a5eSMatthias Ringwald #endif 274