Linux bluetooth development
 help / color / mirror / Atom feed
From: Michael McConnell <soruk@eridani.co.uk>
To: bluez-users@lists.sourceforge.net
Subject: Re: [Bluez-users] BNEP session hangs, can't work out why.
Date: Wed, 01 Jun 2005 19:06:00 +0100	[thread overview]
Message-ID: <429DF908.80808@eridani.co.uk> (raw)
In-Reply-To: <1117454226.7072.135.camel@pegasus>

Marcel Holtmann wrote:
> Hi Michael,
> 
>>At machine A I have:
>>hci0:   Type: USB
>>         BD Address: 00:05:16:58:9D:C1 ACL MTU: 192:8 SCO MTU: 64:8
>>         UP RUNNING PSCAN ISCAN
>>         RX bytes:269283 acl:1781 sco:0 events:869 errors:0
>>         TX bytes:58266 acl:815 sco:0 commands:42 errors:0
>>         Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00
>>         Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
>>         Link policy: RSWITCH HOLD SNIFF PARK
>>         Link mode: SLAVE ACCEPT
>>         Name: 'BlueZ (0)'
>>         Class: 0x3e0100
>>         Service Classes: Networking, Rendering, Capturing
>>         Device Class: Computer, Uncategorized
>>         HCI Ver: 1.1 (0x1) HCI Rev: 0x20d LMP Ver: 1.1 (0x1) LMP Subver: 0x20d
>>         Manufacturer: Cambridge Silicon Radio (10)
>>
>>Machine B has:
>>hci0:   Type: USB
>>         BD Address: 00:0A:94:13:26:7D ACL MTU: 120:20 SCO MTU: 64:0
>>         UP RUNNING PSCAN ISCAN
>>         RX bytes:72835 acl:1541 sco:0 events:1813 errors:0
>>         TX bytes:266197 acl:2713 sco:0 commands:24 errors:0
>>         Features: 0xff 0xff 0x05 0x00 0x00 0x00 0x00 0x00
>>         Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
>>         Link policy: RSWITCH HOLD SNIFF PARK
>>         Link mode: SLAVE ACCEPT
>>         Name: 'BlueZ (0)'
>>         Class: 0x3e0100
>>         Service Classes: Networking, Rendering, Capturing
>>         Device Class: Computer, Uncategorized
>>         HCI Ver: 1.1 (0x1) HCI Rev: 0x0 LMP Ver: 1.1 (0x1) LMP Subver: 0x757
>>         Manufacturer: Silicon Wave (11)
>>
>>Everything starts fine, I can get packets flowing.
>>
>>Then, without warning, the connection stalls.
>>
>>hcidump on A finishes off with:
>>       44.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 41
>>       44.000000 < ACL data: handle 41 flags 0x02 dlen 75
>>     L2CAP(d): cid 0x0040 len 71 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       44.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 41
>>       44.000000 < ACL data: handle 41 flags 0x02 dlen 75
>>     L2CAP(d): cid 0x0040 len 71 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       44.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 41
>>       44.000000 < ACL data: handle 41 flags 0x02 dlen 75
>>     L2CAP(d): cid 0x0040 len 71 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       44.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 41
>>       44.000000 < ACL data: handle 41 flags 0x02 dlen 75
>>     L2CAP(d): cid 0x0040 len 71 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       44.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 41
>>       44.000000 < ACL data: handle 41 flags 0x02 dlen 75
>>     L2CAP(d): cid 0x0040 len 71 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       44.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 41
>>       44.000000 < ACL data: handle 41 flags 0x02 dlen 75
>>     L2CAP(d): cid 0x0040 len 71 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       44.000000 < ACL data: handle 41 flags 0x02 dlen 75
>>     L2CAP(d): cid 0x0040 len 71 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       44.000000 > HCI Event: Disconn Complete (0x05) plen 4
>>     status 0x00 handle 41 reason 0x13
>>     Reason: Remote User Terminated Connection
>>
>>Machine B reports:
>>       20.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 2
>>       20.000000 > ACL data: handle 2 flags 0x02 dlen 67
>>     L2CAP(d): cid 0x0040 len 63 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       20.000000 < ACL data: handle 2 flags 0x02 dlen 59
>>     L2CAP(d): cid 0x0040 len 55 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       20.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 2
>>       20.000000 > ACL data: handle 2 flags 0x02 dlen 67
>>     L2CAP(d): cid 0x0040 len 63 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       20.000000 < ACL data: handle 2 flags 0x02 dlen 59
>>     L2CAP(d): cid 0x0040 len 55 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       20.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 2
>>       20.000000 < ACL data: handle 2 flags 0x02 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 24
>>     L2CAP(d): cid 0x0040 len 260 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       20.000000 < ACL data: handle 2 flags 0x02 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 9
>>     L2CAP(d): cid 0x0040 len 365 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       20.000000 > ACL data: handle 2 flags 0x02 dlen 67
>>     L2CAP(d): cid 0x0040 len 63 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       20.000000 < ACL data: handle 2 flags 0x02 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 38
>>     L2CAP(d): cid 0x0040 len 274 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       20.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 2
>>       20.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 2
>>       20.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 2
>>       20.000000 > HCI Event: Number of Completed Packets (0x13) plen 5
>>     handle 2
>>       20.000000 < ACL data: handle 2 flags 0x02 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 94
>>     L2CAP(d): cid 0x0040 len 570 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       20.000000 < ACL data: handle 2 flags 0x02 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 73
>>     L2CAP(d): cid 0x0040 len 789 [psm 15]
>>       BNEP: Compressed(0x02|0)
>>         [proto 0x0800]
>>       20.000000 < ACL data: handle 2 flags 0x02 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < ACL data: handle 2 flags 0x01 dlen 120
>>       20.000000 < HCI Command: Disconnect (0x01|0x0006) plen 3
>>     handle 2 reason 0x13
>>     Reason: Remote User Terminated Connection
>>       20.000000 > HCI Event: Command Status (0x0f) plen 4
>>     Disconnect (0x01|0x0006) status 0x00 ncmd 1
>>       20.000000 > HCI Event: Disconn Complete (0x05) plen 4
>>     status 0x00 handle 2 reason 0x16
>>     Reason: Connection Terminated by Local Host
>>
>>(Aside: The timestamps in hcidump don't appear to be working right.)
> 
> 
> they are working for me. Use "hcidump -X -V" and in case of your mailer
> it is better you attach it.

OK.

>>After this, trying 'hcitool info' on each querying the other just results in 
>>"Connection timed out".
> 
> Show the hcidump for this, too.

When querying A from B, I get:
< HCI Command: Create Connection (0x01|0x0005) plen 13
     bdaddr 00:05:16:58:9D:C1 ptype 0xcc18 rswitch 0x01 clkoffset 0x0000
     Packet type: DM1 DM3 DM5 DH1 DH3 DH5
 > HCI Event: Command Status (0x0f) plen 4
     Create Connection (0x01|0x0005) status 0x00 ncmd 1

(after a delay)

 > HCI Event: Connect Complete (0x03) plen 11
     status 0x24 handle 4 bdaddr 00:05:16:58:9D:C1 type ACL encrypt 0x00
     Error: LMP PDU Not Allowed

with hcitool reporting:
Requesting information ...
Can't create connection: Connection timed out

This error is reported before the LMP PDU Not Allowed error.

When querying B from A, I get:
< HCI Command: Create Connection (0x01|0x0005) plen 13
     bdaddr 00:0A:94:13:26:7D ptype 0xcc18 rswitch 0x01 clkoffset 0x0000
     Packet type: DM1 DM3 DM5 DH1 DH3 DH5
 > HCI Event: Command Status (0x0f) plen 4
     Create Connection (0x01|0x0005) status 0x00 ncmd 1

(after a delay)

 > HCI Event: Connect Complete (0x03) plen 11
     status 0x22 handle 41 bdaddr 00:0A:94:13:26:7D type ACL encrypt 0x00
     Error: LMP Response Timeout

with hcitool also reporting:
Requesting information ...
Can't create connection: Connection timed out

Again, this error is reported before hcidump reports the timeout.


>>I can't work out which end is at fault.
> 
> Check dmesg for any error messages.

Machine B reports:
hci_acl_tx_to: hci0 ACL tx timeout
hci_acl_tx_to: hci0 killing stalled ACL connection C1:9D:58:16:05:00

Machine A has no error messages.

I also paired both machines to my mobile phone.

Machine A reports with "hcitool info 00:0A:28:F8:76:C2
Requesting information ...
         BD Address:  00:0A:28:F8:76:C2
         Device Name: Motorola V500
         LMP Version: 1.1 (0x1) LMP Subversion: 0x700
         Manufacturer: Broadcom Corporation (15)
         Features: 0xff 0xff 0x0d 0x00 0x00 0x00 0x00 0x00
                 <3-slot packets> <5-slot packets> <encryption> <slot 
offset>
                 <timing accuracy> <role switch> <hold mode> <sniff mode>
                 <park state> <RSSI> <channel quality> <SCO link> <HV2 
packets>
                 <HV3 packets> <u-law log> <A-law log> <CVSD> <power 
control>
                 <transparent SCO>

Machine B, however just gives:
Requesting information ...
Can't create connection: Connection timed out

The hcidump is:
< HCI Command: Create Connection (0x01|0x0005) plen 13
     bdaddr 00:0A:28:F8:76:C2 ptype 0xcc18 rswitch 0x01 clkoffset 0x0000
     Packet type: DM1 DM3 DM5 DH1 DH3 DH5
 > HCI Event: Command Status (0x0f) plen 4
     Create Connection (0x01|0x0005) status 0x00 ncmd 1
 > HCI Event: Connect Complete (0x03) plen 11
     status 0x24 handle 6 bdaddr 00:0A:28:F8:76:C2 type ACL encrypt 0x00
     Error: LMP PDU Not Allowed


Before running BNEP and getting the link to stall, machine B gives the 
same "hcitool info" output as Machine A above.

When getting my phone to scan for devices, both machines are found; 
machine A is identified by name, but machine B is only identified after 
some delay and then only by a string generated from the MAC address. 
hcidump on both machines didn't show anything from doing this scan. 
When I try to send a phonebook item, machine A refuses the connection 
straight away (as I'd expect), but machine B just times out.

After I reset the bluetooth layer on machine B, it can see the phone 
just as machine A can.

>>Machine A is running an unpatched 2.4.30, machine B 2.4.28. (2.4.29 had USB 
>>issues with my DVD burner.) Both are running bluez-libs and bluez-utils 2.17, 
>>and bluz-hcidump 1.21.
> 
> What about using a 2.6.12-rc5 kernel?

That's to come, but they're both production systems so it's something 
I'm wary about. However, I've since upgraded machine B to 2.4.30.

-- 
-- Michael "Soruk" McConnell
    Eridani Star System

    MailStripper - "The easy spam filter."
    http://mailstripper.eridani.co.uk/


-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
Bluez-users mailing list
Bluez-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-users

  reply	other threads:[~2005-06-01 18:06 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-29 16:40 [Bluez-users] BNEP session hangs, can't work out why Michael McConnell
2005-05-30 11:57 ` Marcel Holtmann
2005-06-01 18:06   ` Michael McConnell [this message]
2005-06-02 13:46     ` [Bluez-users] Bluez on Familiar 0.7.2 Bruno Campos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=429DF908.80808@eridani.co.uk \
    --to=soruk@eridani.co.uk \
    --cc=bluez-users@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox