2007-05-28 16:14:31

by Pascal

[permalink] [raw]
Subject: [Bluez-devel] Increasing HIDP_DEFAULT_MTU ?

Hi,

I have a Bluetooth HID peripheral which sends 50-byte payloads
on L2CAP psm 19, even though it has accepted a Config req with
MTU 48. As a result, the data never reaches userspace.
Is this a bug in the device ?

Besides, even if the device implemented segmentation with
DATC, a MTU of 48 might be a significant performance penalty
(generating twice as many packets on the radio channel ?).

So would it be appropriate to change
bluez-libs-3.11/include/hidp.h:#define HIDP_DEFAULT_MTU 48
to 672, as recommmended by HID_SPEC_V10 section 7.5.2 ?

Or maybe make it a command-line option for hidd and
bluetoothd-service-input ?

Pascal


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel


2007-05-30 11:51:02

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] Increasing HIDP_DEFAULT_MTU ?

Hi Pascal,

> > do you mean the controller that comes with the PS3?
>
> Yes, a.k.a. "sixaxis". It is not really advertised as a HIDP
> device, but it behaves pretty much like one. Sony also has a
> TV-style Bluetooth remote, which I have not tested.

actually I have both of them. The controller is kinda nasty and I have
to integrate the cable-based authentication somehow nicely with udev and
the input service.

The remote uses a total weird HID report format. Doesn't make sense to
push that through the kernel. We will use a fake HID inside the input
service and then uinput to create the input device.

Regards

Marcel



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-05-30 10:52:52

by Pascal

[permalink] [raw]
Subject: Re: [Bluez-devel] Increasing HIDP_DEFAULT_MTU ?

Marcel,

> do you mean the controller that comes with the PS3?

Yes, a.k.a. "sixaxis". It is not really advertised as a HIDP
device, but it behaves pretty much like one. Sony also has a
TV-style Bluetooth remote, which I have not tested.

Regards,

Pascal


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-05-30 07:31:59

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] Increasing HIDP_DEFAULT_MTU ?

Hi Pascal,

> > Actually we are not really supporting segmentation by ourself. If I had
> > one of the devices for testing, I might be able to fix that easily. Hint
> > hint :)
>
> It's that wireless joystick from Sony. Be sure to ask for the
> console that goes with it, it makes debugging much easier :-)

do you mean the controller that comes with the PS3?

> Note: when polled with HIDP_TRANS_GET_REPORT on the control channel,
> it does use DATC (unlike what happens on the interrupt channel).
> So maybe it would be a good platform for testing reassembly code.

Yes. We need to fix that.

> > I fixed the input service now. We will see how this works out. In
> > addition the 2.6.22-rc3 kernel contains a patch to fix a bug in the
> > L2CAP config handling.
>
> Thanks; the device now works out-of-the box with ps3-linux 2.6.22-rc3
> and bluetoothd-service-input from bluez-utils-cvs (except I couldn't
> figure how the new authorization framework works, so I renamed
> /var/lib/bluetooth/*/hidd to /var/lib/bluetooth/*/input instead).

That can produce some strange settings. The input file format is a
little bit different than the hidd file format.

Regards

Marcel



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-05-29 22:12:04

by Pascal

[permalink] [raw]
Subject: Re: [Bluez-devel] Increasing HIDP_DEFAULT_MTU ?

Marcel Holtmann wrote:
> Actually we are not really supporting segmentation by ourself. If I had
> one of the devices for testing, I might be able to fix that easily. Hint
> hint :)

It's that wireless joystick from Sony. Be sure to ask for the
console that goes with it, it makes debugging much easier :-)

Note: when polled with HIDP_TRANS_GET_REPORT on the control channel,
it does use DATC (unlike what happens on the interrupt channel).
So maybe it would be a good platform for testing reassembly code.


> I fixed the input service now. We will see how this works out. In
> addition the 2.6.22-rc3 kernel contains a patch to fix a bug in the
> L2CAP config handling.

Thanks; the device now works out-of-the box with ps3-linux 2.6.22-rc3
and bluetoothd-service-input from bluez-utils-cvs (except I couldn't
figure how the new authorization framework works, so I renamed
/var/lib/bluetooth/*/hidd to /var/lib/bluetooth/*/input instead).

Pascal


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-05-29 04:04:15

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] Increasing HIDP_DEFAULT_MTU ?

Hi Pascal,

> I have a Bluetooth HID peripheral which sends 50-byte payloads
> on L2CAP psm 19, even though it has accepted a Config req with
> MTU 48. As a result, the data never reaches userspace.
> Is this a bug in the device ?

which device is this. I might need to have one of it at home for
testing.

> Besides, even if the device implemented segmentation with
> DATC, a MTU of 48 might be a significant performance penalty
> (generating twice as many packets on the radio channel ?).

Actually we are not really supporting segmentation by ourself. If I had
one of the devices for testing, I might be able to fix that easily. Hint
hint :)

> So would it be appropriate to change
> bluez-libs-3.11/include/hidp.h:#define HIDP_DEFAULT_MTU 48
> to 672, as recommmended by HID_SPEC_V10 section 7.5.2 ?
>
> Or maybe make it a command-line option for hidd and
> bluetoothd-service-input ?

I fixed the input service now. We will see how this works out. In
addition the 2.6.22-rc3 kernel contains a patch to fix a bug in the
L2CAP config handling.

Regards

Marcel



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel