tuple

package
v1.5.9 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2019 License: Apache-2.0 Imports: 7 Imported by: 11

Documentation

Overview

Package tuple defines keys used for connection tuples in multiple BPF maps.

Index

Constants

View Source
const (
	TUPLE_F_OUT     = 0
	TUPLE_F_IN      = 1
	TUPLE_F_RELATED = 2
	TUPLE_F_SERVICE = 4
)

Variables

This section is empty.

Functions

This section is empty.

Types

type TupleKey

type TupleKey interface {
	bpf.MapKey

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

	// ToHost converts fields to host byte order.
	ToHost() TupleKey

	// Dumps contents of key to buffer. Returns true if successful.
	Dump(buffer *bytes.Buffer, reverse bool) bool

	// Returns flags containing the direction of the tuple key.
	GetFlags() uint8
}

TupleKey is the interface describing keys to the conntrack and NAT maps.

type TupleKey4

type TupleKey4 struct {
	DestAddr   types.IPv4      `align:"daddr"`
	SourceAddr types.IPv4      `align:"saddr"`
	DestPort   uint16          `align:"dport"`
	SourcePort uint16          `align:"sport"`
	NextHeader u8proto.U8proto `align:"nexthdr"`
	Flags      uint8           `align:"flags"`
}

TupleKey4 represents the key for IPv4 entries in the local BPF conntrack map.

func (TupleKey4) Dump

func (k TupleKey4) Dump(buffer *bytes.Buffer, reverse bool) bool

Dump writes the contents of key to buffer and returns true if the value for next header in the key is nonzero.

func (*TupleKey4) GetFlags

func (k *TupleKey4) GetFlags() uint8

GetFlags returns the tuple's flags.

func (*TupleKey4) GetKeyPtr added in v1.5.0

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

GetKeyPtr returns the unsafe.Pointer for k.

func (*TupleKey4) NewValue added in v1.5.0

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

NewValue creates a new bpf.MapValue.

func (*TupleKey4) String

func (k *TupleKey4) String() string

String returns the tuple's string representation, doh.

func (*TupleKey4) ToHost

func (k *TupleKey4) ToHost() TupleKey

ToHost converts TupleKey4 ports to host byte order.

func (*TupleKey4) ToNetwork

func (k *TupleKey4) ToNetwork() TupleKey

ToNetwork converts TupleKey4 ports to network byte order.

type TupleKey4Global

type TupleKey4Global struct {
	TupleKey4
}

TupleKey4Global represents the key for IPv4 entries in the global BPF conntrack map.

func (TupleKey4Global) Dump

func (k TupleKey4Global) Dump(buffer *bytes.Buffer, reverse bool) bool

Dump writes the contents of key to buffer and returns true if the value for next header in the key is nonzero.

func (*TupleKey4Global) GetFlags

func (k *TupleKey4Global) GetFlags() uint8

GetFlags returns the tuple's flags.

func (*TupleKey4Global) String

func (k *TupleKey4Global) String() string

String returns the tuple's string representation, doh.

func (*TupleKey4Global) ToHost

func (k *TupleKey4Global) ToHost() TupleKey

ToHost converts ports to host byte order.

This is necessary to prevent callers from implicitly converting the TupleKey4Global type here into a local key type in the nested TupleKey4 field.

func (*TupleKey4Global) ToNetwork

func (k *TupleKey4Global) ToNetwork() TupleKey

ToNetwork converts ports to network byte order.

This is necessary to prevent callers from implicitly converting the TupleKey4Global type here into a local key type in the nested TupleKey4 field.

type TupleKey6

type TupleKey6 struct {
	DestAddr   types.IPv6      `align:"daddr"`
	SourceAddr types.IPv6      `align:"saddr"`
	DestPort   uint16          `align:"dport"`
	SourcePort uint16          `align:"sport"`
	NextHeader u8proto.U8proto `align:"nexthdr"`
	Flags      uint8           `align:"flags"`
}

TupleKey6 represents the key for IPv6 entries in the local BPF conntrack map.

func (TupleKey6) Dump

func (k TupleKey6) Dump(buffer *bytes.Buffer, reverse bool) bool

Dump writes the contents of key to buffer and returns true if the value for next header in the key is nonzero.

func (*TupleKey6) GetFlags

func (k *TupleKey6) GetFlags() uint8

GetFlags returns the tuple's flags.

func (*TupleKey6) GetKeyPtr added in v1.5.0

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

GetKeyPtr returns the unsafe.Pointer for k.

func (*TupleKey6) NewValue added in v1.5.0

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

NewValue creates a new bpf.MapValue.

func (*TupleKey6) String

func (k *TupleKey6) String() string

String returns the tuple's string representation, doh.

func (*TupleKey6) ToHost

func (k *TupleKey6) ToHost() TupleKey

ToHost converts TupleKey6 ports to network byte order.

func (*TupleKey6) ToNetwork

func (k *TupleKey6) ToNetwork() TupleKey

ToNetwork converts TupleKey6 ports to network byte order.

type TupleKey6Global

type TupleKey6Global struct {
	TupleKey6
}

TupleKey6Global represents the key for IPv6 entries in the global BPF conntrack map.

func (TupleKey6Global) Dump

func (k TupleKey6Global) Dump(buffer *bytes.Buffer, reverse bool) bool

Dump writes the contents of key to buffer and returns true if the value for next header in the key is nonzero.

func (*TupleKey6Global) GetFlags

func (k *TupleKey6Global) GetFlags() uint8

GetFlags returns the tuple's flags.

func (*TupleKey6Global) String

func (k *TupleKey6Global) String() string

String returns the tuple's string representation, doh.

func (*TupleKey6Global) ToHost

func (k *TupleKey6Global) ToHost() TupleKey

ToHost converts ports to host byte order.

This is necessary to prevent callers from implicitly converting the TupleKey6Global type here into a local key type in the nested TupleKey6 field.

func (*TupleKey6Global) ToNetwork

func (k *TupleKey6Global) ToNetwork() TupleKey

ToNetwork converts ports to network byte order.

This is necessary to prevent callers from implicitly converting the TupleKey6Global type here into a local key type in the nested TupleKey6 field.

type TupleValStub added in v1.5.0

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

TupleValStub is a dummy, unused.

func (*TupleValStub) GetValuePtr added in v1.5.0

func (t *TupleValStub) GetValuePtr() unsafe.Pointer

GetValuePtr returns the unsafe.Pointer for s.

func (*TupleValStub) String added in v1.5.0

func (t *TupleValStub) String() string

String stub method.

Jump to

Keyboard shortcuts

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