ipcache

package
v1.10.3 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2021 License: Apache-2.0 Imports: 9 Imported by: 20

Documentation

Overview

+groupName=maps

Index

Constants

View Source
const (
	// MaxEntries is the maximum number of keys that can be present in the
	// RemoteEndpointMap.
	MaxEntries = 512000

	// Name is the canonical name for the IPCache map on the filesystem.
	Name = "cilium_ipcache"
)

Variables

View Source
var (
	// IPCache is a mapping of all endpoint IPs in the cluster which this
	// Cilium agent is a part of to their corresponding security identities.
	// It is a singleton; there is only one such map per agent.
	IPCache = NewMap(Name)
)

Functions

func BackedByLPM added in v1.5.0

func BackedByLPM() bool

BackedByLPM returns true if the IPCache is backed by a proper LPM implementation (provided by Linux kernels 4.11 or later), false otherwise.

func Reopen added in v1.5.0

func Reopen() error

Reopen attempts to close and re-open the IPCache map at the standard path on the filesystem.

func SupportsDelete added in v1.5.0

func SupportsDelete() bool

SupportsDelete determines whether the underlying kernel map type supports the delete operation.

Types

type Key

type Key struct {
	Prefixlen uint32 `align:"lpm_key"`
	Pad1      uint16 `align:"pad1"`
	Pad2      uint8  `align:"pad2"`
	Family    uint8  `align:"family"`
	// represents both IPv6 and IPv4 (in the lowest four bytes)
	IP types.IPv6 `align:"$union0"`
}

Key implements the bpf.MapKey interface.

Must be in sync with struct ipcache_key in <bpf/lib/maps.h> +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func NewKey

func NewKey(ip net.IP, mask net.IPMask) Key

NewKey returns an Key based on the provided IP address and mask. The address family is automatically detected

func (*Key) DeepCopy added in v1.5.1

func (in *Key) DeepCopy() *Key

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Key.

func (*Key) DeepCopyInto added in v1.5.1

func (in *Key) DeepCopyInto(out *Key)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Key) DeepCopyMapKey added in v1.5.1

func (in *Key) DeepCopyMapKey() bpf.MapKey

DeepCopyMapKey is an autogenerated deepcopy function, copying the receiver, creating a new bpf.MapKey.

func (*Key) GetKeyPtr added in v1.5.0

func (k *Key) GetKeyPtr() unsafe.Pointer

GetKeyPtr returns the unsafe pointer to the BPF key

func (Key) NewValue added in v1.5.0

func (k Key) NewValue() bpf.MapValue

NewValue returns a new empty instance of the structure representing the BPF map value

func (Key) String

func (k Key) String() string

type Map

type Map struct {
	bpf.Map
	// contains filtered or unexported fields
}

Map represents an IPCache BPF map.

func NewMap

func NewMap(name string) *Map

NewMap instantiates a Map.

func (*Map) DeleteWithOverwrite added in v1.8.0

func (m *Map) DeleteWithOverwrite(k bpf.MapKey) error

DeleteWithOverwrite removes a key from the ipcache BPF map. If delete is not supported, the entry's value will be overwritten with zeroes to signify that it's an invalid entry.

func (*Map) GetMaxPrefixLengths

func (m *Map) GetMaxPrefixLengths() (ipv6, ipv4 int)

GetMaxPrefixLengths determines how many unique prefix lengths are supported simultaneously based on the underlying BPF map type in use.

type RemoteEndpointInfo

type RemoteEndpointInfo struct {
	SecurityIdentity uint32     `align:"sec_label"`
	TunnelEndpoint   types.IPv4 `align:"tunnel_endpoint"`
	Key              uint8      `align:"key"`
}

RemoteEndpointInfo implements the bpf.MapValue interface. It contains the security identity of a remote endpoint. +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func (*RemoteEndpointInfo) DeepCopy added in v1.5.1

func (in *RemoteEndpointInfo) DeepCopy() *RemoteEndpointInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteEndpointInfo.

func (*RemoteEndpointInfo) DeepCopyInto added in v1.5.1

func (in *RemoteEndpointInfo) DeepCopyInto(out *RemoteEndpointInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RemoteEndpointInfo) DeepCopyMapValue added in v1.5.1

func (in *RemoteEndpointInfo) DeepCopyMapValue() bpf.MapValue

DeepCopyMapValue is an autogenerated deepcopy function, copying the receiver, creating a new bpf.MapValue.

func (*RemoteEndpointInfo) GetValuePtr added in v1.5.0

func (v *RemoteEndpointInfo) GetValuePtr() unsafe.Pointer

GetValuePtr returns the unsafe pointer to the BPF value.

func (*RemoteEndpointInfo) String

func (v *RemoteEndpointInfo) String() string

Jump to

Keyboard shortcuts

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