lbmap

package
v1.8.3 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2020 License: Apache-2.0 Imports: 14 Imported by: 34

Documentation

Overview

+groupName=maps

Index

Constants

View Source
const (
	AffinityMatchMapName = "cilium_lb_affinity_match"
	Affinity4MapName     = "cilium_lb4_affinity"
	Affinity6MapName     = "cilium_lb6_affinity"
)
View Source
const (
	// SockRevNat4MapName is the BPF map name.
	SockRevNat4MapName = "cilium_lb4_reverse_sk"

	// SockRevNat4MapSize is the maximum number of entries in the BPF map.
	SockRevNat4MapSize = 256 * 1024
)
View Source
const (
	// SockRevNat6MapName is the BPF map name.
	SockRevNat6MapName = "cilium_lb6_reverse_sk"

	// SockRevNat6MapSize is the maximum number of entries in the BPF map.
	SockRevNat6MapSize = 256 * 1024
)
View Source
const (
	SourceRange4MapName = "cilium_lb4_source_range"
	SourceRange6MapName = "cilium_lb6_source_range"
)
View Source
const (
	// Maximum number of entries in each hashtable
	MaxEntries = 65536
)
View Source
const SizeofSockRevNat6Key = int(unsafe.Sizeof(SockRevNat6Key{}))

SizeofSockRevNat6Key is the size of type SockRevNat6Key.

View Source
const SizeofSockRevNat6Value = int(unsafe.Sizeof(SockRevNat6Value{}))

SizeofSockRevNat6Value is the size of type SockRevNat6Value.

Variables

View Source
var (
	AffinityMatchMap = bpf.NewMap(
		AffinityMatchMapName,
		bpf.MapTypeHash,
		&AffinityMatchKey{},
		int(unsafe.Sizeof(AffinityMatchKey{})),
		&AffinityMatchValue{},
		int(unsafe.Sizeof(AffinityMatchValue{})),
		MaxEntries,
		0, 0,
		func(key []byte, value []byte, mapKey bpf.MapKey, mapValue bpf.MapValue) (bpf.MapKey, bpf.MapValue, error) {
			aKey, aVal := mapKey.(*AffinityMatchKey), mapValue.(*AffinityMatchValue)

			if _, _, err := bpf.ConvertKeyValue(key, value, aKey, aVal); err != nil {
				return nil, nil, err
			}

			return aKey.ToNetwork(), aVal, nil
		}).WithCache()
	Affinity4Map = bpf.NewMap(
		Affinity4MapName,
		bpf.MapTypeLRUHash,
		&Affinity4Key{},
		int(unsafe.Sizeof(Affinity4Key{})),
		&AffinityValue{},
		int(unsafe.Sizeof(AffinityValue{})),
		MaxEntries,
		0,
		0,
		bpf.ConvertKeyValue,
	)
	Affinity6Map = bpf.NewMap(
		Affinity6MapName,
		bpf.MapTypeLRUHash,
		&Affinity6Key{},
		int(unsafe.Sizeof(Affinity6Key{})),
		&AffinityValue{},
		int(unsafe.Sizeof(AffinityValue{})),
		MaxEntries,
		0,
		0,
		bpf.ConvertKeyValue,
	)
)
View Source
var (
	Service4MapV2 = bpf.NewMap("cilium_lb4_services_v2",
		bpf.MapTypeHash,
		&Service4Key{},
		int(unsafe.Sizeof(Service4Key{})),
		&Service4Value{},
		int(unsafe.Sizeof(Service4Value{})),
		MaxEntries,
		0, 0,
		func(key []byte, value []byte, mapKey bpf.MapKey, mapValue bpf.MapValue) (bpf.MapKey, bpf.MapValue, error) {
			svcKey, svcVal := mapKey.(*Service4Key), mapValue.(*Service4Value)

			if _, _, err := bpf.ConvertKeyValue(key, value, svcKey, svcVal); err != nil {
				return nil, nil, err
			}

			return svcKey.ToNetwork(), svcVal.ToNetwork(), nil
		}).WithCache()
	Backend4Map = bpf.NewMap("cilium_lb4_backends",
		bpf.MapTypeHash,
		&Backend4Key{},
		int(unsafe.Sizeof(Backend4Key{})),
		&Backend4Value{},
		int(unsafe.Sizeof(Backend4Value{})),
		MaxEntries,
		0, 0,
		func(key []byte, value []byte, mapKey bpf.MapKey, mapValue bpf.MapValue) (bpf.MapKey, bpf.MapValue, error) {
			backendVal := mapValue.(*Backend4Value)

			if _, _, err := bpf.ConvertKeyValue(key, value, mapKey, backendVal); err != nil {
				return nil, nil, err
			}

			return mapKey, backendVal.ToNetwork(), nil
		}).WithCache()
	RevNat4Map = bpf.NewMap("cilium_lb4_reverse_nat",
		bpf.MapTypeHash,
		&RevNat4Key{},
		int(unsafe.Sizeof(RevNat4Key{})),
		&RevNat4Value{},
		int(unsafe.Sizeof(RevNat4Value{})),
		MaxEntries,
		0, 0,
		func(key []byte, value []byte, mapKey bpf.MapKey, mapValue bpf.MapValue) (bpf.MapKey, bpf.MapValue, error) {
			revKey, revNat := mapKey.(*RevNat4Key), mapValue.(*RevNat4Value)

			if _, _, err := bpf.ConvertKeyValue(key, value, revKey, revNat); err != nil {
				return nil, nil, err
			}

			return revKey.ToNetwork(), revNat.ToNetwork(), nil
		}).WithCache()
)
View Source
var (
	Service6MapV2 = bpf.NewMap("cilium_lb6_services_v2",
		bpf.MapTypeHash,
		&Service6Key{},
		int(unsafe.Sizeof(Service6Key{})),
		&Service6Value{},
		int(unsafe.Sizeof(Service6Value{})),
		MaxEntries,
		0, 0,
		func(key []byte, value []byte, mapKey bpf.MapKey, mapValue bpf.MapValue) (bpf.MapKey, bpf.MapValue, error) {
			svcKey, svcVal := mapKey.(*Service6Key), mapValue.(*Service6Value)

			if _, _, err := bpf.ConvertKeyValue(key, value, svcKey, svcVal); err != nil {
				return nil, nil, err
			}

			return svcKey.ToNetwork(), svcVal.ToNetwork(), nil
		}).WithCache()
	Backend6Map = bpf.NewMap("cilium_lb6_backends",
		bpf.MapTypeHash,
		&Backend6Key{},
		int(unsafe.Sizeof(Backend6Key{})),
		&Backend6Value{},
		int(unsafe.Sizeof(Backend6Value{})),
		MaxEntries,
		0, 0,
		func(key []byte, value []byte, mapKey bpf.MapKey, mapValue bpf.MapValue) (bpf.MapKey, bpf.MapValue, error) {
			backendVal := mapValue.(*Backend6Value)

			if _, _, err := bpf.ConvertKeyValue(key, value, mapKey, backendVal); err != nil {
				return nil, nil, err
			}

			return mapKey, backendVal.ToNetwork(), nil
		}).WithCache()
	// RevNat6Map represents the BPF map for reverse NAT in IPv6 load balancer
	RevNat6Map = bpf.NewMap("cilium_lb6_reverse_nat",
		bpf.MapTypeHash,
		&RevNat6Key{},
		int(unsafe.Sizeof(RevNat6Key{})),
		&RevNat6Value{},
		int(unsafe.Sizeof(RevNat6Value{})),
		MaxEntries,
		0, 0,
		func(key []byte, value []byte, mapKey bpf.MapKey, mapValue bpf.MapValue) (bpf.MapKey, bpf.MapValue, error) {
			revKey, revNat := mapKey.(*RevNat6Key), mapValue.(*RevNat6Value)

			if _, _, err := bpf.ConvertKeyValue(key, value, revKey, revNat); err != nil {
				return nil, nil, err
			}

			return revKey.ToNetwork(), revNat.ToNetwork(), nil
		}).WithCache()
)
View Source
var (
	// MaxSockRevNat4MapEntries is the maximum number of entries in the BPF map.
	// It is set by InitMapInfo(), but unit tests use the initial value below.
	MaxSockRevNat4MapEntries = SockRevNat4MapSize
)
View Source
var (
	// MaxSockRevNat6MapEntries is the maximum number of entries in the BPF map.
	// It is set by InitMapInfo(), but unit tests use the initial value below.
	MaxSockRevNat6MapEntries = SockRevNat6MapSize
)
View Source
var SourceRange4Map = bpf.NewMap(
	SourceRange4MapName,
	bpf.MapTypeLPMTrie,
	&SourceRangeKey4{}, int(unsafe.Sizeof(SourceRangeKey4{})),
	&SourceRangeValue{}, int(unsafe.Sizeof(SourceRangeValue{})),
	MaxEntries,
	bpf.BPF_F_NO_PREALLOC, 0,
	func(key []byte, value []byte, mapKey bpf.MapKey, mapValue bpf.MapValue) (bpf.MapKey, bpf.MapValue, error) {
		sKey, sVal := mapKey.(*SourceRangeKey4), mapValue.(*SourceRangeValue)
		if _, _, err := bpf.ConvertKeyValue(key, value, sKey, sVal); err != nil {
			return nil, nil, err
		}
		return sKey.ToNetwork(), sVal, nil
	},
).WithCache()
View Source
var SourceRange6Map = bpf.NewMap(
	SourceRange6MapName,
	bpf.MapTypeLPMTrie,
	&SourceRangeKey6{}, int(unsafe.Sizeof(SourceRangeKey6{})),
	&SourceRangeValue{}, int(unsafe.Sizeof(SourceRangeValue{})),
	MaxEntries,
	bpf.BPF_F_NO_PREALLOC, 0,
	func(key []byte, value []byte, mapKey bpf.MapKey, mapValue bpf.MapValue) (bpf.MapKey, bpf.MapValue, error) {
		sKey, sVal := mapKey.(*SourceRangeKey6), mapValue.(*SourceRangeValue)
		if _, _, err := bpf.ConvertKeyValue(key, value, sKey, sVal); err != nil {
			return nil, nil, err
		}
		return sKey.ToNetwork(), sVal, nil
	},
).WithCache()

Functions

func CreateSockRevNat4Map added in v0.15.7

func CreateSockRevNat4Map() error

CreateSockRevNat4Map creates the reverse NAT sock map.

func CreateSockRevNat6Map added in v0.15.7

func CreateSockRevNat6Map() error

CreateSockRevNat6Map creates the reverse NAT sock map.

func InitMapInfo added in v1.8.0

func InitMapInfo(maxSockRevNatEntries int)

InitMapInfo updates the map info defaults for sock rev nat {4,6} maps.

Types

type Affinity4Key added in v0.15.7

type Affinity4Key struct {
	ClientID    uint64 `align:"client_id"`
	RevNATID    uint16 `align:"rev_nat_id"`
	NetNSCookie uint8  `align:"netns_cookie"`
	Pad1        uint8  `align:"pad1"`
	Pad2        uint32 `align:"pad2"`
}

Affinity4Key is the Go representation of lb4_affinity_key +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func (*Affinity4Key) DeepCopy added in v1.8.0

func (in *Affinity4Key) DeepCopy() *Affinity4Key

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

func (*Affinity4Key) DeepCopyInto added in v1.8.0

func (in *Affinity4Key) DeepCopyInto(out *Affinity4Key)

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

func (*Affinity4Key) DeepCopyMapKey added in v1.8.0

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

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

func (*Affinity4Key) GetKeyPtr added in v1.8.0

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

GetKeyPtr returns the unsafe pointer to the BPF key

func (Affinity4Key) NewValue added in v1.8.0

func (k Affinity4Key) NewValue() bpf.MapValue

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

func (*Affinity4Key) String added in v0.15.7

func (k *Affinity4Key) String() string

String converts the key into a human readable string format.

type Affinity6Key added in v0.15.7

type Affinity6Key struct {
	ClientID    types.IPv6 `align:"client_id"`
	RevNATID    uint16     `align:"rev_nat_id"`
	NetNSCookie uint8      `align:"netns_cookie"`
	Pad1        uint8      `align:"pad1"`
	Pad2        uint32     `align:"pad2"`
}

Affinity6Key is the Go representation of lb6_affinity_key +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func (*Affinity6Key) DeepCopy added in v1.8.0

func (in *Affinity6Key) DeepCopy() *Affinity6Key

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

func (*Affinity6Key) DeepCopyInto added in v1.8.0

func (in *Affinity6Key) DeepCopyInto(out *Affinity6Key)

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

func (*Affinity6Key) DeepCopyMapKey added in v1.8.0

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

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

func (*Affinity6Key) GetKeyPtr added in v1.8.0

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

GetKeyPtr returns the unsafe pointer to the BPF key

func (Affinity6Key) NewValue added in v1.8.0

func (k Affinity6Key) NewValue() bpf.MapValue

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

func (*Affinity6Key) String added in v0.15.7

func (k *Affinity6Key) String() string

String converts the key into a human readable string format.

type AffinityMatchKey added in v0.15.7

type AffinityMatchKey struct {
	BackendID uint32 `align:"backend_id"`
	RevNATID  uint16 `align:"rev_nat_id"`
	Pad       uint16 `align:"pad"`
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func NewAffinityMatchKey added in v0.15.7

func NewAffinityMatchKey(revNATID uint16, backendID uint32) *AffinityMatchKey

NewAffinityMatchKey creates the AffinityMatch key

func (*AffinityMatchKey) DeepCopy added in v1.8.0

func (in *AffinityMatchKey) DeepCopy() *AffinityMatchKey

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

func (*AffinityMatchKey) DeepCopyInto added in v1.8.0

func (in *AffinityMatchKey) DeepCopyInto(out *AffinityMatchKey)

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

func (*AffinityMatchKey) DeepCopyMapKey added in v1.8.0

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

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

func (*AffinityMatchKey) GetKeyPtr added in v1.8.0

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

GetKeyPtr returns the unsafe pointer to the BPF key

func (*AffinityMatchKey) NewValue added in v1.8.0

func (k *AffinityMatchKey) NewValue() bpf.MapValue

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

func (*AffinityMatchKey) String added in v0.15.7

func (k *AffinityMatchKey) String() string

String converts the key into a human readable string format

func (*AffinityMatchKey) ToNetwork added in v0.15.7

func (k *AffinityMatchKey) ToNetwork() *AffinityMatchKey

ToNetwork returns the key in the network byte order

type AffinityMatchValue added in v0.15.7

type AffinityMatchValue struct {
	Pad uint8 `align:"pad"`
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func (*AffinityMatchValue) DeepCopy added in v1.8.0

func (in *AffinityMatchValue) DeepCopy() *AffinityMatchValue

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

func (*AffinityMatchValue) DeepCopyInto added in v1.8.0

func (in *AffinityMatchValue) DeepCopyInto(out *AffinityMatchValue)

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

func (*AffinityMatchValue) DeepCopyMapValue added in v1.8.0

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

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

func (*AffinityMatchValue) GetValuePtr added in v1.8.0

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

GetValuePtr returns the unsafe pointer to the BPF value

func (*AffinityMatchValue) String added in v0.15.7

func (v *AffinityMatchValue) String() string

String converts the value into a human readable string format

type AffinityValue added in v0.15.7

type AffinityValue struct {
	LastUsed  uint64 `align:"last_used"`
	BackendID uint32 `align:"backend_id"`
	Pad       uint32 `align:"pad"`
}

AffinityValue is the Go representing of lb_affinity_value +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func (*AffinityValue) DeepCopy added in v1.8.0

func (in *AffinityValue) DeepCopy() *AffinityValue

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

func (*AffinityValue) DeepCopyInto added in v1.8.0

func (in *AffinityValue) DeepCopyInto(out *AffinityValue)

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

func (*AffinityValue) DeepCopyMapValue added in v1.8.0

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

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

func (*AffinityValue) GetValuePtr added in v1.8.0

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

GetValuePtr returns the unsafe pointer to the BPF value

func (*AffinityValue) String added in v0.15.7

func (v *AffinityValue) String() string

String converts the value into a human readable string format.

type Backend added in v0.15.7

type Backend interface {
	// Return the BPF map matching the type
	Map() *bpf.Map

	// Get key of the backend entry
	GetKey() BackendKey

	// Get value of the backend entry
	GetValue() BackendValue
}

Backend is the interface describing protocol independent backend used by services v2.

type Backend4 added in v0.15.7

type Backend4 struct {
	Key   *Backend4Key
	Value *Backend4Value
}

func NewBackend4 added in v1.5.0

func NewBackend4(id loadbalancer.BackendID, ip net.IP, port uint16, proto u8proto.U8proto) (*Backend4, error)

func (*Backend4) GetKey added in v0.15.7

func (b *Backend4) GetKey() BackendKey

func (*Backend4) GetValue added in v0.15.7

func (b *Backend4) GetValue() BackendValue

func (*Backend4) Map added in v0.15.7

func (b *Backend4) Map() *bpf.Map

type Backend4Key added in v0.15.7

type Backend4Key struct {
	ID loadbalancer.BackendID
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func NewBackend4Key added in v1.5.0

func NewBackend4Key(id loadbalancer.BackendID) *Backend4Key

func (*Backend4Key) DeepCopy added in v1.5.1

func (in *Backend4Key) DeepCopy() *Backend4Key

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

func (*Backend4Key) DeepCopyInto added in v1.5.1

func (in *Backend4Key) DeepCopyInto(out *Backend4Key)

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

func (*Backend4Key) DeepCopyMapKey added in v1.5.1

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

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

func (*Backend4Key) GetID added in v0.15.7

func (k *Backend4Key) GetID() loadbalancer.BackendID

func (*Backend4Key) GetKeyPtr added in v1.5.0

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

func (*Backend4Key) Map added in v0.15.7

func (k *Backend4Key) Map() *bpf.Map

func (*Backend4Key) NewValue added in v1.5.0

func (k *Backend4Key) NewValue() bpf.MapValue

func (*Backend4Key) SetID added in v0.15.7

func (k *Backend4Key) SetID(id loadbalancer.BackendID)

func (*Backend4Key) String added in v0.15.7

func (k *Backend4Key) String() string

type Backend4Value added in v0.15.7

type Backend4Value struct {
	Address types.IPv4      `align:"address"`
	Port    uint16          `align:"port"`
	Proto   u8proto.U8proto `align:"proto"`
	Pad     uint8           `align:"pad"`
}

Backend4Value must match 'struct lb4_backend' in "bpf/lib/common.h". +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func NewBackend4Value added in v0.15.7

func NewBackend4Value(ip net.IP, port uint16, proto u8proto.U8proto) (*Backend4Value, error)

func (*Backend4Value) DeepCopy added in v1.5.1

func (in *Backend4Value) DeepCopy() *Backend4Value

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

func (*Backend4Value) DeepCopyInto added in v1.5.1

func (in *Backend4Value) DeepCopyInto(out *Backend4Value)

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

func (*Backend4Value) DeepCopyMapValue added in v1.5.1

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

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

func (*Backend4Value) GetAddress added in v0.15.7

func (b *Backend4Value) GetAddress() net.IP

func (*Backend4Value) GetPort added in v0.15.7

func (b *Backend4Value) GetPort() uint16

func (*Backend4Value) GetValuePtr added in v1.5.0

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

func (*Backend4Value) String added in v0.15.7

func (v *Backend4Value) String() string

func (*Backend4Value) ToNetwork added in v0.15.7

func (v *Backend4Value) ToNetwork() BackendValue

type Backend6 added in v0.15.7

type Backend6 struct {
	Key   *Backend6Key
	Value *Backend6Value
}

func NewBackend6 added in v1.5.0

func NewBackend6(id loadbalancer.BackendID, ip net.IP, port uint16, proto u8proto.U8proto) (*Backend6, error)

func (*Backend6) GetKey added in v0.15.7

func (b *Backend6) GetKey() BackendKey

func (*Backend6) GetValue added in v0.15.7

func (b *Backend6) GetValue() BackendValue

func (*Backend6) Map added in v0.15.7

func (b *Backend6) Map() *bpf.Map

type Backend6Key added in v0.15.7

type Backend6Key struct {
	ID loadbalancer.BackendID
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func NewBackend6Key added in v1.5.0

func NewBackend6Key(id loadbalancer.BackendID) *Backend6Key

func (*Backend6Key) DeepCopy added in v1.5.1

func (in *Backend6Key) DeepCopy() *Backend6Key

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

func (*Backend6Key) DeepCopyInto added in v1.5.1

func (in *Backend6Key) DeepCopyInto(out *Backend6Key)

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

func (*Backend6Key) DeepCopyMapKey added in v1.5.1

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

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

func (*Backend6Key) GetID added in v0.15.7

func (k *Backend6Key) GetID() loadbalancer.BackendID

func (*Backend6Key) GetKeyPtr added in v1.5.0

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

func (*Backend6Key) Map added in v0.15.7

func (k *Backend6Key) Map() *bpf.Map

func (*Backend6Key) NewValue added in v1.5.0

func (k *Backend6Key) NewValue() bpf.MapValue

func (*Backend6Key) SetID added in v0.15.7

func (k *Backend6Key) SetID(id loadbalancer.BackendID)

func (*Backend6Key) String added in v0.15.7

func (k *Backend6Key) String() string

type Backend6Value added in v0.15.7

type Backend6Value struct {
	Address types.IPv6      `align:"address"`
	Port    uint16          `align:"port"`
	Proto   u8proto.U8proto `align:"proto"`
	Pad     uint8           `align:"pad"`
}

Backend6Value must match 'struct lb6_backend' in "bpf/lib/common.h". +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func NewBackend6Value added in v0.15.7

func NewBackend6Value(ip net.IP, port uint16, proto u8proto.U8proto) (*Backend6Value, error)

func (*Backend6Value) DeepCopy added in v1.5.1

func (in *Backend6Value) DeepCopy() *Backend6Value

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

func (*Backend6Value) DeepCopyInto added in v1.5.1

func (in *Backend6Value) DeepCopyInto(out *Backend6Value)

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

func (*Backend6Value) DeepCopyMapValue added in v1.5.1

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

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

func (*Backend6Value) GetAddress added in v0.15.7

func (b *Backend6Value) GetAddress() net.IP

func (*Backend6Value) GetPort added in v0.15.7

func (b *Backend6Value) GetPort() uint16

func (*Backend6Value) GetValuePtr added in v1.5.0

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

func (*Backend6Value) String added in v0.15.7

func (v *Backend6Value) String() string

func (*Backend6Value) ToNetwork added in v0.15.7

func (v *Backend6Value) ToNetwork() BackendValue

type BackendIDByServiceIDSet added in v1.8.0

type BackendIDByServiceIDSet map[uint16]map[uint16]struct{} // svc ID => backend ID

BackendIDByServiceIDSet is the type of a set for checking whether a backend belongs to a given service

type BackendKey added in v0.15.7

type BackendKey interface {
	bpf.MapKey

	// Return the BPF map matching the type
	Map() *bpf.Map

	// Set backend identifier
	SetID(loadbalancer.BackendID)

	// Get backend identifier
	GetID() loadbalancer.BackendID
}

BackendKey is the interface describing protocol independent backend key.

type BackendValue added in v0.15.7

type BackendValue interface {
	bpf.MapValue

	// Get backend address
	GetAddress() net.IP

	// Get backend port
	GetPort() uint16

	// Convert fields to network byte order.
	ToNetwork() BackendValue
}

BackendValue is the interface describing protocol independent backend value.

type LBBPFMap added in v0.15.7

type LBBPFMap struct{}

LBBPFMap is an implementation of the LBMap interface.

func (*LBBPFMap) AddAffinityMatch added in v0.15.7

func (*LBBPFMap) AddAffinityMatch(revNATID uint16, backendID uint16) error

AddAffinityMatch adds the given affinity match to the BPF map.

func (*LBBPFMap) AddBackend added in v0.15.7

func (*LBBPFMap) AddBackend(id uint16, ip net.IP, port uint16, ipv6 bool) error

AddBackend adds a backend into a BPF map.

func (*LBBPFMap) DeleteAffinityMatch added in v0.15.7

func (*LBBPFMap) DeleteAffinityMatch(revNATID uint16, backendID uint16) error

DeleteAffinityMatch removes the affinity match for the given svc and backend ID tuple from the BPF map

func (*LBBPFMap) DeleteBackendByID added in v0.15.7

func (*LBBPFMap) DeleteBackendByID(id uint16, ipv6 bool) error

DeleteBackendByID removes a backend identified with the given ID from a BPF map.

func (*LBBPFMap) DeleteService added in v0.15.7

func (*LBBPFMap) DeleteService(svc loadbalancer.L3n4AddrID, backendCount int) error

DeleteService removes given service from a BPF map.

func (*LBBPFMap) DumpAffinityMatches added in v0.15.7

func (*LBBPFMap) DumpAffinityMatches() (BackendIDByServiceIDSet, error)

DumpAffinityMatches returns the affinity match map represented as a nested map which first key is svc ID and the second - backend ID.

func (*LBBPFMap) DumpBackendMaps added in v0.15.7

func (*LBBPFMap) DumpBackendMaps() ([]*loadbalancer.Backend, error)

DumpBackendMaps dumps the backend entries from the BPF maps.

func (*LBBPFMap) DumpServiceMaps added in v0.15.7

func (*LBBPFMap) DumpServiceMaps() ([]*loadbalancer.SVC, []error)

DumpServiceMaps dumps the services from the BPF maps.

func (*LBBPFMap) DumpSourceRanges added in v0.15.7

func (*LBBPFMap) DumpSourceRanges(ipv6 bool) (SourceRangeSetByServiceID, error)

func (*LBBPFMap) UpdateSourceRanges added in v0.15.7

func (*LBBPFMap) UpdateSourceRanges(revNATID uint16, prevSourceRanges []*cidr.CIDR,
	sourceRanges []*cidr.CIDR, ipv6 bool) error

func (*LBBPFMap) UpsertService added in v0.15.7

func (*LBBPFMap) UpsertService(
	svcID uint16, svcIP net.IP, svcPort uint16,
	backendIDs []uint16, prevBackendCount int,
	ipv6 bool, svcType loadbalancer.SVCType, svcLocal bool,
	svcScope uint8, sessionAffinity bool, sessionAffinityTimeoutSec uint32,
	checkSourceRange bool) error

UpsertService inserts or updates the given service in a BPF map.

The corresponding backend entries (identified with the given backendIDs) have to exist before calling the function.

The given prevBackendCount denotes a previous service backend entries count, so that the function can remove obsolete ones.

type LBMockMap added in v1.7.0

type LBMockMap struct {
	BackendByID   map[uint16]*lb.Backend
	ServiceByID   map[uint16]*lb.SVC
	AffinityMatch BackendIDByServiceIDSet
	SourceRanges  SourceRangeSetByServiceID
}

func NewLBMockMap added in v1.7.0

func NewLBMockMap() *LBMockMap

func (*LBMockMap) AddAffinityMatch added in v1.8.0

func (m *LBMockMap) AddAffinityMatch(revNATID uint16, backendID uint16) error

func (*LBMockMap) AddBackend added in v1.7.0

func (m *LBMockMap) AddBackend(id uint16, ip net.IP, port uint16, ipv6 bool) error

func (*LBMockMap) DeleteAffinityMatch added in v1.8.0

func (m *LBMockMap) DeleteAffinityMatch(revNATID uint16, backendID uint16) error

func (*LBMockMap) DeleteBackendByID added in v1.7.0

func (m *LBMockMap) DeleteBackendByID(id uint16, ipv6 bool) error

func (*LBMockMap) DeleteService added in v1.7.0

func (m *LBMockMap) DeleteService(addr lb.L3n4AddrID, backendCount int) error

func (*LBMockMap) DumpAffinityMatches added in v1.8.0

func (m *LBMockMap) DumpAffinityMatches() (BackendIDByServiceIDSet, error)

func (*LBMockMap) DumpBackendMaps added in v1.7.0

func (m *LBMockMap) DumpBackendMaps() ([]*lb.Backend, error)

func (*LBMockMap) DumpServiceMaps added in v1.7.0

func (m *LBMockMap) DumpServiceMaps() ([]*lb.SVC, []error)

func (*LBMockMap) DumpSourceRanges added in v1.8.3

func (m *LBMockMap) DumpSourceRanges(ipv6 bool) (SourceRangeSetByServiceID, error)

func (*LBMockMap) UpdateSourceRanges added in v1.8.3

func (m *LBMockMap) UpdateSourceRanges(revNATID uint16, prevRanges []*cidr.CIDR,
	ranges []*cidr.CIDR, ipv6 bool) error

func (*LBMockMap) UpsertService added in v1.7.0

func (m *LBMockMap) UpsertService(id uint16, ip net.IP, port uint16,
	backendIDs []uint16, prevCount int, ipv6 bool, svcType lb.SVCType, svcLocal bool,
	svcScope uint8, sessionAffinity bool, sessionAffinityTimeoutSec uint32, checkLBSrcRange bool) error

type RevNat4Key

type RevNat4Key struct {
	Key uint16
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func NewRevNat4Key

func NewRevNat4Key(value uint16) *RevNat4Key

func (*RevNat4Key) DeepCopy added in v1.5.1

func (in *RevNat4Key) DeepCopy() *RevNat4Key

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

func (*RevNat4Key) DeepCopyInto added in v1.5.1

func (in *RevNat4Key) DeepCopyInto(out *RevNat4Key)

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

func (*RevNat4Key) DeepCopyMapKey added in v1.5.1

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

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

func (*RevNat4Key) GetKey

func (k *RevNat4Key) GetKey() uint16

func (*RevNat4Key) GetKeyPtr

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

func (*RevNat4Key) Map

func (k *RevNat4Key) Map() *bpf.Map

func (*RevNat4Key) NewValue

func (k *RevNat4Key) NewValue() bpf.MapValue

func (*RevNat4Key) String

func (k *RevNat4Key) String() string

func (*RevNat4Key) ToNetwork added in v0.10.0

func (k *RevNat4Key) ToNetwork() RevNatKey

ToNetwork converts RevNat4Key to network byte order.

type RevNat4Value

type RevNat4Value struct {
	Address types.IPv4 `align:"address"`
	Port    uint16     `align:"port"`
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func (*RevNat4Value) DeepCopy added in v1.5.1

func (in *RevNat4Value) DeepCopy() *RevNat4Value

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

func (*RevNat4Value) DeepCopyInto added in v1.5.1

func (in *RevNat4Value) DeepCopyInto(out *RevNat4Value)

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

func (*RevNat4Value) DeepCopyMapValue added in v1.5.1

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

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

func (*RevNat4Value) GetValuePtr

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

func (*RevNat4Value) String

func (v *RevNat4Value) String() string

func (*RevNat4Value) ToNetwork added in v0.10.0

func (v *RevNat4Value) ToNetwork() RevNatValue

ToNetwork converts RevNat4Value to network byte order.

type RevNat6Key

type RevNat6Key struct {
	Key uint16
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func NewRevNat6Key

func NewRevNat6Key(value uint16) *RevNat6Key

func (*RevNat6Key) DeepCopy added in v1.5.1

func (in *RevNat6Key) DeepCopy() *RevNat6Key

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

func (*RevNat6Key) DeepCopyInto added in v1.5.1

func (in *RevNat6Key) DeepCopyInto(out *RevNat6Key)

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

func (*RevNat6Key) DeepCopyMapKey added in v1.5.1

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

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

func (*RevNat6Key) GetKey

func (v *RevNat6Key) GetKey() uint16

func (*RevNat6Key) GetKeyPtr

func (v *RevNat6Key) GetKeyPtr() unsafe.Pointer

func (*RevNat6Key) Map

func (v *RevNat6Key) Map() *bpf.Map

func (*RevNat6Key) NewValue

func (v *RevNat6Key) NewValue() bpf.MapValue

func (*RevNat6Key) String

func (v *RevNat6Key) String() string

func (*RevNat6Key) ToNetwork added in v0.10.0

func (v *RevNat6Key) ToNetwork() RevNatKey

ToNetwork converts RevNat6Key to network byte order.

type RevNat6Value

type RevNat6Value struct {
	Address types.IPv6 `align:"address"`
	Port    uint16     `align:"port"`
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func (*RevNat6Value) DeepCopy added in v1.5.1

func (in *RevNat6Value) DeepCopy() *RevNat6Value

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

func (*RevNat6Value) DeepCopyInto added in v1.5.1

func (in *RevNat6Value) DeepCopyInto(out *RevNat6Value)

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

func (*RevNat6Value) DeepCopyMapValue added in v1.5.1

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

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

func (*RevNat6Value) GetValuePtr

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

func (*RevNat6Value) String

func (v *RevNat6Value) String() string

func (*RevNat6Value) ToNetwork added in v0.10.0

func (v *RevNat6Value) ToNetwork() RevNatValue

ToNetwork converts RevNat6Value to network byte order.

type RevNatKey

type RevNatKey interface {
	bpf.MapKey

	// Returns the BPF map matching the key type
	Map() *bpf.Map

	// ToNetwork converts fields to network byte order.
	ToNetwork() RevNatKey

	// Returns the key value
	GetKey() uint16
}

type RevNatValue

type RevNatValue interface {
	bpf.MapValue

	// ToNetwork converts fields to network byte order.
	ToNetwork() RevNatValue
}

type Service4Key

type Service4Key struct {
	Address     types.IPv4 `align:"address"`
	Port        uint16     `align:"dport"`
	BackendSlot uint16     `align:"backend_slot"`
	Proto       uint8      `align:"proto"`
	Scope       uint8      `align:"scope"`
	Pad         pad2uint8  `align:"pad"`
}

Service4Key must match 'struct lb4_key_v2' in "bpf/lib/common.h". +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func NewService4Key

func NewService4Key(ip net.IP, port uint16, proto u8proto.U8proto, scope uint8, slot uint16) *Service4Key

func (*Service4Key) DeepCopy added in v1.5.1

func (in *Service4Key) DeepCopy() *Service4Key

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

func (*Service4Key) DeepCopyInto added in v1.5.1

func (in *Service4Key) DeepCopyInto(out *Service4Key)

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

func (*Service4Key) DeepCopyMapKey added in v1.5.1

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

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

func (*Service4Key) GetAddress added in v0.15.7

func (k *Service4Key) GetAddress() net.IP

func (*Service4Key) GetBackendSlot added in v0.15.7

func (k *Service4Key) GetBackendSlot() int

func (*Service4Key) GetKeyPtr

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

func (*Service4Key) GetPort

func (k *Service4Key) GetPort() uint16

func (*Service4Key) GetScope added in v0.15.7

func (k *Service4Key) GetScope() uint8

func (*Service4Key) IsIPv6

func (k *Service4Key) IsIPv6() bool

func (*Service4Key) IsSurrogate added in v0.15.7

func (k *Service4Key) IsSurrogate() bool

func (*Service4Key) Map

func (k *Service4Key) Map() *bpf.Map

func (*Service4Key) MapDelete

func (k *Service4Key) MapDelete() error

func (*Service4Key) NewValue

func (k *Service4Key) NewValue() bpf.MapValue

func (*Service4Key) RevNatValue

func (k *Service4Key) RevNatValue() RevNatValue

func (*Service4Key) SetBackendSlot added in v0.15.7

func (k *Service4Key) SetBackendSlot(slot int)

func (*Service4Key) SetScope added in v0.15.7

func (k *Service4Key) SetScope(scope uint8)

func (*Service4Key) String

func (k *Service4Key) String() string

func (*Service4Key) ToNetwork added in v0.10.0

func (k *Service4Key) ToNetwork() ServiceKey

type Service4Value

type Service4Value struct {
	BackendID uint32 `align:"backend_id"`
	Count     uint16 `align:"count"`
	RevNat    uint16 `align:"rev_nat_index"`
	Flags     uint8
	Pad       pad3uint8 `align:"pad"`
}

Service4Value must match 'struct lb4_service_v2' in "bpf/lib/common.h". +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func (*Service4Value) DeepCopy added in v1.5.1

func (in *Service4Value) DeepCopy() *Service4Value

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

func (*Service4Value) DeepCopyInto added in v1.5.1

func (in *Service4Value) DeepCopyInto(out *Service4Value)

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

func (*Service4Value) DeepCopyMapValue added in v1.5.1

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

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

func (*Service4Value) GetBackendID added in v0.15.7

func (s *Service4Value) GetBackendID() loadbalancer.BackendID

func (*Service4Value) GetCount

func (s *Service4Value) GetCount() int

func (*Service4Value) GetFlags added in v0.15.7

func (s *Service4Value) GetFlags() uint8

func (*Service4Value) GetRevNat added in v0.15.7

func (s *Service4Value) GetRevNat() int

func (*Service4Value) GetValuePtr

func (s *Service4Value) GetValuePtr() unsafe.Pointer

func (*Service4Value) RevNatKey

func (s *Service4Value) RevNatKey() RevNatKey

func (*Service4Value) SetBackendID added in v0.15.7

func (s *Service4Value) SetBackendID(id loadbalancer.BackendID)

func (*Service4Value) SetCount

func (s *Service4Value) SetCount(count int)

func (*Service4Value) SetFlags added in v0.15.7

func (s *Service4Value) SetFlags(flags uint8)

func (*Service4Value) SetRevNat

func (s *Service4Value) SetRevNat(id int)

func (*Service4Value) SetSessionAffinityTimeoutSec added in v0.15.7

func (s *Service4Value) SetSessionAffinityTimeoutSec(t uint32)

func (*Service4Value) String

func (s *Service4Value) String() string

func (*Service4Value) ToNetwork added in v0.10.0

func (s *Service4Value) ToNetwork() ServiceValue

type Service6Key

type Service6Key struct {
	Address     types.IPv6 `align:"address"`
	Port        uint16     `align:"dport"`
	BackendSlot uint16     `align:"backend_slot"`
	Proto       uint8      `align:"proto"`
	Scope       uint8      `align:"scope"`
	Pad         pad2uint8  `align:"pad"`
}

Service6Key must match 'struct lb6_key_v2' in "bpf/lib/common.h". +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func NewService6Key

func NewService6Key(ip net.IP, port uint16, proto u8proto.U8proto, scope uint8, slot uint16) *Service6Key

func (*Service6Key) DeepCopy added in v1.5.1

func (in *Service6Key) DeepCopy() *Service6Key

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

func (*Service6Key) DeepCopyInto added in v1.5.1

func (in *Service6Key) DeepCopyInto(out *Service6Key)

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

func (*Service6Key) DeepCopyMapKey added in v1.5.1

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

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

func (*Service6Key) GetAddress added in v0.15.7

func (k *Service6Key) GetAddress() net.IP

func (*Service6Key) GetBackendSlot added in v0.15.7

func (k *Service6Key) GetBackendSlot() int

func (*Service6Key) GetKeyPtr

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

func (*Service6Key) GetPort

func (k *Service6Key) GetPort() uint16

func (*Service6Key) GetScope added in v0.15.7

func (k *Service6Key) GetScope() uint8

func (*Service6Key) IsIPv6

func (k *Service6Key) IsIPv6() bool

func (*Service6Key) IsSurrogate added in v0.15.7

func (k *Service6Key) IsSurrogate() bool

func (*Service6Key) Map

func (k *Service6Key) Map() *bpf.Map

func (*Service6Key) MapDelete added in v0.15.7

func (k *Service6Key) MapDelete() error

func (*Service6Key) NewValue

func (k *Service6Key) NewValue() bpf.MapValue

func (*Service6Key) RevNatValue

func (k *Service6Key) RevNatValue() RevNatValue

func (*Service6Key) SetBackendSlot added in v0.15.7

func (k *Service6Key) SetBackendSlot(slot int)

func (*Service6Key) SetScope added in v0.15.7

func (k *Service6Key) SetScope(scope uint8)

func (*Service6Key) String

func (k *Service6Key) String() string

func (*Service6Key) ToNetwork added in v0.10.0

func (k *Service6Key) ToNetwork() ServiceKey

type Service6Value

type Service6Value struct {
	BackendID uint32 `align:"backend_id"`
	Count     uint16 `align:"count"`
	RevNat    uint16 `align:"rev_nat_index"`
	Flags     uint8
	Pad       pad3uint8 `align:"pad"`
}

Service6Value must match 'struct lb6_service_v2' in "bpf/lib/common.h". +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func (*Service6Value) DeepCopy added in v1.5.1

func (in *Service6Value) DeepCopy() *Service6Value

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

func (*Service6Value) DeepCopyInto added in v1.5.1

func (in *Service6Value) DeepCopyInto(out *Service6Value)

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

func (*Service6Value) DeepCopyMapValue added in v1.5.1

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

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

func (*Service6Value) GetBackendID added in v0.15.7

func (s *Service6Value) GetBackendID() loadbalancer.BackendID

func (*Service6Value) GetCount

func (s *Service6Value) GetCount() int

func (*Service6Value) GetFlags added in v0.15.7

func (s *Service6Value) GetFlags() uint8

func (*Service6Value) GetRevNat added in v0.15.7

func (s *Service6Value) GetRevNat() int

func (*Service6Value) GetValuePtr

func (s *Service6Value) GetValuePtr() unsafe.Pointer

func (*Service6Value) RevNatKey

func (s *Service6Value) RevNatKey() RevNatKey

func (*Service6Value) SetBackendID added in v0.15.7

func (s *Service6Value) SetBackendID(id loadbalancer.BackendID)

func (*Service6Value) SetCount

func (s *Service6Value) SetCount(count int)

func (*Service6Value) SetFlags added in v0.15.7

func (s *Service6Value) SetFlags(flags uint8)

func (*Service6Value) SetRevNat

func (s *Service6Value) SetRevNat(id int)

func (*Service6Value) SetSessionAffinityTimeoutSec added in v0.15.7

func (s *Service6Value) SetSessionAffinityTimeoutSec(t uint32)

func (*Service6Value) String

func (s *Service6Value) String() string

func (*Service6Value) ToNetwork added in v0.10.0

func (s *Service6Value) ToNetwork() ServiceValue

type ServiceKey

type ServiceKey interface {
	bpf.MapKey

	// Return true if the key is of type IPv6
	IsIPv6() bool

	// IsSurrogate returns true on zero-address
	IsSurrogate() bool

	// Return the BPF map matching the key type
	Map() *bpf.Map

	// Set backend slot for the key
	SetBackendSlot(slot int)

	// Get backend slot of the key
	GetBackendSlot() int

	// Set lookup scope for the key
	SetScope(scope uint8)

	// Get lookup scope for the key
	GetScope() uint8

	// Get frontend IP address
	GetAddress() net.IP

	// Get frontend port
	GetPort() uint16

	// Returns a RevNatValue matching a ServiceKey
	RevNatValue() RevNatValue

	// Delete entry identified with the key from the matching map
	MapDelete() error

	// ToNetwork converts fields to network byte order.
	ToNetwork() ServiceKey
}

ServiceKey is the interface describing protocol independent key for services map v2.

type ServiceValue

type ServiceValue interface {
	bpf.MapValue

	// Set the number of backends
	SetCount(int)

	// Get the number of backends
	GetCount() int

	// Set reverse NAT identifier
	SetRevNat(int)

	// Get reverse NAT identifier
	GetRevNat() int

	// Set flags
	SetFlags(uint8)

	// Get flags
	GetFlags() uint8

	// Set timeout for sessionAffinity=clientIP
	SetSessionAffinityTimeoutSec(t uint32)

	// Set backend identifier
	SetBackendID(id loadbalancer.BackendID)

	// Get backend identifier
	GetBackendID() loadbalancer.BackendID

	// Returns a RevNatKey matching a ServiceValue
	RevNatKey() RevNatKey

	// Convert fields to network byte order.
	ToNetwork() ServiceValue
}

ServiceValue is the interface describing protocol independent value for services map v2.

type SockRevNat4Key added in v0.15.7

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

SockRevNat4Key is the tuple with address, port and cookie used as key in the reverse NAT sock map. +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func (*SockRevNat4Key) DeepCopy added in v1.8.0

func (in *SockRevNat4Key) DeepCopy() *SockRevNat4Key

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

func (*SockRevNat4Key) DeepCopyInto added in v1.8.0

func (in *SockRevNat4Key) DeepCopyInto(out *SockRevNat4Key)

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

func (*SockRevNat4Key) DeepCopyMapKey added in v1.8.0

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

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

func (*SockRevNat4Key) GetKeyPtr added in v1.8.0

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

GetKeyPtr returns the unsafe pointer to the BPF key

func (SockRevNat4Key) NewValue added in v1.8.0

func (k SockRevNat4Key) NewValue() bpf.MapValue

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

func (*SockRevNat4Key) String added in v0.15.7

func (k *SockRevNat4Key) String() string

String converts the key into a human readable string format.

type SockRevNat4Value added in v0.15.7

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

SockRevNat4Value is an entry in the reverse NAT sock map. +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func (*SockRevNat4Value) DeepCopy added in v1.8.0

func (in *SockRevNat4Value) DeepCopy() *SockRevNat4Value

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

func (*SockRevNat4Value) DeepCopyInto added in v1.8.0

func (in *SockRevNat4Value) DeepCopyInto(out *SockRevNat4Value)

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

func (*SockRevNat4Value) DeepCopyMapValue added in v1.8.0

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

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

func (*SockRevNat4Value) GetValuePtr added in v1.8.0

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

GetValuePtr returns the unsafe pointer to the BPF value

func (*SockRevNat4Value) String added in v0.15.7

func (v *SockRevNat4Value) String() string

String converts the value into a human readable string format.

type SockRevNat6Key added in v0.15.7

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

SockRevNat6Key is the tuple with address, port and cookie used as key in the reverse NAT sock map. +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func (*SockRevNat6Key) DeepCopy added in v1.8.0

func (in *SockRevNat6Key) DeepCopy() *SockRevNat6Key

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

func (*SockRevNat6Key) DeepCopyInto added in v1.8.0

func (in *SockRevNat6Key) DeepCopyInto(out *SockRevNat6Key)

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

func (*SockRevNat6Key) DeepCopyMapKey added in v1.8.0

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

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

func (*SockRevNat6Key) GetKeyPtr added in v1.8.0

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

GetKeyPtr returns the unsafe pointer to the BPF key

func (SockRevNat6Key) NewValue added in v1.8.0

func (k SockRevNat6Key) NewValue() bpf.MapValue

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

func (*SockRevNat6Key) String added in v0.15.7

func (k *SockRevNat6Key) String() string

String converts the key into a human readable string format.

type SockRevNat6Value added in v0.15.7

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

SockRevNat6Value is an entry in the reverse NAT sock map. +k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func (*SockRevNat6Value) DeepCopy added in v1.8.0

func (in *SockRevNat6Value) DeepCopy() *SockRevNat6Value

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

func (*SockRevNat6Value) DeepCopyInto added in v1.8.0

func (in *SockRevNat6Value) DeepCopyInto(out *SockRevNat6Value)

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

func (*SockRevNat6Value) DeepCopyMapValue added in v1.8.0

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

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

func (*SockRevNat6Value) GetValuePtr added in v1.8.0

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

GetValuePtr returns the unsafe pointer to the BPF value

func (*SockRevNat6Value) String added in v0.15.7

func (v *SockRevNat6Value) String() string

String converts the value into a human readable string format.

type SourceRangeKey added in v0.15.7

type SourceRangeKey interface {
	GetCIDR() *cidr.CIDR
	GetRevNATID() uint16
}

type SourceRangeKey4 added in v0.15.7

type SourceRangeKey4 struct {
	PrefixLen uint32     `align:"lpm_key"`
	RevNATID  uint16     `align:"rev_nat_id"`
	Pad       uint16     `align:"pad"`
	Address   types.IPv4 `align:"addr"`
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func (*SourceRangeKey4) DeepCopy added in v1.8.3

func (in *SourceRangeKey4) DeepCopy() *SourceRangeKey4

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

func (*SourceRangeKey4) DeepCopyInto added in v1.8.3

func (in *SourceRangeKey4) DeepCopyInto(out *SourceRangeKey4)

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

func (*SourceRangeKey4) DeepCopyMapKey added in v1.8.3

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

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

func (*SourceRangeKey4) GetCIDR added in v0.15.7

func (k *SourceRangeKey4) GetCIDR() *cidr.CIDR

func (*SourceRangeKey4) GetKeyPtr added in v1.8.3

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

func (*SourceRangeKey4) GetRevNATID added in v0.15.7

func (k *SourceRangeKey4) GetRevNATID() uint16

func (*SourceRangeKey4) NewValue added in v1.8.3

func (k *SourceRangeKey4) NewValue() bpf.MapValue

func (*SourceRangeKey4) String added in v0.15.7

func (k *SourceRangeKey4) String() string

func (*SourceRangeKey4) ToNetwork added in v0.15.7

func (k *SourceRangeKey4) ToNetwork() *SourceRangeKey4

type SourceRangeKey6 added in v0.15.7

type SourceRangeKey6 struct {
	PrefixLen uint32     `align:"lpm_key"`
	RevNATID  uint16     `align:"rev_nat_id"`
	Pad       uint16     `align:"pad"`
	Address   types.IPv6 `align:"addr"`
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey

func (*SourceRangeKey6) DeepCopy added in v1.8.3

func (in *SourceRangeKey6) DeepCopy() *SourceRangeKey6

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

func (*SourceRangeKey6) DeepCopyInto added in v1.8.3

func (in *SourceRangeKey6) DeepCopyInto(out *SourceRangeKey6)

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

func (*SourceRangeKey6) DeepCopyMapKey added in v1.8.3

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

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

func (*SourceRangeKey6) GetCIDR added in v0.15.7

func (k *SourceRangeKey6) GetCIDR() *cidr.CIDR

func (*SourceRangeKey6) GetKeyPtr added in v1.8.3

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

func (*SourceRangeKey6) GetRevNATID added in v0.15.7

func (k *SourceRangeKey6) GetRevNATID() uint16

func (*SourceRangeKey6) NewValue added in v1.8.3

func (k *SourceRangeKey6) NewValue() bpf.MapValue

func (*SourceRangeKey6) String added in v0.15.7

func (k *SourceRangeKey6) String() string

func (*SourceRangeKey6) ToNetwork added in v0.15.7

func (k *SourceRangeKey6) ToNetwork() *SourceRangeKey6

type SourceRangeSetByServiceID added in v1.8.3

type SourceRangeSetByServiceID map[uint16][]*cidr.CIDR // svc ID => src range CIDRs

type SourceRangeValue added in v0.15.7

type SourceRangeValue struct {
	Pad uint8 // not used
}

+k8s:deepcopy-gen=true +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapValue

func (*SourceRangeValue) DeepCopy added in v1.8.3

func (in *SourceRangeValue) DeepCopy() *SourceRangeValue

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

func (*SourceRangeValue) DeepCopyInto added in v1.8.3

func (in *SourceRangeValue) DeepCopyInto(out *SourceRangeValue)

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

func (*SourceRangeValue) DeepCopyMapValue added in v1.8.3

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

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

func (*SourceRangeValue) GetValuePtr added in v1.8.3

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

func (*SourceRangeValue) String added in v0.15.7

func (v *SourceRangeValue) String() string

Jump to

Keyboard shortcuts

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