nat

package
v1.5.11 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2019 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package nat implements the BPF NAT map interaction code.

Index

Constants

View Source
const (
	// MapNameSnat4Global represents global IPv4 NAT table.
	MapNameSnat4Global = "cilium_snat_v4_external"
	// MapNameSnat6Global represents global IPv6 NAT table.
	MapNameSnat6Global = "cilium_snat_v6_external"

	// MinPortSnatDefault represents default min port from range.
	MinPortSnatDefault = 1024
	// MaxPortSnatDefault represents default max port from range.
	MaxPortSnatDefault = 65535

	// CollisionRetriesDefault defines maximum retries for resolving port collisions.
	CollisionRetriesDefault = 16

	// DeterministicRetriesDefault defines maximum deterministic retries for
	// resolving port collisions.
	DeterministicRetriesDefault = 6

	// MaxEntries defines maximum NAT entries.
	MaxEntries = 524288
)

Variables

This section is empty.

Functions

func NatDumpCreated

func NatDumpCreated(dumpStart, entryCreated uint64) string

NatDumpCreated returns time in seconds when NAT entry was created.

Types

type Map

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

Map represents a NAT map.

func GlobalMaps

func GlobalMaps(ipv4, ipv6 bool) []*Map

GlobalMaps returns all global NAT maps.

func NewMap

func NewMap(name string, v4 bool) *Map

NewMap instantiates a Map.

func (*Map) DeleteMapping

func (m *Map) DeleteMapping(key tuple.TupleKey) error

DeleteMapping removes a NAT mapping from the global NAT table.

func (*Map) DumpEntries

func (m *Map) DumpEntries() (string, error)

DumpEntries iterates through Map m and writes the values of the nat entries in m to a string.

func (*Map) Flush

func (m *Map) Flush() int

Flush deletes all NAT mappings from the given table.

type NatEntry

type NatEntry interface {
	bpf.MapValue

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

	// Dumps the Nat entry as string.
	Dump(key tuple.TupleKey, start uint64) string
}

NatEntry is the interface describing values to the NAT map.

type NatEntry4

type NatEntry4 struct {
	Created   uint64     `align:"created"`
	HostLocal uint64     `align:"host_local"`
	Pad1      uint64     `align:"pad1"`
	Pad2      uint64     `align:"pad2"`
	Addr      types.IPv4 `align:"to_saddr"`
	Port      uint16     `align:"to_sport"`
}

NatEntry4 represents an IPv4 entry in the NAT table.

func (*NatEntry4) Dump

func (n *NatEntry4) Dump(key tuple.TupleKey, start uint64) string

Dump dumps NAT entry to string.

func (*NatEntry4) GetValuePtr

func (n *NatEntry4) GetValuePtr() unsafe.Pointer

GetValuePtr returns the unsafe.Pointer for n.

func (*NatEntry4) String

func (n *NatEntry4) String() string

String returns the readable format.

func (*NatEntry4) ToHost

func (n *NatEntry4) ToHost() NatEntry

ToHost converts NatEntry4 ports to host byte order.

type NatEntry6

type NatEntry6 struct {
	Created   uint64     `align:"created"`
	HostLocal uint64     `align:"host_local"`
	Pad1      uint64     `align:"pad1"`
	Pad2      uint64     `align:"pad2"`
	Addr      types.IPv6 `align:"to_saddr"`
	Port      uint16     `align:"to_sport"`
}

NatEntry6 represents an IPv6 entry in the NAT table.

func (*NatEntry6) Dump

func (n *NatEntry6) Dump(key tuple.TupleKey, start uint64) string

Dump dumps NAT entry to string.

func (*NatEntry6) GetValuePtr

func (n *NatEntry6) GetValuePtr() unsafe.Pointer

GetValuePtr returns the unsafe.Pointer for n.

func (*NatEntry6) String

func (n *NatEntry6) String() string

String returns the readable format.

func (*NatEntry6) ToHost

func (n *NatEntry6) ToHost() NatEntry

ToHost converts NatEntry4 ports to host byte order.

Jump to

Keyboard shortcuts

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