<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net/dccp/input.c, branch v2.6.19</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net/dccp/input.c?h=v2.6.19</id>
<link rel='self' href='https://git.amat.us/linux/atom/net/dccp/input.c?h=v2.6.19'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2006-10-24T23:17:51Z</updated>
<entry>
<title>[DCCP]: Update documentation references.</title>
<updated>2006-10-24T23:17:51Z</updated>
<author>
<name>Gerrit Renker</name>
<email>gerrit@erg.abdn.ac.uk</email>
</author>
<published>2006-10-24T23:17:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0e64e94e477f8ed04e9295b11a5898d443c28a47'/>
<id>urn:sha1:0e64e94e477f8ed04e9295b11a5898d443c28a47</id>
<content type='text'>
Updates the references to spec documents throughout the code, taking into
account that

* the DCCP, CCID 2, and CCID 3 drafts all became RFCs in March this year

* RFC 1063 was obsoleted by RFC 1191

* draft-ietf-tcpimpl-pmtud-0x.txt was published as an Informational
  RFC, RFC 2923 on 2000-09-22.

All references verified.

Signed-off-by: Gerrit Renker &lt;gerrit@erg.abdn.ac.uk&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Remove obsolete #include &lt;linux/config.h&gt;</title>
<updated>2006-06-30T17:25:36Z</updated>
<author>
<name>Jörn Engel</name>
<email>joern@wohnheim.fh-wedel.de</email>
</author>
<published>2006-06-30T17:25:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6ab3d5624e172c553004ecc862bfeac16d9d68b7'/>
<id>urn:sha1:6ab3d5624e172c553004ecc862bfeac16d9d68b7</id>
<content type='text'>
Signed-off-by: Jörn Engel &lt;joern@wohnheim.fh-wedel.de&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[DCCP] minisock: Rename struct dccp_options to struct dccp_minisock</title>
<updated>2006-03-21T06:50:58Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
<email>acme@mandriva.com</email>
</author>
<published>2006-03-21T06:50:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a4bf3902427a128455b8de299ff0918072b2e974'/>
<id>urn:sha1:a4bf3902427a128455b8de299ff0918072b2e974</id>
<content type='text'>
This will later be included in struct dccp_request_sock so that we can
have per connection feature negotiation state while in the 3way
handshake, when we clone the DCCP_ROLE_LISTEN socket (in
dccp_create_openreq_child) we'll just copy this state from
dreq_minisock to dccps_minisock.

Also the feature negotiation and option parsing code will mostly touch
dccps_minisock, which will simplify some stuff.

Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Uninline some functions</title>
<updated>2006-03-21T05:58:56Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
<email>acme@mandriva.com</email>
</author>
<published>2006-03-21T05:58:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c25a18ba347f091d1ce620ba33e6772b60a528e1'/>
<id>urn:sha1:c25a18ba347f091d1ce620ba33e6772b60a528e1</id>
<content type='text'>
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Generalize dccp_v4_send_reset</title>
<updated>2006-03-21T03:25:24Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
<email>acme@mandriva.com</email>
</author>
<published>2006-03-21T03:25:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=017487d7d1e905a5bb529f6a2bc8cf8ea14e2307'/>
<id>urn:sha1:017487d7d1e905a5bb529f6a2bc8cf8ea14e2307</id>
<content type='text'>
Renaming it to dccp_send_reset and moving it from the ipv4 specific
code to the core dccp code.

This fixes some bugs in IPV6 where timers would send v4 resets, etc.

Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP] CCID: Improve CCID infrastructure</title>
<updated>2006-03-21T03:21:44Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
<email>acme@mandriva.com</email>
</author>
<published>2006-03-21T03:21:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=91f0ebf7b6d5cb2b6e818d48587566144821babe'/>
<id>urn:sha1:91f0ebf7b6d5cb2b6e818d48587566144821babe</id>
<content type='text'>
1. No need for -&gt;ccid_init nor -&gt;ccid_exit, this is what module_{init,exit}
   does and anynways neither ccid2 nor ccid3 were using it.

2. Rename struct ccid to struct ccid_operations and introduce struct ccid
   with a pointer to ccid_operations and rigth after it the rx or tx
   private state.

3. Remove the pointer to the state of the half connections from struct
   dccp_sock, now its derived thru ccid_priv() from the ccid pointer.

Now we also can implement the setsockopt for changing the CCID easily as
no ccid init routines can affect struct dccp_sock in any way that prevents
other CCIDs from working if a CCID switch operation is asked by apps.

Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Initial feature negotiation implementation</title>
<updated>2006-03-21T01:43:56Z</updated>
<author>
<name>Andrea Bittau</name>
<email>a.bittau@cs.ucl.ac.uk</email>
</author>
<published>2006-03-21T01:43:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=afe00251dd9b53d51de91ff0099961f42bbf3754'/>
<id>urn:sha1:afe00251dd9b53d51de91ff0099961f42bbf3754</id>
<content type='text'>
Still needs more work, but boots and doesn't crashes, even
does some negotiation!

18:38:52.174934  127.0.0.1.43458 &gt; 127.0.0.1.5001: request &lt;change_l ack_ratio 2, change_r ccid 2, change_l ccid 2&gt;
18:38:52.218526  127.0.0.1.5001 &gt; 127.0.0.1.43458: response &lt;nop, nop, change_l ack_ratio 2, confirm_r ccid 2 2, confirm_l ccid 2 2, confirm_r ack_ratio 2&gt;
18:38:52.185398  127.0.0.1.43458 &gt; 127.0.0.1.5001: &lt;nop, confirm_r ack_ratio 2, ack_vector0 0x00, elapsed_time 212&gt;

:-)

Signed-off-by: Andrea Bittau &lt;a.bittau@cs.ucl.ac.uk&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Notify CCID only after ACK vectors have been processed.</title>
<updated>2006-01-03T22:26:15Z</updated>
<author>
<name>Andrea Bittau</name>
<email>a.bittau@cs.ucl.ac.uk</email>
</author>
<published>2006-01-03T22:26:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e84a9f5e9cd2b229dda24002334bc3cd36c1109d'/>
<id>urn:sha1:e84a9f5e9cd2b229dda24002334bc3cd36c1109d</id>
<content type='text'>
The CCID should be notified of packet reception only when a packet is
valid.  Therefore, the ACK vector needs to be processed before
notifying the CCID.  Also, the CCID might need information provided by
the ACK vector.

Signed-off-by: Andrea Bittau &lt;a.bittau@cs.ucl.ac.uk&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Send an ACK vector when ACKing a response packet</title>
<updated>2006-01-03T22:25:49Z</updated>
<author>
<name>Andrea Bittau</name>
<email>a.bittau@cs.ucl.ac.uk</email>
</author>
<published>2006-01-03T22:25:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9e377202d2c968dde8efd6121d94c7f0a77787aa'/>
<id>urn:sha1:9e377202d2c968dde8efd6121d94c7f0a77787aa</id>
<content type='text'>
If ACK vectors are used, each packet with an ACK should contain an ACK
vector.  The only exception currently is response packets.  It
probably is not a good idea to store ACK vector state before the
connection is completed (to help protect from syn floods).

Signed-off-by: Andrea Bittau &lt;a.bittau@cs.ucl.ac.uk&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Do not process a packet twice when it's not in state DCCP_OPEN.</title>
<updated>2006-01-03T22:25:17Z</updated>
<author>
<name>Andrea Bittau</name>
<email>a.bittau@cs.ucl.ac.uk</email>
</author>
<published>2006-01-03T22:25:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=709dd3aaf5304993083c2297c73f5531c36fba5a'/>
<id>urn:sha1:709dd3aaf5304993083c2297c73f5531c36fba5a</id>
<content type='text'>
When packets are received, the connection is either in DCCP_OPEN
[fast-path] or it isn't.  If it's not [e.g. DCCP_PARTOPEN] upper
layers will perform sanity checks and parse options.  If it is in
DCCP_OPEN, dccp_rcv_established() will do it.  It is important not to
re-parse options in dccp_rcv_established() when it is not called from
the fast-path.  Else, fore example, the ack vector will be added twice
and the CCID will see the packet twice.

The solution is to always enfore sanity checks from the upper layers.
When packets arrive in the fast-path, sanity checks will be performed
before calling dccp_rcv_established().

Note(acme): I rewrote the patch to achieve the same result but keeping
dccp_rcv_established with the previous semantics and having it split
into __dccp_rcv_established, that doesn't does do any sanity check,
code in state != DCCP_OPEN use this lighter version as they already do
the sanity checks.

Signed-off-by: Andrea Bittau &lt;a.bittau@cs.ucl.ac.uk&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
