Re: Update the connection's parameters

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

 



Hi Marcel,

On 01/02/17 19:38, Marcel Holtmann wrote:
> Hi Filipe,
> 
>> I've been working on the MIDI profile plugin for bluetoothd. This
>> profile requires the lowest latency and connection interval possible. In
>> order to do that we need to update the connection parameters. There are
>> two ways of doing it, first is upon connection
>> (HCI_LE_Create_Connection) and second is updating current connection
>> link (HCI_LE_Connection_Update).
>>
>> The first time an LE slave (MIDI controller) device is connected to
>> BlueZ, the plugin should be able to set this parameters for current
>> connection and save these settings for persistence purposes.
>>
>> As of today, bluetoothd does support the persistence mechanist, which is
>> triggered by a mgmt's New Connection Parameter (0x001c) command, which
>> in turn is triggered by L2CAP Connection Parameter Update Request or a
>> HCI LE Remote Connection Parameter Request (BT 4.1).
>>
>> As mentioned before, this is not enough. Specially because in practice
>> LE slave devices don't send a any of those two requests mentioned above.
>>
>> My idea is to set the connection parameter using
>> HCI_LE_Connection_Update if one of the host controllers, master or
>> slave, only supports 4.0. Then update the device info file with current
>> ConnectionParameters for persistence.
>>
>> In case both controllers support 4.1 and above, we should use the
>> Connection Parameters Request Procedure (BT 4.1 Vol 6 Part B §5.1.17) in
>> order to negotiate what is the best parameters for the connection.
>>
>> I hope this makes sense. If not, I appreciate your comments. :)
> 
> we need to introduce a L2CAP socket option that allows for setting some of the connection parameters. So that the kernel can consolidate these and request them.

Yes, this sounds great. What would you recommend to implement then?
Using SOL_L2CAP or SOL_SOCKET with a new optname?

> 
> I am not 100% we want to expose the actual values. Maybe it is better to have a latency parameter with high, default and low as values.
> 

Yes.

What would this option trigger the controller to do? Because as I have
seen it really depends on HCI role and BT version, but I am not an
expert in BT, so I appreciate any comments.

-- 
Felipe

Attachment: 0x92698E6A.asc
Description: application/pgp-keys


[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