Re: Operating central and peripheral roles concurrently

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Emil, Martin,
On Tue, Nov 13, 2018 at 12:47 PM Emil Lenngren <emil.lenngren@xxxxxxxxx> wrote:
>
> Hi,
>
> Den mån 12 nov. 2018 kl 17:19 skrev Martin Townsend <mtownsend1973@xxxxxxxxx>:
> > I've just been reading the 4.1 spec on GAP and on page 224 it states:
> >
> >
> > "In LE, GAP defines four specific roles: Broadcaster, Observer, Peripheral, and
> > Central. A device may support multiple LE GAP roles provided that the underly-
> > ing Controller supports those roles or role combinations. However, only one LE
> > GAP role may be supported at a given time. Each role specifies the require-
> > ments for the underlying Controller. This allows for Controllers to be optimized
> > for specific use cases."
> >
> > Now to me that says a device can support being a central and
> > peripheral but doesn't have to support them concurrently so I'm
> > guessing if the device is in the peripheral role and then wanted to
> > connect to another device you would have to stop being a peripheral
> > (ie drop this connection) and then become a central, make the
> > connection and when finished disconnect and become a peripheral again
> > and wait for the other devices to reconnect to you.  Or am I
> > mis-reading this?
>
> This restriction is lifted in newer versions of the spec. The same
> section in version 4.2 says this:
> "In LE, GAP defines four specific roles: Broadcaster, Observer, Peripheral, and
> Central. A device may support multiple LE GAP roles provided that the
> underlying Controller supports those roles or role combinations. Each role
> specifies the requirements for the underlying Controller. This allows for
> Controllers to be optimized for specific use cases."
>
> If you use the btmon tool you can easily see what combination of
> supported states the controller supports. If you have btmon running
> while you initiate bluetoothd you will see the packet LE Read
> Supported States Command, which contains this info.

In that case we should definitely use these states to determine
instead of assuming the controller don't support Master & Slave state,
though it would be great if Martin provides the HCI traces where it is
failing and if indeed is the controller not support it or some other
bug.

-- 
Luiz Augusto von Dentz




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux