You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by an...@apache.org on 2019/07/10 09:02:36 UTC
[mynewt-nimble] branch master updated: nimble/ll: Do not drop event
on failed PDU reschedule
This is an automated email from the ASF dual-hosted git repository.
andk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git
The following commit(s) were added to refs/heads/master by this push:
new 137f259 nimble/ll: Do not drop event on failed PDU reschedule
137f259 is described below
commit 137f2594de1e46e2db12056655b82a39083f9c53
Author: Andrzej Kaczmarek <an...@codecoup.pl>
AuthorDate: Mon Jul 8 22:36:33 2019 +0200
nimble/ll: Do not drop event on failed PDU reschedule
For unknown reason we drop advertising event when failed to reschedule
advertising PDU. This does not affect legacy advertising too much since
we'll just skip one or two channels, but in case of extended advertising
it also removes AUX which means complete extended advertising event is
lost.
In addition, nRF51 is not fast enough to ensure all PDUs on primary
channels can be scheduled before AUX so this effectively means extended
advertising on nRF51 is unusable.
With this fix we won't drop complete event if PDU reschedule fails, just
move to next channel. It allows extended advertising to be usable on
nRF51, but we should also allow to relax AUX scheduling constraints
which will allow to schedule all primary PDUs properly - this will be
addressed later.
---
nimble/controller/src/ble_ll_adv.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/nimble/controller/src/ble_ll_adv.c b/nimble/controller/src/ble_ll_adv.c
index 4192917..86033a6 100644
--- a/nimble/controller/src/ble_ll_adv.c
+++ b/nimble/controller/src/ble_ll_adv.c
@@ -4437,13 +4437,13 @@ ble_ll_adv_done(struct ble_ll_adv_sm *advsm)
}
/*
- * In the unlikely event we cant reschedule this, just post a done
- * event and we will reschedule the next advertising event
+ * In the unlikely event we can't reschedule this, just post a done event
+ * and we will reschedule the next advertising PDU.
*/
rc = ble_ll_sched_adv_resched_pdu(&advsm->adv_sch);
if (rc) {
STATS_INC(ble_ll_stats, adv_resched_pdu_fail);
- ble_ll_adv_drop_event(advsm);
+ ble_npl_eventq_put(&g_ble_ll_data.ll_evq, &advsm->adv_txdone_ev);
}
}