Bluetooth: Mesh: HB pub status for unassigned addr
Fixes issue where Heartbeat Publication Status message sends garbage data when destination field is set to the unassigned address. MshPRTv1.1, section 4.4.1.2.15: "When the Destination field is set to the unassigned address, the values of the CountLog, PeriodLog, TTL, and Features fields shall be set to 0x00 and NetKeyIndex field shall be set to 0x0000." Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
This commit is contained in:
parent
c51bb9c13b
commit
46d9c97991
1 changed files with 9 additions and 5 deletions
|
@ -2267,11 +2267,15 @@ static int hb_pub_send_status(struct bt_mesh_model *model,
|
|||
net_buf_simple_add_u8(&msg, status);
|
||||
|
||||
net_buf_simple_add_le16(&msg, pub->dst);
|
||||
net_buf_simple_add_u8(&msg, hb_pub_count_log(pub->count));
|
||||
net_buf_simple_add_u8(&msg, bt_mesh_hb_log(pub->period));
|
||||
net_buf_simple_add_u8(&msg, pub->ttl);
|
||||
net_buf_simple_add_le16(&msg, pub->feat);
|
||||
net_buf_simple_add_le16(&msg, pub->net_idx);
|
||||
if (pub->dst == BT_MESH_ADDR_UNASSIGNED) {
|
||||
(void)memset(net_buf_simple_add(&msg, 7), 0, 7);
|
||||
} else {
|
||||
net_buf_simple_add_u8(&msg, hb_pub_count_log(pub->count));
|
||||
net_buf_simple_add_u8(&msg, bt_mesh_hb_log(pub->period));
|
||||
net_buf_simple_add_u8(&msg, pub->ttl);
|
||||
net_buf_simple_add_le16(&msg, pub->feat);
|
||||
net_buf_simple_add_le16(&msg, pub->net_idx);
|
||||
}
|
||||
|
||||
if (bt_mesh_model_send(model, ctx, &msg, NULL, NULL)) {
|
||||
LOG_ERR("Unable to send Heartbeat Publication Status");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue