linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Emil Lenngren <emil.lenngren@gmail.com>
To: mtownsend1973@gmail.com
Cc: Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
	Bluez mailing list <linux-bluetooth@vger.kernel.org>
Subject: Re: Operating central and peripheral roles concurrently
Date: Tue, 13 Nov 2018 11:47:49 +0100	[thread overview]
Message-ID: <CAO1O6sdawagz6nfL0J=4EZ7YbLGUd2YmMbiJZVqd-BtyqLN0GA@mail.gmail.com> (raw)
In-Reply-To: <CABatt_zEv6Cksm5buiaiacOdxY4nurmbiX2OdPuQYjqUDKkRCw@mail.gmail.com>

Hi,

Den mån 12 nov. 2018 kl 17:19 skrev Martin Townsend <mtownsend1973@gmail.com>:
> 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.

  reply	other threads:[~2018-11-13 10:47 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-09 16:32 Operating central and peripheral roles concurrently Martin Townsend
2018-11-09 17:55 ` Martin Townsend
2018-11-10 18:03   ` Luiz Augusto von Dentz
2018-11-10 18:29     ` Martin Townsend
2018-11-12 13:52       ` Martin Townsend
2018-11-12 16:17         ` Martin Townsend
2018-11-13 10:47           ` Emil Lenngren [this message]
2018-11-13 11:21             ` Luiz Augusto von Dentz
2018-11-15 16:54               ` Martin Townsend
2018-11-15 17:10                 ` Martin Townsend
2019-03-05 10:54 Martin Townsend

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='CAO1O6sdawagz6nfL0J=4EZ7YbLGUd2YmMbiJZVqd-BtyqLN0GA@mail.gmail.com' \
    --to=emil.lenngren@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=luiz.dentz@gmail.com \
    --cc=mtownsend1973@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).