From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> This attempts to print the frame number of frames considered unacked (missing NOCP): > HCI Event: Disconnect Complete (0x05) plen 4 Status: Success (0x00) Handle: 2304 Address: XX:XX:XX:XX:XX:XX Reason: Connection Terminated By Local Host (0x16) [0]#102132 unacked [1]#102137 unacked [2]#102139 unacked [3]#102141 unacked [4]#102143 unacked [5]#102145 unacked [6]#102147 unacked [7]#102150 unacked --- monitor/packet.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/monitor/packet.c b/monitor/packet.c index d259bf9e9a25..ca7eaea21138 100644 --- a/monitor/packet.c +++ b/monitor/packet.c @@ -240,6 +240,14 @@ static struct index_buf_pool *get_pool(uint16_t index, uint8_t type) return NULL; } +static void print_unacked_frame(void *data, void *user_data) +{ + struct packet_frame *frame = data; + int *i = user_data; + + print_field("[%d]#%zu unacked", (*i)++, frame->num); +} + static struct packet_conn_data *release_handle(uint16_t handle) { int i; @@ -254,8 +262,13 @@ static struct packet_conn_data *release_handle(uint16_t handle) conn->destroy(conn, conn->data); pool = get_pool(conn->index, conn->type); - if (pool) + if (pool) { + int i = 0; + + queue_foreach(conn->tx_q, print_unacked_frame, + &i); pool->tx -= queue_length(conn->tx_q); + } queue_destroy(conn->tx_q, free); queue_destroy(conn->chan_q, free); -- 2.50.1