Hi all,
need to establish a CIS connection to an already connected BLE device with security level >= 2.
However when the ACL connection has security level >= 2 and the host sends the HCI command "HCI_LE_Create_CIS" (0x2064) to the Softdevice, the Softdevice responds with status "Encryption Mode not Acceptable" (0x25).
Is this not supported or am I missing some Kconfig?
Using nRF52840 with NCS 2.9.0.
Flow:
- Connect ACL connection
- Upgrade security level to 2 or 3
- Create CIG
- Create CIS - FAILS
Zephyr Logs:
ACL connection security: [ 0.904327] <inf> _conn: Security changed for C0:2F:98:7B:3A:84 (random) (level 2) Creating CIG: [ 3.940063] <dbg> bt_hci_core: opcode 0x2062 param_len 51 [ 3.940063] <dbg> bt_hci_core: buf 0x20025160 [ 3.940093] <dbg> bt_iso: id 0, latency C to P 50, latency P to C 50, interval C to P 45000, interval P to C 45000, sca 0, packing 0, framing 0, num_cis 4 [ 3.940124] <dbg> bt_iso: [0]: id 0, c_phy 2, c_sdu 247, c_rtn 3, p_phy 2, p_sdu 247, p_rtn 3 [ 3.940155] <dbg> bt_iso: [1]: id 1, c_phy 2, c_sdu 247, c_rtn 3, p_phy 2, p_sdu 247, p_rtn 3 [ 3.940185] <dbg> bt_iso: [2]: id 2, c_phy 2, c_sdu 247, c_rtn 3, p_phy 2, p_sdu 247, p_rtn 3 [ 3.940216] <dbg> bt_iso: [3]: id 3, c_phy 2, c_sdu 247, c_rtn 3, p_phy 2, p_sdu 247, p_rtn 3 [ 3.940216] <dbg> bt_hci_core: buf 0x20025160 opcode 0x2062 len 54 [ 3.940246] <dbg> bt_hci_core: kick TX [ 3.940277] <dbg> bt_hci_core: TX process start [ 3.940307] <dbg> bt_hci_core: fetch cmd [ 3.940307] <dbg> bt_hci_core: Sending command 0x2062 (buf 0x20025160) to driver [ 3.940338] <dbg> bt_hci_core: buf 0x20025160 len 54 type 0 [ 3.940338] <dbg> bt_sdc_hci_driver: [ 3.940338] <dbg> bt_sdc_hci_driver: [ 3.940734] <dbg> bt_sdc_hci_driver: Exit: 0 [ 3.940734] <dbg> bt_hci_core: kick TX [ 3.940795] <dbg> bt_sdc_hci_driver: Command Complete (0x2062) status: 0x00, ncmd: 1, len 14 [ 3.940826] <dbg> bt_hci_core: buf 0x20024f3c len 16 [ 3.940856] <dbg> bt_hci_core: opcode 0x2062 [ 3.940887] <dbg> bt_hci_core: opcode 0x2062 status 0x00 buf 0x20024f3c [ 3.940887] <dbg> bt_hci_core: sync cmd released [ 3.940917] <dbg> bt_hci_core: kick TX [ 3.941040] <dbg> bt_hci_core: TX process start [ 3.941040] <dbg> bt_conn: start [ 3.941040] <dbg> bt_conn: no connection wants to do stuff [ 3.941101] <dbg> bt_hci_core: rsp 0x20025160 opcode 0x2062 len 11 Creating CIS: [ 3.941131] <dbg> bt_hci_core: opcode 0x2064 param_len 5 [ 3.941162] <dbg> bt_hci_core: buf 0x20025160 [ 3.941192] <dbg> bt_hci_core: buf 0x20025160 opcode 0x2064 len 8 [ 3.941223] <dbg> bt_hci_core: kick TX [ 3.941253] <dbg> bt_hci_core: TX process start [ 3.941253] <dbg> bt_hci_core: fetch cmd [ 3.941284] <dbg> bt_hci_core: Sending command 0x2064 (buf 0x20025160) to driver [ 3.941284] <dbg> bt_hci_core: buf 0x20025160 len 8 type 0 [ 3.941314] <dbg> bt_sdc_hci_driver: [ 3.941314] <dbg> bt_sdc_hci_driver: [ 3.941375] <dbg> bt_sdc_hci_driver: Exit: 0 [ 3.941375] <dbg> bt_hci_core: kick TX [ 3.941436] <dbg> bt_sdc_hci_driver: Command Status (0x2064) status: 0x25 [ 3.941467] <dbg> bt_hci_core: buf 0x20024f3c len 6 [ 3.941467] <dbg> bt_hci_core: opcode 0x2064 [ 3.941528] <dbg> bt_hci_core: opcode 0x2064 status 0x25 buf 0x20024f3c [ 3.941528] <dbg> bt_hci_core: sync cmd released [ 3.941558] <dbg> bt_hci_core: kick TX [ 3.941650] <dbg> bt_hci_core: TX process start [ 3.941680] <dbg> bt_conn: start [ 3.941680] <dbg> bt_conn: no connection wants to do stuff [ 3.941772] <wrn> bt_hci_core: opcode 0x2064 status 0x25 [ 3.941772] <dbg> bt_iso: Failed to connect CISes: -5
Relevant prj.conf:
# Security CONFIG_BT_SMP=y CONFIG_BT_BONDABLE=y CONFIG_BT_MAX_PAIRED=5 CONFIG_SETTINGS=y CONFIG_BT_SETTINGS=y CONFIG_BT_FIXED_PASSKEY=y CONFIG_BT_USE_DEBUG_KEYS=n CONFIG_BT_GATT_AUTO_SEC_REQ=y # ISO (CIS) configuration CONFIG_BT_ISO_CENTRAL=y CONFIG_BT_ISO_PERIPHERAL=y CONFIG_BT_ISO_TX_MTU=247 CONFIG_BT_ISO_RX_MTU=247 CONFIG_BT_ISO_MAX_CHAN=4 CONFIG_BT_ISO_MAX_CIG=1 CONFIG_BT_ISO_TX_BUF_COUNT=10 CONFIG_BT_ISO_RX_BUF_COUNT=10 CONFIG_BT_CTLR_CONN_ISO_STREAMS_PER_GROUP=4
Any help is highly appreciated.