FW: [PATCH] Updated TODO list for LE HCI Scan, Advertise and Connect commands.

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

 



Hi Claudio, 

Hi Sumit,

On Thu, Dec 23, 2010 at 7:07 AM, Sumit Kumar BAJPAI
<sumitkumar.bajpai@xxxxxxxxxxxxxx> wrote:
> Updated TODO list for HCI commands for LE that ST-Ericsson plans to
> implement and contribute back.
>
> ---
> ÂTODO | Â 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> Â1 files changed, 93 insertions(+), 0 deletions(-)
>
> diff --git a/TODO b/TODO
> index 49a9e76..e62c6e5 100644
> --- a/TODO
> +++ b/TODO
> @@ -66,6 +66,99 @@ Low Energy
> Â Priority: Low
> Â Complexity: C2
>
> +- Implement Set Advertise data via Host interface. This Set Advertise Data is
> + Âused by advertising device to advertise with some data field. This is via
> + Âundirected and connectable events. Data field is maximum of 30 octets, and is
> + Âprimarily used for small data advertisement. Scanning device can see in scan
> + Âresults the advertised data as set by the advertising device.
> + ÂSee Volume 2, Part E, section 7.8.7 for more information.
> +
> + ÂPriority: Low
> + ÂComplexity: C1
> +
> +- Implement Set Advertise parameters via Host interface. This Set Advertise
> + Âparameters is used by advertising device to set advertising parameters. The
> + ÂHost shall not issue this command when advertising is enabled in the
> + ÂController; if it is the Command Disallowed error code shall be used.
> + ÂSee Volume 2, Part E, section 7.8.5 for more information.
> +
> + ÂPriority: Low
> + ÂComplexity: C1
> +
> +- Implement Set Scan Response Data via host interface. This data is set by the
> + Âadvertiser in case it wants to send data only to those devices that are
> + Âcurrently actively scanning. This is via undirected and connectable events.
> + ÂData can be set before or after advertising and can be maximum of 30 octets.
> + ÂSee Volume 2, Part E, section 7.8.8 for more information.
> +
> + ÂPriority: Low
> + ÂComplexity: C1

We don't need to expose a method to allow the applications to change
the advertising parameters. The idea is to manage them automatically
based on the registered gatt servers.

That's our intent too. we dont propose to expose API's for these parameters rather only implement the HCI commands and let GAP/GATT use them suitably.

Broadcaster Role is out of scope at the moment. Peripheral, we are
planning to start the implementation soon, but first we need to define
the GATT server API.
IMHO we need to align the advertising parameter settings with the
Adapter "Discoverable" property and the registered GATT servers.

Enable/Disable of Set Scan Response data and Advertising data could be moved to Adapter "Discoverable Property". Even Set scan Response data/Advertising data could be thought of as part of Discoverable properties.

Set Scan Response Data: I don't an answer at the moment.

Set Scan Response data finds its uses while implementing Advertising Filter Policy at Advertiser's Link Layer. Basically it lets this data to be hidden from device addresses not present in controller "White List".

> +
> +- Implement Read Advertise Channel Tx Power via Host interface. This Read
> + ÂAdvertise Channel Tx power is used by advertising host to read the transmit
> + Âpower level used for LE advertising channel packets.
> + ÂSee Volume 2, Part E, section 7.8.6 for more information.
> +
> + ÂPriority: Low
> + ÂComplexity: C1
Could you please give an usage example?

Proximity Monitor?

If I understood correctly we will need a function
hci_le_read_xxx_tx_power() to fill the TX Power Level in the
advertising data, right?

 Yes.


> +
> +- Implement Add Device to White List in LE controller via host interface.
> + ÂThis command is used to add a single device to white list stored in the
> + Âcontroller. Once the device is in white list it should follow scan and
> + Âconnect rules as stated in advertising filter policy.
> + ÂSee Volume 2, Part E, section 7.8.16 for more information.
> +
> + ÂPriority: Low
> + ÂComplexity: C1
> +
> +- Implement Remove Device from White List in LE controller via host interface.
> + ÂThis command is used to remove a single device from white list stored in the
> + Âcontroller. This command has certain restrictions on its usage. Command
> + Âcomplete event is generated on completion.
> + ÂSee Volume 2, Part E, section 7.8.17 for more information.
> +
> + ÂPriority: Low
> + ÂComplexity: C1
> +
> +- Implement Clear White List in LE controller via host interface. This command
> + Âis used to clear the white list stored in the controller. This command has
> + Âcertain restrictions Âon its usage. This command has no command parameters
> + Âto be pushed on Âcontroller. Command complete event is generated on completion.
> + ÂSee Volume 2, Part E, section 7.8.15 for more information.
> +
> + ÂPriority: Low
> + ÂComplexity: C1
> +
> +- Implement Read White List Size in LE controller via host interface. This
> + Âcommand is used to read the maximum size of the white list supported by the
> + Âcontroller.
> + ÂSee Volume 2, Part E, section 7.8.14 for more information.
> +
> + ÂPriority: Low
> + ÂComplexity: C1

Maybe we will need this feature to implement the Register Application
API. Automatic connections are planned, but it can be useful to
reduce/filter the amount of advertising reports.

Not only the White-Lists would be needed for Auto connection establishment, but they are ultimately required for setting Advertising Filter Policy, Scanner Filter policies and Initiator Filter Policies. I think it would be a good value add to Bluez.

> +
> +- Implement Read LE buffer Size via host interface. This data is used to read
> + Âthe maximum size of data portion of HCI LE ACL Data Packets sent from the
> + ÂHost to the Controller. The Host will segment the data transmitted to the
> + ÂController according to these values, so that the HCI Data Packets will
> + Âcontain data with up to this size. The LE_Read_Buffer_Size command also
> + Âreturns the total number of HCI LE ACL Data Packets that can be stored in
> + Âthe data buffers of the Controller. The LE_Read_Buffer_Size command must be
> + Âissued by the Host before it sends any data to an LE Controller.
> + ÂSee Volume 2, Part E, section 7.8.2 for more information.
> +
> + ÂPriority: Low
> + ÂComplexity: C1
> +
> +- Implement LE Connection Update command via Host interface. The
> + ÂLE_Connection_Update command is used to change the Link Layer connection
> + Âparameters of a connection. This command shall only be used when the local
> + Âdevice's role is Master.
> + ÂSee Volume 2, Part E, section 7.8.18 for more information.
> +
> + ÂPriority: Medium
> + ÂComplexity: C1

Is it necessary to notify the userpace or it is a kernel task only?
Please remove it if it is a kernel task.

I guess few of device profiles would need notifications related to supervision timeout etc. So, this will be needed in user space. 

For the other tasks I suggest to keep them in the TODO file to track
the missing features, no matter if we will use them directly(eg:
hcitool, hciconfig) or in the API/services implementation.

Agreed. that's the intent here to append these to common Bluez TODO list.

If possible please add the expected deliverable for each task, it will
make easier to other developers to contribute.

We have finished coding for most of the above features and testing is in progress. You may expect all to be submitted to this forum by next fortnight.
You can address further queries to Arun and me.


Regards.
Claudio


Thanks, 
Sumit
ÿô.nlj·Ÿ®‰­†+%ŠË±é¥Šwÿº{.nlj·¥Š{±ý¶â^n‡r¡öë¨è&£ûz¹Þúzf£¢·hšˆ§~†­†Ûÿÿïÿ‘ê_èæ+v‰¨þ)ßø

[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