<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/dccp/ipv4.c, branch linux-2.6.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<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>
</author>
<published>2006-10-24T23:17:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/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>[DCCP]: Fix Oops in DCCPv6</title>
<updated>2006-10-22T02:55:20Z</updated>
<author>
<name>Gerrit Renker</name>
</author>
<published>2006-10-11T15:26:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=82709531a800fcf8de71bb8c5d8e92462fb81f84'/>
<id>urn:sha1:82709531a800fcf8de71bb8c5d8e92462fb81f84</id>
<content type='text'>
I think I got the cause for the Oops observed in
http://www.mail-archive.com/dccp@vger.kernel.org/msg00578.html

The problem is always with applications listening on PF_INET6 sockets. Apart
from the mentioned oops, I observed another one one, triggered at irregular
intervals via timer interrupt:

    run_timer_softirq -&gt; dccp_keepalive_timer
                      -&gt; inet_csk_reqsk_queue_prune
                      -&gt; reqsk_free
                      -&gt; dccp_v6_reqsk_destructor

The latter function is the problem and is also the last function to be called
in said kernel panic.

In any case, there is a real problem with allocating the right request_sock
which is what this patch tackles.

It fixes the following problem:
 - application listens on PF_INET6
 - DCCPv4 packet comes in, is handed over to dccp_v4_do_rcv, from there
   to dccp_v4_conn_request

Now: socket is PF_INET6, packet is IPv4. The following code then furnishes the
connection with IPv6 - request_sock operations:

   req = reqsk_alloc(sk-&gt;sk_prot-&gt;rsk_prot);

The first problem is that all further incoming packets will get a Reset since
the connection can not be looked up.

The second problem is worse:
 --&gt; reqsk_alloc is called instead of inet6_reqsk_alloc
 --&gt; consequently inet6_rsk_offset is never set (dangling pointer)
 --&gt; the request_sock_ops are nevertheless still dccp6_request_ops
 --&gt; destructor is called via reqsk_free
 --&gt; dccp_v6_reqsk_destructor tries to free random memory location (inet6_rsk_offset not set)
 --&gt; panic

I have tested this for a while, DCCP sockets are now handled correctly in all
three scenarios (v4/v6 only/v4-mapped).

Commiter note: I've added the dccp_request_sock_ops forward declaration to keep
               the tree building and to reduce the size of the patch for 2.6.19,
               later I'll move the functions to the top of the affected source
               code to match what we have in the TCP counterpart, where this
               problem hasn't existed in the first place, dumb me not to have
               done the same thing on DCCP land 8)

Signed-off-by: Gerrit Renker &lt;gerrit@erg.abdn.ac.uk&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
</content>
</entry>
<entry>
<title>[NET]: Use typesafe inet_twsk() inline function instead of cast.</title>
<updated>2006-10-12T06:59:58Z</updated>
<author>
<name>YOSHIFUJI Hideaki</name>
</author>
<published>2006-10-11T02:41:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9469c7b4aa210ce94c6e7208cfadbd0aca0ebe08'/>
<id>urn:sha1:9469c7b4aa210ce94c6e7208cfadbd0aca0ebe08</id>
<content type='text'>
Signed-off-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[IPV4]: ip_route_connect() ipv4 address arguments annotated</title>
<updated>2006-09-29T00:54:06Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2006-09-27T04:27:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bada8adc4e6622764205921e6ba3f717aa03c882'/>
<id>urn:sha1:bada8adc4e6622764205921e6ba3f717aa03c882</id>
<content type='text'>
annotated address arguments (port number left alone for now); ditto
for inferred net-endian variables in callers.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Allow default/fallback service code.</title>
<updated>2006-09-24T20:49:26Z</updated>
<author>
<name>Gerrit Renker</name>
</author>
<published>2006-09-22T08:33:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=00e4d116a7ef94eb910be037912b0b2fc09f608b'/>
<id>urn:sha1:00e4d116a7ef94eb910be037912b0b2fc09f608b</id>
<content type='text'>
This has been discussed on dccp@vger and removes the necessity for applications
to supply service codes in each and every case.

If an application does not want to provide a service code, that's fine, it will
be given 0. Otherwise, service codes can be set via socket options as before.

This patch has been tested using various client/server configurations
(including listening on multiple service codes).

Signed-off-by: Gerrit Renker &lt;gerrit@erg.abdn.ac.uk&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
</content>
</entry>
<entry>
<title>[IPV4]: Use network-order dport for all visible inet_lookup_*</title>
<updated>2006-09-22T21:54:14Z</updated>
<author>
<name>Herbert Xu</name>
</author>
<published>2006-08-09T22:47:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8f491069b40be5d627007a343f99759e9da6a178'/>
<id>urn:sha1:8f491069b40be5d627007a343f99759e9da6a178</id>
<content type='text'>
Right now most inet_lookup_* functions take a host-order hnum instead
of a network-order dport because that's how it is represented
internally.

This means that users of these functions have to be careful about
using the right byte-order.  To add more confusion, inet_lookup takes
a network-order dport unlike all other functions.

So this patch changes all visible inet_lookup functions to take a
dport and move all dport-&gt;hnum conversion inside them.

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[MLSXFRM]: Auto-labeling of child sockets</title>
<updated>2006-09-22T21:53:29Z</updated>
<author>
<name>Venkat Yekkirala</name>
</author>
<published>2006-07-25T06:32:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4237c75c0a35535d7f9f2bfeeb4b4df1e068a0bf'/>
<id>urn:sha1:4237c75c0a35535d7f9f2bfeeb4b4df1e068a0bf</id>
<content type='text'>
This automatically labels the TCP, Unix stream, and dccp child sockets
as well as openreqs to be at the same MLS level as the peer. This will
result in the selection of appropriately labeled IPSec Security
Associations.

This also uses the sock's sid (as opposed to the isec sid) in SELinux
enforcement of secmark in rcv_skb and postroute_last hooks.

Signed-off-by: Venkat Yekkirala &lt;vyekkirala@TrustedCS.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[MLSXFRM]: Add flow labeling</title>
<updated>2006-09-22T21:53:27Z</updated>
<author>
<name>Venkat Yekkirala</name>
</author>
<published>2006-08-05T06:12:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=beb8d13bed80f8388f1a9a107d07ddd342e627e8'/>
<id>urn:sha1:beb8d13bed80f8388f1a9a107d07ddd342e627e8</id>
<content type='text'>
This labels the flows that could utilize IPSec xfrms at the points the
flows are defined so that IPSec policy and SAs at the right label can
be used.

The following protos are currently not handled, but they should
continue to be able to use single-labeled IPSec like they currently
do.

ipmr
ip_gre
ipip
igmp
sit
sctp
ip6_tunnel (IPv6 over IPv6 tunnel device)
decnet

Signed-off-by: Venkat Yekkirala &lt;vyekkirala@TrustedCS.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Fix default sequence window size</title>
<updated>2006-07-24T19:44:21Z</updated>
<author>
<name>Ian McDonald</name>
</author>
<published>2006-07-24T06:33:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4b79f0af48d529a360d3529def01835dc5d45fe1'/>
<id>urn:sha1:4b79f0af48d529a360d3529def01835dc5d45fe1</id>
<content type='text'>
When using the default sequence window size (100) I got the following in
my logs:

Jun 22 14:24:09 localhost kernel: [ 1492.114775] DCCP: Step 6 failed for
DATA packet, (LSWL(6279674225) &lt;= P.seqno(6279674749) &lt;=
S.SWH(6279674324)) and (P.ackno doesn't exist or LAWL(18798206530) &lt;=
P.ackno(1125899906842620) &lt;= S.AWH(18798206548), sending SYNC...
Jun 22 14:24:09 localhost kernel: [ 1492.115147] DCCP: Step 6 failed for
DATA packet, (LSWL(6279674225) &lt;= P.seqno(6279674750) &lt;=
S.SWH(6279674324)) and (P.ackno doesn't exist or LAWL(18798206530) &lt;=
P.ackno(1125899906842620) &lt;= S.AWH(18798206549), sending SYNC...

I went to alter the default sysctl and it didn't take for new sockets.
Below patch fixes this.

I think the default is too low but it is what the DCCP spec specifies.

As a side effect of this my rx speed using iperf goes from about 2.8 Mbits/sec
to 3.5. This is still far too slow but it is a step in the right direction.

Compile tested only for IPv6 but not particularly complex change.

Signed off by: Ian McDonald &lt;ian.mcdonald@jandi.co.nz&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>
</author>
<published>2006-06-30T17:25:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/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>
</feed>
