In case there are pending two control procedures: local and remote, and remote device sends LL_REJECT_IND PDU then assertion happened. ull_cp_rx function triggers assertion because LL_REJECT_IND is considered as expected packet for all local and remote control procedures. That is not correct. It does not allow local procedure to handle a response and stops a device on assert. A remote device should not send LL_REJECT_IND PDU for locally initiated control procedures, hence local device should not expect to receive LL_REJECT_IND PDU to be expected one for pending remote control procedure. Remote device is allowed to send LL_REJECT_EXT_IND PDU for a locally initiated control procedures. The LL_REJECT_EXT_IND PDU has a Reject- Opcode that identifies rejected control procedure, hence is may be expected by local device. The commit provides changes that prevent the Controller assertion in described case. Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no> |
||
|---|---|---|
| .. | ||
| crypto | ||
| hal | ||
| hci | ||
| include | ||
| ll_sw | ||
| ticker | ||
| util | ||
| CMakeLists.txt | ||
| Kconfig | ||
| Kconfig.df | ||
| Kconfig.dtm | ||
| Kconfig.ll_sw_split | ||