diff mbox series

[BlueZ,2/2] a2dp: enable input MTU auto-tuning for the server

Message ID 20250128210354.73732-2-pchelkin@ispras.ru (mailing list archive)
State Superseded
Headers show
Series [BlueZ,1/2] audio: actually try to enable MTU auto-tuning | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success

Commit Message

Fedor Pchelkin Jan. 28, 2025, 9:03 p.m. UTC
L2CAP frames are lost while utilizing some exotic A2DP transports
usually coming up with weird custom MTU sizes so take advantage of
auto-tuning it for such cases.

Found by Linux Verification Center (linuxtesting.org).

Fixes: https://github.com/bluez/bluez/issues/1080
---
 profiles/audio/a2dp.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Luiz Augusto von Dentz Jan. 28, 2025, 9:53 p.m. UTC | #1
Hi Fedor,

On Tue, Jan 28, 2025 at 4:04 PM Fedor Pchelkin <pchelkin@ispras.ru> wrote:
>
> L2CAP frames are lost while utilizing some exotic A2DP transports
> usually coming up with weird custom MTU sizes so take advantage of
> auto-tuning it for such cases.
>
> Found by Linux Verification Center (linuxtesting.org).
>
> Fixes: https://github.com/bluez/bluez/issues/1080
> ---
>  profiles/audio/a2dp.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/profiles/audio/a2dp.c b/profiles/audio/a2dp.c
> index c97bd6e89..05a2e2e80 100644
> --- a/profiles/audio/a2dp.c
> +++ b/profiles/audio/a2dp.c
> @@ -2592,6 +2592,8 @@ static bool a2dp_server_listen(struct a2dp_server *server)
>                                 BT_IO_OPT_MODE, mode,
>                                 BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM,
>                                 BT_IO_OPT_CENTRAL, true,
> +                               /* Set Input MTU to 0 to auto-tune */
> +                               BT_IO_OPT_IMTU, 0,
>                                 BT_IO_OPT_INVALID);
>         if (server->io)
>                 return true;
> --
> 2.39.5

Another thing we might have to do is to fallback if BT_IO_OPT_IMTU = 0
doesn't work so perhaps we should incorporate some special handling if
auto fails at btio level.
diff mbox series

Patch

diff --git a/profiles/audio/a2dp.c b/profiles/audio/a2dp.c
index c97bd6e89..05a2e2e80 100644
--- a/profiles/audio/a2dp.c
+++ b/profiles/audio/a2dp.c
@@ -2592,6 +2592,8 @@  static bool a2dp_server_listen(struct a2dp_server *server)
 				BT_IO_OPT_MODE, mode,
 				BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM,
 				BT_IO_OPT_CENTRAL, true,
+				/* Set Input MTU to 0 to auto-tune */
+				BT_IO_OPT_IMTU, 0,
 				BT_IO_OPT_INVALID);
 	if (server->io)
 		return true;