Bluetooth: Mesh: Add support for provisioner role over PB-ADV
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>
This commit is contained in:
parent
de92d1a83b
commit
80669decce
20 changed files with 965 additions and 100 deletions
|
@ -179,6 +179,18 @@ struct bt_mesh_prov {
|
|||
*/
|
||||
void (*complete)(u16_t net_idx, u16_t addr);
|
||||
|
||||
/** @brief A new node has been added to the provisioning database.
|
||||
*
|
||||
* This callback notifies the application that provisioning has
|
||||
* been successfully completed, and that a node has been assigned
|
||||
* the specified NetKeyIndex and primary element address.
|
||||
*
|
||||
* @param net_idx NetKeyIndex given during provisioning.
|
||||
* @param addr Primary element address.
|
||||
* @param num_elem Number of elements that this node has.
|
||||
*/
|
||||
void (*node_added)(u16_t net_idx, u16_t addr, u8_t num_elem);
|
||||
|
||||
/** @brief Node has been reset.
|
||||
*
|
||||
* This callback notifies the application that the local node
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue