...

Package portmapper

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

Overview ▾

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")
)

type PortMapper

PortMapper manages the network address translation

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

func New

func New() *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, _ 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, retErr 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