From: Stefan Mischke <survivor@uni-paderborn.de>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: "BlueZ Mailing List" <bluez-devel@lists.sourceforge.net>,
"Bernd Eßmann" <psycho@uni-paderborn.de>
Subject: Re: [Bluez-devel] L2CAP: One failing connection hurts others?
Date: Wed, 15 Sep 2004 16:00:59 +0200 [thread overview]
Message-ID: <41484B1B.2000000@uni-paderborn.de> (raw)
In-Reply-To: <1095234376.5263.10.camel@pegasus>
Hello again!
Marcel Holtmann schrieb:
>There are more than one timeouts in the BlueZ stack. Even the ACL
>disconnect timeout is different for the initiator and the acceptor of
>and ACL connection. Keep an eye on the HCI disconnect events on each of
>your devices and compare the timestamps.
>
>
>
Hmmm, these timeouts are really difficult. I've written a script
"l2client.sh" (see below) using bluez-utils' l2test to make sure the
problem is not inside of my code. I also included the output of a
testrun. Take a look at it!
#### BEGIN SCRIPT l2client.sh ####
#!/bin/bash
ROUNDS=10
SLEEP=`which sleep`
TSLEEP=5
SERVER1="00:02:72:B1:1D:6C"
SERVER2="00:02:72:B1:1D:62"
for i in `seq 1 $ROUNDS`;
do
printf "Round $i of $ROUNDS\n"
printf "Connecting to Server $SERVER1...\n"
l2test -s -N 1 $SERVER1
printf "\n"
printf "Connecting to Server $SERVER2...\n"
l2test -s -N 1 $SERVER2 &
printf "Waiting for $TSLEEP seconds...\n"
$SLEEP ${TSLEEP}s
printf "\n"
done
printf "l2client.sh terminating.\n"
#### END SCRIPT l2client.sh ####
I ran "l2client.sh" on 00:02:72:B1:59:46 and "l2test -r" on
00:02:72:B1:1D:6C and 00:02:72:B1:1D:62.
After the 2nd round, I pulled out dongle 00:02:72:B1:1D:62. See what
happens...
#### BEGIN OUTPUT OF SCRIPT l2client.sh ####
Round 1 of 10
Connecting to Server 00:02:72:B1:1D:6C...
l2test[4385]: Connected [imtu 672, omtu 672, flush_to 65535]
l2test[4385]: Sending ...
l2test[4385]: Closing channel ...
l2test[4385]: Done
l2test[4385]: Exit
Connecting to Server 00:02:72:B1:1D:62...
Waiting for 5 seconds...
l2test[4386]: Connected [imtu 672, omtu 672, flush_to 65535]
l2test[4386]: Sending ...
l2test[4386]: Closing channel ...
l2test[4386]: Done
l2test[4386]: Exit
Round 2 of 10
Connecting to Server 00:02:72:B1:1D:6C...
l2test[4388]: Connected [imtu 672, omtu 672, flush_to 65535]
l2test[4388]: Sending ...
l2test[4388]: Closing channel ...
l2test[4388]: Done
l2test[4388]: Exit
Connecting to Server 00:02:72:B1:1D:62...
Waiting for 5 seconds...
l2test[4389]: Connected [imtu 672, omtu 672, flush_to 65535]
l2test[4389]: Sending ...
l2test[4389]: Closing channel ...
l2test[4389]: Done
l2test[4389]: Exit
Round 3 of 10
Connecting to Server 00:02:72:B1:1D:6C...
l2test[4391]: Connected [imtu 672, omtu 672, flush_to 65535]
l2test[4391]: Sending ...
l2test[4391]: Closing channel ...
l2test[4391]: Done
l2test[4391]: Exit
Connecting to Server 00:02:72:B1:1D:62...
Waiting for 5 seconds...
Round 4 of 10
Connecting to Server 00:02:72:B1:1D:6C...
l2test[4394]: Can't connect. Device or resource busy(16)
Connecting to Server 00:02:72:B1:1D:62...
Waiting for 5 seconds...
Round 5 of 10
Connecting to Server 00:02:72:B1:1D:6C...
l2test[4397]: Can't connect. Device or resource busy(16)
Connecting to Server 00:02:72:B1:1D:62...
Waiting for 5 seconds...
Round 6 of 10
Connecting to Server 00:02:72:B1:1D:6C...
l2test[4400]: Can't connect. Device or resource busy(16)
Connecting to Server 00:02:72:B1:1D:62...
Waiting for 5 seconds...
Round 7 of 10
Connecting to Server 00:02:72:B1:1D:6C...
l2test[4403]: Can't connect. Device or resource busy(16)
Connecting to Server 00:02:72:B1:1D:62...
Waiting for 5 seconds...
l2test[4404]: Can't connect. Host is down(112)
l2test[4401]: Can't connect. Host is down(112)
l2test[4398]: Can't connect. Host is down(112)
l2test[4395]: Can't connect. Host is down(112)
l2test[4392]: Can't connect. Host is down(112)
Round 8 of 10
Connecting to Server 00:02:72:B1:1D:6C...
l2test[4406]: Connected [imtu 672, omtu 672, flush_to 65535]
l2test[4406]: Sending ...
l2test[4406]: Closing channel ...
l2test[4406]: Done
l2test[4406]: Exit
Connecting to Server 00:02:72:B1:1D:62...
Waiting for 5 seconds...
Round 9 of 10
Connecting to Server 00:02:72:B1:1D:6C...
l2test[4409]: Can't connect. Device or resource busy(16)
Connecting to Server 00:02:72:B1:1D:62...
Waiting for 5 seconds...
Round 10 of 10
Connecting to Server 00:02:72:B1:1D:6C...
l2test[4412]: Can't connect. Device or resource busy(16)
Connecting to Server 00:02:72:B1:1D:62...
Waiting for 5 seconds...
l2client.sh terminating.
l2test[4413]: Can't connect. Host is down(112)
l2test[4407]: Can't connect. Host is down(112)
l2test[4410]: Can't connect. Host is down(112)
#### END OUTPUT OF SCRIPT l2client.sh ####
After "l2client.sh" tries to contact the unreachable host
00:02:72:B1:1D:62, all connection attempts to the reachable hist
00:02:72:B1:1D:6C fail with errno 16. Just before round 8, all
connection attempts to 00:02:72:B1:1D:62 fail together with errno 112
and in round 8 the connection attempt to 00:02:72:B1:1D:6C succeeds. But
even after one more connection attempt to the unreachable
00:02:72:B1:1D:62, the connection attempts to 00:02:72:B1:1D:6C fail
again. After "l2client.sh" has already terminated, the remaining
backgrounded l2sends fail.
So there is really a problem if I don't wait for connect to fail with
errno 112. My Location Awareness App of course can't afford to wait for
20 seconds. But how to solve this? I hope to get another dongle this
evening, so I can equip the client with it and test if the dongle matters.
Regards
Stefan
next prev parent reply other threads:[~2004-09-15 14:00 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-14 15:20 [Bluez-devel] L2CAP: One failing connection hurts others? Stefan Mischke
2004-09-14 18:34 ` Marcel Holtmann
2004-09-14 19:11 ` Stefan Mischke
2004-09-14 19:24 ` Marcel Holtmann
2004-09-14 19:37 ` Stefan Mischke
2004-09-14 19:49 ` Marcel Holtmann
2004-09-14 20:10 ` Stefan Mischke
2004-09-14 21:12 ` Marcel Holtmann
2004-09-14 23:37 ` Stefan Mischke
2004-09-15 7:46 ` Marcel Holtmann
2004-09-15 14:00 ` Stefan Mischke [this message]
2004-09-15 21:09 ` Marcel Holtmann
2004-09-15 22:26 ` Stefan Mischke
2004-09-16 10:30 ` Stefan Mischke
2004-09-16 10:34 ` Marcel Holtmann
2004-09-16 10:39 ` Stefan Mischke
2004-09-16 11:00 ` Marcel Holtmann
2004-09-16 11:10 ` Stefan Mischke
2004-09-16 16:41 ` Stefan Mischke
2004-09-15 20:37 ` Stefan Mischke
2004-09-15 21:06 ` Marcel Holtmann
2004-09-15 22:13 ` Stefan Mischke
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=41484B1B.2000000@uni-paderborn.de \
--to=survivor@uni-paderborn.de \
--cc=bluez-devel@lists.sourceforge.net \
--cc=marcel@holtmann.org \
--cc=psycho@uni-paderborn.de \
/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