package portmapper

import "github.com/docker/docker/libnetwork/portmapper"

Index

Variables

var (
	// ErrUnknownBackendAddressType refers to an unknown container or unsupported address type
	ErrUnknownBackendAddressType = errors.New("unknown container address type not supported")
	// ErrPortMappedForIP refers to a port already mapped to an ip address
	ErrPortMappedForIP = errors.New("port is already mapped to ip")
	// ErrPortNotMapped refers to an unmapped port
	ErrPortNotMapped = errors.New("port is not mapped")
	// ErrSCTPAddrNoIP refers to a SCTP address without IP address.
	ErrSCTPAddrNoIP = errors.New("sctp address does not contain any IP address")
)

Types

type PortMapper

type PortMapper struct {
	Allocator *portallocator.PortAllocator
	// contains filtered or unexported fields
}

PortMapper manages the network address translation

func New

func New(proxyPath string) *PortMapper

New returns a new instance of PortMapper

func NewWithPortAllocator

func NewWithPortAllocator(allocator *portallocator.PortAllocator, proxyPath string) *PortMapper

NewWithPortAllocator returns a new instance of PortMapper which will use the specified PortAllocator

func (*PortMapper) AppendForwardingTableEntry

func (pm *PortMapper) AppendForwardingTableEntry(proto string, sourceIP net.IP, sourcePort int, containerIP string, containerPort int) error

AppendForwardingTableEntry adds a port mapping to the forwarding table

func (*PortMapper) DeleteForwardingTableEntry

func (pm *PortMapper) DeleteForwardingTableEntry(proto string, sourceIP net.IP, sourcePort int, containerIP string, containerPort int) error

DeleteForwardingTableEntry removes a port mapping from the forwarding table

func (*PortMapper) Map

func (pm *PortMapper) Map(container net.Addr, hostIP net.IP, hostPort int, useProxy bool) (host net.Addr, err error)

Map maps the specified container transport address to the host's network address and transport port

func (*PortMapper) MapRange

func (pm *PortMapper) MapRange(container net.Addr, hostIP net.IP, hostPortStart, hostPortEnd int, useProxy bool) (host net.Addr, err error)

MapRange maps the specified container transport address to the host's network address and transport port range

func (*PortMapper) ReMapAll

func (pm *PortMapper) ReMapAll()

ReMapAll re-applies all port mappings

func (*PortMapper) SetIptablesChain

func (pm *PortMapper) SetIptablesChain(c *iptables.ChainInfo, bridgeName string)

SetIptablesChain sets the specified chain into portmapper

func (*PortMapper) Unmap

func (pm *PortMapper) Unmap(host net.Addr) error

Unmap removes stored mapping for the specified host transport address

Source Files

mapper.go mapper_linux.go proxy.go proxy_linux.go

Version
v23.0.6+incompatible
Published
May 5, 2023
Platform
linux/amd64
Imports
14 packages
Last checked
55 minutes ago

Tools for package owners.