6#ifndef ZEPHYR_INCLUDE_BLUETOOTH_MESH_CDB_H_
7#define ZEPHYR_INCLUDE_BLUETOOTH_MESH_CDB_H_
19#if defined(CONFIG_BT_MESH_CDB)
20#define NODE_COUNT CONFIG_BT_MESH_CDB_NODE_COUNT
21#define SUBNET_COUNT CONFIG_BT_MESH_CDB_SUBNET_COUNT
22#define APP_KEY_COUNT CONFIG_BT_MESH_CDB_APP_KEY_COUNT
26#define APP_KEY_COUNT 0
int bt_mesh_cdb_create(const uint8_t key[16])
Create the Mesh Configuration Database.
@ BT_MESH_CDB_ITER_CONTINUE
Definition: cdb.h:221
@ BT_MESH_CDB_ITER_STOP
Definition: cdb.h:220
uint8_t bt_mesh_cdb_subnet_flags(const struct bt_mesh_cdb_subnet *sub)
Get the flags for a subnet.
int bt_mesh_cdb_node_key_import(struct bt_mesh_cdb_node *node, const uint8_t in[16])
Import device key for selected node.
@ BT_MESH_CDB_NODE_FLAG_COUNT
Definition: cdb.h:32
@ BT_MESH_CDB_NODE_CONFIGURED
Definition: cdb.h:30
struct bt_mesh_cdb_subnet * bt_mesh_cdb_subnet_get(uint16_t net_idx)
Get a subnet by NetIdx.
struct bt_mesh_cdb_node * bt_mesh_cdb_node_get(uint16_t addr)
Get a node by address.
int bt_mesh_cdb_node_key_export(const struct bt_mesh_cdb_node *node, uint8_t out[16])
Export device key from selected node.
void bt_mesh_cdb_clear(void)
Clear the Mesh Configuration Database.
void bt_mesh_cdb_app_key_store(const struct bt_mesh_cdb_app_key *key)
Store application key to persistent storage.
void bt_mesh_cdb_subnet_store(const struct bt_mesh_cdb_subnet *sub)
Store subnet to persistent storage.
#define SUBNET_COUNT
Definition: cdb.h:25
void bt_mesh_cdb_subnet_del(struct bt_mesh_cdb_subnet *sub, bool store)
Delete a subnet.
void bt_mesh_cdb_app_key_del(struct bt_mesh_cdb_app_key *key, bool store)
Delete an application key.
void bt_mesh_cdb_node_del(struct bt_mesh_cdb_node *node, bool store)
Delete a node.
int bt_mesh_cdb_app_key_export(const struct bt_mesh_cdb_app_key *key, int key_idx, uint8_t out[16])
Export application key.
int bt_mesh_cdb_app_key_import(struct bt_mesh_cdb_app_key *key, int key_idx, const uint8_t in[16])
Import application key.
uint16_t bt_mesh_cdb_free_addr_get(uint8_t num_elem)
Get the first available address for the given element count.
void bt_mesh_cdb_iv_update(uint32_t iv_index, bool iv_update)
Set and store the IV Index and IV Update flag.
#define APP_KEY_COUNT
Definition: cdb.h:26
struct bt_mesh_cdb_node * bt_mesh_cdb_node_alloc(const uint8_t uuid[16], uint16_t addr, uint8_t num_elem, uint16_t net_idx)
Allocate a node.
struct bt_mesh_cdb_app_key * bt_mesh_cdb_app_key_get(uint16_t app_idx)
Get an application key by AppIdx.
struct bt_mesh_cdb_app_key * bt_mesh_cdb_app_key_alloc(uint16_t net_idx, uint16_t app_idx)
Allocate an application key.
int bt_mesh_cdb_subnet_key_import(struct bt_mesh_cdb_subnet *sub, int key_idx, const uint8_t in[16])
Import network key for selected subnetwork.
int bt_mesh_cdb_subnet_key_export(const struct bt_mesh_cdb_subnet *sub, int key_idx, uint8_t out[16])
Export network key from selected subnetwork.
void bt_mesh_cdb_node_store(const struct bt_mesh_cdb_node *node)
Store node to persistent storage.
void bt_mesh_cdb_node_update(struct bt_mesh_cdb_node *node, uint16_t addr, uint8_t num_elem)
Update a node.
uint8_t(* bt_mesh_cdb_node_func_t)(struct bt_mesh_cdb_node *node, void *user_data)
Node iterator callback.
Definition: cdb.h:233
#define NODE_COUNT
Definition: cdb.h:24
void bt_mesh_cdb_node_foreach(bt_mesh_cdb_node_func_t func, void *user_data)
Node iterator.
@ BT_MESH_CDB_IVU_IN_PROGRESS
Definition: cdb.h:69
@ BT_MESH_CDB_NODES_PENDING
Definition: cdb.h:68
@ BT_MESH_CDB_SUBNET_PENDING
Definition: cdb.h:66
@ BT_MESH_CDB_KEYS_PENDING
Definition: cdb.h:67
@ BT_MESH_CDB_FLAG_COUNT
Definition: cdb.h:71
@ BT_MESH_CDB_VALID
Definition: cdb.h:65
struct bt_mesh_cdb_subnet * bt_mesh_cdb_subnet_alloc(uint16_t net_idx)
Allocate a subnet.
#define ATOMIC_DEFINE(name, num_bits)
Define an array of atomic variables.
Definition: atomic.h:111
Bluetooth Mesh Profile APIs.
flags
Definition: parser.h:96
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
struct bt_mesh_key app_key
Definition: cdb.h:60
uint16_t app_idx
Definition: cdb.h:57
struct bt_mesh_cdb_app_key::@98 keys[2]
uint16_t net_idx
Definition: cdb.h:56
uint8_t num_elem
Definition: cdb.h:39
struct bt_mesh_key dev_key
Definition: cdb.h:40
uint8_t uuid[16]
Definition: cdb.h:36
uint16_t addr
Definition: cdb.h:37
uint16_t net_idx
Definition: cdb.h:38
uint8_t kr_phase
Definition: cdb.h:48
uint16_t net_idx
Definition: cdb.h:46
struct bt_mesh_key net_key
Definition: cdb.h:51
struct bt_mesh_cdb_subnet::@97 keys[2]
uint32_t iv_index
Definition: cdb.h:75
struct bt_mesh_cdb_app_key app_keys[0]
Definition: cdb.h:82
struct bt_mesh_cdb_node nodes[0]
Definition: cdb.h:80
uint16_t lowest_avail_addr
Definition: cdb.h:76
struct bt_mesh_cdb_subnet subnets[0]
Definition: cdb.h:81