All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: linux-bluetooth@vger.kernel.org,
	"Pierre-Loup A . Griffais" <pgriffais@valvesoftware.com>,
	Florian Dollinger <dollinger.florian@gmx.de>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] Bluetooth: Retry configure request if result is L2CAP_CONF_UNKNOWN
Date: Wed, 20 Mar 2019 16:08:36 -0700	[thread overview]
Message-ID: <CAHQ1cqHL+CjXhp4TadAQ5fZNbcxpnkNSxC+TaZ=Be_-giP_60A@mail.gmail.com> (raw)
In-Reply-To: <CAHQ1cqH+TCrU+7NE7iiiUwUsCQjfHs8hjKe24b7bj9A3R5GNWw@mail.gmail.com>

On Mon, Feb 18, 2019 at 8:57 PM Andrey Smirnov <andrew.smirnov@gmail.com> wrote:
>
> On Mon, Feb 18, 2019 at 4:58 AM Marcel Holtmann <marcel@holtmann.org> wrote:
> >
> > Hi Andrey,
> >
> > > Due to:
> > >
> > > - current implementation of l2cap_config_rsp() dropping BT
> > >   connection if sender of configuration response replied with unknown
> > >   option failure (Result=0x0003/L2CAP_CONF_UNKNOWN)
> > >
> > > - current implementation of l2cap_build_conf_req() adding
> > >   L2CAP_CONF_RFC(0x04) option to initial configure request sent by
> > >   the Linux host.
> > >
> > > devices that do no recongninze L2CAP_CONF_RFC, such as Xbox One S
> > > controllers, will get stuck in endless connect -> configure ->
> > > disconnect loop, never connect and be generaly unusable.
> > >
> > > To avoid this problem add code to do the following:
> > >
> > > 1. Store a mask of supported conf option types per connection
> > >
> > > 2. Parse the body of response L2CAP_CONF_UNKNOWN and adjust
> > >    connection's supported conf option types mask
> > >
> > > 3. Retry configuration step the same way it's done for
> > >    L2CAP_CONF_UNACCEPT
> > >
> > > Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
> > > Cc: Pierre-Loup A. Griffais <pgriffais@valvesoftware.com>
> > > Cc: Florian Dollinger <dollinger.florian@gmx.de>
> > > Cc: Marcel Holtmann <marcel@holtmann.org>
> > > Cc: Johan Hedberg <johan.hedberg@gmail.com>
> > > Cc: linux-bluetooth@vger.kernel.org
> > > Cc: linux-kernel@vger.kernel.org
> > > ---
> > >
> > > Everyone:
> > >
> > > I marked this as an RFC, since I don't have a lot of experience with
> > > Bluetooth subsystem and don't have hight degree of confidence about
> > > choices made in this patch. I do, however, thins is is good enough to
> > > start a discussion about the problem.
> >
> > can you take a btmon -w trace.log protocol trace so that I can see where it fails. This seems a really odd behavior of the Xbox controller. We have to be careful in not breaking Bluetooth qualification to just workaround some buggy remote device.
> >
>
> Sure, n/p, both "failure" (behavior before this patch) and "success"
> (behavior with the patch) cases on my machine are available here:
>
> https://gist.github.com/ndreys/2b74094933601978e200af1ff0a55372
>
> Let me know if that's not accessible to you.
>

Marcel, did you have a chance to look at the logs?

Thanks,
Andrey Smirnov

  reply	other threads:[~2019-03-20 23:08 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-08  2:58 [RFC] Bluetooth: Retry configure request if result is L2CAP_CONF_UNKNOWN Andrey Smirnov
2019-02-18 12:58 ` Marcel Holtmann
2019-02-19  4:57   ` Andrey Smirnov
2019-03-20 23:08     ` Andrey Smirnov [this message]
2019-04-22 20:06       ` Florian Dollinger
2019-04-23 20:08 ` Marcel Holtmann
2019-04-30  1:57   ` Andrey Smirnov

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='CAHQ1cqHL+CjXhp4TadAQ5fZNbcxpnkNSxC+TaZ=Be_-giP_60A@mail.gmail.com' \
    --to=andrew.smirnov@gmail.com \
    --cc=dollinger.florian@gmx.de \
    --cc=johan.hedberg@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=pgriffais@valvesoftware.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.