]> git.baikalelectronics.ru Git - kernel.git/commit
netfilter: nf_conntrack: IPS_UNTRACKED bit
authorEric Dumazet <eric.dumazet@gmail.com>
Tue, 8 Jun 2010 14:09:52 +0000 (16:09 +0200)
committerPatrick McHardy <kaber@trash.net>
Tue, 8 Jun 2010 14:09:52 +0000 (16:09 +0200)
commitb9ea19fd56329d004bf6ca266162436e753a336b
tree9291ba4e1e3c7bf7ae8b5dfa8271e7127a6a6958
parentecc1a0e12b2c569809b81ac82debc3f6fb1f4a95
netfilter: nf_conntrack: IPS_UNTRACKED bit

NOTRACK makes all cpus share a cache line on nf_conntrack_untracked
twice per packet. This is bad for performance.
__read_mostly annotation is also a bad choice.

This patch introduces IPS_UNTRACKED bit so that we can use later a
per_cpu untrack structure more easily.

A new helper, nf_ct_untracked_get() returns a pointer to
nf_conntrack_untracked.

Another one, nf_ct_untracked_status_or() is used by nf_nat_init() to add
IPS_NAT_DONE_MASK bits to untracked status.

nf_ct_is_untracked() prototype is changed to work on a nf_conn pointer.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
15 files changed:
include/linux/netfilter/nf_conntrack_common.h
include/net/netfilter/nf_conntrack.h
include/net/netfilter/nf_conntrack_core.h
net/ipv4/netfilter/nf_nat_core.c
net/ipv4/netfilter/nf_nat_standalone.c
net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c
net/netfilter/nf_conntrack_core.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/xt_CT.c
net/netfilter/xt_NOTRACK.c
net/netfilter/xt_TEE.c
net/netfilter/xt_cluster.c
net/netfilter/xt_conntrack.c
net/netfilter/xt_socket.c
net/netfilter/xt_state.c