linux/net/ipv4
Krzysztof Piotr Oledzki 584015727a netfilter: accounting rework: ct_extend + 64bit counters (v4)
Initially netfilter has had 64bit counters for conntrack-based accounting, but
it was changed in 2.6.14 to save memory. Unfortunately in-kernel 64bit counters are
still required, for example for "connbytes" extension. However, 64bit counters
waste a lot of memory and it was not possible to enable/disable it runtime.

This patch:
 - reimplements accounting with respect to the extension infrastructure,
 - makes one global version of seq_print_acct() instead of two seq_print_counters(),
 - makes it possible to enable it at boot time (for CONFIG_SYSCTL/CONFIG_SYSFS=n),
 - makes it possible to enable/disable it at runtime by sysctl or sysfs,
 - extends counters from 32bit to 64bit,
 - renames ip_conntrack_counter -> nf_conn_counter,
 - enables accounting code unconditionally (no longer depends on CONFIG_NF_CT_ACCT),
 - set initial accounting enable state based on CONFIG_NF_CT_ACCT
 - removes buggy IPCT_COUNTER_FILLING event handling.

If accounting is enabled newly created connections get additional acct extend.
Old connections are not changed as it is not possible to add a ct_extend area
to confirmed conntrack. Accounting is performed for all connections with
acct extend regardless of a current state of "net.netfilter.nf_conntrack_acct".

Signed-off-by: Krzysztof Piotr Oledzki <ole@ans.pl>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-07-21 10:10:58 -07:00
..
ipvs Merge branch 'stealer/ipvs/sync-daemon-cleanup-for-next' of git://git.stealer.net/linux-2.6 2008-07-16 20:07:06 -07:00
netfilter netfilter: accounting rework: ct_extend + 64bit counters (v4) 2008-07-21 10:10:58 -07:00
af_inet.c ipv4: clean the init_ipv4_mibs error paths 2008-07-18 04:04:51 -07:00
ah4.c [IPSEC]: Fix bogus usage of u64 on input sequence number 2008-02-12 22:50:35 -08:00
arp.c mib: add net to NET_INC_STATS_BH 2008-07-16 20:31:16 -07:00
cipso_ipv4.c cipso: Relax too much careful cipso hash function. 2008-05-13 23:23:55 -07:00
datagram.c mib: add net to IP_INC_STATS_BH 2008-07-16 20:20:11 -07:00
devinet.c netns: add namespace parameter to rt_cache_flush 2008-07-05 19:00:44 -07:00
esp4.c [ESP]: Ensure IV is in linear part of the skb to avoid BUG() due to OOB access 2008-03-27 16:08:03 -07:00
fib_frontend.c netns: add namespace parameter to rt_cache_flush 2008-07-05 19:00:44 -07:00
fib_hash.c netns: add namespace parameter to rt_cache_flush 2008-07-05 19:00:44 -07:00
fib_lookup.h [IPV4] FIB_HASH: Reduce memory needs and speedup lookups 2008-01-28 15:02:46 -08:00
fib_rules.c net: add fib_rules_ops to flush_cache method 2008-07-05 19:01:28 -07:00
fib_semantics.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-06-13 20:52:39 -07:00
fib_trie.c proc: consolidate per-net single-release callers 2008-07-18 04:07:44 -07:00
icmp.c mib: put icmpmsg statistics on struct net 2008-07-18 04:04:22 -07:00
igmp.c netns: Use net_eq() to compare net-namespaces for optimization. 2008-07-19 22:34:43 -07:00
inet_connection_sock.c mib: add net to IP_INC_STATS_BH 2008-07-16 20:20:11 -07:00
inet_diag.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
inet_fragment.c inet fragments: fix race between inet_frag_find and inet_frag_secret_rebuild 2008-06-27 20:06:08 -07:00
inet_hashtables.c mib: add net to NET_INC_STATS_BH 2008-07-16 20:31:16 -07:00
inet_lro.c net/inet_lro: remove setting skb->ip_summed when not LRO-able 2008-06-27 20:09:00 -07:00
inet_timewait_sock.c mib: add net to NET_ADD_STATS_BH 2008-07-16 20:32:25 -07:00
inetpeer.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ip_forward.c mib: add net to IP_INC_STATS_BH 2008-07-16 20:20:11 -07:00
ip_fragment.c mib: add net to IP_ADD_STATS_BH 2008-07-16 20:20:33 -07:00
ip_gre.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-05-25 23:26:10 -07:00
ip_input.c mib: put ip statistics on struct net 2008-07-18 04:02:42 -07:00
ip_options.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ip_output.c mib: add net to IP_INC_STATS 2008-07-16 20:19:49 -07:00
ip_sockglue.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ipcomp.c net: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:15:50 -04:00
ipconfig.c netns: Use net_eq() to compare net-namespaces for optimization. 2008-07-19 22:34:43 -07:00
ipip.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
ipmr.c netns: Use net_eq() to compare net-namespaces for optimization. 2008-07-19 22:34:43 -07:00
Kconfig Documentation: move nfsroot.txt to filesystems/ 2008-04-11 13:18:01 -06:00
Makefile [UDP]: Revert udplite and code split. 2008-03-06 16:22:02 -08:00
netfilter.c [NETFILTER]: Add partial checksum validation helper 2008-04-14 11:15:49 +02:00
proc.c proc: consolidate per-net single-release callers 2008-07-18 04:07:44 -07:00
protocol.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
raw.c mib: add net to IP_INC_STATS 2008-07-16 20:19:49 -07:00
route.c mib: add net to IP_INC_STATS_BH 2008-07-16 20:20:11 -07:00
syncookies.c mib: add net to NET_INC_STATS_BH 2008-07-16 20:31:16 -07:00
sysctl_net_ipv4.c icmp: fix units for ratelimit 2008-07-01 19:29:07 -07:00
tcp.c tcp: Fix MD5 signatures for non-linear skbs 2008-07-19 00:01:42 -07:00
tcp_bic.c [TCP]: BIC web page link is corrected. 2008-02-28 22:14:32 -08:00
tcp_cong.c tcp: Limit cwnd growth when deferring for GSO 2008-04-29 03:13:52 -07:00
tcp_cubic.c rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
tcp_diag.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
tcp_highspeed.c [TCP]: Cong.ctrl modules: remove unused good_ack from cong_avoid 2008-01-28 14:55:41 -08:00
tcp_htcp.c [TCP]: Cong.ctrl modules: remove unused good_ack from cong_avoid 2008-01-28 14:55:41 -08:00
tcp_hybla.c net: fix returning void-valued expression warnings 2008-05-01 02:47:38 -07:00
tcp_illinois.c [TCP]: Cong.ctrl modules: remove unused good_ack from cong_avoid 2008-01-28 14:55:41 -08:00
tcp_input.c tcp: Remove redundant checks when setting eff_sacks 2008-07-19 00:07:02 -07:00
tcp_ipv4.c tcp: fix kernel panic with listening_get_next 2008-07-19 00:15:13 -07:00
tcp_lp.c [TCP]: Cong.ctrl modules: remove unused good_ack from cong_avoid 2008-01-28 14:55:41 -08:00
tcp_minisocks.c mib: add net to NET_INC_STATS_BH 2008-07-16 20:31:16 -07:00
tcp_output.c tcp: options clean up 2008-07-19 00:04:31 -07:00
tcp_probe.c tcp: correct kcalloc usage 2008-07-10 16:51:32 -07:00
tcp_scalable.c [TCP]: Cong.ctrl modules: remove unused good_ack from cong_avoid 2008-01-28 14:55:41 -08:00
tcp_timer.c mib: add net to NET_INC_STATS_BH 2008-07-16 20:31:16 -07:00
tcp_vegas.c net: fix returning void-valued expression warnings 2008-05-01 02:47:38 -07:00
tcp_vegas.h [TCP]: congestion control API pass RTT in microseconds 2007-07-31 02:27:57 -07:00
tcp_veno.c net: fix returning void-valued expression warnings 2008-05-01 02:47:38 -07:00
tcp_westwood.c [TCP]: congestion control API pass RTT in microseconds 2007-07-31 02:27:57 -07:00
tcp_yeah.c [TCP]: Cong.ctrl modules: remove unused good_ack from cong_avoid 2008-01-28 14:55:41 -08:00
tunnel4.c [IPV4] TUNNEL4: Fix incoming packet length check for inter-protocol tunnel. 2008-06-05 04:02:33 +09:00
udp.c mib: put udp statistics on struct net 2008-07-18 04:03:27 -07:00
udp_impl.h net: change proto destroy method to return void 2008-06-14 17:04:49 -07:00
udplite.c mib: put udplite statistics on struct net 2008-07-18 04:03:45 -07:00
xfrm4_input.c [IPSEC]: Fix transport-mode async resume on intput without netfilter 2008-01-28 15:00:10 -08:00
xfrm4_mode_beet.c [IPSEC]: Fix BEET output 2008-03-26 16:51:09 -07:00
xfrm4_mode_transport.c [IPSEC]: Use IPv6 calling convention as the convention for x->mode->output 2007-10-10 16:55:54 -07:00
xfrm4_mode_tunnel.c xfrm: fix fragmentation for ipv4 xfrm tunnel 2008-06-17 16:38:23 -07:00
xfrm4_output.c [IPSEC]: Fix inter address family IPsec tunnel handling. 2008-03-24 14:51:51 -07:00
xfrm4_policy.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
xfrm4_state.c [IPSEC]: Fix BEET output 2008-03-26 16:51:09 -07:00
xfrm4_tunnel.c [IPCOMP]: Fix reception of incompressible packets 2008-01-31 19:27:24 -08:00