Also the article is not intended to be something professional now, it lacks many good stuff, like cryptanalysis of ciphers used in Bluetooth and history of attacks to Bluetooth Security. But it is a start, I plan to update it as I have time.
So please drop me an e-mail (or a comment on this blog) if you have corrections or suggestions for the text.
Besides the mentors, Johan Hedberg and Marcel Holtmann along with whole community will also support the students helping them with doubts and technical decisions. We expect to have a very productive summer, happy hacking to all students. ;)
As many of you may already know Google announced the accepted organizations for Google Summer of Code and BlueZ was accepted again! If you a student and know nothing about it go to the Google Summer of Code page and learn about it.
We are already accepting projects proposal, check our ideas list or propose some new good idea you want to implement in BlueZ. Discuss them with the BlueZ mentors and submit your project proposal. Our freenode irc channel for GSoC is #bluez-gsoc.
We will be very glad to accept the best students proposals to take part of GSoC 2011 with BlueZ.
2.6.38 was a quiet release cycle for the Bluetooth subsystem, the biggest changes came from Johan Hedberg for the HCI management Interface, a under development code. Besides that we added support for two Atheros devices (AR9285 and AR5BBU12). Fixed a regression with the USB autosuspend and lot of other fixes and clean ups.
On the other hand 2.6.39 is being a very busy release cycle, stay tuned to see all the new stuff we will add to the Linux Bluetooth stack.
I just did my talk at the Linux Plumbers Conference at Cambridge, MA. I had many problems with English which made it no so good, but that’s ok. I have to improve it for the next talk. ;-) You can get the slides at here.
On October 20th, Linus released the 2.6.36 kernel and one of the new features released with it was the support in the Linux Bluetooth stack for the L2CAP Extended Features. Also called eL2CAP, the L2CAP Extended Features add some new features to the L2CAP layer, like the Enhanced Retransmission Mode(ERTM), a reliable protocol with error and flow control; the Streaming Mode, an unreliable protocol for streaming purpouses; the Frame Check Sequence, a checksum for each received packet; and Segmentation and Reassembly of L2CAP packets which make retransmission easier. The L2CAP Extended Features were in the kernel before, but in an experimental mode and disabled by default.
Other Bluetooth changes in 2.6.36: In-kernel blacklist for incoming connections, that allow dropping selected incoming connections in kernel space without having to wake up bluetoothd. Support for the Atheros AR300x chip. A new hci_recv_stream_fragment() function which is part of a refactory in the HCI recv path to make the life of some drivers easier.
Since the beginning of October I’m the new Linux Kernel maintainer of the Bluetooth Subsystem. Marcel Holtmann, who was maintaining the trees before will be around as before, but only on patch review now. Only Marcel knows the whole stack, so his help and ack is needed for sure. All rest, like apply patches, check if everything builds correctly and send pull request, is my job. That is not a big change in the Bluetooth subsystem, things should work the same way as before in linux-bluetooth.
You can find my bluetooth-2.6, intended only for bug fixes for the current linux release cycle, here:
A recent article from lwn.net shows ProFUSION in the most active employers for networking stuff in the 2.6.35 release cycle. That was due to the work we did in the Bluetooth stack implementing the L2CAP Extended Features (see older post in this blog to learn about L2CAP Extended Features). Nice!
After more than 4 months working daily at ERTM, here at ProFUSION, we have now a functional and much more stable implementation. Several potential crashes have been fixed, and missing features were added. Also the code was checked against the Profile Tuning Suite(PTS) test software. That software is the official test software from Bluetooth SIG to qualify Bluetooth stacks and the result is that right now we are also passing all PTS tests.
On the bug fixes front, beside the kernel crash fixes, a lot of ERTM behavior bugs have been found and fixed. Some of them made ERTM flow crazy, but we have been able to discover and fix them all. Obviously there might be other bugs in the code, but I haven’t found them yet. ;)
New code added: All missing events and actions from the ERTM spec were implemented, they should be working properly now. Among them we have the Local Busy handling, Invalid Frame detection, etc.
The PTS software helped a lot with the ERTM development, I’m sure that we are much more compatible with others stacks now after fixing L2CAP to pass all tests for Enhanced Retransmission Mode, Streaming Mode and FCS.
Now I’m aiming at make the code base even more stable looking on the mainlining of this new part of the L2CAP code inside the Linux stack. All the code should be available and enabled by default on the 2.6.36 release. If you wanna help testing use the for-next branch of my git tree:
Some days ago I requested a account to the kernel.org admins, today I finished to setup my kernel git tree there. If you were following my git tree at git.profusion.mobi please change your remote to the kernel.org one.