* [PATCH BlueZ] obexd: client: Fix connect RX MTU
@ 2025-08-26 9:05 Frédéric Danis
2025-08-26 10:28 ` [BlueZ] " bluez.test.bot
2025-08-26 13:40 ` [PATCH BlueZ] " patchwork-bot+bluetooth
0 siblings, 2 replies; 3+ messages in thread
From: Frédéric Danis @ 2025-08-26 9:05 UTC (permalink / raw)
To: linux-bluetooth
OBEX download from iPhone is currently slow due to small packet size
used to transfer data which doesn't follow the MTU negotiated during
L2CAP connection, i.e. 672 bytes instead of 32767:
< ACL Data TX: Handle 11 flags 0x00 dlen 12
L2CAP: Connection Request (0x02) ident 18 len 4
PSM: 4103 (0x1007)
Source CID: 72
> ACL Data RX: Handle 11 flags 0x02 dlen 16
L2CAP: Connection Response (0x03) ident 18 len 8
Destination CID: 14608
Source CID: 72
Result: Connection successful (0x0000)
Status: No further information available (0x0000)
< ACL Data TX: Handle 11 flags 0x00 dlen 27
L2CAP: Configure Request (0x04) ident 20 len 19
Destination CID: 14608
Flags: 0x0000
Option: Maximum Transmission Unit (0x01) [mandatory]
MTU: 32767
Option: Retransmission and Flow Control (0x04) [mandatory]
Mode: Enhanced Retransmission (0x03)
TX window size: 63
Max transmit: 3
Retransmission timeout: 2000
Monitor timeout: 12000
Maximum PDU size: 1009
> ACL Data RX: Handle 11 flags 0x02 dlen 26
L2CAP: Configure Request (0x04) ident 72 len 18
Destination CID: 72
Flags: 0x0000
Option: Retransmission and Flow Control (0x04) [mandatory]
Mode: Enhanced Retransmission (0x03)
TX window size: 32
Max transmit: 255
Retransmission timeout: 0
Monitor timeout: 0
Maximum PDU size: 65527
Option: Frame Check Sequence (0x05) [mandatory]
FCS: 16-bit FCS (0x01)
< ACL Data TX: Handle 11 flags 0x00 dlen 29
L2CAP: Configure Response (0x05) ident 72 len 21
Source CID: 14608
Flags: 0x0000
Result: Success (0x0000)
Option: Maximum Transmission Unit (0x01) [mandatory]
MTU: 672
Option: Retransmission and Flow Control (0x04) [mandatory]
Mode: Enhanced Retransmission (0x03)
TX window size: 32
Max transmit: 255
Retransmission timeout: 2000
Monitor timeout: 12000
Maximum PDU size: 1009
> ACL Data RX: Handle 11 flags 0x02 dlen 32
L2CAP: Configure Response (0x05) ident 20 len 24
Source CID: 72
Flags: 0x0000
Result: Success (0x0000)
Option: Maximum Transmission Unit (0x01) [mandatory]
MTU: 32767
Option: Retransmission and Flow Control (0x04) [mandatory]
Mode: Enhanced Retransmission (0x03)
TX window size: 63
Max transmit: 3
Retransmission timeout: 2000
Monitor timeout: 12000
Maximum PDU size: 1009
Option: Frame Check Sequence (0x05) [mandatory]
FCS: 16-bit FCS (0x01)
...
< ACL Data TX: Handle 11 flags 0x00 dlen 34
Channel: 14608 len 30 ctrl 0x0000 [PSM 4103 mode Enhanced Retransmission (0x03)] {chan 8}
I-frame: Unsegmented TxSeq 0 ReqSeq 0
00 00 80 00 1a 10 00 02 a0 46 00 13 71 63 dd 54 .........F..qc.T
4a 7e 11 e2 b4 7c 00 50 c2 49 00 48 b4 55 J~...|.P.I.H.U
...
> ACL Data RX: Handle 11 flags 0x02 dlen 680
Channel: 72 len 676 ctrl 0x0202 [PSM 4103 mode Enhanced Retransmission (0x03)] {chan 8}
I-frame: Unsegmented TxSeq 1 ReqSeq 2
< ACL Data TX: Handle 11 flags 0x00 dlen 13
Channel: 14608 len 9 ctrl 0x0204 [PSM 4103 mode Enhanced Retransmission (0x03)] {chan 8}
I-frame: Unsegmented TxSeq 2 ReqSeq 2
> ACL Data RX: Handle 11 flags 0x02 dlen 680
Channel: 72 len 676 ctrl 0x0304 [PSM 4103 mode Enhanced Retransmission (0x03)] {chan 8}
I-frame: Unsegmented TxSeq 2 ReqSeq 3
The OBEX CONNECT request uses the negotiated output MTU (672, 0x02a0)
as the maximum OBEX packet length the client is able to receive
instead of the negotiated input MTU (32767).
This commit swap rx_mtu and tx_mtu as g_obex_new() is defined as:
GObex *g_obex_new(GIOChannel *io, GObexTransportType transport_type,
gssize rx_mtu, gssize tx_mtu);
---
obexd/client/session.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/obexd/client/session.c b/obexd/client/session.c
index fa9bd7d17..89c877f08 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
@@ -373,7 +373,7 @@ static void transport_func(GIOChannel *io, GError *err, gpointer user_data)
else
type = G_OBEX_TRANSPORT_STREAM;
- obex = g_obex_new(io, type, tx_mtu, rx_mtu);
+ obex = g_obex_new(io, type, rx_mtu, tx_mtu);
if (obex == NULL)
goto done;
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* RE: [BlueZ] obexd: client: Fix connect RX MTU
2025-08-26 9:05 [PATCH BlueZ] obexd: client: Fix connect RX MTU Frédéric Danis
@ 2025-08-26 10:28 ` bluez.test.bot
2025-08-26 13:40 ` [PATCH BlueZ] " patchwork-bot+bluetooth
1 sibling, 0 replies; 3+ messages in thread
From: bluez.test.bot @ 2025-08-26 10:28 UTC (permalink / raw)
To: linux-bluetooth, frederic.danis
[-- Attachment #1: Type: text/plain, Size: 1261 bytes --]
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=995586
---Test result---
Test Summary:
CheckPatch PENDING 0.36 seconds
GitLint PENDING 0.29 seconds
BuildEll PASS 20.06 seconds
BluezMake PASS 2614.40 seconds
MakeCheck PASS 19.93 seconds
MakeDistcheck PASS 182.12 seconds
CheckValgrind PASS 233.99 seconds
CheckSmatch PASS 304.90 seconds
bluezmakeextell PASS 126.83 seconds
IncrementalBuild PENDING 0.30 seconds
ScanBuild PASS 898.83 seconds
Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:
##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH BlueZ] obexd: client: Fix connect RX MTU
2025-08-26 9:05 [PATCH BlueZ] obexd: client: Fix connect RX MTU Frédéric Danis
2025-08-26 10:28 ` [BlueZ] " bluez.test.bot
@ 2025-08-26 13:40 ` patchwork-bot+bluetooth
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+bluetooth @ 2025-08-26 13:40 UTC (permalink / raw)
To: =?utf-8?b?RnLDqWTDqXJpYyBEYW5pcyA8ZnJlZGVyaWMuZGFuaXNAY29sbGFib3JhLmNvbT4=?=
Cc: linux-bluetooth
Hello:
This patch was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
On Tue, 26 Aug 2025 11:05:43 +0200 you wrote:
> OBEX download from iPhone is currently slow due to small packet size
> used to transfer data which doesn't follow the MTU negotiated during
> L2CAP connection, i.e. 672 bytes instead of 32767:
>
> < ACL Data TX: Handle 11 flags 0x00 dlen 12
> L2CAP: Connection Request (0x02) ident 18 len 4
> PSM: 4103 (0x1007)
> Source CID: 72
> > ACL Data RX: Handle 11 flags 0x02 dlen 16
> L2CAP: Connection Response (0x03) ident 18 len 8
> Destination CID: 14608
> Source CID: 72
> Result: Connection successful (0x0000)
> Status: No further information available (0x0000)
> < ACL Data TX: Handle 11 flags 0x00 dlen 27
> L2CAP: Configure Request (0x04) ident 20 len 19
> Destination CID: 14608
> Flags: 0x0000
> Option: Maximum Transmission Unit (0x01) [mandatory]
> MTU: 32767
> Option: Retransmission and Flow Control (0x04) [mandatory]
> Mode: Enhanced Retransmission (0x03)
> TX window size: 63
> Max transmit: 3
> Retransmission timeout: 2000
> Monitor timeout: 12000
> Maximum PDU size: 1009
> > ACL Data RX: Handle 11 flags 0x02 dlen 26
> L2CAP: Configure Request (0x04) ident 72 len 18
> Destination CID: 72
> Flags: 0x0000
> Option: Retransmission and Flow Control (0x04) [mandatory]
> Mode: Enhanced Retransmission (0x03)
> TX window size: 32
> Max transmit: 255
> Retransmission timeout: 0
> Monitor timeout: 0
> Maximum PDU size: 65527
> Option: Frame Check Sequence (0x05) [mandatory]
> FCS: 16-bit FCS (0x01)
> < ACL Data TX: Handle 11 flags 0x00 dlen 29
> L2CAP: Configure Response (0x05) ident 72 len 21
> Source CID: 14608
> Flags: 0x0000
> Result: Success (0x0000)
> Option: Maximum Transmission Unit (0x01) [mandatory]
> MTU: 672
> Option: Retransmission and Flow Control (0x04) [mandatory]
> Mode: Enhanced Retransmission (0x03)
> TX window size: 32
> Max transmit: 255
> Retransmission timeout: 2000
> Monitor timeout: 12000
> Maximum PDU size: 1009
> > ACL Data RX: Handle 11 flags 0x02 dlen 32
> L2CAP: Configure Response (0x05) ident 20 len 24
> Source CID: 72
> Flags: 0x0000
> Result: Success (0x0000)
> Option: Maximum Transmission Unit (0x01) [mandatory]
> MTU: 32767
> Option: Retransmission and Flow Control (0x04) [mandatory]
> Mode: Enhanced Retransmission (0x03)
> TX window size: 63
> Max transmit: 3
> Retransmission timeout: 2000
> Monitor timeout: 12000
> Maximum PDU size: 1009
> Option: Frame Check Sequence (0x05) [mandatory]
> FCS: 16-bit FCS (0x01)
> ...
> < ACL Data TX: Handle 11 flags 0x00 dlen 34
> Channel: 14608 len 30 ctrl 0x0000 [PSM 4103 mode Enhanced Retransmission (0x03)] {chan 8}
> I-frame: Unsegmented TxSeq 0 ReqSeq 0
> 00 00 80 00 1a 10 00 02 a0 46 00 13 71 63 dd 54 .........F..qc.T
> 4a 7e 11 e2 b4 7c 00 50 c2 49 00 48 b4 55 J~...|.P.I.H.U
> ...
> > ACL Data RX: Handle 11 flags 0x02 dlen 680
> Channel: 72 len 676 ctrl 0x0202 [PSM 4103 mode Enhanced Retransmission (0x03)] {chan 8}
> I-frame: Unsegmented TxSeq 1 ReqSeq 2
> < ACL Data TX: Handle 11 flags 0x00 dlen 13
> Channel: 14608 len 9 ctrl 0x0204 [PSM 4103 mode Enhanced Retransmission (0x03)] {chan 8}
> I-frame: Unsegmented TxSeq 2 ReqSeq 2
> > ACL Data RX: Handle 11 flags 0x02 dlen 680
> Channel: 72 len 676 ctrl 0x0304 [PSM 4103 mode Enhanced Retransmission (0x03)] {chan 8}
> I-frame: Unsegmented TxSeq 2 ReqSeq 3
>
> [...]
Here is the summary with links:
- [BlueZ] obexd: client: Fix connect RX MTU
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=99abc8a9e1e1
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-08-26 13:39 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-26 9:05 [PATCH BlueZ] obexd: client: Fix connect RX MTU Frédéric Danis
2025-08-26 10:28 ` [BlueZ] " bluez.test.bot
2025-08-26 13:40 ` [PATCH BlueZ] " patchwork-bot+bluetooth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).