Help us shape the future of Go! Take the 2026 Go Developer Survey

cidrset

package
v1.13.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2019 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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")
)

Functions

This section is empty.

Types

type CidrSet

type CidrSet struct {
	sync.Mutex
	// contains filtered or unexported fields
}

CidrSet manages a set of CIDR ranges from which blocks of IPs can be allocated from.

func NewCIDRSet

func NewCIDRSet(clusterCIDR *net.IPNet, subNetMaskSize int) (*CidrSet, error)

NewCIDRSet creates a new CidrSet.

func (*CidrSet) AllocateNext

func (s *CidrSet) AllocateNext() (*net.IPNet, error)

AllocateNext allocates the next free CIDR range. This will set the range as occupied and return the allocated range.

func (*CidrSet) Occupy

func (s *CidrSet) Occupy(cidr *net.IPNet) (err error)

Occupy marks the given CIDR range as used. Occupy does not check if the CIDR range was previously used.

func (*CidrSet) Release

func (s *CidrSet) Release(cidr *net.IPNet) error

Release releases the given CIDR range.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL