<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/dccp/ipv4.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-04-13T01:35:41Z</updated>
<entry>
<title>[DCCP]: Fix skb-&gt;cb conflicts with IP</title>
<updated>2008-04-13T01:35:41Z</updated>
<author>
<name>Patrick McHardy</name>
</author>
<published>2008-04-13T01:35:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=028b027524b162eef90839a92ba4b8bddf23e06c'/>
<id>urn:sha1:028b027524b162eef90839a92ba4b8bddf23e06c</id>
<content type='text'>
dev_queue_xmit() and the other IP output functions expect to get a skb
with clear or properly initialized skb-&gt;cb. Unlike TCP and UDP, the
dccp_skb_cb doesn't contain a struct inet_skb_parm at the beginning,
so the DCCP-specific data is interpreted by the IP output functions.
This can cause false negatives for the conditional POST_ROUTING hook
invocation, making the packet bypass the hook.

Add a inet_skb_parm/inet6_skb_parm union to the beginning of
dccp_skb_cb to avoid clashes. Also add a BUILD_BUG_ON to make
sure it fits in the cb.

[ Combined with patch from Gerrit Renker to remove two now unnecessary
  memsets of IPCB(skb)-&gt;opt ]

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Acked-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>[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-v4 sockets per-net lookup.</title>
<updated>2008-02-01T03:28:19Z</updated>
<author>
<name>Pavel Emelyanov</name>
</author>
<published>2008-01-31T13:06:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c67499c0e772064b37ad75eb69b28fc218752636'/>
<id>urn:sha1:c67499c0e772064b37ad75eb69b28fc218752636</id>
<content type='text'>
Add a net argument to inet_lookup and propagate it further
into lookup calls. Plus tune the __inet_check_established.

The dccp and inet_diag, which use that lookup functions
pass the init_net into them.

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>[NETNS]: Add namespace parameter to ip_route_output_flow.</title>
<updated>2008-01-28T23:11:06Z</updated>
<author>
<name>Denis V. Lunev</name>
</author>
<published>2008-01-23T06:07:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f1b050bf7a88910f9f00c9c8989c1bf5a67dd140'/>
<id>urn:sha1:f1b050bf7a88910f9f00c9c8989c1bf5a67dd140</id>
<content type='text'>
Needed to propagate it down to the __ip_route_output_key.

Signed_off_by: Denis V. Lunev &lt;den@openvz.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[INET]: Uninline the __inet_hash function.</title>
<updated>2008-01-28T22:59:26Z</updated>
<author>
<name>Pavel Emelyanov</name>
</author>
<published>2007-12-20T23:31:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=152da81deb9a4870aeac352336184b2b14d4b2ba'/>
<id>urn:sha1:152da81deb9a4870aeac352336184b2b14d4b2ba</id>
<content type='text'>
This one is used in quite many places in the networking code and
seems to big to be inline.

After the patch net/ipv4/build-in.o loses ~650 bytes:
add/remove: 2/0 grow/shrink: 0/5 up/down: 461/-1114 (-653)
function                                     old     new   delta
__inet_hash_nolisten                           -     282    +282
__inet_hash                                    -     179    +179
tcp_sacktag_write_queue                     2255    2254      -1
__inet_lookup_listener                       284     274     -10
tcp_v4_syn_recv_sock                         755     493    -262
tcp_v4_hash                                  389      35    -354
inet_hash_connect                           1086     599    -487

This version addresses the issue pointed by Eric, that
while being inline this function was optimized by gcc
in respect to the 'listen_possible' argument.

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>[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]: One more exemption from full sequence number checks</title>
<updated>2007-10-24T12:18:06Z</updated>
<author>
<name>Gerrit Renker</name>
</author>
<published>2007-10-24T12:18:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1238d0873b29f7a2de75d576b4cc706c1c75ffbf'/>
<id>urn:sha1:1238d0873b29f7a2de75d576b4cc706c1c75ffbf</id>
<content type='text'>
This fixes the following problem: client connects to peer which has no DCCP
enabled or loaded; ICMP error messages ("Protocol Unavailable") can be seen
on the wire, but the application hangs. Reason: ICMP packets don't get through
to dccp_v4_err.

When reporting errors, a sequence number check is made for the DCCP packet
that had caused an ICMP error to arrive.
Such checks can not be made if the socket is in state LISTEN, RESPOND (which
in the implementation is the same as LISTEN), or REQUEST, since update_gsr()
has not been called in these states, hence the sequence window is 0..0.

This patch fixes the problem by adding the REQUEST state as another exemption
to the window check. The error reporting now works as expected on connecting.

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@ghostprotocols.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>
</feed>
