summaryrefslogtreecommitdiff
path: root/mesh
diff options
context:
space:
mode:
authorBrian Gix <brian.gix@intel.com>2022-09-22 15:31:01 -0700
committerBrian Gix <brian.gix@intel.com>2022-09-26 13:14:47 -0700
commit491be481a91c39d31f7908da8a2beea60237646e (patch)
treed7799a4df826a762f402c513ee3f20a8a2cd2e55 /mesh
parent7738e9ac416b8dd9aa8f3209b75554f85836c5f0 (diff)
downloadbluez-491be481a91c39d31f7908da8a2beea60237646e.tar.gz
mesh: Improve PB-ADV timing for reliability
Because provisioning is not speed dependent, Timing on outbound PB-ADV packets have been modified to be less likely missed by remote controlers with looser timing capabilities.
Diffstat (limited to 'mesh')
-rw-r--r--mesh/pb-adv.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/mesh/pb-adv.c b/mesh/pb-adv.c
index 83f922aa8..180b16258 100644
--- a/mesh/pb-adv.c
+++ b/mesh/pb-adv.c
@@ -23,6 +23,8 @@
#include "mesh/provision.h"
#include "mesh/pb-adv.h"
+#include "mesh/util.h"
+
struct pb_adv_session {
mesh_prov_open_func_t open_cb;
@@ -158,7 +160,7 @@ static void send_adv_segs(struct pb_adv_session *session, const uint8_t *data,
l_debug("max_seg: %2.2x", max_seg);
l_debug("size: %2.2x, CRC: %2.2x", size, buf[9]);
- pb_adv_send(session, MESH_IO_TX_COUNT_UNLIMITED, 200,
+ pb_adv_send(session, MESH_IO_TX_COUNT_UNLIMITED, 500,
buf, init_size + 10);
consumed = init_size;
@@ -174,7 +176,7 @@ static void send_adv_segs(struct pb_adv_session *session, const uint8_t *data,
buf[6] = (i << 2) | 0x02;
memcpy(buf + 7, data + consumed, seg_size);
- pb_adv_send(session, MESH_IO_TX_COUNT_UNLIMITED, 200,
+ pb_adv_send(session, MESH_IO_TX_COUNT_UNLIMITED, 500,
buf, seg_size + 7);
consumed += seg_size;
@@ -270,7 +272,8 @@ static void send_ack(struct pb_adv_session *session, uint8_t trans_num)
ack.trans_num = trans_num;
ack.opcode = PB_ADV_ACK;
- pb_adv_send(session, 1, 100, &ack, sizeof(ack));
+ pb_adv_send(session, MESH_IO_TX_COUNT_UNLIMITED, 500,
+ &ack, sizeof(ack));
}
static void send_close_ind(struct pb_adv_session *session, uint8_t reason)