Hardware: nRF52840dk
SDK: NCS v2.0.0
application: 6064.coap_client_bt_encrypt.zip
Calling bt_encrypt_be() during OpenThread network traffic hangs the device when using MPSL with OpenThread 1.2.
The issue does not occur when using OpenThread 1.1.
steps to reproduce:
- build & flash attached appplication using OpenThread 1.2 to nRF52840dk
$~ west build -c -b nrf52840dk_nrf52840 . -DOVERLAY_CONFIG=overlay-multiprotocol_ble.conf && west flash
- Application is based on ncs samples/openthread/coap_client with call to bt_encrypt_be() in sys_work thread after bluetooth is connected.
- Connect serial console to USB ACM device. In my case:
$~ screen /dev/ttyACM1 -b 115200
- Using nRF Connect for Mobile, repeatedly connect/disconnect with the device and confirm that it does not hang.
- Disconnect from the device.
- Using the USB shell, create or join a Thread network and generate outgoing network traffic.
ot ifconfig up ot thread start ot ping ff03::1 100 10
- note: my device was already commissioned, and I did not test the thread formation commands listed above.
- additional note: my device was part of a large & somewhat busy Thread network - I have not yet tested with a singleton.
- While the ping test is running, attempt to connect to the device with BLE - in my environment, it hangs the device within bt_encrypt_be().
To test with OpenThread 1.1:
- In prj.conf, enable CONFIG_OPENTHREAD_THREAD_VERSION_1_1=y
- rebuild, reflash, and retest
- In my environment, bt_encrypt_be() runs in harmony with OpenThread 1.1 activity and the device does not hang.
Should I be able to use bt_encrypt_be() with OpenThread 1.2? How? Thank you.