Documentation ¶
Index ¶
- Constants
- Variables
- func AddDHCPMock(registry endpoint.HandlerRegistry, logger logging.Logger, ...)
- func New(logger logging.Logger, emitter audit.Emitter, stateStore state.KVStore) endpoint.ProtocolHandler
- type ConditionalHandler
- type DHCPv4MessageHandler
- func DNSHandler(opts HandlerOptions, args ...rules.Param) (DHCPv4MessageHandler, error)
- func IPRangeHandler(opts HandlerOptions, args ...rules.Param) (DHCPv4MessageHandler, error)
- func NetmaskHandler(opts HandlerOptions, args ...rules.Param) (DHCPv4MessageHandler, error)
- func RouterIPHandler(opts HandlerOptions, args ...rules.Param) (DHCPv4MessageHandler, error)
- func StaticIPHandler(opts HandlerOptions, args ...rules.Param) (DHCPv4MessageHandler, error)
- type DHCPv4MessageHandlerFunc
- type DefaultOptions
- type EmittingHandler
- type FallbackHandler
- type FilterChain
- type HandlerChain
- type HandlerOptions
- type ProtocolOptions
- type RangeLease
- type RangeMessageHandler
- type RequestFilter
- type RequestFilterFunc
- type RuledHandler
- type Server4
Constants ¶
View Source
const MaxDatagram = 1 << 16
Variables ¶
View Source
var (
ErrDropRequest = errors.New("request should be dropped")
)
Functions ¶
func AddDHCPMock ¶
Types ¶
type ConditionalHandler ¶
type ConditionalHandler struct { Handlers HandlerChain Chain FilterChain }
type DHCPv4MessageHandler ¶
var NoOpHandler DHCPv4MessageHandler = DHCPv4MessageHandlerFunc(func(_, _ *dhcpv4.DHCPv4) error { return nil })
func DNSHandler ¶
func DNSHandler(opts HandlerOptions, args ...rules.Param) (DHCPv4MessageHandler, error)
func IPRangeHandler ¶
func IPRangeHandler(opts HandlerOptions, args ...rules.Param) (DHCPv4MessageHandler, error)
func NetmaskHandler ¶
func NetmaskHandler(opts HandlerOptions, args ...rules.Param) (DHCPv4MessageHandler, error)
func RouterIPHandler ¶
func RouterIPHandler(opts HandlerOptions, args ...rules.Param) (DHCPv4MessageHandler, error)
func StaticIPHandler ¶
func StaticIPHandler(opts HandlerOptions, args ...rules.Param) (DHCPv4MessageHandler, error)
type DefaultOptions ¶
type EmittingHandler ¶
type EmittingHandler struct { Upstream DHCPv4MessageHandler Emitter audit.Emitter }
type FallbackHandler ¶
type FallbackHandler struct { Previous DHCPv4MessageHandler Logger logging.Logger DefaultOptions }
type FilterChain ¶
type FilterChain []RequestFilter
func RequestFiltersForRoutingRule ¶
func RequestFiltersForRoutingRule(rule rules.FilteredPipeline) (filters FilterChain, err error)
type HandlerChain ¶
type HandlerChain []DHCPv4MessageHandler
func HandlerForRoutingRule ¶
func HandlerForRoutingRule(rule *rules.ChainedResponsePipeline, opts HandlerOptions) (HandlerChain, error)
type HandlerOptions ¶
type HandlerOptions struct { ProtocolOptions Logger logging.Logger StateStore state.KVStore }
type ProtocolOptions ¶
type ProtocolOptions struct { Rules []string Default DefaultOptions Fallback DHCPv4MessageHandler }
func LoadFromConfig ¶
func LoadFromConfig(startupSpec *endpoint.StartupSpec, stateStore state.KVStore) (opts ProtocolOptions, err error)
type RangeLease ¶
type RangeLease struct { IP net.IP MAC net.HardwareAddr }
type RangeMessageHandler ¶
type RequestFilter ¶
func ExactMACMatcher ¶
func ExactMACMatcher(args ...rules.Param) (RequestFilter, error)
func MatchMACMatcher ¶
func MatchMACMatcher(args ...rules.Param) (RequestFilter, error)
type RequestFilterFunc ¶
type RuledHandler ¶
type RuledHandler struct { HandlerName string ProtocolOptions ProtocolOptions Logger logging.Logger StateStore state.KVStore // contains filtered or unexported fields }
func (*RuledHandler) RegisterRule ¶
func (h *RuledHandler) RegisterRule(rawRule string) error
type Server4 ¶
type Server4 struct { PacketConn *ipv4.PacketConn Handler DHCPv4MessageHandler Logger logging.Logger }
func (*Server4) HandleMessage ¶
Click to show internal directories.
Click to hide internal directories.