From: Maxime Chevallier <maxime.chevallier@openwide.fr>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: BlueZ development <linux-bluetooth@vger.kernel.org>,
Johan Hedberg <johan.hedberg@gmail.com>
Subject: Re: [RFC][PATCH] Add Set Advertising Parameters command
Date: Wed, 17 Feb 2016 08:25:35 +0100 [thread overview]
Message-ID: <20160217072535.GA11822@vps217108.ovh.net> (raw)
In-Reply-To: <D9C33327-2669-4135-9DAA-2109B457B021@holtmann.org>
On Tue, Feb 16, 2016 at 10:11:22AM -0800, Marcel Holtmann 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.
I agree, this was sloppy 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.
I'm fine with the 'global configuration' approach for my particular use-case.
Your proposal of expanding later-on with an 'Enhanced' version of Add
Advertising seems cleaner, and as you said I don't really need this anyway.
I'll send a patch with my proposal for a Set Advertising Parameters,
that should look like Set Scan Parameters.
prev parent reply other threads:[~2016-02-17 7:25 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
2016-02-16 18:42 ` Marcel Holtmann
2016-02-17 7:25 ` Maxime Chevallier [this message]
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=20160217072535.GA11822@vps217108.ovh.net \
--to=maxime.chevallier@openwide.fr \
--cc=johan.hedberg@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcel@holtmann.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).