<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gustavo F. Padovan &#187; free software</title>
	<atom:link href="http://padovan.org/blog/category/free-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://padovan.org/blog</link>
	<description>a hacking life</description>
	<lastBuildDate>Fri, 23 Jul 2010 22:30:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ProFUSION on the kernel development statistics for 2.6.35</title>
		<link>http://padovan.org/blog/2010/07/profusion-on-the-kernel-development-statistics-for-2-6-35/</link>
		<comments>http://padovan.org/blog/2010/07/profusion-on-the-kernel-development-statistics-for-2-6-35/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 22:30:07 +0000</pubDate>
		<dc:creator>padovan</dc:creator>
				<category><![CDATA[bluez]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[profusion]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[en]]></category>
		<category><![CDATA[enhanced retransmission mode]]></category>
		<category><![CDATA[l2cap]]></category>
		<category><![CDATA[streaming mode]]></category>

		<guid isPermaLink="false">http://padovan.org/blog/?p=187</guid>
		<description><![CDATA[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!]]></description>
			<content:encoded><![CDATA[<p>A recent <a href="http://lwn.net/Articles/395458/" target="_blank">article</a> from <a href="http://lwn.net">lwn.net</a> 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!</p>
]]></content:encoded>
			<wfw:commentRss>http://padovan.org/blog/2010/07/profusion-on-the-kernel-development-statistics-for-2-6-35/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>L2CAP Enhanced Retransmission Mode getting stable</title>
		<link>http://padovan.org/blog/2010/07/l2cap-enhanced-retransmission-mode-getting-stable/</link>
		<comments>http://padovan.org/blog/2010/07/l2cap-enhanced-retransmission-mode-getting-stable/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 23:47:26 +0000</pubDate>
		<dc:creator>padovan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bluez]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[profusion]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[streaming mode]]></category>

		<guid isPermaLink="false">http://padovan.org/blog/?p=183</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>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&#8217;t found them yet. ;)</p>
<p>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.</p>
<p>The PTS software helped a lot with the ERTM development, I&#8217;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.</p>
<p>Now I&#8217;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:</p>
<blockquote><p><a href="http://git.kernel.org/?p=linux/kernel/git/padovan/bluetooth-testing.git" target="_blank">http://git.kernel.org/?p=linux/kernel/git/padovan/bluetooth-testing.git</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://padovan.org/blog/2010/07/l2cap-enhanced-retransmission-mode-getting-stable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now git tree hosted at kernel.org</title>
		<link>http://padovan.org/blog/2010/05/now-git-tree-hosted-at-kernel-org/</link>
		<comments>http://padovan.org/blog/2010/05/now-git-tree-hosted-at-kernel-org/#comments</comments>
		<pubDate>Sat, 22 May 2010 20:18:19 +0000</pubDate>
		<dc:creator>padovan</dc:creator>
				<category><![CDATA[bluez]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[profusion]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[enhanced retransmission mode]]></category>
		<category><![CDATA[streaming mode]]></category>

		<guid isPermaLink="false">http://padovan.org/blog/?p=176</guid>
		<description><![CDATA[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. git clone git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-testing.git You can also browse on the gitweb view here. =)]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<blockquote><p>git clone git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-testing.git</p></blockquote>
<p>You can also browse on the gitweb view <a href="http://git.kernel.org/?p=linux/kernel/git/padovan/bluetooth-testing.git" target="_blank">here</a>. =)</p>
]]></content:encoded>
			<wfw:commentRss>http://padovan.org/blog/2010/05/now-git-tree-hosted-at-kernel-org/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Summer of Code has come. Again!</title>
		<link>http://padovan.org/blog/2010/04/google-summer-of-code-has-come-again/</link>
		<comments>http://padovan.org/blog/2010/04/google-summer-of-code-has-come-again/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 00:50:40 +0000</pubDate>
		<dc:creator>padovan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bluez]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[connman]]></category>
		<category><![CDATA[dial-up network]]></category>
		<category><![CDATA[dun]]></category>
		<category><![CDATA[ofono]]></category>
		<category><![CDATA[unicamp]]></category>

		<guid isPermaLink="false">http://padovan.org/blog/?p=166</guid>
		<description><![CDATA[For the second year I got accepted on the Google Summer of Code project to work with the BlueZ organization. My project this year is to work on the DUN Client. DUN is the Dial-up Network Profile, it provides access to the Internet and other dial-up services via Bluetooth.  My project intends to do the [...]]]></description>
			<content:encoded><![CDATA[<p>For the second year I got accepted on the <a href="http://socghop.appspot.com/" target="_blank">Google Summer of Code</a> project to work with the BlueZ organization. My project this year is to work on the DUN Client. DUN is the Dial-up Network Profile, it provides access to the Internet and other dial-up services via Bluetooth.  My project intends to do the DUN client only, but if I have time at the end of the project I&#8217;ll work on the DUN Server too.</p>
<p>The implementation will make changes in <a href="http://www.bluez.org" target="_blank">BlueZ</a>, <a href="http://connman.net" target="_blank">ConnMan</a> and <a href="http://ofono.org" target="_blank">oFono</a>. Most of the changes will be inside oFono. There, we need to  use the AT command parser and the  PPP stack (recently added to the oFono  repo). The work consist on integrate everything and implement the  missing parts of the AT command parser and the PPP stack, and the DUN agent.</p>
<p>On the  BlueZ part the work will be the service export for DUN Data Terminal  role and and the DUN Agent server to register agents and pass the RFCOMM file descriptor. For testing purposes we can use the Serial API in the beginning. That work is very similar to what we did for the HFP this year.</p>
<p>The ConnMan integration: ConnMan will setup the NAT and the  Internet connection. The DUN integration on ConnMan is similar to the PAN integration(still a work in progress) , so we can reuse part of  that implementation.</p>
<p>That&#8217;s it.  I&#8217;ll post updates here during the development of the project. Now let me code. ;-)</p>
<p>Also, congratulation to the others Unicamp (University of Campinas) students that were accepted on GSoC too. :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://padovan.org/blog/2010/04/google-summer-of-code-has-come-again/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BlueZ module for Enlightenment</title>
		<link>http://padovan.org/blog/2010/03/bluez-module-for-enlightenment/</link>
		<comments>http://padovan.org/blog/2010/03/bluez-module-for-enlightenment/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 19:27:45 +0000</pubDate>
		<dc:creator>padovan</dc:creator>
				<category><![CDATA[bluez]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[profusion]]></category>
		<category><![CDATA[efl]]></category>
		<category><![CDATA[enlightenment]]></category>

		<guid isPermaLink="false">http://padovan.org/blog/?p=153</guid>
		<description><![CDATA[In the last month I&#8217;ve been working on the Bluetooth Manager module for the Enlightenment Window Manager using the BlueZ infraestructure. The module is still pretty simple. The supported features now are Scan of Devices, Pairing and set/get of some adapter&#8217;s properties (Name, Powered, DiscoverableTimeout and Discoverable and Address). To Build the module I&#8217;ve created [...]]]></description>
			<content:encoded><![CDATA[<p>In the last month I&#8217;ve been working on the Bluetooth Manager module for the <a href="http://www.enlightenment.org/" target="_blank">Enlightenment</a> Window Manager using the BlueZ infraestructure. The module is still pretty simple. The supported features now are Scan of Devices, Pairing and set/get of some adapter&#8217;s properties (Name, Powered, DiscoverableTimeout and Discoverable and Address).<br />
To Build the module I&#8217;ve created an e_dbus implementation for bluez  (e_dbus is a EFL library to abstract DBus API to a nice C interface). This module were based on the <a href="http://blog.gustavobarbieri.com.br/2010/01/02/enlightenment-meets-connman/" target="_blank">ConnMan</a> module and e_dbus implementation for Enlightenment, which has a very similar API.<br />
The nexts steps are to add Agent properties to it, like receive requests for pairing or authorization. In the long term we plan to add support to send files over OBEX.</p>
<p><img class="aligncenter" src="http://littlechina.org/~padovan/img/ebluez-powered-discoverable.png" alt="" width="339" height="164" /><br />
<img class="aligncenter" src="http://littlechina.org/~padovan/img/ebluez-popup.png" alt="" width="261" height="287" /></p>
<p><img class="aligncenter" src="http://littlechina.org/~padovan/img/ebluez-controls.png" alt="" width="208" height="190" /></p>
<p>Gustavo Barbieri did a <a href="http://blog.gustavobarbieri.com.br/2010/03/12/enlightenment-meets-bluez/" target="_blank">post</a> about the module. There are some more info there.</p>
]]></content:encoded>
			<wfw:commentRss>http://padovan.org/blog/2010/03/bluez-module-for-enlightenment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GSoC meet-up at Unicamp</title>
		<link>http://padovan.org/blog/2010/03/gsoc-meet-up-at-unicamp/</link>
		<comments>http://padovan.org/blog/2010/03/gsoc-meet-up-at-unicamp/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 04:18:35 +0000</pubDate>
		<dc:creator>padovan</dc:creator>
				<category><![CDATA[free software]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[gpsl]]></category>
		<category><![CDATA[unicamp]]></category>

		<guid isPermaLink="false">http://padovan.org/blog/?p=144</guid>
		<description><![CDATA[Last Wednesday (March 3rd) we did a talk about Google Summer of Code at Unicamp. The talk was part of the weekly talk about Free Software in the University. It was presented by mentors and students from past GSoCs. We explained how GSoC works and how one can take part on it this year. I&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>Last Wednesday (March 3rd) we did a talk about Google Summer of Code at Unicamp. The talk was part of the weekly talk about Free Software in the University. It was presented by mentors and students from past GSoCs. We explained how GSoC works and how one can take part on it this year. I&#8217;ll post here some photos:</p>
<p><img title="GSoC meet-up" src="http://littlechina.org/~padovan/img/gsoc-1.jpg" alt="" width="600" /></p>
<p><img title="GSoC meet-up" src="http://littlechina.org/~padovan/img/gsoc-2.jpg" alt="" width="600" /></p>
]]></content:encoded>
			<wfw:commentRss>http://padovan.org/blog/2010/03/gsoc-meet-up-at-unicamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Handsfree Profile into BlueZ and oFono</title>
		<link>http://padovan.org/blog/2010/02/handsfree-profile-into-bluez-and-ofono/</link>
		<comments>http://padovan.org/blog/2010/02/handsfree-profile-into-bluez-and-ofono/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 22:01:55 +0000</pubDate>
		<dc:creator>padovan</dc:creator>
				<category><![CDATA[bluez]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[profusion]]></category>
		<category><![CDATA[en]]></category>
		<category><![CDATA[ofono]]></category>
		<category><![CDATA[pulseaudio]]></category>

		<guid isPermaLink="false">http://padovan.org/blog/?p=123</guid>
		<description><![CDATA[I&#8217;m proud to announce that BlueZ and oFono now support the Handsfree role of the Bluetooth Handsfree profile. This means that your Desktop now can now act like a headset bluetooth and handle calls from your cell phone.  The work was done during the last 2 months here at ProFUSION. On the BlueZ side a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m proud to announce that <a href="http://www.bluez.org" target="_blank">BlueZ</a> and <a href="http://www.ofono.org" target="_blank">oFono</a> now support the Handsfree role of the Bluetooth <a href="http://bluetooth.com/Bluetooth/Technology/Works/HFP.htm" target="_blank">Handsfree profile</a>. This means that your Desktop now can now act like a headset bluetooth and handle calls from your cell phone.  The work was done during the last 2 months here at <a href="http://profusion.mobi" target="_blank">ProFUSION</a>.</p>
<p>On the BlueZ side a new API was designed using the fd-passing feature of DBus 1.3.  This new API uses the concept of Agents where oFono plays the Agent role.  In the HFP case the Agent role is to handle the AT engine stuff while BlueZ will only take care of the RFCOMM and SCO connections.</p>
<p>The RFCOMM socket is passed to the Agent in oFono via DBus, then oFono uses it to send and receive the AT commands to establish a Service Level Connection, i. e., make the handshake procedure. If it succeeds oFono will be ready to make and answers calls. Your HFP enabled phone will show up as a  modem in oFono, like any other oFono modem.</p>
<p>The work was initially based on patches from Zhenhua Zhang(from Intel) and the audio interaction to handle the SCO data inside Pulseaudio was done by <a href="http://jprvita.wordpress.com" target="_blank">João Paulo Rechi Vita</a>(from <a href="http://profusion.mobi/" target="_blank">ProFUSION</a> too). He also did the demo video below.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="551" height="365" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=9078799&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="551" height="365" src="http://vimeo.com/moogaloop.swf?clip_id=9078799&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>After pairing the devices using some BlueZ agent like kbluetooth or gnome-bluetooth, you&#8217;ll be able to see the modem in oFono and you can enable it ( i. e., make the handshake procedure to establish an HFP Service Level Connection) using the enable-modem script from the test directory on oFono source.</p>
<p>In order to test this you need the Audio Gateway interface enabled in BlueZ. For that, edit your /etc/bluetooth/audio.conf  and add &#8220;Enable=Gateway&#8221; to it.</p>
<p>HFP code is already merged upstream on the BlueZ and oFono trees. The API is described in <a href="http://git.kernel.org/?p=bluetooth/bluez.git;a=blob;f=doc/hfp-api.txt;h=8180de0e80919cbf1bc613676e0548b35b01adc9;hb=HEAD" target="_blank">doc/hfp-api.txt</a> in BlueZ source.</p>
]]></content:encoded>
			<wfw:commentRss>http://padovan.org/blog/2010/02/handsfree-profile-into-bluez-and-ofono/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Summer of Code 2009: Final stats</title>
		<link>http://padovan.org/blog/2009/09/google-summer-of-code-2009-final-stats/</link>
		<comments>http://padovan.org/blog/2009/09/google-summer-of-code-2009-final-stats/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 06:12:22 +0000</pubDate>
		<dc:creator>padovan</dc:creator>
				<category><![CDATA[free software]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[gpsl]]></category>
		<category><![CDATA[unicamp]]></category>

		<guid isPermaLink="false">http://padovan.org/blog/?p=103</guid>
		<description><![CDATA[Google Open Source team has just published yesterday a set of stats[1] about Google Summer of Code 2009 and Google Summer of Code during the years. The good news is that University of Campinas (Unicamp) is on the second place in number of accepted students to GSoC 2009, with 12 projects.  We also are the [...]]]></description>
			<content:encoded><![CDATA[<p>Google Open Source team has just published yesterday a set of <a href="http://google-opensource.blogspot.com/2009/09/tasty-new-google-summer-of-code-stats.html" target="_blank">stats</a>[1] about Google Summer of Code 2009 and Google Summer of Code during the years. The good news is that University of Campinas (Unicamp) is on the second place in number of accepted students to GSoC 2009, with 12 projects.  We also are the second place in the history of the program with 37 projects. Congratulations to all guys from University of Campinas that take part on GSoC. We&#8217;ve been done a great job. Unicamp rocks! :-)</p>
<p style="text-align: left;">[1] <a href="http://google-opensource.blogspot.com/2009/09/tasty-new-google-summer-of-code-stats.html" target="_blank">http://google-opensource.blogspot.com/2009/09/tasty-new-google-summer-of-code-stats.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://padovan.org/blog/2009/09/google-summer-of-code-2009-final-stats/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>BlueZ: status update into the L2CAP layer</title>
		<link>http://padovan.org/blog/2009/08/bluez-status-update-into-the-l2cap-layer/</link>
		<comments>http://padovan.org/blog/2009/08/bluez-status-update-into-the-l2cap-layer/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 17:11:35 +0000</pubDate>
		<dc:creator>padovan</dc:creator>
				<category><![CDATA[free software]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[bluez]]></category>
		<category><![CDATA[crc16]]></category>
		<category><![CDATA[en]]></category>
		<category><![CDATA[enhanced retransmission mode]]></category>
		<category><![CDATA[gpsl]]></category>
		<category><![CDATA[l2cap]]></category>
		<category><![CDATA[streaming mode]]></category>

		<guid isPermaLink="false">http://padovan.org/blog/?p=88</guid>
		<description><![CDATA[Since the last post here (it was a long time ago :-) too much work was done, but ERTM isn&#8217;t fully implemented yet. So, what did I do last month? I&#8217;ll explain each of the features I implemented on the next paragraphs, but if this are boring for you just take a look at the [...]]]></description>
			<content:encoded><![CDATA[<p>Since the last post here (it was a long time ago :-) too much work was done, but ERTM isn&#8217;t fully implemented yet. So, what did I do last month?<br />
I&#8217;ll explain each of the features I implemented on the next paragraphs, but if this are boring for you just take a look at the roadmap at the end of this post.</p>
<p>First I did the support to send and receive I-frames (the data frames) and created the support to RR S-frames to acknowledge the received I-frames. It first worked with a txWindow=1 (which means only one packet can be send without receive acknowledge from the receiver side). The next step was support a txWindow up to 63 (the maximum value specified). To bring this support I have been using sk_buff lists from the net core implementation.</p>
<p>Support for Segmentation and Reassembly(SAR) of L2CAP SDUs: this feature allows upper applications to use a buffer greater than the L2CAP size packet. The buffer is break down in many packet on the transmitter side and then reassembled on the receiver side and pushed to the upper layer.</p>
<p>REJ frame exception: When a packet is lost we need to start the recoveries procedures. BlueZ won&#8217;t support raise of REJ exception (we support only raise of SREJ exception by now, spec says that we can choose one of them). But we need to support the receipt of a REJ-exception (i.e. receive a REJ frame). On the receipt of a REJ frame the L2CAP entity needs to stop the transmission and starts to retransmit the requested packets.  A REJ frame tells the ReqSeq(packet id sequence) and all packets up to ReqSeq &#8211; 1 shall be considered acknowledged, the others shall be retransmitted.</p>
<p>SREJ frame exception: BlueZ starts a SREJ exception when it detects lost packets. It sets its state to SREJ_SENT(It means that L2CAP entity is under recovery proccess) and sends a SREJ S-frame for each lost packets. The transmitter side shall resend the packets requested in the SREJ frames without stops transmission of new frames. SREJ exception saves retransmission of unneeded frames.</p>
<p>Retransmission And Monitor Timers: The Retransmission Timer shall be (re)started each time we send a I-frame. If it expires we send a RR-frame and start the Monitor Timer. The other side should response the RR frame immediately, if the the other side do not response and the Monitor Timer expires we resend the RR frame. A maximum value for the of Monitor Timer&#8217;s timeouts can be defined. If a L2CAP entity exceeds this value the channel shall be disconnected.</p>
<p>Busy condition on the remote side: If the remote side enters in a busy condition it will send a RNR frame. So, when the local side receives this frame it should mark the remote busy flag as true and stop the transmission of packets. It restarts the sending of packets only when the remote sides send a REJ, SREJ or RR frame. This says the remote busy condition was cleared.</p>
<p>Streaming mode: This mode of operation is useful to the Bluetooth Streaming Profiles such as A2DP and VDP(not yet implemented). It can take advantages of the Segmentation and Reassembly features.</p>
<p>FCS Option: It is a crc16 check for L2CAP packets. It is the default if both sides support it. If a L2CAP entity receives a packet with a broken crc16 it will drop. The receive procedure will miss it and start the recovery procedure.</p>
<p>Roadmap updated:</p>
<ol>
<li><del datetime="2009-08-29T05:11:58+00:00">Implement ERTM with txWindow=1 and retransmission disabled</del>.
<ol type="i">
<li><del datetime="2009-08-29T05:11:58+00:00">send I-frames</del></li>
<li><del datetime="2009-08-29T05:11:58+00:00">receive I-frames</del></li>
<li><del datetime="2009-08-29T05:11:58+00:00">support RR S-frames to acknowledge I-frames received</del></li>
<li><del datetime="2009-08-29T05:11:58+00:00">acknowledge I-frames</del></li>
</ol>
</li>
<li><del datetime="2009-08-29T05:11:58+00:00">Support txWindow up to 63</del></li>
<li><del datetime="2009-08-29T05:14:58+00:00">Support segmentation and reassembly of L2CAP SDUs</del></li>
<li><del datetime="2009-08-29T20:49:20+00:00">Enable retransmission</del>
<ol type="i">
<li><del datetime="2009-08-29T05:11:58+00:00">support receipt REJ S-Frame</del></li>
<li><del datetime="2009-08-29T05:11:58+00:00">support receipt SREJ S-Frame</del></li>
<li><del datetime="2009-08-29T05:11:58+00:00">support raise of SREJ exception</del></li>
</ol>
</li>
<li> Support busy conditions exceptions</li>
<li><del datetime="2009-08-29T05:11:58+00:00">Enable Retransmission Timer</del></li>
<li><del datetime="2009-08-29T05:11:58+00:00">Enable Monitor Timer</del></li>
<li><del datetime="2009-08-29T05:14:58+00:00">Implement Streaming Mode</del></li>
<li><del datetime="2009-08-29T05:14:58+00:00">Implement FCS Option</del></li>
<li>Support duplex channel</li>
<li>Use SOCK_STREAM as default for Enhanced Retransmission and Streaming Modes.</li>
<li>Test BlueZ against others stacks</li>
</ol>
<h3> What&#8217;s next?</h3>
<p>Now I&#8217;m working the busy condition exception and the support for the ERTM duplex channel. Today, just one side can send data packets. Then I&#8217;ll put ERTM as default when SOCK_STREAM is selected. I expect finish these issues on the coming weeks. After, I&#8217;ll spend my time fixing the bugs I find trough the code.</p>
<p>ps: Sorry for my too not bad English ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://padovan.org/blog/2009/08/bluez-status-update-into-the-l2cap-layer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BlueZ: What I&#8217;m doing that I&#8217;m not posting here</title>
		<link>http://padovan.org/blog/2009/07/bluez-what-im-doing-that-im-not-posting-here/</link>
		<comments>http://padovan.org/blog/2009/07/bluez-what-im-doing-that-im-not-posting-here/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 17:51:33 +0000</pubDate>
		<dc:creator>padovan</dc:creator>
				<category><![CDATA[free software]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[bluez]]></category>
		<category><![CDATA[gpsl]]></category>

		<guid isPermaLink="false">http://padovan.org/blog/?p=81</guid>
		<description><![CDATA[I spent the last weeks work on my Google Summer of Code project. Code for items 1, 2 and 3 of the roadmap that I posted here[1] 3 week ago is almost done and in process to be merged into bluetooth-testing. Now I&#8217;m starting to work on item 4. First I&#8217;ll will look to support [...]]]></description>
			<content:encoded><![CDATA[<p>I spent the last weeks work on my Google Summer of Code project. Code for items 1, 2 and 3 of the roadmap that I posted <a href="http://padovan.org/blog/2009/07/bluez-first-patch-was-merged/" target="_blank">here</a>[1] 3 week ago is almost done and in process to be merged into bluetooth-testing. Now I&#8217;m starting to work on item 4. First I&#8217;ll will look to support REJ S-frames and implement retransmission of L2CAP packets.</p>
<p>[1] <a href="http://padovan.org/blog/2009/07/bluez-first-patch-was-merged/" target="_blank">http://padovan.org/blog/2009/07/bluez-first-patch-was-merged/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://padovan.org/blog/2009/07/bluez-what-im-doing-that-im-not-posting-here/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
