2022-12-15 19:56:32

by Jay Foster

[permalink] [raw]
Subject: Need Help Understanding HCI Disconnect Completion Events

A customer using my company's product is experiencing Bluetooth
disconnects using a PAN networking application.  The btmon capture on
the NAP role side sees a disconnect completion event with reason =
timeout coming from the adapter (RTL8821CU).  The capture shows a
sequence like:

185.515624 receive HCI_EVT (Rcvd Number of Completed Packets)
195.512404 send HCI ACL Packet, BNEP protocol, TLSv1.2 data
195.512519 send HCI ACL Packet, BNEP protocol, TLSv1.2 Encrypted Alert
196.321628 send HCI ACL Packet, BNEP protocol, TCP Retransmission of
Encrypted Alert
197.456727 send HCI ACL Packet, BNEP protocol, TCP RST,ACK
206.716499 receive HCI_EVT (Rcvd Disconnect Complete, Reason: Connection
Timeout (0x08)

The disconnect completion event arrives about 20 seconds after the last
frame received from the adapter.  It appears that the other side of the
connection stops responding, or the local side stops receiving the
responses, right after time 185.515624.

Is the disconnect completion event generated by the adapter (adapter FW)?
Is the disconnect completion event in response to something sent by the
other side of the connection (PANU role)?
What types of things would cause a disconnect completion event to be
received by the HCI driver?

The very next frame in the capture is at time 206.747045 and is an
HCI_EVT received from the adapter (Rcvd Connect Request).  This is the
PANU role side immediately reconnecting.  This seems to indicate to me
that the other side knows about the disconnect right away.

I have had no success thus far reproducing this myself.  I am looking
for better understanding of the disconnect completion event with timeout
to guide me in assessing causes.

Jay


2022-12-15 20:31:26

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: Need Help Understanding HCI Disconnect Completion Events

Hi Jay,

On Thu, Dec 15, 2022 at 11:56 AM Jay Foster <[email protected]> wrote:
>
> A customer using my company's product is experiencing Bluetooth
> disconnects using a PAN networking application. The btmon capture on
> the NAP role side sees a disconnect completion event with reason =
> timeout coming from the adapter (RTL8821CU). The capture shows a
> sequence like:
>
> 185.515624 receive HCI_EVT (Rcvd Number of Completed Packets)
> 195.512404 send HCI ACL Packet, BNEP protocol, TLSv1.2 data
> 195.512519 send HCI ACL Packet, BNEP protocol, TLSv1.2 Encrypted Alert
> 196.321628 send HCI ACL Packet, BNEP protocol, TCP Retransmission of
> Encrypted Alert
> 197.456727 send HCI ACL Packet, BNEP protocol, TCP RST,ACK
> 206.716499 receive HCI_EVT (Rcvd Disconnect Complete, Reason: Connection
> Timeout (0x08)

I highly recommend using btmon to collect HCI trace.

> The disconnect completion event arrives about 20 seconds after the last
> frame received from the adapter. It appears that the other side of the
> connection stops responding, or the local side stops receiving the
> responses, right after time 185.515624.
>
> Is the disconnect completion event generated by the adapter (adapter FW)?
> Is the disconnect completion event in response to something sent by the
> other side of the connection (PANU role)?
> What types of things would cause a disconnect completion event to be
> received by the HCI driver?
>
> The very next frame in the capture is at time 206.747045 and is an
> HCI_EVT received from the adapter (Rcvd Connect Request). This is the
> PANU role side immediately reconnecting. This seems to indicate to me
> that the other side knows about the disconnect right away.
>
> I have had no success thus far reproducing this myself. I am looking
> for better understanding of the disconnect completion event with timeout
> to guide me in assessing causes.

You will need to check with the manufacturer as to why the link is
timing out, but if it is 20 seconds it is most likely the link
supervision timeout kicking in due to lack of acknowledgements from
the remote side.

> Jay
>


--
Luiz Augusto von Dentz