mesh-db.h 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /* SPDX-License-Identifier: LGPL-2.1-or-later */
  2. /*
  3. *
  4. * BlueZ - Bluetooth protocol stack for Linux
  5. *
  6. * Copyright (C) 2019 Intel Corporation. All rights reserved.
  7. *
  8. *
  9. */
  10. #include "mesh/mesh-config.h"
  11. struct mesh_group;
  12. struct model_pub;
  13. bool mesh_db_create(const char *fname, const uint8_t token[8],
  14. const char *name);
  15. bool mesh_db_load(const char *fname);
  16. bool mesh_db_get_token(uint8_t token[8]);
  17. bool mesh_db_set_iv_index(uint32_t ivi);
  18. uint32_t mesh_db_get_iv_index(void);
  19. bool mesh_db_add_net_key(uint16_t idx);
  20. bool mesh_db_del_net_key(uint16_t idx);
  21. bool mesh_db_set_net_key_phase(uint16_t net_idx, uint8_t phase);
  22. bool mesh_db_add_app_key(uint16_t net_idx, uint16_t app_idx);
  23. bool mesh_db_del_app_key(uint16_t app_idx);
  24. bool mesh_db_get_addr_range(uint16_t *low, uint16_t *high);
  25. bool mesh_db_add_node(uint8_t uuid[16], uint8_t num_els, uint16_t unicast,
  26. uint16_t net_idx);
  27. bool mesh_db_del_node(uint16_t unicast);
  28. bool mesh_db_node_set_composition(uint16_t unicast, uint8_t *data,
  29. uint16_t len);
  30. bool mesh_db_add_provisioner(const char *name, uint8_t uuid[16],
  31. uint16_t unicast_low, uint16_t unicast_high,
  32. uint16_t group_low, uint16_t group_high);
  33. bool mesh_db_node_set_net_transmit(uint16_t unicast, uint8_t cnt,
  34. uint16_t interval);
  35. bool mesh_db_node_set_relay(uint16_t unicast, uint8_t relay, uint8_t cnt,
  36. uint16_t interval);
  37. bool mesh_db_node_set_proxy(uint16_t unicast, uint8_t proxy);
  38. bool mesh_db_node_set_friend(uint16_t unicast, uint8_t friend);
  39. bool mesh_db_node_set_beacon(uint16_t unicast, bool enabled);
  40. bool mesh_db_node_add_net_key(uint16_t unicast, uint16_t idx);
  41. bool mesh_db_node_del_net_key(uint16_t unicast, uint16_t idx);
  42. bool mesh_db_node_update_net_key(uint16_t unicast, uint16_t idx, bool updated);
  43. bool mesh_db_node_add_app_key(uint16_t unicast, uint16_t idx);
  44. bool mesh_db_node_del_app_key(uint16_t unicast, uint16_t idx);
  45. bool mesh_db_node_update_app_key(uint16_t unicast, uint16_t idx, bool updated);
  46. bool mesh_db_node_set_ttl(uint16_t unicast, uint8_t ttl);
  47. bool mesh_db_node_write_mode(uint16_t unicast, const char *keyword, int value);
  48. bool mesh_db_node_model_bind(uint16_t unicast, uint16_t ele_addr, bool vendor,
  49. uint32_t mod_id, uint16_t app_idx);
  50. bool mesh_db_node_model_unbind(uint16_t unicast, uint16_t ele_addr, bool vendor,
  51. uint32_t mod_id, uint16_t app_idx);
  52. bool mesh_db_node_model_add_sub(uint16_t unicast, uint16_t ele, bool vendor,
  53. uint32_t mod_id, uint16_t addr);
  54. bool mesh_db_node_model_del_sub(uint16_t unicast, uint16_t ele, bool vendor,
  55. uint32_t mod_id, uint16_t addr);
  56. bool mesh_db_node_model_overwrt_sub(uint16_t unicast, uint16_t ele, bool vendor,
  57. uint32_t mod_id, uint16_t addr);
  58. bool mesh_db_node_model_add_sub_virt(uint16_t unicast, uint16_t ele,
  59. bool vendor, uint32_t mod_id,
  60. uint8_t *label);
  61. bool mesh_db_node_model_del_sub_virt(uint16_t unicast, uint16_t ele,
  62. bool vendor, uint32_t mod_id,
  63. uint8_t *label);
  64. bool mesh_db_node_model_overwrt_sub_virt(uint16_t unicast, uint16_t ele,
  65. bool vendor, uint32_t mod_id,
  66. uint8_t *label);
  67. bool mesh_db_node_model_del_sub_all(uint16_t unicast, uint16_t ele, bool vendor,
  68. uint32_t mod_id);
  69. bool mesh_db_node_model_set_pub(uint16_t unicast, uint16_t ele_addr,
  70. bool vendor, uint32_t mod_id,
  71. struct model_pub *pub, bool virt);
  72. bool mesh_db_node_set_hb_pub(uint16_t unicast, uint16_t dst, uint16_t net_idx,
  73. uint8_t period_log, uint8_t ttl,
  74. uint16_t features);
  75. bool mesh_db_node_set_hb_sub(uint16_t unicast, uint16_t src, uint16_t dst);
  76. struct l_queue *mesh_db_load_groups(void);
  77. bool mesh_db_add_group(struct mesh_group *grp);
  78. bool mesh_db_add_rejected_addr(uint16_t unicast, uint32_t iv_index);
  79. bool mesh_db_clear_rejected(uint32_t iv_index);
  80. bool mesh_db_set_device_key(void *expt_cfg, uint16_t unicast, uint8_t key[16]);
  81. bool mesh_db_set_net_key(void *expt_cfg, uint16_t idx, uint8_t key[16],
  82. uint8_t *old_key, uint8_t phase);
  83. bool mesh_db_set_app_key(void *expt_cfg, uint16_t net_idx, uint16_t app_idx,
  84. uint8_t key[16], uint8_t *old_key);
  85. void *mesh_db_prepare_export(void);
  86. bool mesh_db_finish_export(bool is_error, void *expt_cfg, const char *fname);