summaryrefslogtreecommitdiff
path: root/mesh/mesh-config.h
diff options
context:
space:
mode:
authorInga Stotland <inga.stotland@intel.com>2019-07-14 16:23:14 -0700
committerBrian Gix <brian.gix@intel.com>2019-07-15 14:44:38 -0700
commitd1a76eb3f4d296fbd688edd9b3f2234b30459742 (patch)
tree09cfa6b7b6d2b32f3970f499dfd1fb6e0f654fc5 /mesh/mesh-config.h
parent78668a02d6c41ef426f54a9d4932676fd1f5f3f1 (diff)
downloadbluez-d1a76eb3f4d296fbd688edd9b3f2234b30459742.tar.gz
mesh: Move load from storage functionality into node.c
This moves the initialization of a mesh node from stored configuration from storage.c to node.c
Diffstat (limited to 'mesh/mesh-config.h')
-rw-r--r--mesh/mesh-config.h59
1 files changed, 28 insertions, 31 deletions
diff --git a/mesh/mesh-config.h b/mesh/mesh-config.h
index f60ae18cd..4ba02babb 100644
--- a/mesh/mesh-config.h
+++ b/mesh/mesh-config.h
@@ -65,55 +65,52 @@ struct mesh_config_modes {
uint8_t beacon;
};
+struct mesh_config_netkey {
+ uint16_t idx;
+ uint8_t key[16];
+ uint8_t new_key[16];
+ uint8_t phase;
+};
+
+struct mesh_config_appkey {
+ uint16_t net_idx;
+ uint16_t app_idx;
+ uint8_t key[16];
+ uint8_t new_key[16];
+};
+
+struct mesh_config_transmit {
+ uint16_t interval;
+ uint8_t count;
+};
+
struct mesh_config_node {
- bool provisioner;
+ struct l_queue *elements;
+ struct l_queue *netkeys;
+ struct l_queue *appkeys;
uint32_t seq_number;
- struct mesh_config_modes modes;
+ uint32_t iv_index;
+ bool iv_update;
uint16_t cid;
uint16_t pid;
uint16_t vid;
uint16_t crpl;
uint16_t unicast;
+ struct mesh_config_transmit *net_transmit;
+ struct mesh_config_modes modes;
uint8_t ttl;
- struct l_queue *elements;
+ uint8_t dev_key[16];
+ uint8_t token[8];
};
-struct mesh_config_prov {
- uint16_t algorithm;
- struct {
- uint16_t actions;
- uint8_t size;
- } input_oob;
- uint8_t pub_type;
- struct {
- uint16_t actions;
- uint8_t size;
- } output_oob;
- uint8_t static_type;
- uint8_t priv_key[32];
-};
-
-typedef bool (*mesh_config_net_key_cb)(uint16_t idx, uint8_t key[16],
- uint8_t new_key[16], int phase, void *user_data);
-typedef bool (*mesh_config_app_key_cb)(uint16_t idx, uint16_t net_idx,
- uint8_t key[16], uint8_t new_key[16], void *user_data);
typedef bool (*mesh_config_node_cb)(struct mesh_config_node *node,
void *user_data);
bool mesh_config_read_node(json_object *jobj, mesh_config_node_cb cb,
void *user_data);
bool mesh_config_add_node(json_object *jnode, struct mesh_config_node *node);
-bool mesh_config_read_iv_index(json_object *jobj, uint32_t *idx, bool *update);
-bool mesh_config_read_device_key(json_object *jobj, uint8_t key_buf[16]);
-bool mesh_config_read_token(json_object *jobj, uint8_t token[8]);
-bool mesh_config_read_net_transmit(json_object *jobj, uint8_t *cnt,
- uint16_t *interval);
bool mesh_config_write_net_transmit(json_object *jobj, uint8_t cnt,
uint16_t interval);
-bool mesh_config_read_net_keys(json_object *jobj, mesh_config_net_key_cb cb,
- void *user_data);
-bool mesh_config_read_app_keys(json_object *jobj, mesh_config_app_key_cb cb,
- void *user_data);
bool mesh_config_write_device_key(json_object *jobj, uint8_t *key);
bool mesh_config_write_token(json_object *jobj, uint8_t *token);
bool mesh_config_write_network_key(json_object *jobj, uint16_t idx,