Documentation ¶
Overview ¶
Package linux implements the Linux specific datapath implementation
Index ¶
- func CheckMinRequirements()
- func NewDatapath(cfg DatapathConfiguration, ruleManager datapath.IptablesManager, ...) datapath.Datapath
- func NewNodeAddressing() types.NodeAddressing
- func NewNodeHandler(datapathConfig DatapathConfiguration, nodeAddressing types.NodeAddressing, ...) datapath.NodeHandler
- func NodeDeviceNameWithDefaultRoute() (string, error)
- type DatapathConfiguration
- type DeviceManager
- type NeighLink
- type NextHop
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckMinRequirements ¶
func CheckMinRequirements()
CheckMinRequirements checks that minimum kernel requirements are met for configuring the BPF datapath. If not, fatally exits.
func NewDatapath ¶
func NewDatapath(cfg DatapathConfiguration, ruleManager datapath.IptablesManager, wgAgent datapath.WireguardAgent) datapath.Datapath
NewDatapath creates a new Linux datapath
func NewNodeAddressing ¶
func NewNodeAddressing() types.NodeAddressing
NewNodeAddressing returns a new linux node addressing model
func NewNodeHandler ¶
func NewNodeHandler(datapathConfig DatapathConfiguration, nodeAddressing types.NodeAddressing, wgAgent datapath.WireguardAgent) datapath.NodeHandler
NewNodeHandler returns a new node handler to handle node events and implement the implications in the Linux datapath
func NodeDeviceNameWithDefaultRoute ¶
NodeDeviceNameWithDefaultRoute returns the node's device name which handles the default route in the current namespace
Types ¶
type DatapathConfiguration ¶
type DatapathConfiguration struct { // HostDevice is the name of the device to be used to access the host. HostDevice string ProcFs string }
DatapathConfiguration is the static configuration of the datapath. The configuration cannot change throughout the lifetime of a datapath object.
type DeviceManager ¶
func NewDeviceManager ¶
func NewDeviceManager() (*DeviceManager, error)
func NewDeviceManagerAt ¶
func NewDeviceManagerAt(netns netns.NsHandle) (*DeviceManager, error)
func (*DeviceManager) AreDevicesRequired ¶
func (dm *DeviceManager) AreDevicesRequired() bool
func (*DeviceManager) Detect ¶
func (dm *DeviceManager) Detect() ([]string, error)
Detect tries to detect devices to which BPF programs may be loaded. See AreDevicesRequired() for features that require the device information.
The devices are detected by looking at all the configured global unicast routes in the system.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package ipsec provides the Linux datpaath specific abstraction and useful helpers to manage IPSec via Linux xfrm.
|
Package ipsec provides the Linux datpaath specific abstraction and useful helpers to manage IPSec via Linux xfrm. |
Package linux_defaults provides the Linux datapath defaults
|
Package linux_defaults provides the Linux datapath defaults |
Package probes provides BPF features checks based on bpftool.
|
Package probes provides BPF features checks based on bpftool. |
Package route provides the Cilium specific abstraction and useful helpers to manage network routes
|
Package route provides the Cilium specific abstraction and useful helpers to manage network routes |