-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Bluetooth: controller: Fix encryption setup to be queueable #15335
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
Bluetooth: controller: Fix encryption setup to be queueable #15335
Conversation
ee870a3 to
8f0f6f6
Compare
|
@joerchan @carlescufi Ran encryption related 37 conformance tests, no regression. |
|
@thoh-ot is unable to review this until after Easter holidays. Hence, could we find another reviewer? |
mped-oticon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This pertains to the pre-split controller, which only permits Oticon to do a shallow review.
Nevertheless, I have read through it and found no issues.
Qbicz
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#15012 which was fixed in #15186 still works with this PR. Security can still be established after any number of reconnections. Tested with nRF52 Desktop firmware on pca10059 + pca20041.
CC @carlescufi
8f0f6f6 to
13d22a3
Compare
|
Thanks @mped-oticon and @Qbicz. I have fixed commit message for misspelled 'not' -> 'now' and 'at' -> 'after'. |
|
@Qbicz thank you for testing. |
|
@cvinayak Actually now I noticed after reconnecting the peripheral 4 times, I get an assertion on central. I can reproduce it every time (after rebooting central 4th reconnection from peripheral causes this error again). |
This reverts commit 0cf82cd. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix the controller implementation to make start encryption queueable if there is any control procedure in progress. The context related to encryption procedure is now shared so that it will be used after the ongoing procedure completes. The fix here maintains the old functionality of serializing the queued data and LL Encryption Request PDU, so that data queued before start encryption is acknowledged. Fixes zephyrproject-rtos#15012. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
13d22a3 to
33d0097
Compare
|
@cvinayak tested with latest pushed changes. I did connect+encrypt+disconnect 15 times and cannot see any issue anymore. Thanks for help @carlescufi and @joerchan |
Fix the encryption setup queueing implementation to avoid overlapping with local initiated Length Update Procedure. Fixes zephyrproject-rtos#15733. Relates to zephyrproject-rtos#15335, and zephyrproject-rtos#15186. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Port the fix for the controller implementation to make start encryption queueable if there is any control procedure in progress. Refer to zephyrproject-rtos#15335. Relates to zephyrproject-rtos#15335, zephyrproject-rtos#15186, zephyrproject-rtos#15958 and zephyrproject-rtos#14636. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix the controller implementation to make start encryption
queueable if there is any control procedure in progress.
The context related to encryption procedure is not shared so
that it will be used as the ongoing procedure completes.
The fix here maintains the old functionality of serializing
the queued data and LL Encryption Request PDU, so that data
queued before start encryption is acknowledged.
Fixes #15012. (which was marked as fixed but still had an outstanding issue)
Signed-off-by: Vinayak Kariappa Chettimada vich@nordicsemi.no