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 ¶
View Source
var Cell = cell.Module( "datapath", "Datapath", maps.Cell, utime.Cell, eventsmap.Cell, monitorAgent.Cell, sysctl.Cell, modules.Cell, iptables.Cell, cell.Invoke(initDatapath), cell.Provide(newWireguardAgent), cell.Provide(func(expConfig experimental.Config) types.LBMap { if expConfig.EnableExperimentalLB { return mockmaps.NewLBMockMap() } return lbmap.New() }), tables.NodeAddressCell, NodeAddressingCell, tables.DirectRoutingDeviceCell, agentliveness.Cell, l2responder.Cell, garp.Cell, dpcfg.Cell, bigtcp.Cell, tunnel.Cell, bandwidth.Cell, ipsec.Cell, mtu.Cell, orchestrator.Cell, linuxdatapath.DevicesControllerCell, ipcache.Cell, loader.Cell, prefilter.Cell, xdp.Cell, cell.Provide(linuxdatapath.NewNodeHandler), cell.Provide(node.NewNodeIDApiHandler), act.Cell, )
Datapath provides the privileged operations to apply control-plane decision to the kernel.
For integration testing a fake counterpart of this module is defined in pkg/datapath/fake/cells.go.
View Source
var NodeAddressingCell = cell.Module( "node-addressing", "Accessors for looking up local node IP addresses", cell.Provide(NewNodeAddressing), )
NodeAddressingCell provides the [NodeAddressing] interface that provides access to local node addressing information. This will be eventually superceded by Table[NodeAddress].
Functions ¶
func NewNodeAddressing ¶ added in v1.16.0
func NewNodeAddressing(localNode *node.LocalNodeStore, db *statedb.DB, devices statedb.Table[*tables.Device]) types.NodeAddressing
Types ¶
This section is empty.
Directories ¶
Path | Synopsis |
---|---|
Package alignchecker is a thin wrapper around pkg/alignchecker to validate datapath object alignment.
|
Package alignchecker is a thin wrapper around pkg/alignchecker to validate datapath object alignment. |
Package connector is responsible for the datapath specific plumbing to connect an endpoint to the network
|
Package connector is responsible for the datapath specific plumbing to connect an endpoint to the network |
Package fake is a fake datapath implementation.
|
Package fake is a fake datapath implementation. |
Package ipcache provides a BPF datapath implementation of the IPCache store.
|
Package ipcache provides a BPF datapath implementation of the IPCache store. |
Package iptables manages iptables-related configuration for Cilium.
|
Package iptables manages iptables-related configuration for Cilium. |
Package link provides the Cilium specific abstraction and useful helpers to manage network interfaces
|
Package link provides the Cilium specific abstraction and useful helpers to manage network interfaces |
Package linux implements the Linux specific datapath implementation
|
Package linux implements the Linux specific datapath implementation |
bandwidth
Package bandwidth provides efficient EDT-based rate-limiting.
|
Package bandwidth provides efficient EDT-based rate-limiting. |
bigtcp
Package bigtcp provides helpers to probe and enable BIG TCP for the Linux datapath
|
Package bigtcp provides helpers to probe and enable BIG TCP for the Linux datapath |
ipsec
Package ipsec provides the Linux datapath specific abstraction and useful helpers to manage IPSec via Linux xfrm.
|
Package ipsec provides the Linux datapath specific abstraction and useful helpers to manage IPSec via Linux xfrm. |
linux_defaults
Package linux_defaults provides the Linux datapath defaults
|
Package linux_defaults provides the Linux datapath defaults |
modules
Package modules contains a manager of loaded modules which supports search operation.
|
Package modules contains a manager of loaded modules which supports search operation. |
probes
Package probes provides BPF features checks based on bpftool.
|
Package probes provides BPF features checks based on bpftool. |
route
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 |
sysctl
Package sysctl allows to change kernel parameters at runtime.
|
Package sysctl allows to change kernel parameters at runtime. |
utime
Package utime converts between time.Time and Unix Epoch time in 512ns time unit.
|
Package utime converts between time.Time and Unix Epoch time in 512ns time unit. |
Package loader provides accessors to compilation and BPF load routines necessary for creating datapath objects and attaching them to links.
|
Package loader provides accessors to compilation and BPF load routines necessary for creating datapath objects and attaching them to links. |
Package maps performs various lifecycle operations related to maps in the datapath.
|
Package maps performs various lifecycle operations related to maps in the datapath. |
Package prefilter provides a means of configuring XDP pre-filters for DDoS-mitigation.
|
Package prefilter provides a means of configuring XDP pre-filters for DDoS-mitigation. |
Click to show internal directories.
Click to hide internal directories.