Re: [PATCH v3 1/2] Bluetooth: btusb: define HCI packet sizes of USB Alts

From: Trent Piepho
Date: Wed Dec 09 2020 - 19:21:19 EST


On Tuesday, December 8, 2020 5:13:36 PM PST Pali Rohár wrote:
> On Tuesday 08 December 2020 15:04:29 Trent Piepho wrote:
> > Does this also give userspace a clear point at which to determine MTU
setting,
> > _before_ data is sent over SCO connection? It will not work if sco_mtu
is not
> > valid until after userspace sends data to SCO connection with incorrect
mtu.
>
> IIRC connection is established after sync connection (SCO) complete
> event. And sending data is possible after connection is established. So
> based on these facts I think that userspace can determinate MTU settings
> prior sending data over SCO socket.
>
> Anyway, to whole MTU issue for SCO there is a nice workaround which
> worked fine with more tested USB adapters and headsets. As SCO socket is
> synchronous and most bluetooth headsets have own clocks, you can
> synchronize sending packets to headsets based on time events when you
> received packets from other side and also send packets of same size as
> you received. I.e. for every received packet send own packet of the same
> size.

As I understand it, the RX side from the headset is not guaranteed, so in
the TX only case this will not work and we still need to be told what MTU
kernel has selected for the SCO link.

It seems also it would add some latency to start up, since it would be
necessary to wait for packets to arrive before knowing what size packet to
send.

Would timing based on matching TX to RX in the case of packet loss on RX
side?