Bluetooth: controller: split: Port random slave event backoff
Port the implementation that performed random backoff of forced slave event scheduling. When peer master implementation skips events, multiple local overlapping slaves will randomize their forced scheduling to break out of a round robin pattern increasing the chance of synchronizing with their masters again. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
4052bac93f
commit
dd3e8241e9
3 changed files with 6 additions and 11 deletions
|
@ -1009,16 +1009,13 @@ void ull_conn_done(struct node_rx_event_done *done)
|
|||
if (latency_event) {
|
||||
force = 1U;
|
||||
} else {
|
||||
/* FIXME:*/
|
||||
#if 0
|
||||
force = lll->slave.force & 0x01;
|
||||
force = conn->slave.force & 0x01;
|
||||
|
||||
/* rotate force bits */
|
||||
lll->slave.force >>= 1;
|
||||
conn->slave.force >>= 1;
|
||||
if (force) {
|
||||
lll->slave.force |= BIT(31);
|
||||
conn->slave.force |= BIT(31);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -37,6 +37,7 @@ struct ll_conn {
|
|||
|
||||
struct {
|
||||
u8_t fex_valid:1;
|
||||
u32_t force;
|
||||
u32_t ticks_to_offset;
|
||||
} slave;
|
||||
|
||||
|
|
|
@ -116,11 +116,8 @@ void ull_slave_setup(memq_link_t *link, struct node_rx_hdr *rx,
|
|||
conn->apto_reload;
|
||||
#endif /* CONFIG_BT_CTLR_LE_PING */
|
||||
|
||||
/* FIXME: */
|
||||
#if 0
|
||||
memcpy((void *)&lll->slave.force, &lll->access_addr[0],
|
||||
sizeof(lll->slave.force));
|
||||
#endif
|
||||
memcpy((void *)&conn->slave.force, &lll->access_addr[0],
|
||||
sizeof(conn->slave.force));
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_PRIVACY)
|
||||
u8_t own_addr_type = pdu_adv->rx_addr;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue