kernel-ark/net/ipv6
Arnaldo Carvalho de Melo 2e6599cb89 [NET] Generalise TCP's struct open_request minisock infrastructure
Kept this first changeset minimal, without changing existing names to
ease peer review.

Basicaly tcp_openreq_alloc now receives the or_calltable, that in turn
has two new members:

->slab, that replaces tcp_openreq_cachep
->obj_size, to inform the size of the openreq descendant for
  a specific protocol

The protocol specific fields in struct open_request were moved to a
class hierarchy, with the things that are common to all connection
oriented PF_INET protocols in struct inet_request_sock, the TCP ones
in tcp_request_sock, that is an inet_request_sock, that is an
open_request.

I.e. this uses the same approach used for the struct sock class
hierarchy, with sk_prot indicating if the protocol wants to use the
open_request infrastructure by filling in sk_prot->rsk_prot with an
or_calltable.

Results? Performance is improved and TCP v4 now uses only 64 bytes per
open request minisock, down from 96 without this patch :-)

Next changeset will rename some of the structs, fields and functions
mentioned above, struct or_calltable is way unclear, better name it
struct request_sock_ops, s/struct open_request/struct request_sock/g,
etc.

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-06-18 22:46:52 -07:00
..
netfilter [NETLINK]: Synchronous message processing. 2005-05-03 14:55:09 -07:00
addrconf.c [IPv6] Don't generate temporary for TUN devices 2005-06-13 15:01:34 -07:00
af_inet6.c [PATCH] kill gratitious includes of major.h under net/* 2005-04-25 18:32:13 -07:00
ah6.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
anycast.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
datagram.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
esp6.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
exthdrs_core.c [SELINUX]: Fix ipv6_skip_exthdr() invocation causing OOPS. 2005-04-24 20:16:19 -07:00
exthdrs.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
icmp.c [IPV6]: Ensure to use icmpv6_socket in non-preemptive context. 2005-06-13 14:59:44 -07:00
ip6_fib.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip6_flowlabel.c [IPV6]: Clear up user copy warning in flowlabel code. 2005-05-29 20:28:01 -07:00
ip6_input.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip6_output.c [IPV4/IPV6] Ensure all frag_list members have NULL sk 2005-05-18 22:52:33 -07:00
ip6_tunnel.c [IPV6]: Update parm.link in ip6ip6_tnl_change() 2005-06-08 14:54:38 -07:00
ipcomp6.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipv6_sockglue.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipv6_syms.c [IPV6]: Kill export of fl6_sock_lookup. 2005-06-02 13:06:36 -07:00
Kconfig Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mcast.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ndisc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
proc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
protocol.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raw.c [IPV6]: Fix raw socket checksums with IPsec 2005-05-03 14:24:36 -07:00
reassembly.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
route.c [IPV6]: Incorrect permissions on route flush sysctl 2005-04-28 12:11:49 -07:00
sit.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sysctl_net_ipv6.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tcp_ipv6.c [NET] Generalise TCP's struct open_request minisock infrastructure 2005-06-18 22:46:52 -07:00
udp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm6_input.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm6_output.c [IPV6]: Fix xfrm tunnel oops with large packets 2005-05-23 13:11:07 -07:00
xfrm6_policy.c From: Kazunori Miyazawa <kazunori@miyazawa.org> 2005-05-26 12:58:04 -07:00
xfrm6_state.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm6_tunnel.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00