X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fmultipath.c;h=83df6805d15ec27da26e866196af85e442a79bfa;hb=eb9b830766044475277a590dbf8d213b77b62188;hp=af0ebffe4284955bfdfaa275de3a4becfa08d4a5;hpb=19f62195a5d7f92bd22482db746d830c7cde40c4;p=openvswitch diff --git a/lib/multipath.c b/lib/multipath.c index af0ebffe..83df6805 100644 --- a/lib/multipath.c +++ b/lib/multipath.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010 Nicira Networks. + * Copyright (c) 2010, 2011 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -195,7 +195,10 @@ multipath_algorithm(uint32_t hash, enum nx_mp_algorithm algorithm, return hash % n_links; case NX_MP_ALG_HASH_THRESHOLD: - return hash / (UINT32_MAX / n_links); + if (n_links == 1) { + return 0; + } + return hash / (UINT32_MAX / n_links + 1); case NX_MP_ALG_HRW: return (n_links <= 64