linux-sg2042/include/net
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
..
bluetooth [Bluetooth] Remove unused functions and cleanup symbol exports 2005-08-06 12:36:51 +02:00
irda [NET]: Transform skb_queue_len() binary tests into skb_queue_empty() 2005-07-08 14:57:23 -07:00
sctp [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
tc_act [PKT_SCHED]: Introduce simple actions. 2005-04-24 20:10:16 -07:00
act_api.h [NET]: Kill skb->tc_classid 2005-08-29 15:31:18 -07:00
act_generic.h [PKT_SCHED]: Fixup simple action define. 2005-05-19 12:42:39 -07:00
addrconf.h [IPV6]: net/addrconf.h needs to include linux/in6.h earlier 2005-05-03 22:17:18 -07:00
af_unix.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ah.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
arp.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
atmclip.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ax25.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
checksum.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
datalink.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
dn.h [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
dn_dev.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dn_fib.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dn_neigh.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dn_nsp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dn_route.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dsfield.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dst.h [NET]: Shave sizeof(ptr) bytes off dst_entry 2005-04-19 20:46:37 -07:00
esp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
flow.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gen_stats.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
icmp.h [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
ieee80211.h [PATCH] ieee80211.h build fix 2005-06-28 22:45:32 -07:00
if_inet6.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
inet_common.h [INET]: Move the TCP hashtable functions/structs to inet_hashtables.[ch] 2005-08-29 15:38:39 -07:00
inet_ecn.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
inet_hashtables.h [INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets 2005-08-29 15:42:13 -07:00
inet_timewait_sock.h [INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets 2005-08-29 15:42:13 -07:00
inetpeer.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip.h [IPV4]: possible cleanups 2005-08-29 15:33:20 -07:00
ip6_checksum.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip6_fib.h [IPV6]: V6 route events reported with wrong netlink PID and seq number 2005-06-21 13:51:04 -07:00
ip6_route.h [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
ip6_tunnel.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_fib.h [NETLINK]: fib_lookup() via netlink 2005-06-20 13:36:39 -07:00
ip_mp_alg.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_vs.h [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
ipcomp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipconfig.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipip.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipv6.h [NET]: Cleanup INET_REFCNT_DEBUG code 2005-08-29 15:37:29 -07:00
ipx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iw_handler.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lapb.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
llc_c_ac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_c_ev.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_c_st.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_conn.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_if.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_pdu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_s_ac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_s_ev.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_s_st.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_sap.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ndisc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
neighbour.h [NEIGHBOUR]: Remove unused fields in struct neigh_parms and neigh_table 2005-06-18 22:51:12 -07:00
netrom.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
p8022.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
pkt_act.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pkt_cls.h [NET]: Remove explicit initializations of skb->input_dev 2005-08-29 15:33:26 -07:00
pkt_sched.h [PKT_SCHED]: Cleanup qdisc creation and alignment macros 2005-07-05 14:15:09 -07:00
protocol.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
psnap.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
raw.h [IPV4/6]: Check if packet was actually delivered to a raw socket to decide whether to send an ICMP unreachable 2005-08-29 15:37:22 -07:00
rawv6.h [IPV4/6]: Check if packet was actually delivered to a raw socket to decide whether to send an ICMP unreachable 2005-08-29 15:37:22 -07:00
request_sock.h [REQSK]: Move the syn_table destroy from tcp_listen_stop to reqsk_queue_destroy 2005-08-29 15:32:11 -07:00
rose.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
route.h [IPV4]: possible cleanups 2005-08-29 15:33:20 -07:00
sch_generic.h [PKT_SCHED]: Cleanup qdisc creation and alignment macros 2005-07-05 14:15:09 -07:00
scm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
slhc_vj.h [NET]: Remove __ARGS from include/net/slhc_vj.h 2005-07-05 15:12:04 -07:00
snmp.h [PATCH] smp_processor_id() cleanup 2005-06-21 18:46:13 -07:00
sock.h [INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets 2005-08-29 15:42:13 -07:00
syncppp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tcp.h [INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets 2005-08-29 15:42:13 -07:00
tcp_ecn.h [NET] Rename open_request to request_sock 2005-06-18 22:47:21 -07:00
tcp_states.h [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
transp_v6.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
udp.h [PATCH] update Ross Biro bouncing email address 2005-05-05 16:36:49 -07:00
x25.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
x25device.h [NET]: Remove explicit initializations of skb->input_dev 2005-08-29 15:33:26 -07:00
xfrm.h [IPV4]: possible cleanups 2005-08-29 15:33:20 -07:00