Documentation
¶
Overview ¶
Package datapath defines the interfaces to abstract all platform specific datapath components.
Current datapath implementations:
pkg/datapath/linux pkg/datapath/fake
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Datapath ¶
type Datapath interface {
// Node must return the handler for node events
Node() NodeHandler
// LocalNodeAddressing must return the node addressing implementation
// of the local node
LocalNodeAddressing() NodeAddressing
// WriteNodeConfig writes the implementation-specific configuration of
// node-wide options into the specified writer.
WriteNodeConfig(io.Writer, *LocalNodeConfiguration) error
// WriteNetdevConfig writes the implementation-specific configuration
// of configurable options to the specified writer. Options specified
// here will apply to base programs and not to endpoints, though
// endpoints may have equivalent configurable options.
WriteNetdevConfig(io.Writer, DeviceConfiguration) error
// WriteTemplateConfig writes the implementation-specific configuration
// of configurable options for BPF templates to the specified writer.
WriteTemplateConfig(w io.Writer, cfg EndpointConfiguration) error
// WriteEndpointConfig writes the implementation-specific configuration
// of configurable options for the endpoint to the specified writer.
WriteEndpointConfig(w io.Writer, cfg EndpointConfiguration) error
// InstallProxyRules creates the necessary datapath config (e.g., iptables
// rules for redirecting host proxy traffic on a specific ProxyPort)
InstallProxyRules(proxyPort uint16, ingress bool, name string) error
// RemoveProxyRules creates the necessary datapath config (e.g., iptables
// rules for redirecting host proxy traffic on a specific ProxyPort)
RemoveProxyRules(proxyPort uint16, ingress bool, name string) error
}
Datapath is the interface to abstract all datapath interactions. The abstraction allows to implement the datapath requirements with multiple implementations
type DeviceConfiguration ¶
type DeviceConfiguration interface {
// GetCIDRPrefixLengths fetches the lists of unique IPv6 and IPv4
// prefix lengths used for datapath lookups, each of which is sorted
// from longest prefix to shortest prefix. It must return more than
// one element in each returned array.
GetCIDRPrefixLengths() (s6, s4 []