-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ESP32] - Make sure that BLE indications are sent sequentially #22446
[ESP32] - Make sure that BLE indications are sent sequentially #22446
Conversation
The next indication is sent only after the previous one is acked
c241872
to
cf837ea
Compare
PR #22446: Size comparison from 33f6a91 to cf837ea Increases (5 builds for bl602, cc13x2_26x2, psoc6, qpg, telink)
Decreases (3 builds for cc13x2_26x2, esp32, psoc6)
Full report (45 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
I stress this this patch yesterday and didn't see the problem, but I am not sure if this patch could address the original issue we hit since it is very hard to reproduce. From log, it shows the issue is in BLEManagerImpl::SendIndication() and receive error BLE_HS_ENOMEM, this error is still handled as an error with this patch. |
Thanks for running the test @yufengwangca. There is a chance that you received no memory error as the previous indications were not acked and they still consumed some memory, while the new one was sent IMO, even if the issue you encountered is related to something else, this fix is still required :-) |
…-chip#22446) The next indication is sent only after the previous one is acked
The next indication is sent only after the previous one is acked
Problem
@yufengwangca As per our offline discussion, please try it for your automated test issue reported in #22416
Change overview
A status of 0 indicates that the indication is sent from the BLE host. Ideally, we should move to the next step when the status received is BLE_HS_EDONE which indicates the indication ack is received. For any other status value, give an appropriate error.
In short, handle all the status values except for 0.
Testing