svn commit: r187013 - user/kmacy/HEAD_fast_net/sys/net

Kip Macy kmacy at FreeBSD.org
Fri Jan 9 22:55:38 PST 2009


Author: kmacy
Date: Sat Jan 10 06:55:37 2009
New Revision: 187013
URL: http://svn.freebsd.org/changeset/base/187013

Log:
  update loop condition print hash earlier

Modified:
  user/kmacy/HEAD_fast_net/sys/net/radix_mpath.c

Modified: user/kmacy/HEAD_fast_net/sys/net/radix_mpath.c
==============================================================================
--- user/kmacy/HEAD_fast_net/sys/net/radix_mpath.c	Sat Jan 10 06:36:28 2009	(r187012)
+++ user/kmacy/HEAD_fast_net/sys/net/radix_mpath.c	Sat Jan 10 06:55:37 2009	(r187013)
@@ -299,21 +299,19 @@ rtalloc_mpath_fib(struct route *ro, uint
 	
 	/* gw selection by Modulo-N Hash (RFC2991) XXX need improvement? */
 	hash += hashjitter;
-	hash %= n;
 	if ((lookup_count % 50000) == 0)
-		printf("hash=%d ", hash);
-	while (rn) {
+		printf("hash=%u n=%d ", hash, n);
+	hash %= n;
+	while (total_weight < hash && rn) {
 		rt = (struct rtentry *)rn;
 		if (rt->rt_flags & RTF_SHUTDOWN)
 			continue;
 
 		total_weight += rt->rt_rmx.rmx_weight;
 		if ((lookup_count % 50000) == 0)
-			printf("rmx_weight=%ld ", rt->rt_rmx.rmx_weight);
+			printf("rmx_weight=%ld ",
+			    rt->rt_rmx.rmx_weight);
 		
-		if (total_weight >= hash)
-			break;
-
 		/* stay within the multipath routes */
 		if (rn->rn_dupedkey && rn->rn_mask != rn->rn_dupedkey->rn_mask)
 			break;


More information about the svn-src-user mailing list