This is an automated email from the ASF dual-hosted git repository. rymek pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git
commit 44374ce86ca0063adb1691cb4e225c0fe7b010af Author: Ćukasz Rymanowski <[email protected]> AuthorDate: Mon Nov 5 11:43:03 2018 +0100 nimble/ll: Fix handling TERMINATE_IND When being master, we need to takie into acount MD flag when ACKing TERMINATE_IND packet. Spec does not says that ACK shall be in the same Connection Event This fixes: LL/CON/INI/BV-06 and LL/CON/INI/BV-07 --- nimble/controller/src/ble_ll_conn.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nimble/controller/src/ble_ll_conn.c b/nimble/controller/src/ble_ll_conn.c index 4b6704d..26090e5 100644 --- a/nimble/controller/src/ble_ll_conn.c +++ b/nimble/controller/src/ble_ll_conn.c @@ -3924,8 +3924,9 @@ chk_rx_terminate_ind: && (rx_pyld_len == (1 + BLE_LL_CTRL_TERMINATE_IND_LEN))) { connsm->csmflags.cfbit.terminate_ind_rxd = 1; connsm->rxd_disconnect_reason = rxbuf[3]; - reply = 1; - } else if (connsm->conn_role == BLE_LL_CONN_ROLE_MASTER) { + } + + if (connsm->conn_role == BLE_LL_CONN_ROLE_MASTER) { reply = CONN_F_LAST_TXD_MD(connsm) || (hdr_byte & BLE_LL_DATA_HDR_MD_MASK); } else { /* A slave always replies */
