Message ID | 20200806225523.109092-1-inga.stotland@intel.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [BlueZ] mesh: Use correct TTL value to send model publication | expand |
Applied On Thu, 2020-08-06 at 15:55 -0700, Inga Stotland wrote: > When sending model publishing data, use TTL value configured for > that publication instead of the default TTL value used for regular > messages. > --- > mesh/model.c | 4 ++-- > mesh/model.h | 2 +- > mesh/node.c | 11 ++++------- > 3 files changed, 7 insertions(+), 10 deletions(-) > > diff --git a/mesh/model.c b/mesh/model.c > index ef7668147..043ad1d70 100644 > --- a/mesh/model.c > +++ b/mesh/model.c > @@ -1022,7 +1022,7 @@ done: > } > > int mesh_model_publish(struct mesh_node *node, uint32_t id, uint16_t src, > - uint8_t ttl, const void *msg, uint16_t msg_len) > + const void *msg, uint16_t msg_len) > { > struct mesh_net *net = node_get_net(node); > struct mesh_model *mod; > @@ -1063,7 +1063,7 @@ int mesh_model_publish(struct mesh_node *node, uint32_t id, uint16_t src, > > result = msg_send(node, mod->pub->credential != 0, src, > mod->pub->addr, mod->pub->idx, net_idx, > - label, ttl, false, msg, msg_len); > + label, mod->pub->ttl, false, msg, msg_len); > > return result ? MESH_ERROR_NONE : MESH_ERROR_FAILED; > } > diff --git a/mesh/model.h b/mesh/model.h > index 0d8dddf92..e4906e330 100644 > --- a/mesh/model.h > +++ b/mesh/model.h > @@ -103,7 +103,7 @@ bool mesh_model_send(struct mesh_node *node, uint16_t src, uint16_t dst, > uint8_t ttl, bool segmented, > const void *msg, uint16_t msg_len); > int mesh_model_publish(struct mesh_node *node, uint32_t id, uint16_t src, > - uint8_t ttl, const void *msg, uint16_t msg_len); > + const void *msg, uint16_t msg_len); > 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, > diff --git a/mesh/node.c b/mesh/node.c > index 3dca73cef..4b70587ae 100644 > --- a/mesh/node.c > +++ b/mesh/node.c > @@ -1983,7 +1983,7 @@ static struct l_dbus_message *publish_call(struct l_dbus *dbus, > struct l_dbus_message_iter iter_data; > uint16_t mod_id, src; > struct node_element *ele; > - uint8_t *data, ttl; > + uint8_t *data; > uint32_t len, id; > int result; > > @@ -2010,10 +2010,8 @@ static struct l_dbus_message *publish_call(struct l_dbus *dbus, > return dbus_error(msg, MESH_ERROR_INVALID_ARGS, > "Incorrect data"); > > - ttl = mesh_net_get_default_ttl(node->net); > - > id = SET_ID(SIG_VENDOR, mod_id); > - result = mesh_model_publish(node, id, src, ttl, data, len); > + result = mesh_model_publish(node, id, src, data, len); > > if (result != MESH_ERROR_NONE) > return dbus_error(msg, result, NULL); > @@ -2030,7 +2028,7 @@ static struct l_dbus_message *vendor_publish_call(struct l_dbus *dbus, > struct l_dbus_message_iter iter_data; > uint16_t src, mod_id, vendor_id; > struct node_element *ele; > - uint8_t ttl, *data = NULL; > + uint8_t *data = NULL; > uint32_t len; > int result; > > @@ -2057,8 +2055,7 @@ static struct l_dbus_message *vendor_publish_call(struct l_dbus *dbus, > return dbus_error(msg, MESH_ERROR_INVALID_ARGS, > "Incorrect data"); > > - ttl = mesh_net_get_default_ttl(node->net); > - result = mesh_model_publish(node, SET_ID(vendor_id, mod_id), src, ttl, > + result = mesh_model_publish(node, SET_ID(vendor_id, mod_id), src, > data, len); > > if (result != MESH_ERROR_NONE)
diff --git a/mesh/model.c b/mesh/model.c index ef7668147..043ad1d70 100644 --- a/mesh/model.c +++ b/mesh/model.c @@ -1022,7 +1022,7 @@ done: } int mesh_model_publish(struct mesh_node *node, uint32_t id, uint16_t src, - uint8_t ttl, const void *msg, uint16_t msg_len) + const void *msg, uint16_t msg_len) { struct mesh_net *net = node_get_net(node); struct mesh_model *mod; @@ -1063,7 +1063,7 @@ int mesh_model_publish(struct mesh_node *node, uint32_t id, uint16_t src, result = msg_send(node, mod->pub->credential != 0, src, mod->pub->addr, mod->pub->idx, net_idx, - label, ttl, false, msg, msg_len); + label, mod->pub->ttl, false, msg, msg_len); return result ? MESH_ERROR_NONE : MESH_ERROR_FAILED; } diff --git a/mesh/model.h b/mesh/model.h index 0d8dddf92..e4906e330 100644 --- a/mesh/model.h +++ b/mesh/model.h @@ -103,7 +103,7 @@ bool mesh_model_send(struct mesh_node *node, uint16_t src, uint16_t dst, uint8_t ttl, bool segmented, const void *msg, uint16_t msg_len); int mesh_model_publish(struct mesh_node *node, uint32_t id, uint16_t src, - uint8_t ttl, const void *msg, uint16_t msg_len); + const void *msg, uint16_t msg_len); 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, diff --git a/mesh/node.c b/mesh/node.c index 3dca73cef..4b70587ae 100644 --- a/mesh/node.c +++ b/mesh/node.c @@ -1983,7 +1983,7 @@ static struct l_dbus_message *publish_call(struct l_dbus *dbus, struct l_dbus_message_iter iter_data; uint16_t mod_id, src; struct node_element *ele; - uint8_t *data, ttl; + uint8_t *data; uint32_t len, id; int result; @@ -2010,10 +2010,8 @@ static struct l_dbus_message *publish_call(struct l_dbus *dbus, return dbus_error(msg, MESH_ERROR_INVALID_ARGS, "Incorrect data"); - ttl = mesh_net_get_default_ttl(node->net); - id = SET_ID(SIG_VENDOR, mod_id); - result = mesh_model_publish(node, id, src, ttl, data, len); + result = mesh_model_publish(node, id, src, data, len); if (result != MESH_ERROR_NONE) return dbus_error(msg, result, NULL); @@ -2030,7 +2028,7 @@ static struct l_dbus_message *vendor_publish_call(struct l_dbus *dbus, struct l_dbus_message_iter iter_data; uint16_t src, mod_id, vendor_id; struct node_element *ele; - uint8_t ttl, *data = NULL; + uint8_t *data = NULL; uint32_t len; int result; @@ -2057,8 +2055,7 @@ static struct l_dbus_message *vendor_publish_call(struct l_dbus *dbus, return dbus_error(msg, MESH_ERROR_INVALID_ARGS, "Incorrect data"); - ttl = mesh_net_get_default_ttl(node->net); - result = mesh_model_publish(node, SET_ID(vendor_id, mod_id), src, ttl, + result = mesh_model_publish(node, SET_ID(vendor_id, mod_id), src, data, len); if (result != MESH_ERROR_NONE)