fake

package
v1.15.4 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Overview

Package fake is a fake datapath implementation. It does not implement any datapath specific concepts and is useful for mocking and testing.

Index

Constants

This section is empty.

Variables

View Source
var (
	IPv4InternalAddress = net.ParseIP("10.0.0.2")
	IPv4NodePortAddress = net.ParseIP("10.0.0.3")

	IPv6InternalAddress = net.ParseIP("f00d::1")
	IPv6NodePortAddress = net.ParseIP("f00d::2")
)
View Source
var Cell = cell.Module(
	"fake-datapath",
	"Fake Datapath",

	cell.Provide(
		func(na types.NodeAddressing) (*FakeDatapath, types.Datapath, types.NodeIDHandler) {
			dp := newDatapath(na)
			return dp, dp, dp.NodeIDs()
		},

		func() signalmap.Map { return fakesignalmap.NewFakeSignalMap([][]byte{}, time.Second) },
		func() authmap.Map { return fakeauthmap.NewFakeAuthMap() },
		func() egressmap.PolicyMap { return nil },
		func() *bigtcp.Configuration { return &bigtcp.Configuration{} },
		func() *iptables.Manager { return &iptables.Manager{} },
		func() bandwidth.Manager { return &BandwidthManager{} },
		func() types.IPsecKeyCustodian { return &ipsecKeyCustodian{} },
		func() mtu.MTU { return &MTU{} },

		tables.NewDeviceTable,
		tables.NewL2AnnounceTable, statedb.RWTable[*tables.L2AnnounceEntry].ToTable,
		tables.NewRouteTable, statedb.RWTable[*tables.Route].ToTable,
	),

	tables.NodeAddressCell,
	tables.NodeAddressingCell,

	cell.Invoke(
		statedb.RegisterTable[*tables.Device],
		statedb.RegisterTable[*tables.L2AnnounceEntry],
		statedb.RegisterTable[*tables.Route],
	),

	tunnel.Cell,
	cell.Provide(fakeDevices),
)

Cell provides a fake version of the datapath cell.

Used in integration tests in daemon/cmd and test/controlplane.

Functions

func NewIPv4OnlyNodeAddressing

func NewIPv4OnlyNodeAddressing() types.NodeAddressing

NewIPv4OnlyNodeAddressing returns a new fake node addressing where IPv6 is disabled

func NewIPv6OnlyNodeAddressing

func NewIPv6OnlyNodeAddressing() types.NodeAddressing

NewIPv6OnlyNodeAddressing returns a new fake node addressing where IPv4 is disabled

func NewNodeAddressing

func NewNodeAddressing() types.NodeAddressing

NewNodeAddressing returns a new fake node addressing

Types

type BandwidthManager added in v1.15.0

type BandwidthManager struct{}

func (*BandwidthManager) BBREnabled added in v1.15.0

func (fbm *BandwidthManager) BBREnabled() bool

func (*BandwidthManager) DeleteEndpointBandwidthLimit added in v1.15.0

func (fbm *BandwidthManager) DeleteEndpointBandwidthLimit(epID uint16) error

func (*BandwidthManager) Enabled added in v1.15.0

func (fbm *BandwidthManager) Enabled() bool

func (*BandwidthManager) ResetQueues added in v1.15.0

func (fbm *BandwidthManager) ResetQueues() bool

type FakeDatapath

type FakeDatapath struct {
	// contains filtered or unexported fields
}

func NewDatapath

func NewDatapath() *FakeDatapath

NewDatapath returns a new fake datapath

func (*FakeDatapath) BandwidthManager added in v1.15.0

func (f *FakeDatapath) BandwidthManager() bandwidth.Manager

func (*FakeDatapath) FakeNode

func (f *FakeDatapath) FakeNode() *FakeNodeHandler

func (*FakeDatapath) GetProxyPort

func (m *FakeDatapath) GetProxyPort(name string) uint16

func (*FakeDatapath) InstallNoTrackRules

func (m *FakeDatapath) InstallNoTrackRules(IP string, port uint16, ipv6 bool) error

func (*FakeDatapath) InstallProxyRules

func (f *FakeDatapath) InstallProxyRules(context.Context, uint16, bool, bool, string) error

func (*FakeDatapath) InstallRules

func (f *FakeDatapath) InstallRules(ctx context.Context, ifName string, quiet, install bool) error

func (*FakeDatapath) LBMap

func (f *FakeDatapath) LBMap() datapath.LBMap

func (*FakeDatapath) LBMockMap

func (f *FakeDatapath) LBMockMap() *mockmaps.LBMockMap

func (*FakeDatapath) Loader

func (f *FakeDatapath) Loader() datapath.Loader

func (*FakeDatapath) LocalNodeAddressing

func (f *FakeDatapath) LocalNodeAddressing() datapath.NodeAddressing

LocalNodeAddressing returns a fake node addressing implementation of the local node

func (*FakeDatapath) Node

func (f *FakeDatapath) Node() datapath.NodeHandler

Node returns a fake handler for node events

func (*FakeDatapath) NodeIDs

func (f *FakeDatapath) NodeIDs() datapath.NodeIDHandler

func (*FakeDatapath) NodeNeighbors

func (f *FakeDatapath) NodeNeighbors() datapath.NodeNeighbors

func (*FakeDatapath) Procfs

func (f *FakeDatapath) Procfs() string

func (*FakeDatapath) RemoveNoTrackRules

func (m *FakeDatapath) RemoveNoTrackRules(IP string, port uint16, ipv6 bool) error

func (*FakeDatapath) SupportsOriginalSourceAddr

func (f *FakeDatapath) SupportsOriginalSourceAddr() bool

func (*FakeDatapath) WireguardAgent

func (f *FakeDatapath) WireguardAgent() datapath.WireguardAgent

func (*FakeDatapath) WriteEndpointConfig

func (f *FakeDatapath) WriteEndpointConfig(io.Writer, datapath.EndpointConfiguration) error

WriteEndpointConfig pretends to write the endpoint configuration to a writer.

func (*FakeDatapath) WriteNetdevConfig

func (f *FakeDatapath) WriteNetdevConfig(io.Writer, datapath.DeviceConfiguration) error

WriteNetdevConfig pretends to write the netdev configuration to a writer.

func (*FakeDatapath) WriteNodeConfig

WriteNodeConfig pretends to write the datapath configuration to the writer.

func (*FakeDatapath) WriteTemplateConfig

func (f *FakeDatapath) WriteTemplateConfig(io.Writer, datapath.EndpointConfiguration) error

WriteTemplateConfig pretends to write the endpoint configuration to a writer.

type FakeNodeHandler

type FakeNodeHandler struct {
	Nodes map[string]nodeTypes.Node
	// contains filtered or unexported fields
}

func NewNodeHandler

func NewNodeHandler() *FakeNodeHandler

NewNodeHandler returns a fake NodeHandler that stores the nodes, but performs no other actions.

func (*FakeNodeHandler) AllNodeValidateImplementation

func (n *FakeNodeHandler) AllNodeValidateImplementation()

func (*FakeNodeHandler) DumpNodeIDs

func (n *FakeNodeHandler) DumpNodeIDs() []*models.NodeID

func (*FakeNodeHandler) GetNodeID

func (n *FakeNodeHandler) GetNodeID(_ net.IP) (uint16, bool)

func (*FakeNodeHandler) GetNodeIP

func (n *FakeNodeHandler) GetNodeIP(_ uint16) string

func (*FakeNodeHandler) Name

func (n *FakeNodeHandler) Name() string

func (*FakeNodeHandler) NodeAdd

func (n *FakeNodeHandler) NodeAdd(newNode nodeTypes.Node) error

func (*FakeNodeHandler) NodeCleanNeighbors

func (n *FakeNodeHandler) NodeCleanNeighbors(migrateOnly bool)

func (*FakeNodeHandler) NodeConfigurationChanged

func (n *FakeNodeHandler) NodeConfigurationChanged(config datapath.LocalNodeConfiguration) error

func (*FakeNodeHandler) NodeDelete

func (n *FakeNodeHandler) NodeDelete(node nodeTypes.Node) error

func (*FakeNodeHandler) NodeNeighDiscoveryEnabled

func (n *FakeNodeHandler) NodeNeighDiscoveryEnabled() bool

func (*FakeNodeHandler) NodeNeighborRefresh

func (n *FakeNodeHandler) NodeNeighborRefresh(ctx context.Context, node nodeTypes.Node)

func (*FakeNodeHandler) NodeUpdate

func (n *FakeNodeHandler) NodeUpdate(oldNode, newNode nodeTypes.Node) error

func (*FakeNodeHandler) NodeValidateImplementation

func (n *FakeNodeHandler) NodeValidateImplementation(node nodeTypes.Node) error

func (*FakeNodeHandler) RestoreNodeIDs

func (n *FakeNodeHandler) RestoreNodeIDs()

type MTU added in v1.15.0

type MTU struct{}

func (*MTU) GetDeviceMTU added in v1.15.0

func (*MTU) GetDeviceMTU() int

GetDeviceMTU implements mtu.MTU.

func (*MTU) GetRouteMTU added in v1.15.0

func (*MTU) GetRouteMTU() int

GetRouteMTU implements mtu.MTU.

func (*MTU) GetRoutePostEncryptMTU added in v1.15.0

func (*MTU) GetRoutePostEncryptMTU() int

GetRoutePostEncryptMTU implements mtu.MTU.

Jump to

Keyboard shortcuts

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