Thanks for sharing the sample Min used channels procedure.
I had a quick look and the new design seems to be very elegant. Good to see the req/ack logic gone and using explicit states. I actually used explicit states in the draft LE PC feature implementation and tried to plug it in with the current master. I think it will integrate better with the new design but let me continue with the current master for the time being.
Control procedures is a major implementation in the controller, the new overhaul work is already into its 10th calendar month.
I would not consider adding new control procedures to be ever straight forward considering the software requirements that needs to be addressed.
Yes, the overhaul is to introduce a design pattern, to address issues and to cover missing software requirements of currently implemented control procedures.
All controller development of BT adopted features happen in the open, you can always send draft PRs and solicit comments on github.
If you don’t have code/PR, you can start with a github issue to get discussions started.
An example of adding a simple control procedure could be this:
From: Khaled Elsayed <khaled.elsayed@...>
Sent: 26 August 2020 14:30
To: Chettimada, Vinayak Kariappa <vinayak.kariappa.chettimada@...>
Subject: Re: [Zephyr-devel] BLE Controller Core Spec 5.2 Power Control Feature
Thanks Vinayak for your informative reply and addressing issues 1 to 4.
Glad to know that Zephyr link layer control procedure design is going through a major overhaul. It is much needed. It was not a straight forward task to add the LE PC draft code.
I am cleaning up the LE PC code and should make a PR as soon as it is ready. Can I share it without testing? Just the messages and message processing logic.
Currently the link layer is undergoing a major overhaul of the control procedure design. You can refer to the changes in the topic-ble-llcp branch.
That said, you are welcome to send a draft PR with your implementation, reviewers will guide you towards contributions that can be reused towards the new design.
Acceptable power reduction would have to be based on custom algorithm and specific to vendors.
Reviewers and automated test cases should help you with LLCP data flow management
Yes, you should reuse the already defined connection context and HAL interfaces that the dynamic Tx Power feature uses.
Most development happens test driven, either using unit tests, babblesim, and manual using tests added in tests/Bluetooth/shell application. You can add your tests and test applications. Unit tests and babblesim are exercised in Zephyr CI on every PR submission.
You can start by involving reviewers early by sending in draft PRs.
On Behalf Of Khaled Elsayed via
Sent: 24 August 2020 14:17
Subject: [Zephyr-devel] BLE Controller Core Spec 5.2 Power Control Feature
I am working on the LE power control feature of Core Spec 5.2. I am almost 60-70% done defining the air-messages and the
state machine within the llcp and he actions/behavior upon receiving PWR_CTRL_REQ/RSP or a related REJ. Also, not currently handling PWR_CTRL_IND and this should come later I guess. Feature still untested but it is in the pipeline.
Main issues now are:
1) Handling the APR (acceptable power reduction) in the PWR_CTRL_RSP
2) Insuring there are no leaks or any PWR_CTRL received pdu not released
3) Issuing command to change PHY TX power (I used the same method as in the host based TX power that this PR https://github.com/zephyrproject-rtos/zephyr/pull/19779 is
addressing which seems to only change the connection TX power in the connection record and I guess the radio manager will then somehow use that to control the PHY?)
4) Overall testing. I need help here from the Zephyr Bluetooth developers.
Since this is my first potential contribution to Zephyr, I am following the contribution guidelines by posting in the mailing
list to discuss the feature before proceeding with a pull request.
The information contained in this message is privileged, confidential or otherwise protected from use and disclosure. If you are not the intended
recipient, you are hereby notified that any review, disclosure, copying or dissemination of this message or the taking of any action in reliance on its contents, or other use is strictly prohibited. If you received this message in error, please notify us
immediately by replying to the message and deleting it from your computer. Thank you.
The information contained in this message is privileged, confidential or otherwise protected from use and disclosure. If you are not the intended recipient, you are hereby notified that any review, disclosure, copying or dissemination of this message or the taking of any action in reliance on its contents, or other use is strictly prohibited. If you received this message in error, please notify us immediately by replying to the message and deleting it from your computer. Thank you.