<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/dccp/ipv6.c, branch linux-2.6.25.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.25.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.25.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-02-03T12:28:52Z</updated>
<entry>
<title>[SOCK] proto: Add hashinfo member to struct proto</title>
<updated>2008-02-03T12:28:52Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
</author>
<published>2008-02-03T12:06:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ab1e0a13d70299e792fd0527cefd070c1405fa5b'/>
<id>urn:sha1:ab1e0a13d70299e792fd0527cefd070c1405fa5b</id>
<content type='text'>
This way we can remove TCP and DCCP specific versions of

sk-&gt;sk_prot-&gt;get_port: both v4 and v6 use inet_csk_get_port
sk-&gt;sk_prot-&gt;hash:     inet_hash is directly used, only v6 need
                       a specific version to deal with mapped sockets
sk-&gt;sk_prot-&gt;unhash:   both v4 and v6 use inet_hash directly

struct inet_connection_sock_af_ops also gets a new member, bind_conflict, so
that inet_csk_get_port can find the per family routine.

Now only the lookup routines receive as a parameter a struct inet_hashtable.

With this we further reuse code, reducing the difference among INET transport
protocols.

Eventually work has to be done on UDP and SCTP to make them share this
infrastructure and get as a bonus inet_diag interfaces so that iproute can be
used with these protocols.

net-2.6/net/ipv4/inet_hashtables.c:
  struct proto			     |   +8
  struct inet_connection_sock_af_ops |   +8
 2 structs changed
  __inet_hash_nolisten               |  +18
  __inet_hash                        | -210
  inet_put_port                      |   +8
  inet_bind_bucket_create            |   +1
  __inet_hash_connect                |   -8
 5 functions changed, 27 bytes added, 218 bytes removed, diff: -191

net-2.6/net/core/sock.c:
  proto_seq_show                     |   +3
 1 function changed, 3 bytes added, diff: +3

net-2.6/net/ipv4/inet_connection_sock.c:
  inet_csk_get_port                  |  +15
 1 function changed, 15 bytes added, diff: +15

net-2.6/net/ipv4/tcp.c:
  tcp_set_state                      |   -7
 1 function changed, 7 bytes removed, diff: -7

net-2.6/net/ipv4/tcp_ipv4.c:
  tcp_v4_get_port                    |  -31
  tcp_v4_hash                        |  -48
  tcp_v4_destroy_sock                |   -7
  tcp_v4_syn_recv_sock               |   -2
  tcp_unhash                         | -179
 5 functions changed, 267 bytes removed, diff: -267

net-2.6/net/ipv6/inet6_hashtables.c:
  __inet6_hash |   +8
 1 function changed, 8 bytes added, diff: +8

net-2.6/net/ipv4/inet_hashtables.c:
  inet_unhash                        | +190
  inet_hash                          | +242
 2 functions changed, 432 bytes added, diff: +432

vmlinux:
 16 functions changed, 485 bytes added, 492 bytes removed, diff: -7

/home/acme/git/net-2.6/net/ipv6/tcp_ipv6.c:
  tcp_v6_get_port                    |  -31
  tcp_v6_hash                        |   -7
  tcp_v6_syn_recv_sock               |   -9
 3 functions changed, 47 bytes removed, diff: -47

/home/acme/git/net-2.6/net/dccp/proto.c:
  dccp_destroy_sock                  |   -7
  dccp_unhash                        | -179
  dccp_hash                          |  -49
  dccp_set_state                     |   -7
  dccp_done                          |   +1
 5 functions changed, 1 bytes added, 242 bytes removed, diff: -241

/home/acme/git/net-2.6/net/dccp/ipv4.c:
  dccp_v4_get_port                   |  -31
  dccp_v4_request_recv_sock          |   -2
 2 functions changed, 33 bytes removed, diff: -33

/home/acme/git/net-2.6/net/dccp/ipv6.c:
  dccp_v6_get_port                   |  -31
  dccp_v6_hash                       |   -7
  dccp_v6_request_recv_sock          |   +5
 3 functions changed, 5 bytes added, 38 bytes removed, diff: -33

Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NETNS]: Tcp-v6 sockets per-net lookup.</title>
<updated>2008-02-01T03:28:20Z</updated>
<author>
<name>Pavel Emelyanov</name>
</author>
<published>2008-01-31T13:07:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d86e0dac2ce412715181f792aa0749fe3effff11'/>
<id>urn:sha1:d86e0dac2ce412715181f792aa0749fe3effff11</id>
<content type='text'>
Add a net argument to inet6_lookup and propagate it further.
Actually, this is tcp-v6 implementation of what was done for
tcp-v4 sockets in a previous patch.

Signed-off-by: Pavel Emelyanov &lt;xemul@openvz.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Allow to parse options on Request Sockets</title>
<updated>2008-01-28T22:57:50Z</updated>
<author>
<name>Gerrit Renker</name>
</author>
<published>2007-12-13T14:29:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8b819412481494fb6861c08d360b75fabcbbfbbf'/>
<id>urn:sha1:8b819412481494fb6861c08d360b75fabcbbfbbf</id>
<content type='text'>
The option parsing code currently only parses on full sk's. This causes a problem for
options sent during the initial handshake (in particular timestamps and feature-negotiation
options). Therefore, this patch extends the option parsing code with an additional argument
for request_socks: if it is non-NULL, options are parsed on the request socket, otherwise
the normal path (parsing on the sk) is used.

Subsequent patches, which implement feature negotiation during connection setup, make use
of this facility.

Signed-off-by: Gerrit Renker &lt;gerrit@erg.abdn.ac.uk&gt;
Signed-off-by: Ian McDonald &lt;ian.mcdonald@jandi.co.nz&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[IPSEC]: Make callers of xfrm_lookup to use XFRM_LOOKUP_WAIT</title>
<updated>2008-01-28T22:57:42Z</updated>
<author>
<name>Herbert Xu</name>
</author>
<published>2007-12-13T02:48:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bb72845e699d3c84e5f861b51db686107a51dea5'/>
<id>urn:sha1:bb72845e699d3c84e5f861b51db686107a51dea5</id>
<content type='text'>
This patch converts all callers of xfrm_lookup that used an
explicit value of 1 to indiciate blocking to use the new flag
XFRM_LOOKUP_WAIT.

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>[DCCP]: Use DEFINE_PROTO_INUSE infrastructure.</title>
<updated>2007-11-07T12:09:01Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2007-11-06T07:42:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c62cf5cb173a5b8446e513a14448460cad435db2'/>
<id>urn:sha1:c62cf5cb173a5b8446e513a14448460cad435db2</id>
<content type='text'>
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Retrieve packet sequence number for error reporting</title>
<updated>2007-10-24T12:12:09Z</updated>
<author>
<name>Gerrit Renker</name>
</author>
<published>2007-10-24T12:12:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fde20105f332614b23a3131d706cd90bdd7db72d'/>
<id>urn:sha1:fde20105f332614b23a3131d706cd90bdd7db72d</id>
<content type='text'>
This fixes a problem when analysing erroneous packets in dccp_v{4,6}_err:
* dccp_hdr_seq currently takes an skb
* however, the transport headers in the skb are shifted, due to the
  preceding IPv4/v6 header.
Fixed for v4 and v6 by changing dccp_hdr_seq to take a struct dccp_hdr as
argument. Verified that the correct sequence number is now reported in the
error handler.

Signed-off-by: Gerrit Renker &lt;gerrit@erg.abdn.ac.uk&gt;
Acked-by: Ian McDonald &lt;ian.mcdonald@jandi.co.nz&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
</entry>
<entry>
<title>[INET]: Use MODULE_ALIAS_NET_PF_PROTO_TYPE where possible.</title>
<updated>2007-10-22T09:59:54Z</updated>
<author>
<name>Jean Delvare</name>
</author>
<published>2007-10-21T23:45:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7131c6c73656b92aea806c6e688e97aa49ff911e'/>
<id>urn:sha1:7131c6c73656b92aea806c6e688e97aa49ff911e</id>
<content type='text'>
Now that we have this new macro, use it where possible.

Signed-off-by: Jean Delvare &lt;jdelvare@suse.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[IPV6]: Replace sk_buff ** with sk_buff * in input handlers</title>
<updated>2007-10-15T19:50:28Z</updated>
<author>
<name>Herbert Xu</name>
</author>
<published>2007-10-15T19:50:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e5bbef20e017efcb10700398cc048c49b98628e0'/>
<id>urn:sha1:e5bbef20e017efcb10700398cc048c49b98628e0</id>
<content type='text'>
With all the users of the double pointers removed from the IPv6 input path,
this patch converts all occurances of sk_buff ** to sk_buff * in IPv6 input
handlers.

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>[DCCP]: Twice the wrong reset code in receiving connection-Requests</title>
<updated>2007-10-10T23:54:38Z</updated>
<author>
<name>Gerrit Renker</name>
</author>
<published>2007-10-04T21:52:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4a5409a5a850c84505d658ddf36f98b2c542ec07'/>
<id>urn:sha1:4a5409a5a850c84505d658ddf36f98b2c542ec07</id>
<content type='text'>
This fixes two bugs in processing of connection-Requests in
v{4,6}_conn_request:

 1. Due to using the variable `reset_code', the Reset code generated
    internally by dccp_parse_options() is overwritten with the
    initialised value ("Too Busy") of reset_code, which is not what is
    intended.

 2. When receiving a connection-Request on a multicast or broadcast
    address, no Reset should be generated, to avoid storms of such
    packets. Instead of jumping to the `drop' label, the
    v{4,6}_conn_request functions now return 0. Below is why in my
    understanding this is correct:

    When the conn_request function returns &lt; 0, then the caller,
    dccp_rcv_state_process(), returns 1. In all instances where
    dccp_rcv_state_process is called (dccp_v4_do_rcv, dccp_v6_do_rcv,
    and dccp_child_process), a return value of != 0 from
    dccp_rcv_state_process() means that a Reset is generated.

    If on the other hand the conn_request function returns 0, the
    packet is discarded and no Reset is generated.

Note: There may be a related problem when sending the Response, due to
the following.

	if (dccp_v6_send_response(sk, req, NULL))
		goto drop_and_free;
	/* ... */
	drop_and_free:
		return -1;

In this case, if send_response fails due to transmission errors, the
next thing that is generated is a Reset with a code "Too Busy". I
haven't been able to conjure up such a condition, but it might be good
to change the behaviour here also (not done by this patch).

Signed-off-by: Gerrit Renker &lt;gerrit@erg.abdn.ac.uk&gt;
Signed-off-by: Ian McDonald &lt;ian.mcdonald@jandi.co.nz&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[DCCP]: Factor out common code for generating Resets</title>
<updated>2007-10-10T23:52:44Z</updated>
<author>
<name>Gerrit Renker</name>
</author>
<published>2007-09-26T17:35:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e356d37a096a990ea1a74c44c15640122e56110b'/>
<id>urn:sha1:e356d37a096a990ea1a74c44c15640122e56110b</id>
<content type='text'>
This factors code common to dccp_v{4,6}_ctl_send_reset into a separate function,
and adds support for filling in the Data 1 ... Data 3 fields from RFC 4340, 5.6.

It is useful to have this separate, since the following Reset codes will always
be generated from the control socket rather than via dccp_send_reset:
 * Code 3, "No Connection", cf. 8.3.1;
 * Code 4, "Packet Error" (identification for Data 1 added);
 * Code 5, "Option Error" (identification for Data 1..3 added, will be used later);
 * Code 6, "Mandatory Error" (same as Option Error);
 * Code 7, "Connection Refused" (what on Earth is the difference to "No Connection"?);
 * Code 8, "Bad Service Code";
 * Code 9, "Too Busy";
 * Code 10, "Bad Init Cookie" (not used).

Code 0 is not recommended by the RFC, the following codes would be used in
dccp_send_reset() instead, since they all relate to an established DCCP connection:
 * Code 1, "Closed";
 * Code 2, "Aborted";
 * Code 11, "Aggression Penalty" (12.3).

Signed-off-by: Gerrit Renker &lt;gerrit@erg.abdn.ac.uk&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@ghostprotocols.net&gt;
</content>
</entry>
</feed>
