Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Feb 2010 17:38:39 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r203672 - user/kmacy/head_flowtable_v6/sys/net
Message-ID:  <201002081738.o18HcdoQ011017@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Mon Feb  8 17:38:39 2010
New Revision: 203672
URL: http://svn.freebsd.org/changeset/base/203672

Log:
  don't hash loopback addresses

Modified:
  user/kmacy/head_flowtable_v6/sys/net/flowtable.c

Modified: user/kmacy/head_flowtable_v6/sys/net/flowtable.c
==============================================================================
--- user/kmacy/head_flowtable_v6/sys/net/flowtable.c	Mon Feb  8 17:26:58 2010	(r203671)
+++ user/kmacy/head_flowtable_v6/sys/net/flowtable.c	Mon Feb  8 17:38:39 2010	(r203672)
@@ -513,7 +513,6 @@ ipv4_flow_lookup_hash_internal(
 
 	if ((V_flowtable_enable == 0) || (V_flowtable_ready == 0))
 		return (0);
-
 	proto = flags_to_proto(flags);
 	sport = dport = key[2] = key[1] = key[0] = 0;
 	if ((ssin != NULL) && (flags & FL_HASH_ALL)) {
@@ -1033,7 +1032,10 @@ flowtable_lookup(struct flowtable *ft, s
 
 		dsin = (struct sockaddr_in *)dsa;
 		ssin = (struct sockaddr_in *)ssa;
-		
+		if ((ntohl(dsin->sin_addr.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET ||
+		    (ntohl(ssin->sin_addr.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET)
+			return (NULL);
+
 		hash = ipv4_flow_lookup_hash_internal(ssin, dsin, key, flags);
 	}
 #endif	



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002081738.o18HcdoQ011017>