linux/net/ipv4
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
..
ipvs [IPVS]: remove net/ipv4/ipvs/ip_vs_proto_icmp.c 2005-06-02 13:02:25 -07:00
netfilter [NETFILTER]: ipt_recent: last_pkts is an array of "unsigned long" not "u_int32_t" 2005-06-15 20:51:14 -07:00
af_inet.c [SCTP] Add support for ip_nonlocal_bind sysctl & IP_FREEBIND socket option 2005-06-13 15:12:33 -07:00
ah4.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
arp.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
devinet.c [IPV4]: Primary and secondary addresses 2005-05-29 20:23:46 -07:00
esp4.c [IPSEC]: Fix esp_decap_data size verification in esp4. 2005-05-31 17:08:05 -07:00
fib_frontend.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fib_hash.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fib_lookup.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fib_rules.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fib_semantics.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
icmp.c [IPV4]: Sysctl configurable icmp error source address. 2005-06-13 15:19:03 -07:00
igmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
inetpeer.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_forward.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_fragment.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_gre.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_input.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
ip_options.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_output.c [IPV4/IPV6] Ensure all frag_list members have NULL sk 2005-05-18 22:52:33 -07:00
ip_sockglue.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipcomp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipconfig.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipip.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipmr.c Linux-2.6.12-rc2 2005-04-16 15:20: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
multipath_drr.c [IPV4]: Multipath modules need a license to prevent kernel tainting. 2005-06-13 14:29:06 -07:00
multipath_random.c [IPV4]: Multipath modules need a license to prevent kernel tainting. 2005-06-13 14:29:06 -07:00
multipath_rr.c [IPV4]: Multipath modules need a license to prevent kernel tainting. 2005-06-13 14:29:06 -07:00
multipath_wrandom.c [IPV4]: Multipath modules need a license to prevent kernel tainting. 2005-06-13 14:29:06 -07:00
multipath.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 [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
raw.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
route.c [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
syncookies.c [NET] Generalise TCP's struct open_request minisock infrastructure 2005-06-18 22:46:52 -07:00
sysctl_net_ipv4.c [IPV4]: Sysctl configurable icmp error source address. 2005-06-13 15:19:03 -07:00
tcp_diag.c [NET] Generalise TCP's struct open_request minisock infrastructure 2005-06-18 22:46:52 -07:00
tcp_input.c [TCP]: Fix stretch ACK performance killer when doing ucopy. 2005-05-23 12:03:06 -07:00
tcp_ipv4.c [NET] Generalise TCP's struct open_request minisock infrastructure 2005-06-18 22:46:52 -07:00
tcp_minisocks.c [NET] Generalise TCP's struct open_request minisock infrastructure 2005-06-18 22:46:52 -07:00
tcp_output.c [NET] Generalise TCP's struct open_request minisock infrastructure 2005-06-18 22:46:52 -07:00
tcp_timer.c [NET] Generalise TCP's struct open_request minisock infrastructure 2005-06-18 22:46:52 -07:00
tcp.c [NET] Generalise TCP's struct open_request minisock infrastructure 2005-06-18 22:46:52 -07:00
udp.c [IPV4]: Fix BUG() in 2.6.x, udp_poll(), fragments + CONFIG_HIGHMEM 2005-05-30 15:50:15 -07:00
utils.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm4_input.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm4_output.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm4_policy.c [IPSEC]: Store idev entries 2005-05-03 16:27:10 -07:00
xfrm4_state.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm4_tunnel.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00