var ( // ErrCIDRRangeNoCIDRsRemaining occurs when there is no more space // to allocate CIDR ranges. ErrCIDRRangeNoCIDRsRemaining = errors.New( "CIDR allocation failed; there are no remaining CIDRs left to allocate in the accepted range") // ErrCIDRSetSubNetTooBig occurs when the subnet mask size is too // big compared to the CIDR mask size. ErrCIDRSetSubNetTooBig = errors.New( "New CIDR set failed; the node CIDR size is too big") )
CidrSet manages a set of CIDR ranges from which blocks of IPs can be allocated from.
NewCIDRSet creates a new CidrSet.
AllocateNext allocates the next free CIDR range. This will set the range as occupied and return the allocated range.
Occupy marks the given CIDR range as used. Occupy succeeds even if the CIDR range was previously used.
Release releases the given CIDR range.