Documentation ¶
Index ¶
- Constants
- func GetDNS(subnet *net.IPNet) (*net.IP, error)
- func GetGateway(subnet *net.IPNet) (*net.IP, error)
- func GetIP(subnet *net.IPNet) (*net.IP, error)
- func GetRootlessPortChildIP(slirpSubnet *net.IPNet, netStatus map[string]types.StatusBlock) string
- func SetupRootlessPortMappingViaRLK(opts *SetupOptions, slirpSubnet *net.IPNet, ...) error
- type SetupOptions
- type SetupResult
Constants ¶
const (
BinaryName = "slirp4netns"
)
Variables ¶
This section is empty.
Functions ¶
func GetDNS ¶
Get expected slirp DNS ipv4 address based on subnet Reference: https://github.com/rootless-containers/slirp4netns/blob/master/slirp4netns.1.md#description
func GetGateway ¶
Get expected slirp Gateway ipv4 address based on subnet Reference: https://github.com/rootless-containers/slirp4netns/blob/master/slirp4netns.1.md#description
func GetIP ¶
Get expected slirp ipv4 address based on subnet. If subnet is null use default subnet Reference: https://github.com/rootless-containers/slirp4netns/blob/master/slirp4netns.1.md#description
func GetRootlessPortChildIP ¶
func SetupRootlessPortMappingViaRLK ¶
func SetupRootlessPortMappingViaRLK(opts *SetupOptions, slirpSubnet *net.IPNet, netStatus map[string]types.StatusBlock) error
Types ¶
type SetupOptions ¶
type SetupOptions struct { // Config used to get slip4netns path and other default options Config *config.Config // ContainerID is the ID of the container ContainerID string // Netns path to the netns Netns string // Ports the should be forwarded Ports []types.PortMapping // ExtraOptions for slirp4netns that were set on the cli ExtraOptions []string // Slirp4netnsExitPipeR pipe used to exit the slirp4netns process. // This is must be the reading end, the writer must be kept open until you want the // process to exit. For podman, conmon will hold the pipe open. // It can be set to nil in which case we do not use the pipe exit and the caller // must use the returned pid to kill the process after it is done. Slirp4netnsExitPipeR *os.File // RootlessPortSyncPipe pipe used to exit the rootlessport process. // Same as Slirp4netnsExitPipeR, except this is only used when ports are given. RootlessPortExitPipeR *os.File // Pdeathsig is the signal which is send to slirp4netns process if the calling thread // exits. The caller is responsible for locking the thread with runtime.LockOSThread(). Pdeathsig syscall.Signal }
type SetupResult ¶
type SetupResult struct { // Pid of the created slirp4netns process Pid int // Subnet which is used by slirp4netns Subnet *net.IPNet // IPv6 whenever Ipv6 is enabled in slirp4netns IPv6 bool }
SetupResult return type from Setup()
func Setup ¶
func Setup(opts *SetupOptions) (*SetupResult, error)
Setup can be called in rootful as well as in rootless. Spawns the slirp4netns process and setup port forwarding if ports are given.