summaryrefslogtreecommitdiff
path: root/mesh/model.h
diff options
context:
space:
mode:
authorInga Stotland <inga.stotland@intel.com>2020-08-24 17:54:33 -0700
committerBrian Gix <brian.gix@intel.com>2020-08-26 08:46:55 -0700
commitf2dc6f99f08b2ac1ef310fce14abc69f9116a5d7 (patch)
tree530facaba992328d2c66a077f6dbfc00a6c88720 /mesh/model.h
parent879ea56829c49e94f1015ca13715709ffe970388 (diff)
downloadbluez-f2dc6f99f08b2ac1ef310fce14abc69f9116a5d7.tar.gz
mesh: Handle "options" dictionary in Send/Publish methods
This adds processing of "options" dictionary argument in Send, DevKeySend & Publish methods on mesh.Node interface. This new argument is a dictionary that currently has only one new key word defined for Send() and DevKeySend(): "ForceSegmented" - to force small payloads to be sent as one-segment messages In case of Publish(), and additional keyword is defined "Vendor" - 16-bit Company ID as defined by the Bluetooth SIG Other key words may be defined in future to accommodate evolving requirements of Mesh Profile specification. Also, the addition of "options" dictionary to Publish allows to eliminate VendorPublish() method (taken care by "Vendor" keyword).
Diffstat (limited to 'mesh/model.h')
-rw-r--r--mesh/model.h9
1 files changed, 3 insertions, 6 deletions
diff --git a/mesh/model.h b/mesh/model.h
index a1afedd19..fe0648d04 100644
--- a/mesh/model.h
+++ b/mesh/model.h
@@ -112,19 +112,16 @@ int mesh_model_sub_get(struct mesh_node *node, uint16_t ele_addr, uint32_t id,
uint8_t *buf, uint16_t buf_size, uint16_t *size);
uint16_t mesh_model_cfg_blk(uint8_t *pkt);
bool mesh_model_send(struct mesh_node *node, uint16_t src, uint16_t dst,
- uint16_t app_idx, uint16_t net_idx,
- uint8_t ttl, bool segmented,
- const void *msg, uint16_t msg_len);
+ uint16_t app_idx, uint16_t net_idx, uint8_t ttl,
+ bool segmented, uint16_t len, const void *data);
int mesh_model_publish(struct mesh_node *node, uint32_t id, uint16_t src,
- const void *msg, uint16_t msg_len);
+ bool segmented, uint16_t len, const void *data);
bool mesh_model_rx(struct mesh_node *node, bool szmict, uint32_t seq0,
uint32_t seq, uint32_t iv_index, uint16_t net_idx,
uint16_t src, uint16_t dst, uint8_t key_aid,
const uint8_t *data, uint16_t size);
-void mesh_model_app_key_generate_new(struct mesh_node *node, uint16_t net_idx);
void mesh_model_app_key_delete(struct mesh_node *node, uint16_t ele_idx,
struct l_queue *models, uint16_t app_idx);
-struct l_queue *mesh_model_get_appkeys(struct mesh_node *node);
uint16_t mesh_model_opcode_set(uint32_t opcode, uint8_t *buf);
bool mesh_model_opcode_get(const uint8_t *buf, uint16_t size, uint32_t *opcode,
uint16_t *n);