linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Barry Byford <31baz66@gmail.com>
To: BlueZ development <linux-bluetooth@vger.kernel.org>
Subject: Re: [RFC][PATCH] Add Set Advertising Parameters command
Date: Tue, 16 Feb 2016 18:35:52 +0000	[thread overview]
Message-ID: <CAAu3APacps6c_P_HeyV-Myt-GXxt9CVvVow9HXbW2QEk51CZsA@mail.gmail.com> (raw)
In-Reply-To: <D9C33327-2669-4135-9DAA-2109B457B021@holtmann.org>

On 16 February 2016 at 18:11, Marcel Holtmann <marcel@holtmann.org> wrote:
> Hi Chevallier,
>
>> ---
>> doc/mgmt-api.txt | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 67 insertions(+)
>>
>> diff --git a/doc/mgmt-api.txt b/doc/mgmt-api.txt
>> index 731a088..4b842fd 100644
>> --- a/doc/mgmt-api.txt
>> +++ b/doc/mgmt-api.txt
>> @@ -2596,6 +2596,7 @@ Add Advertising Command
>>               4       Add TX Power field to Adv_Data
>>               5       Add Appearance field to Scan_Rsp
>>               6       Add Local Name in Scan_Rsp
>> +             7       Pending Parameters
>>
>>       When the connectable flag is set, then the controller will use
>>       undirected connectable advertising. The value of the connectable
>> @@ -2623,6 +2624,12 @@ Add Advertising Command
>>       supported to provide less air traffic for devices implementing
>>       broadcaster role.
>>
>> +     If the Pending Parameters flag is set, the Advertising Instance
>> +     will only be queued when the Set Advertising Parameters command
>> +     is issued, with the correct Instance identifier. If the next
>> +     command is not a Set Advertising Parameters commmand, the current
>> +     Advertising Instance is cancelled.
>> +
>
> this is an API design, I prefer to not support. It is really complicated and does not feel like a clean design.
>
>>       The Duration parameter configures the length of an Instance. The
>>       value is in seconds.
>>
>> @@ -2680,6 +2687,66 @@ Add Advertising Command
>>                               Invalid Index
>>
>>
>> +Set Advertising Parameters Command
>> +==================================
>> +
>> +     Command Code:           0x003f
>> +     Controller Index:       <controller id>
>> +     Command Parameters:     Instance (1 Octet)
>> +                             Adv_Interval_min (2 Octets)
>> +                             Adv_Interval_max (2 Octets)
>> +     Return Parameters:
>> +
>> +     This command is used to set advertising parameters for a Bluetooth
>> +     Low Energy controller.
>> +
>> +     This command can be used to configure global advertising parameters
>> +     that will be applied for advertising issued by the Set Advertising
>> +     command.
>> +
>> +     This command can also be used to configure single Advertising
>> +     Instances. In that case, the parameters applied for the Advertising
>> +     Instance will override global Advertising Parameters when the
>> +     Adversiting Instance is running.
>> +
>> +     When configuring an Advertising Instance, the Instance must have
>> +     been added with the flag "Pending parameters". The Advertising
>> +     Instance will be added to queue only when the Set Advertising
>> +     Parameters will be issued.
>> +
>> +     The Instance parameter designates what we want to configure.
>> +     If the Instance parameter is 0, the Advertising Parameters apply
>> +     globally, for both the advertising issued with the Set Adverting
>> +     and the Advertising Instances issued with Add Averting.
>
> I wonder if we actually want to include the Instance parameter at all here. I mean, why not just have some global setting for advertising parameters and just run with it.
>
> However would fine grained per instance setting actually help you? If you have an instance with a higher interval it will consume the extra power.
>
> And honestly if we ever really need super fine grained control, then I rather design an Add Enhanced Advertising command after we figured out what we really want. Especially looking forward on the next Bluetooth specification, I prefer not to lock myself in at this point in time.
>
> So if we want to add a global Set Advertising Parameters similar to Set Scan Parameters then I am fine with that, but anything more complex seems not the right solution at this point.
>
> Regards
>
> Marcel
>

On the Eddystone beacons they have 3 different frame types and a
typical installation might broadcast two frame types. The suggestion
is that the two fame types would be interleaved and the Eddystone-TLM
frame type would be broadcast less frequently than Eddystone-URL for
example. Would having this parameter per instance allow this to be
done?

  reply	other threads:[~2016-02-16 18:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-16 13:09 [RFC][PATCH] Add Set Advertising Parameters command Chevallier Maxime
2016-02-16 18:11 ` Marcel Holtmann
2016-02-16 18:35   ` Barry Byford [this message]
2016-02-16 18:42     ` Marcel Holtmann
2016-02-17  7:25   ` Maxime Chevallier

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=CAAu3APacps6c_P_HeyV-Myt-GXxt9CVvVow9HXbW2QEk51CZsA@mail.gmail.com \
    --to=31baz66@gmail.com \
    --cc=linux-bluetooth@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).