ipallocator

package
v0.0.0-09-24-2015.00-3... Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2015 License: Apache-2.0, Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package ipallocator defines the default IP allocator. It will move out of libnetwork as an external IPAM plugin. This has been imported unchanged from Docker, besides additon of registration logic

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNoAvailableIPs preformatted error
	ErrNoAvailableIPs = errors.New("no available ip addresses on network")
	// ErrIPAlreadyAllocated preformatted error
	ErrIPAlreadyAllocated = errors.New("ip already allocated")
	// ErrIPOutOfRange preformatted error
	ErrIPOutOfRange = errors.New("requested ip is out of range")
	// ErrNetworkAlreadyRegistered preformatted error
	ErrNetworkAlreadyRegistered = errors.New("network already registered")
	// ErrBadSubnet preformatted error
	ErrBadSubnet = errors.New("network does not contain specified subnet")
)

Functions

This section is empty.

Types

type IPAllocator

type IPAllocator struct {
	// contains filtered or unexported fields
}

IPAllocator manages the ipam

func New

func New() *IPAllocator

New returns a new instance of IPAllocator

func (*IPAllocator) RegisterSubnet

func (a *IPAllocator) RegisterSubnet(network *net.IPNet, subnet *net.IPNet) error

RegisterSubnet registers network in global allocator with bounds defined by subnet. If you want to use network range you must call this method before first RequestIP, otherwise full network range will be used

func (*IPAllocator) ReleaseIP

func (a *IPAllocator) ReleaseIP(network *net.IPNet, ip net.IP) error

ReleaseIP adds the provided ip back into the pool of available ips to be returned for use.

func (*IPAllocator) RequestIP

func (a *IPAllocator) RequestIP(network *net.IPNet, ip net.IP) (net.IP, error)

RequestIP requests an available ip from the given network. It will return the next available ip if the ip provided is nil. If the ip provided is not nil it will validate that the provided ip is available for use or return an error

Jump to

Keyboard shortcuts

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