kernel-ark/net/ipv4
Arnaldo Carvalho de Melo 8feaf0c0a5 [INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets
This paves the way to generalise the rest of the sock ID lookup
routines and saves some bytes in TCPv4 TIME_WAIT sockets on distro
kernels (where IPv6 is always built as a module):

[root@qemu ~]# grep tw_sock /proc/slabinfo
tw_sock_TCPv6  0  0  128  31  1
tw_sock_TCP    0  0   96  41  1
[root@qemu ~]#

Now if a protocol wants to use the TIME_WAIT generic infrastructure it
only has to set the sk_prot->twsk_obj_size field with the size of its
inet_timewait_sock derived sock and proto_register will create
sk_prot->twsk_slab, for now its only for INET sockets, but we can
introduce timewait_sock later if some non INET transport protocolo
wants to use this stuff.

Next changesets will take advantage of this new infrastructure to
generalise even more TCP code.

[acme@toy net-2.6.14]$ grep built-in /tmp/before.size /tmp/after.size
/tmp/before.size: 188646   11764    5068  205478   322a6 net/ipv4/built-in.o
/tmp/after.size:  188144   11764    5068  204976   320b0 net/ipv4/built-in.o
[acme@toy net-2.6.14]$

Tested with both IPv4 & IPv6 (::1 (localhost) & ::ffff:172.20.0.1
(qemu host)).

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-08-29 15:42:13 -07:00
..
ipvs [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
netfilter [NETFILTER]: fix list traversal order in ctnetlink 2005-08-29 15:40:25 -07:00
af_inet.c [INET]: Introduce inet_sk_rebuild_header 2005-08-29 15:37:55 -07:00
ah4.c
arp.c
datagram.c [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
devinet.c
esp4.c
fib_frontend.c
fib_hash.c
fib_lookup.h
fib_rules.c
fib_semantics.c
fib_trie.c
icmp.c
igmp.c
inet_hashtables.c [INET]: Generalise tcp_v4_lookup_listener 2005-08-29 15:42:08 -07:00
inetpeer.c
ip_forward.c
ip_fragment.c
ip_gre.c
ip_input.c
ip_options.c
ip_output.c [INET]: Introduce inet_sk_rebuild_header 2005-08-29 15:37:55 -07:00
ip_sockglue.c
ipcomp.c
ipconfig.c
ipip.c
ipmr.c
Kconfig
Makefile [INET]: Move the TCP hashtable functions/structs to inet_hashtables.[ch] 2005-08-29 15:38:39 -07:00
multipath_drr.c
multipath_random.c
multipath_rr.c
multipath_wrandom.c
multipath.c
netfilter.c
proc.c
protocol.c [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
raw.c [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
route.c
syncookies.c
sysctl_net_ipv4.c
tcp_bic.c
tcp_cong.c
tcp_diag.c [INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets 2005-08-29 15:42:13 -07:00
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_input.c
tcp_ipv4.c [INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets 2005-08-29 15:42:13 -07:00
tcp_minisocks.c [INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets 2005-08-29 15:42:13 -07:00
tcp_output.c [NET]: Kill skb->list 2005-08-29 15:31:14 -07:00
tcp_scalable.c
tcp_timer.c [NET]: Transform skb_queue_len() binary tests into skb_queue_empty() 2005-07-08 14:57:23 -07:00
tcp_vegas.c
tcp_westwood.c
tcp.c [INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets 2005-08-29 15:42:13 -07:00
udp.c [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
xfrm4_input.c
xfrm4_output.c
xfrm4_policy.c
xfrm4_state.c
xfrm4_tunnel.c