} while (0)
/* Forward declaration: Callbacks from HAL */
+static void mesh_network_proxy_added_callback(bt_status_t status);
static void mesh_network_attached_callback(bt_status_t status,
bt_mesh_token_t *token, bt_uuid_t *uuid);
static void mesh_network_destroyed_callback(bt_status_t status,
static btmesh_callbacks_t sBluetoothMeshCallbacks = {
.size = sizeof(sBluetoothMeshCallbacks),
+ .network_proxy_added_cb = mesh_network_proxy_added_callback,
.network_attached_cb = mesh_network_attached_callback,
.network_destroyed_cb = mesh_network_destroyed_callback,
.scan_status_cb = mesh_network_scan_status_callback,
};
/* Mesh HAL event handlers */
+static void mesh_network_proxy_added_callback(bt_status_t status)
+{
+ event_mesh_network_proxy_added_t *event = g_new0(event_mesh_network_proxy_added_t, 1);
+
+ event->status = convert_to_oal_status(status);
+ BT_INFO("Mesh Event: Network Proxy Added, status: [%s]",
+ status2string(status));
+
+ send_event_bda_trace(OAL_EVENT_MESH_NETWORK_PROXY_ADDED,
+ event, sizeof(event_mesh_network_proxy_added_t), NULL);
+}
+
static void mesh_network_attached_callback(bt_status_t status,
bt_mesh_token_t *token, bt_uuid_t *uuid)
{
return OAL_STATUS_SUCCESS;
}
+oal_status_t mesh_network_release(oal_uuid_t* network_uuid)
+{
+ int ret = BT_STATUS_SUCCESS;
+ API_TRACE();
+ CHECK_OAL_MESH_ENABLED();
+
+ BT_INFO("Mesh: Send Release Network request to stack");
+ ret = mesh_api->release((bt_uuid_t*)network_uuid);
+ if (ret != BT_STATUS_SUCCESS) {
+ BT_ERR("MESH: Network Leave failed: %s", status2string(ret));
+ return convert_to_oal_status(ret);
+ }
+
+ return OAL_STATUS_SUCCESS;
+}
+
oal_status_t mesh_network_destroy(oal_uuid_t* network_uuid)
{
int ret = BT_STATUS_SUCCESS;