From: Marcel Holtmann <marcel@holtmann.org>
To: Peter Krystad <pkrystad@codeaurora.org>
Cc: 'Emeltchenko Andrei' <Andrei.Emeltchenko.news@gmail.com>,
linux-bluetooth@vger.kernel.org
Subject: RE: [RFCv0 0/3] AMP HCI interface from A2MP
Date: Thu, 01 Dec 2011 12:21:07 +0100 [thread overview]
Message-ID: <1322738467.26198.26.camel@aeonflux> (raw)
In-Reply-To: <000001ccaff1$1ee6c0c0$5cb44240$@org>
Hi Peter,
> > > > The code adds AMP HCI commands from A2MP protocol. HCI events are handled
> > > > similar way as mgmt interface. amp_pending is a kind of copy of mgmt_pending.
> > >
> > > this is all kernel internal code with no interface to user space. I do
> > > not see the need for such a complex infrastructure. Can not just have
> > > proper callbacks or event callback table like with L2CAP. Or just
> > > something similar.
> >
> > I see this as a simple callback. amp_pending is just keeping context of HCI
> > command we need to handle. I also included reference counting since we had
> > bad experience with l2cap and rfcomm.
>
> There does have to be some way to carry the A2MP message context while performing
> local HCI operations to service the message. A2MP Get Remote Assoc requires multiple
> HCI commands with data accumulated between the commands before the response can be
> sent.
I agree, but this amp_pending seems to be wrong. I talked about changing
the init handling and at the same time we might can apply this to the
A2MP handling.
Why not just set a bit in hdev->dev_flags or maybe even hcon->dev_flags
or something and based on that we do a nice async state machine that
sends the commands and results in calling back into A2MP core when its
finished.
That seems a bit simpler to me and more aligned in a way I wanna redo
the whole HCI command/event handling anyway. In addition we can just
expose these flags via debugfs as text and have a nice way of knowing
current states if something goes wrong.
> > > As far as I see it, we get an A2MP command over L2CAP fixed channel, we
> > > have to issue a HCI command or do some other task based on this and then
> > > respond to it. We only have one user of this first of all. And second of
> > > all, I think we can not really have pending A2MP commands anyway. This
> > > is pretty much one command at a time (per ACL link).
>
> A2MP commands are serialized by the sender, so A2MP message context could be
> associated with the hci_conn for BR-EDR.
That is what I thought. Thanks for confirming. So using hcon->dev_flags
seems like a possible way to make this a lot simpler.
And if the sender misbehaves, we just reject that commands that way.
Testing a flag is always cheaper then iterating a list.
Regards
Marcel
next prev parent reply other threads:[~2011-12-01 11:21 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-30 13:54 [RFCv0 0/3] AMP HCI interface from A2MP Emeltchenko Andrei
2011-11-30 13:54 ` [RFCv0 1/3] Bluetooth: AMP: HCI infrastructure Emeltchenko Andrei
2011-11-30 13:54 ` [RFCv0 2/3] Bluetooth: AMP: Initialize and free amp_pending Emeltchenko Andrei
2011-11-30 13:54 ` [RFCv0 3/3] Bluetooth: AMP: Read Local AMP Info Emeltchenko Andrei
2011-11-30 14:31 ` [RFCv0 0/3] AMP HCI interface from A2MP Marcel Holtmann
2011-11-30 15:18 ` Emeltchenko Andrei
2011-12-01 6:19 ` Peter Krystad
2011-12-01 11:21 ` Marcel Holtmann [this message]
2011-12-02 6:39 ` Peter Krystad
2011-12-08 14:07 ` 'Emeltchenko Andrei'
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=1322738467.26198.26.camel@aeonflux \
--to=marcel@holtmann.org \
--cc=Andrei.Emeltchenko.news@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=pkrystad@codeaurora.org \
/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.