All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.