in lib/rr.go [58:75]
func (rr *roundRobin) SelectRatioBasedDhcpServer(message *DHCPMessage) (server *DHCPServer, err error) {
// hash the clientid to see if it should be RC/Stable
hash := rr.getHash(message.ClientID)
rr.lock.Lock()
if hash%100 < rr.rcRatio {
rr.iterList = rr.iterRC
rr.iterRC++
rr.lock.Unlock()
return rr.SelectServerFromList(rr.rc, message)
}
//otherwise go stable
rr.iterList = rr.iterStable
rr.iterStable++
rr.lock.Unlock()
return rr.SelectServerFromList(rr.stable, message)
}