network

package
v1.0.12-rc1 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2018 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SnatBridgeIPKey = "snatBridgeIP"

	LocalIPKey = "localIP"

	OptVethName = "vethname"
)
View Source
const (
	VlanIDKey = "VlanID"
)

Variables

This section is empty.

Functions

func ConstructEndpointID added in v1.0.4

func ConstructEndpointID(containerID string, netNsPath string, ifName string) (string, string)

func DeleteSnatBridge added in v1.0.8

func DeleteSnatBridge() error

Types

type DNSInfo

type DNSInfo struct {
	Suffix  string
	Servers []string
}

DNSInfo contains DNS information for a container network or endpoint.

type EndpointClient added in v1.0.8

type EndpointClient interface {
	AddEndpoints(epInfo *EndpointInfo) error
	AddEndpointRules(epInfo *EndpointInfo) error
	DeleteEndpointRules(ep *endpoint)
	MoveEndpointsToContainerNS(epInfo *EndpointInfo, nsID uintptr) error
	SetupContainerInterfaces(epInfo *EndpointInfo) error
	ConfigureContainerInterfacesAndRoutes(epInfo *EndpointInfo) error
	DeleteEndpoints(ep *endpoint) error
}

type EndpointInfo

type EndpointInfo struct {
	Id               string
	ContainerID      string
	NetNsPath        string
	IfName           string
	SandboxKey       string
	IfIndex          int
	MacAddress       net.HardwareAddr
	DNS              DNSInfo
	IPAddresses      []net.IPNet
	Routes           []RouteInfo
	Policies         []policy.Policy
	Gateways         []net.IP
	EnableSnatOnHost bool
	Data             map[string]interface{}
}

EndpointInfo contains read-only information about an endpoint.

type LinuxBridgeClient added in v1.0.8

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

func NewLinuxBridgeClient added in v1.0.8

func NewLinuxBridgeClient(bridgeName string, hostInterfaceName string, mode string) *LinuxBridgeClient

func (*LinuxBridgeClient) AddL2Rules added in v1.0.8

func (client *LinuxBridgeClient) AddL2Rules(extIf *externalInterface) error

func (*LinuxBridgeClient) CreateBridge added in v1.0.8

func (client *LinuxBridgeClient) CreateBridge() error

func (*LinuxBridgeClient) DeleteBridge added in v1.0.8

func (client *LinuxBridgeClient) DeleteBridge() error

func (*LinuxBridgeClient) DeleteL2Rules added in v1.0.8

func (client *LinuxBridgeClient) DeleteL2Rules(extIf *externalInterface)

func (*LinuxBridgeClient) SetBridgeMasterToHostInterface added in v1.0.8

func (client *LinuxBridgeClient) SetBridgeMasterToHostInterface() error

func (*LinuxBridgeClient) SetHairpinOnHostInterface added in v1.0.8

func (client *LinuxBridgeClient) SetHairpinOnHostInterface(enable bool) error

type LinuxBridgeEndpointClient added in v1.0.8

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

func NewLinuxBridgeEndpointClient added in v1.0.8

func NewLinuxBridgeEndpointClient(
	extIf *externalInterface,
	hostVethName string,
	containerVethName string,
	mode string,
) *LinuxBridgeEndpointClient

func (*LinuxBridgeEndpointClient) AddEndpointRules added in v1.0.8

func (client *LinuxBridgeEndpointClient) AddEndpointRules(epInfo *EndpointInfo) error

func (*LinuxBridgeEndpointClient) AddEndpoints added in v1.0.8

func (client *LinuxBridgeEndpointClient) AddEndpoints(epInfo *EndpointInfo) error

func (*LinuxBridgeEndpointClient) ConfigureContainerInterfacesAndRoutes added in v1.0.8

func (client *LinuxBridgeEndpointClient) ConfigureContainerInterfacesAndRoutes(epInfo *EndpointInfo) error

func (*LinuxBridgeEndpointClient) DeleteEndpointRules added in v1.0.8

func (client *LinuxBridgeEndpointClient) DeleteEndpointRules(ep *endpoint)

func (*LinuxBridgeEndpointClient) DeleteEndpoints added in v1.0.8

func (client *LinuxBridgeEndpointClient) DeleteEndpoints(ep *endpoint) error

func (*LinuxBridgeEndpointClient) MoveEndpointsToContainerNS added in v1.0.8

func (client *LinuxBridgeEndpointClient) MoveEndpointsToContainerNS(epInfo *EndpointInfo, nsID uintptr) error

func (*LinuxBridgeEndpointClient) SetupContainerInterfaces added in v1.0.8

func (client *LinuxBridgeEndpointClient) SetupContainerInterfaces(epInfo *EndpointInfo) error

type Namespace

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

Namespace represents a network namespace.

func GetCurrentThreadNamespace

func GetCurrentThreadNamespace() (*Namespace, error)

GetCurrentThreadNamespace returns the caller thread's current namespace.

func OpenNamespace

func OpenNamespace(nsPath string) (*Namespace, error)

OpenNamespace creates a new namespace object for the given netns path.

func (*Namespace) Close

func (ns *Namespace) Close() error

Close releases the resources associated with the namespace object.

func (*Namespace) Enter

func (ns *Namespace) Enter() error

Enter puts the caller thread inside the namespace.

func (*Namespace) Exit

func (ns *Namespace) Exit() error

Exit puts the caller thread to its previous namespace.

func (*Namespace) GetFd

func (ns *Namespace) GetFd() uintptr

GetFd returns the file descriptor of the namespace.

type NetworkClient added in v1.0.8

type NetworkClient interface {
	CreateBridge() error
	DeleteBridge() error
	AddL2Rules(extIf *externalInterface) error
	DeleteL2Rules(extIf *externalInterface)
	SetBridgeMasterToHostInterface() error
	SetHairpinOnHostInterface(bool) error
}

type NetworkInfo

type NetworkInfo struct {
	Id               string
	Mode             string
	Subnets          []SubnetInfo
	DNS              DNSInfo
	Policies         []policy.Policy
	BridgeName       string
	EnableSnatOnHost bool
	Options          map[string]interface{}
}

NetworkInfo contains read-only information about a container network.

type NetworkManager

type NetworkManager interface {
	Initialize(config *common.PluginConfig) error
	Uninitialize()

	AddExternalInterface(ifName string, subnet string) error

	CreateNetwork(nwInfo *NetworkInfo) error
	DeleteNetwork(networkId string) error
	GetNetworkInfo(networkId string) (*NetworkInfo, error)

	CreateEndpoint(networkId string, epInfo *EndpointInfo) error
	DeleteEndpoint(networkId string, endpointId string) error
	GetEndpointInfo(networkId string, endpointId string) (*EndpointInfo, error)
	AttachEndpoint(networkId string, endpointId string, sandboxKey string) (*endpoint, error)
	DetachEndpoint(networkId string, endpointId string) error
}

NetworkManager API.

func NewNetworkManager

func NewNetworkManager() (NetworkManager, error)

Creates a new network manager.

type OVSEndpointClient added in v1.0.8

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

func NewOVSEndpointClient added in v1.0.8

func NewOVSEndpointClient(
	extIf *externalInterface,
	epInfo *EndpointInfo,
	hostVethName string,
	containerVethName string,
	vlanid int,
) *OVSEndpointClient

func (*OVSEndpointClient) AddEndpointRules added in v1.0.8

func (client *OVSEndpointClient) AddEndpointRules(epInfo *EndpointInfo) error

func (*OVSEndpointClient) AddEndpoints added in v1.0.8

func (client *OVSEndpointClient) AddEndpoints(epInfo *EndpointInfo) error

func (*OVSEndpointClient) ConfigureContainerInterfacesAndRoutes added in v1.0.8

func (client *OVSEndpointClient) ConfigureContainerInterfacesAndRoutes(epInfo *EndpointInfo) error

func (*OVSEndpointClient) DeleteEndpointRules added in v1.0.8

func (client *OVSEndpointClient) DeleteEndpointRules(ep *endpoint)

func (*OVSEndpointClient) DeleteEndpoints added in v1.0.8

func (client *OVSEndpointClient) DeleteEndpoints(ep *endpoint) error

func (*OVSEndpointClient) MoveEndpointsToContainerNS added in v1.0.8

func (client *OVSEndpointClient) MoveEndpointsToContainerNS(epInfo *EndpointInfo, nsID uintptr) error

func (*OVSEndpointClient) SetupContainerInterfaces added in v1.0.8

func (client *OVSEndpointClient) SetupContainerInterfaces(epInfo *EndpointInfo) error

type OVSNetworkClient added in v1.0.8

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

func NewOVSClient added in v1.0.8

func NewOVSClient(bridgeName, hostInterfaceName, snatBridgeIP string, enableSnatOnHost bool) *OVSNetworkClient

func (*OVSNetworkClient) AddL2Rules added in v1.0.8

func (client *OVSNetworkClient) AddL2Rules(extIf *externalInterface) error

func (*OVSNetworkClient) CreateBridge added in v1.0.8

func (client *OVSNetworkClient) CreateBridge() error

func (*OVSNetworkClient) DeleteBridge added in v1.0.8

func (client *OVSNetworkClient) DeleteBridge() error

func (*OVSNetworkClient) DeleteL2Rules added in v1.0.8

func (client *OVSNetworkClient) DeleteL2Rules(extIf *externalInterface)

func (*OVSNetworkClient) SetBridgeMasterToHostInterface added in v1.0.8

func (client *OVSNetworkClient) SetBridgeMasterToHostInterface() error

func (*OVSNetworkClient) SetHairpinOnHostInterface added in v1.0.8

func (client *OVSNetworkClient) SetHairpinOnHostInterface(enable bool) error

type RouteInfo

type RouteInfo struct {
	Dst     net.IPNet
	Gw      net.IP
	DevName string
}

RouteInfo contains information about an IP route.

type SubnetInfo

type SubnetInfo struct {
	Family  platform.AddressFamily
	Prefix  net.IPNet
	Gateway net.IP
}

SubnetInfo contains subnet information for a container network.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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