Commit c77469c
nimble/host: L2CAP fallback for LL conn param rejection
When the peripheral calls ble_gap_update_params() and the peer's
supported features indicate CONN_PARAM_REQUEST support, NimBLE sends
the LE Connection Update HCI command. However, if the local controller
does not support the BLE 4.1 LL Connection Parameters Request procedure
(e.g. an external controller with limited feature set), the HCI command
is rejected synchronously with BLE_ERR_UNSUPP_REM_FEATURE (0x1a).
NimBLE already handles this error asynchronously in
ble_gap_rx_update_complete() by falling back to L2CAP signaling, but
the synchronous rejection path had no such fallback, causing the update
to fail and be retried futilely by upper layers.
Add a synchronous fallback: when ble_gap_update_tx() returns
BLE_ERR_UNSUPP_REM_FEATURE and the local device is the slave, switch to
the L2CAP Connection Parameter Update Request procedure.
Signed-Off-By: Gerard Marull-Paretas <[email protected]>
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>1 parent 0172287 commit c77469c
1 file changed
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6347 | 6347 | | |
6348 | 6348 | | |
6349 | 6349 | | |
| 6350 | + | |
| 6351 | + | |
| 6352 | + | |
| 6353 | + | |
| 6354 | + | |
| 6355 | + | |
| 6356 | + | |
| 6357 | + | |
| 6358 | + | |
| 6359 | + | |
| 6360 | + | |
| 6361 | + | |
| 6362 | + | |
6350 | 6363 | | |
6351 | 6364 | | |
6352 | 6365 | | |
| |||
0 commit comments