resolver

package
v0.0.0-...-d485828 Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2018 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewClientInfoV4

func NewClientInfoV4(dhcpConfig *config.DHCPConfig) *v4.ClientInfoV4

func NewClientInfoV6

func NewClientInfoV6(dhcpConfig *config.DHCPConfig) v6.ClientInfoV6

Types

type Acknowledger

type Acknowledger interface {
	AcknowledgeV4ByMAC(clientInfo *v4.ClientInfoV4, xid, mac, ip string) error
	AcknowledgeV4ByID(clientInfo *v4.ClientInfoV4, xid, duid, iaid, ip string) error
}

type Cacher

type Cacher interface {
	Acknowledger
	Releaser
	ReserveV4(info *v4.ClientInfoV4, xid string) error
}

A Cacher keeps records of leased IPs

type CachingResolver

type CachingResolver struct {
	Source Sourcer
	Cache  Cacher
}

Source and Cache are two independent implementations and are interchangeable

func (CachingResolver) AcknowledgeV4ByID

func (r CachingResolver) AcknowledgeV4ByID(info *v4.ClientInfoV4, xid, duid, iaid, ip string) error

func (CachingResolver) AcknowledgeV4ByMAC

func (r CachingResolver) AcknowledgeV4ByMAC(info *v4.ClientInfoV4, xid, mac, ip string) error

func (CachingResolver) DeclineV4ByID

func (r CachingResolver) DeclineV4ByID(xid, duid, iaid, ip string) error

func (CachingResolver) DeclineV4ByMAC

func (r CachingResolver) DeclineV4ByMAC(xid, mac, ip string) error

func (CachingResolver) OfferV4ByID

func (r CachingResolver) OfferV4ByID(info *v4.ClientInfoV4, xid, duid, iaid string) error

func (CachingResolver) OfferV4ByMAC

func (r CachingResolver) OfferV4ByMAC(info *v4.ClientInfoV4, xid, mac string) error

func (CachingResolver) ReleaseV4ByID

func (r CachingResolver) ReleaseV4ByID(xid, duid, iaid, ip string) error

func (CachingResolver) ReleaseV4ByMAC

func (r CachingResolver) ReleaseV4ByMAC(xid, mac, ip string) error

func (CachingResolver) SolicitationV6

func (r CachingResolver) SolicitationV6(info *v6.ClientInfoV6, clientID, clientMAC string, iaid string) (bool, error)

type Decliner

type Decliner interface {
	DeclineV4ByMAC(xid, mac, ip string) error
	DeclineV4ByID(xid, duid, iaid, ip string) error
}

type Netbox

type Netbox struct {
	Client *netbox.Client
}

func (Netbox) OfferV4ByID

func (n Netbox) OfferV4ByID(info *v4.ClientInfoV4, transactionID, duid, iaid string) error

func (Netbox) OfferV4ByMAC

func (n Netbox) OfferV4ByMAC(info *v4.ClientInfoV4, transactionID, mac string) error

func (Netbox) SolicitationV6

func (n Netbox) SolicitationV6(info *v6.ClientInfoV6, clientID, clientMAC string, iaid string) (bool, error)

type Offerer

type Offerer interface {
	OfferV4ByMAC(clientInfo *v4.ClientInfoV4, xid, mac string) error
	OfferV4ByID(clientInfo *v4.ClientInfoV4, xid, duid, iaid string) error
}

type Redis

type Redis struct {
	Client *redis.Client
}

func (Redis) AcknowledgeV4ByID

func (r Redis) AcknowledgeV4ByID(info *v4.ClientInfoV4, xid, duid, iaid, ip string) error

func (Redis) AcknowledgeV4ByMAC

func (r Redis) AcknowledgeV4ByMAC(info *v4.ClientInfoV4, xid, mac, ip string) error

func (Redis) ReleaseV4ByID

func (r Redis) ReleaseV4ByID(xid, duid, iaid, ip string) error

func (Redis) ReleaseV4ByMAC

func (r Redis) ReleaseV4ByMAC(xid, mac, ip string) error

func (Redis) ReserveV4

func (r Redis) ReserveV4(info *v4.ClientInfoV4, xid string) error

type Releaser

type Releaser interface {
	ReleaseV4ByMAC(xid, mac, ip string) error
	ReleaseV4ByID(xid, duid, iaid, ip string) error
}

type Resolver

type Resolver interface {
	Offerer
	Acknowledger
	Releaser
	Decliner
	Solicitationer
}

type Solicitationer

type Solicitationer interface {
	SolicitationV6(info *v6.ClientInfoV6, clientID, clientMAC string, iaid string) (bool, error)
}

type Sourcer

type Sourcer interface {
	Offerer
	Solicitationer
}

A Sourcer assigns IPs based on a request

Jump to

Keyboard shortcuts

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