From: "Gustavo F. Padovan" <gustavo@padovan.org>
To: tmonahan@codeaurora.org
Cc: linux-bluetooth@vger.kernel.org, Marcel Holtmann <marcel@holtmann.org>
Subject: Re: RFC: QuIC's AMP + eL2CAP Technical Plans
Date: Sat, 13 Mar 2010 14:30:01 -0300 [thread overview]
Message-ID: <20100313171654.GB19188@vigoh> (raw)
In-Reply-To: <1267753300.29510.25.camel@localhost.localdomain>
Hi Tim,
* Marcel Holtmann <marcel@holtmann.org> [2010-03-04 17:41:40 -0800]:
> Hi Tim,
>
> > QuIC (Qualcomm Innovation Center, Inc., a member of the Code Aurora Forum)
> > is planning an implementation of AMP for BlueZ. Here are some details of
> > our technical approach. We are interested in comments from the BlueZ
> > development community on validity and whether there are areas we have
> > missed.
> >
> > Features:
> > - Completion of L2CAP with ERTM
> >
> > - Addition of L2CAP Channel Management and AMP Manager
> >
> > - DBUS support to access AMP features, control AMP settings, etc.
> >
> > - Updates to Test Programs (hcidump, hciemu, l2test, ...)
> >
> > - Creation of a Fake PAL to facilitate desktop development using wired TCP
> >
> > - Legacy L2CAP sockets take advantage of AMP, if so enabled using new
> > controls (sockopts or DBUS)
> >
> > - Key Management extended for AMP Controller Keys
> >
> >
> > L2CAP and ERTM
> > --------------
> >
> > A prerequisite for AMP support is a fully functional L2CAP ERTM
> > implementation, including optional L2CAP features not currently included
> > in BlueZ.
> >
> > Our overall approach is to build on the existing ERTM code in the
> > bluetooth-testing tree, extending the present socket interfaces that are
> > visible to userspace. The extensions we foresee are sockopt configuration
> > of MPS (max PDU size), TX window size (currently hard coded), and a simple
> > AMP control policy ("BR/EDR only", "initiate on or move to AMP", or
> > "initiate on or move to BR/EDR, allow incoming move").
>
> I was under the impression it is best to match the MPS with the ACL MTU
> from the controller? So do we need really an option less. Less options
> are less confusing for users.
MaxTransmit should be in the sockopt too.
>
> > There are a few protocol-level enhancements required. One is to support
> > L2CAP lockstep configuration, in addition to the present standard
> > configuration process. Another addition is support for the extended TX
> > window option.
> >
> > Core ERTM functionality (without the proposed additional features) is
> > still a work in progress, and the main area that needs attention is the
> > implementation of the transmitter (XMIT and WAIT_F) and receiver (RECV and
> > SREJ_SENT) state tables as defined in the ERTM spec.
> >
> >
> > L2CAP and Channel Management for AMP
> > ------------------------------------
> >
> > Once ERTM is working without AMP, the state machine will have to be
> > extended to account for the extra demands of creating channels directly on
> > an AMP controller and AMP channel moves. L2CAP will have to deal with two
> > controllers (BR/EDR and AMP) while the channel move is taking place, and
> > correctly handle lockstep reconfiguration of the L2CAP channel when the
> > move is completing.
> >
> > To enable AMP, L2CAP itself will need to be enhanced to support the A2MP
> > fixed channel and to use the AMP Manager to create/disconnect physical and
> > logical links on an AMP controller. Additionally L2CAP will need to
> > manage channels according to the new AMP control, moving them as
> > appropriate and handling remote move requests.
> >
> > The AMP Manager function will need to be created. It will support
> > signaling on the A2MP channel and the create/disconnect of AMP physical
> > and logical links.
> >
> > HCI will need to be extended to support data-block-based flow control. AMP
> > Controllers will be presented to BlueZ as HCI devices of a new type.
>
> The block-based flow control is a missing piece, but the AMP type
> extension has been merged upstream. We can create HCI_BREDR and
> HCI_80211 controllers now. The AMP controllers are for now forced to be
> raw devices, but that can be changed easily once we have the controller
> init for AMP up and ready.
>
> > DBUS Additions (bluetoothd)
> > ---------------------------
> >
> > org.bluez.Adapter : A new property is added, containing a list of the
> > associated org.bluez.AmpAdapter objects ("/org/bluez/amp{0, 1, 2, ...}").
> > Associating a given AmpAdapter to a parent BR/EDR device
> > ("/org/bluez/hci{n}") is one method of org.bluez.AmpAdapter . AmpAdapter
> > has other methods to obtain the local controller's type and status, and
> > the number of physical links it carries, and to mark whether it is
> > available for use by the Amp Manager.
> >
> > org.bluez.Device : A new method begins the AMP Discovery procedure for
> > that Device; an alternative would be to add the procedure to what
> > DiscoverServices() does. A new property contains the cached remote AMP
> > Device list.
>
> I have to reject this. I don't seen any need to expose this. We could
> just do this all internally inside the kernel. The AMP policy should
> trigger these automatically and if AMP usage is allowed, we just pick
> the right AMP. Involving the user in AMP discovery makes no sense and
> complicates the user cases.
>
> Regards
>
> Marcel
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Gustavo F. Padovan
http://padovan.org
next prev parent reply other threads:[~2010-03-13 17:30 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-04 22:49 RFC: QuIC's AMP + eL2CAP Technical Plans tmonahan
2010-03-05 1:41 ` Marcel Holtmann
2010-03-05 12:45 ` Luiz Augusto von Dentz
2010-03-07 4:37 ` tmonahan
2010-03-07 5:13 ` Marcel Holtmann
2010-03-08 11:56 ` David Vrabel
2010-03-08 14:52 ` tmonahan
2010-03-08 18:22 ` Marcel Holtmann
2010-08-09 21:30 ` Tim Monahan-Mitchell
2010-08-09 22:03 ` David Vrabel
2010-08-09 22:12 ` David Vrabel
2010-08-09 22:21 ` Tim Monahan-Mitchell
2010-03-13 17:30 ` Gustavo F. Padovan [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-03-08 5:32 tmonahan
2010-03-08 6:31 ` Marcel Holtmann
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=20100313171654.GB19188@vigoh \
--to=gustavo@padovan.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=tmonahan@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox