* [PATCH 1/2] Cleanup ctstat
@ 2004-09-19 12:41 Martin Josefsson
2004-09-19 20:34 ` Patrick McHardy
0 siblings, 1 reply; 2+ messages in thread
From: Martin Josefsson @ 2004-09-19 12:41 UTC (permalink / raw)
To: Patrick McHardy; +Cc: Netfilter-devel
[-- Attachment #1: Type: text/plain, Size: 6024 bytes --]
Hi Patrick
Here's the first of two patches based on Pablo Neiras patch.
This patch simply adds a macro to increase the statistics.
And it changes icmp_error to error in struct ip_conntrack_stat in order
to adopt to the tcp-windowtracking changes.
Please submit for 2.6
Signed-off-by: Martin Josefsson <gandalf@wlug.westbo.se>
diff -x '*.orig' -urNp linux-2.6.9-rc1-bk16.orig/include/linux/netfilter_ipv4/ip_conntrack.h linux-2.6.9-rc1-bk16/include/linux/netfilter_ipv4/ip_conntrack.h
--- linux-2.6.9-rc1-bk16.orig/include/linux/netfilter_ipv4/ip_conntrack.h 2004-09-10 11:33:31.000000000 +0200
+++ linux-2.6.9-rc1-bk16/include/linux/netfilter_ipv4/ip_conntrack.h 2004-09-11 13:27:01.000000000 +0200
@@ -306,12 +306,13 @@ struct ip_conntrack_stat
unsigned int insert_failed;
unsigned int drop;
unsigned int early_drop;
- unsigned int icmp_error;
+ unsigned int error;
unsigned int expect_new;
unsigned int expect_create;
unsigned int expect_delete;
};
+#define CONNTRACK_STAT_INC(count) (__get_cpu_var(ip_conntrack_stat).count++)
/* eg. PROVIDES_CONNTRACK(ftp); */
#define PROVIDES_CONNTRACK(name) \
diff -x '*.orig' -urNp linux-2.6.9-rc1-bk16.orig/net/ipv4/netfilter/ip_conntrack_core.c linux-2.6.9-rc1-bk16/net/ipv4/netfilter/ip_conntrack_core.c
--- linux-2.6.9-rc1-bk16.orig/net/ipv4/netfilter/ip_conntrack_core.c 2004-09-10 11:33:32.000000000 +0200
+++ linux-2.6.9-rc1-bk16/net/ipv4/netfilter/ip_conntrack_core.c 2004-09-11 13:28:41.000000000 +0200
@@ -185,7 +185,7 @@ destroy_expect(struct ip_conntrack_expec
IP_NF_ASSERT(!timer_pending(&exp->timeout));
kmem_cache_free(ip_conntrack_expect_cachep, exp);
- __get_cpu_var(ip_conntrack_stat).expect_delete++;
+ CONNTRACK_STAT_INC(expect_delete);
}
inline void ip_conntrack_expect_put(struct ip_conntrack_expect *exp)
@@ -354,14 +354,14 @@ destroy_conntrack(struct nf_conntrack *n
DEBUGP("destroy_conntrack: returning ct=%p to slab\n", ct);
kmem_cache_free(ip_conntrack_cachep, ct);
atomic_dec(&ip_conntrack_count);
- __get_cpu_var(ip_conntrack_stat).delete++;
+ CONNTRACK_STAT_INC(delete);
}
static void death_by_timeout(unsigned long ul_conntrack)
{
struct ip_conntrack *ct = (void *)ul_conntrack;
- __get_cpu_var(ip_conntrack_stat).delete_list++;
+ CONNTRACK_STAT_INC(delete_list);
WRITE_LOCK(&ip_conntrack_lock);
clean_from_lists(ct);
@@ -491,12 +491,12 @@ __ip_conntrack_confirm(struct nf_ct_info
atomic_inc(&ct->ct_general.use);
set_bit(IPS_CONFIRMED_BIT, &ct->status);
WRITE_UNLOCK(&ip_conntrack_lock);
- __get_cpu_var(ip_conntrack_stat).insert++;
+ CONNTRACK_STAT_INC(insert);
return NF_ACCEPT;
}
WRITE_UNLOCK(&ip_conntrack_lock);
- __get_cpu_var(ip_conntrack_stat).insert_failed++;
+ CONNTRACK_STAT_INC(insert_failed);
return NF_DROP;
}
@@ -540,7 +540,7 @@ static int early_drop(struct list_head *
if (del_timer(&h->ctrack->timeout)) {
death_by_timeout((unsigned long)h->ctrack);
dropped = 1;
- __get_cpu_var(ip_conntrack_stat).early_drop++;
+ CONNTRACK_STAT_INC(early_drop);
}
ip_conntrack_put(h->ctrack);
return dropped;
@@ -670,13 +670,13 @@ init_conntrack(const struct ip_conntrack
if (expected->expectfn)
expected->expectfn(conntrack);
- __get_cpu_var(ip_conntrack_stat).expect_new++;
+ CONNTRACK_STAT_INC(expect_new);
goto ret;
} else {
conntrack->helper = ip_ct_find_helper(&repl_tuple);
- __get_cpu_var(ip_conntrack_stat).new++;
+ CONNTRACK_STAT_INC(new);
}
end: atomic_inc(&ip_conntrack_count);
@@ -780,7 +780,7 @@ unsigned int ip_conntrack_in(unsigned in
/* Previously seen (loopback or untracked)? Ignore. */
if ((*pskb)->nfct) {
- __get_cpu_var(ip_conntrack_stat).ignore++;
+ CONNTRACK_STAT_INC(ignore);
return NF_ACCEPT;
}
@@ -791,19 +791,20 @@ unsigned int ip_conntrack_in(unsigned in
* core what to do with the packet. */
if (proto->error != NULL
&& (ret = proto->error(*pskb, &ctinfo, hooknum)) <= 0) {
- __get_cpu_var(ip_conntrack_stat).icmp_error++;
+ CONNTRACK_STAT_INC(error);
+ CONNTRACK_STAT_INC(invalid);
return -ret;
}
if (!(ct = resolve_normal_ct(*pskb, proto,&set_reply,hooknum,&ctinfo))) {
/* Not valid part of a connection */
- __get_cpu_var(ip_conntrack_stat).invalid++;
+ CONNTRACK_STAT_INC(invalid);
return NF_ACCEPT;
}
if (IS_ERR(ct)) {
/* Too stressed to deal. */
- __get_cpu_var(ip_conntrack_stat).drop++;
+ CONNTRACK_STAT_INC(drop);
return NF_DROP;
}
@@ -815,7 +816,7 @@ unsigned int ip_conntrack_in(unsigned in
* the netfilter core what to do*/
nf_conntrack_put((*pskb)->nfct);
(*pskb)->nfct = NULL;
- __get_cpu_var(ip_conntrack_stat).invalid++;
+ CONNTRACK_STAT_INC(invalid);
return -ret;
}
@@ -823,7 +824,7 @@ unsigned int ip_conntrack_in(unsigned in
ret = ct->helper->help(*pskb, ct, ctinfo);
if (ret == -1) {
/* Invalid */
- __get_cpu_var(ip_conntrack_stat).invalid++;
+ CONNTRACK_STAT_INC(invalid);
nf_conntrack_put((*pskb)->nfct);
(*pskb)->nfct = NULL;
return NF_ACCEPT;
@@ -1027,7 +1028,7 @@ out: ip_conntrack_expect_insert(expect,
WRITE_UNLOCK(&ip_conntrack_lock);
- __get_cpu_var(ip_conntrack_stat).expect_create++;
+ CONNTRACK_STAT_INC(expect_create);
return ret;
}
diff -x '*.orig' -urNp linux-2.6.9-rc1-bk16.orig/net/ipv4/netfilter/ip_conntrack_standalone.c linux-2.6.9-rc1-bk16/net/ipv4/netfilter/ip_conntrack_standalone.c
--- linux-2.6.9-rc1-bk16.orig/net/ipv4/netfilter/ip_conntrack_standalone.c 2004-09-10 11:33:32.000000000 +0200
+++ linux-2.6.9-rc1-bk16/net/ipv4/netfilter/ip_conntrack_standalone.c 2004-09-11 13:27:01.000000000 +0200
@@ -340,7 +340,7 @@ static int ct_cpu_seq_show(struct seq_fi
st->insert_failed,
st->drop,
st->early_drop,
- st->icmp_error,
+ st->error,
st->expect_new,
st->expect_create,
--
/Martin
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH 1/2] Cleanup ctstat
2004-09-19 12:41 [PATCH 1/2] Cleanup ctstat Martin Josefsson
@ 2004-09-19 20:34 ` Patrick McHardy
0 siblings, 0 replies; 2+ messages in thread
From: Patrick McHardy @ 2004-09-19 20:34 UTC (permalink / raw)
To: Martin Josefsson; +Cc: Netfilter-devel
Martin Josefsson wrote:
>Hi Patrick
>
>Here's the first of two patches based on Pablo Neiras patch.
>
>This patch simply adds a macro to increase the statistics.
>And it changes icmp_error to error in struct ip_conntrack_stat in order
>to adopt to the tcp-windowtracking changes.
>
>Please submit for 2.6
>
>
I've added it to my tree I'm about to submit.
Regards
Patrick
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-09-19 20:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-19 12:41 [PATCH 1/2] Cleanup ctstat Martin Josefsson
2004-09-19 20:34 ` Patrick McHardy
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.