mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-15 23:42:47 +00:00
Make it possible to provision devices over advertising bearer (PB-ADV). Many messages in the provisioning protocol are the same for provisioner and device so much of the code could be reused by only changing when they are expected to arrive. This introduces to concept of local and remote device keys. The models for cfg_cli and cfg_srv have been updated to reflect this concept. Both the send and receive path in the transport layer have been updated to support encrypting/decrypting with local and remote device keys. When a node has been provisioned it is stored in bt_mesh_net.nodes. If CONFIG_BT_SETTINGS is enabled, they are also saved to settings. If the callback node_added in bt_mesh_prov has been set, it will be called for every node that gets provisioned. This includes when they are retrieved from settings. The configuration CONFIG_BT_MESH_NODE_COUNT controls how many nodes that can be provisioned. Signed-off-by: Tobias Svehagen <tobias.svehagen@gmail.com>
27 lines
739 B
C
27 lines
739 B
C
/* Bluetooth Mesh */
|
|
|
|
/*
|
|
* Copyright (c) 2017 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
int bt_mesh_pb_adv_open(const u8_t uuid[16], u16_t net_idx, u16_t addr,
|
|
u8_t attention_duration);
|
|
|
|
void bt_mesh_pb_adv_recv(struct net_buf_simple *buf);
|
|
|
|
bool bt_prov_active(void);
|
|
|
|
int bt_mesh_pb_gatt_open(struct bt_conn *conn);
|
|
int bt_mesh_pb_gatt_close(struct bt_conn *conn);
|
|
int bt_mesh_pb_gatt_recv(struct bt_conn *conn, struct net_buf_simple *buf);
|
|
|
|
const struct bt_mesh_prov *bt_mesh_prov_get(void);
|
|
|
|
int bt_mesh_prov_init(const struct bt_mesh_prov *prov);
|
|
|
|
void bt_mesh_prov_complete(u16_t net_idx, u16_t addr);
|
|
void bt_mesh_prov_node_added(u16_t net_idx, u16_t addr, u8_t num_elem);
|
|
void bt_mesh_prov_reset(void);
|