2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-22 09:57:20 +00:00

- A bug was repaired where MAC Address Affinity for virgin leases always

mapped to the primary.  Virgin leases now have an interleaved preference
  between primary and secondary. [ISC-Bugs #17174]

- A bug was repaired where MAC Address Affinity for clients with no client
  identifier was sometimes mishashed to the peer.  Load balancing during
  runtime and pool rebalancing were opposing. [ISC-Bugs #17174]
This commit is contained in:
David Hankins 2007-09-27 15:28:05 +00:00
parent d7ec175bc0
commit 1418fd1103
2 changed files with 22 additions and 4 deletions

View File

@ -213,6 +213,16 @@ suggested fixes to <dhcp-users@isc.org>.
were transmitted to it, and what frames are being carried through it which
it should not intercept.
Changes since 3.1.0 (Maintenance)
- A bug was repaired where MAC Address Affinity for virgin leases always
mapped to the primary. Virgin leases now have an interleaved preference
between primary and secondary.
- A bug was repaired where MAC Address Affinity for clients with no client
identifier was sometimes mishashed to the peer. Load balancing during
runtime and pool rebalancing were opposing.
Changes since 3.1.0rc1
- The parse warning that 'deny dyanmic bootp;' must be configured for

View File

@ -5503,9 +5503,17 @@ peer_wants_lease(struct lease *lp)
if (lp->uid_len)
hbaix = loadb_p_hash(lp->uid, lp->uid_len);
else
hbaix = loadb_p_hash (lp->hardware_addr.hbuf,
lp->hardware_addr.hlen);
else if (lp->hardware_addr.hlen > 1)
/* Skip the first byte, which is the hardware type, and is
* not included during actual load balancing checks above
* since it is separate from the packet header chaddr field.
* The remainder of the hardware address should be identical
* to the chaddr contents.
*/
hbaix = loadb_p_hash(lp->hardware_addr.hbuf + 1,
lp->hardware_addr.hlen - 1);
else /* Consistent 50/50 split */
return(lp->ip_addr.iabuf[lp->ip_addr.len-1] & 0x01);
hm = state->hba[(hbaix >> 3) & 0x1F] & (1 << (hbaix & 0x07));