[netfilter-cvslog] r3607 - trunk/patch-o-matic-ng/nf_conntrack/linux-2.6/include/linux/netfilter

yasuyuki at netfilter.org yasuyuki at netfilter.org
Sat Jan 22 20:05:07 CET 2005


Author: yasuyuki at netfilter.org
Date: 2005-01-22 20:05:07 +0100 (Sat, 22 Jan 2005)
New Revision: 3607

Modified:
   trunk/patch-o-matic-ng/nf_conntrack/linux-2.6/include/linux/netfilter/nf_conntrack_tuple.h
Log:
memcmp() is slow.



Modified: trunk/patch-o-matic-ng/nf_conntrack/linux-2.6/include/linux/netfilter/nf_conntrack_tuple.h
===================================================================
--- trunk/patch-o-matic-ng/nf_conntrack/linux-2.6/include/linux/netfilter/nf_conntrack_tuple.h	2005-01-22 13:47:31 UTC (rev 3606)
+++ trunk/patch-o-matic-ng/nf_conntrack/linux-2.6/include/linux/netfilter/nf_conntrack_tuple.h	2005-01-22 19:05:07 UTC (rev 3607)
@@ -142,19 +142,25 @@
 static inline int nf_ct_tuple_src_equal(const struct nf_conntrack_tuple *t1,
 				        const struct nf_conntrack_tuple *t2)
 { 
-	return (!memcmp(t1->src.u3.all, t2->src.u3.all, sizeof(t1->src.u3.all)))
-	       && (t1->src.u.all == t2->src.u.all)
-	       && (t1->src.l3num == t2->src.l3num)
-	       && (t1->dst.protonum == t2->dst.protonum);
+	return (t1->src.u3.all[0] == t2->src.u3.all[0] &&
+		t1->src.u3.all[1] == t2->src.u3.all[1] &&
+		t1->src.u3.all[2] == t2->src.u3.all[2] &&
+		t1->src.u3.all[3] == t2->src.u3.all[3] &&
+		t1->src.u.all == t2->src.u.all &&
+		t1->src.l3num == t2->src.l3num &&
+		t1->dst.protonum == t2->dst.protonum);
 }
 
 static inline int nf_ct_tuple_dst_equal(const struct nf_conntrack_tuple *t1,
 				        const struct nf_conntrack_tuple *t2)
 {
-	return (!memcmp(t1->dst.u3.all, t2->dst.u3.all, sizeof(t1->dst.u3.all)))
-	       && (t1->dst.u.all == t2->dst.u.all)
-	       && (t1->src.l3num == t2->src.l3num)
-	       && (t1->dst.protonum == t2->dst.protonum);
+	return (t1->dst.u3.all[0] == t2->dst.u3.all[0] &&
+		t1->dst.u3.all[1] == t2->dst.u3.all[1] &&
+		t1->dst.u3.all[2] == t2->dst.u3.all[2] &&
+		t1->dst.u3.all[3] == t2->dst.u3.all[3] &&
+		t1->dst.u.all == t2->dst.u.all &&
+		t1->src.l3num == t2->src.l3num &&
+		t1->dst.protonum == t2->dst.protonum);
 }
 
 static inline int nf_ct_tuple_equal(const struct nf_conntrack_tuple *t1,




More information about the netfilter-cvslog mailing list