<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/include/net/bluetooth/l2cap.h, branch linux-2.6.34.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.34.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.34.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2009-12-03T18:34:24+00:00</updated>
<entry>
<title>Bluetooth: Implement RejActioned flag</title>
<updated>2009-12-03T18:34:24+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>gustavo@las.ic.unicamp.br</email>
</author>
<published>2009-10-03T05:34:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4ec10d9720ef78cd81d8bcc30a3238665744569f'/>
<id>urn:sha1:4ec10d9720ef78cd81d8bcc30a3238665744569f</id>
<content type='text'>
RejActioned is used to prevent retransmission when a entity is on the
WAIT_F state, i.e., waiting for a frame with F-bit set due local busy
condition or a expired retransmission timer. (When these two events raise
they send a frame with the Poll bit set and enters in the WAIT_F state to
wait for a frame with the Final bit set.)
The local entity doesn't send I-frames(the data frames) until the receipt
of a frame with F-bit set. When that happens it also set RejActioned to false.
RejActioned is a mandatory feature of ERTM spec.

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Fix sending ReqSeq on I-frames</title>
<updated>2009-12-03T18:34:23+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>gustavo@las.ic.unicamp.br</email>
</author>
<published>2009-10-03T05:34:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=9f121a5a80b4417c6db5a35e26d2e79c29c3fc0d'/>
<id>urn:sha1:9f121a5a80b4417c6db5a35e26d2e79c29c3fc0d</id>
<content type='text'>
As specified by ERTM spec an ERTM channel can acknowledge received
I-frames(the data frames) by sending an I-frame with the proper ReqSeq
value (i.e. ReqSeq is set to BufferSeq).  Until now we aren't setting the
ReqSeq value on I-frame control bits. That way we can save sending
S-frames(Supervise frames) only to acknowledge receipt of I-frames. It
is very helpful to the full-duplex channel.
ReqSeq is the packet sequence number sent in an acknowledgement frame to
acknowledge receipt of frames up to (ReqSeq - 1).
BufferSeq controls the receiver buffer, it is used to delay
acknowledgement of new frames to not cause buffer overflow. BufferSeq
value is not increased until frames are pulled by reassembly function.

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Handle L2CAP case when the remote receiver is busy</title>
<updated>2009-08-26T07:12:20+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>gustavo@las.ic.unicamp.br</email>
</author>
<published>2009-08-26T07:04:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2246b2f1b43f3fbd128e72b129dcbbd3202cc592'/>
<id>urn:sha1:2246b2f1b43f3fbd128e72b129dcbbd3202cc592</id>
<content type='text'>
Implement all issues related to RemoteBusy in the RECV state table.

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Full support for receiving L2CAP SREJ frames</title>
<updated>2009-08-22T22:03:43+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>gustavo@las.ic.unicamp.br</email>
</author>
<published>2009-08-21T01:26:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ef54fd937fbd5ebaeb023818524565bd526a5f36'/>
<id>urn:sha1:ef54fd937fbd5ebaeb023818524565bd526a5f36</id>
<content type='text'>
Support for receiving of SREJ frames as specified by the state table.

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add support for L2CAP SREJ exception</title>
<updated>2009-08-22T22:01:25+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>gustavo@las.ic.unicamp.br</email>
</author>
<published>2009-08-21T01:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8f17154f1f70fcc6faa31ac82164fcf7f0599f38'/>
<id>urn:sha1:8f17154f1f70fcc6faa31ac82164fcf7f0599f38</id>
<content type='text'>
When L2CAP loses an I-frame we send a SREJ frame to the transmitter side
requesting the lost packet. This patch implement all Recv I-frame events
on SREJ_SENT state table except the ones that deal with SendRej (the REJ
exception at receiver side is yet not implemented).

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add support for FCS option to L2CAP</title>
<updated>2009-08-22T21:59:49+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>gustavo@las.ic.unicamp.br</email>
</author>
<published>2009-08-21T01:26:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=fcc203c30d72dde82692f6b761a80e5ca5fdd8fa'/>
<id>urn:sha1:fcc203c30d72dde82692f6b761a80e5ca5fdd8fa</id>
<content type='text'>
Implement CRC16 check for L2CAP packets. FCS is used by Streaming Mode and
Enhanced Retransmission Mode and is a extra check for the packet content.

Using CRC16 is the default, L2CAP won't use FCS only when both side send
a "No FCS" request.

Initially based on a patch from Nathan Holstein &lt;nathan@lampreynetworks.com&gt;

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add support for Retransmission and Monitor Timers</title>
<updated>2009-08-22T21:56:15+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>gustavo@las.ic.unicamp.br</email>
</author>
<published>2009-08-21T01:26:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e90bac061b17cd81bd0df30606c64f4543bf5ca0'/>
<id>urn:sha1:e90bac061b17cd81bd0df30606c64f4543bf5ca0</id>
<content type='text'>
L2CAP uses retransmission and monitor timers to inquiry the other side
about unacked I-frames. After sending each I-frame we (re)start the
retransmission timer. If it expires, we start a monitor timer that send a
S-frame with P bit set and wait for S-frame with F bit set. If monitor
timer expires, try again, at a maximum of L2CAP_DEFAULT_MAX_TX.

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Initial support for retransmission of packets with REJ frames</title>
<updated>2009-08-22T21:55:20+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>gustavo@las.ic.unicamp.br</email>
</author>
<published>2009-08-21T01:25:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=30afb5b2aa83adf4f69e5090d48e1bb04b64c58a'/>
<id>urn:sha1:30afb5b2aa83adf4f69e5090d48e1bb04b64c58a</id>
<content type='text'>
When receiving an I-frame with unexpected txSeq, receiver side start the
recovery procedure by sending a REJ S-frame to the transmitter side. So
the transmitter can re-send the lost I-frame.

This patch just adds a basic support for retransmission, it doesn't
mean that ERTM now has full support for packet retransmission.

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add support for Segmentation and Reassembly of SDUs</title>
<updated>2009-08-22T21:53:58+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>gustavo@las.ic.unicamp.br</email>
</author>
<published>2009-08-21T01:25:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c74e560cd0101455f1889515e1527e4c2e266113'/>
<id>urn:sha1:c74e560cd0101455f1889515e1527e4c2e266113</id>
<content type='text'>
ERTM should use Segmentation and Reassembly to break down a SDU in many
PDUs on sending data to the other side.

On sending packets we queue all 'segments' until end of segmentation and
just the add them to the queue for sending. On receiving we create a new
SKB with the SDU reassembled.

Initially based on a patch from Nathan Holstein &lt;nathan@lampreynetworks.com&gt;

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add initial support for ERTM packets transfers</title>
<updated>2009-08-22T21:53:01+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>gustavo@las.ic.unicamp.br</email>
</author>
<published>2009-08-21T01:25:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a'/>
<id>urn:sha1:1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a</id>
<content type='text'>
This patch adds support for ERTM transfers, without retransmission, with
txWindow up to 63 and with acknowledgement of packets received. Now the
packets are queued before call l2cap_do_send(), so packets couldn't be
sent at the time we call l2cap_sock_sendmsg(). They will be sent in
an asynchronous way on later calls of l2cap_ertm_send(). Besides if an
error occurs on calling l2cap_do_send() we disconnect the channel.

Initially based on a patch from Nathan Holstein &lt;nathan@lampreynetworks.com&gt;

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
</feed>
