network

package
v1.5.10 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2023 License: MIT Imports: 31 Imported by: 2

Documentation

Index

Constants

View Source
const (
	VlanIDKey   = "VlanID"
	AzureCNS    = "azure-cns"
	SNATIPKey   = "NCPrimaryIPKey"
	RoutesKey   = "RoutesKey"
	IPTablesKey = "IPTablesKey"
)
View Source
const (

	// OptVethName key for veth name option
	OptVethName = "vethname"
	// SnatBridgeIPKey key for the SNAT bridge
	SnatBridgeIPKey = "snatBridgeIP"
	// LocalIPKey key for local IP
	LocalIPKey = "localIP"
	// InfraVnetIPKey key for infra vnet
	InfraVnetIPKey = "infraVnetIP"
)
View Source
const (
	DisableRPFilterCmd = "sysctl -w net.ipv4.conf.all.rp_filter=0" // Command to disable the rp filter for tunneling
)
View Source
const (
	// ipv6 modes
	IPV6Nat = "ipv6nat"
)
View Source
const (
	InfraVnet = 0
)

Variables

View Source
var Ipv4DefaultRouteDstPrefix = net.IPNet{
	IP:   net.IPv4zero,
	Mask: net.IPv4Mask(0, 0, 0, 0),
}
View Source
var Ipv6DefaultRouteDstPrefix = net.IPNet{
	IP: net.IPv6zero,

	Mask: net.CIDRMask(0, ipv6AddressMask),
}

Functions

func AddInfraEndpointRules

func AddInfraEndpointRules(client *OVSEndpointClient, infraIP net.IPNet, hostPort string) error

func AddInfraVnetEndpoint

func AddInfraVnetEndpoint(client *OVSEndpointClient) error

func AddSnatEndpoint

func AddSnatEndpoint(snatClient *snat.Client) error

func AddSnatEndpointRules

func AddSnatEndpointRules(snatClient *snat.Client, hostToNC, ncToHost bool, nl netlink.NetlinkInterface, plc platform.ExecClient) error

func AddStaticRoute

func AddStaticRoute(nl netlink.NetlinkInterface, netioshim netio.NetIOInterface, ip, interfaceName string) error

AddStaticRoute adds a static route to the interface.

func ConfigureInfraVnetContainerInterface

func ConfigureInfraVnetContainerInterface(client *OVSEndpointClient, infraIP net.IPNet) error

func ConfigureSnatContainerInterface

func ConfigureSnatContainerInterface(snatClient *snat.Client) error

func ConstructEndpointID

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

func DeleteInfraVnetEndpoint

func DeleteInfraVnetEndpoint(client *OVSEndpointClient, epID string) error

func DeleteInfraVnetEndpointRules

func DeleteInfraVnetEndpointRules(client *OVSEndpointClient, ep *endpoint, hostPort string)

func DeleteSnatEndpoint

func DeleteSnatEndpoint(snatClient *snat.Client) error

func DeleteSnatEndpointRules

func DeleteSnatEndpointRules(snatClient *snat.Client, hostToNC, ncToHost bool)

func ExecuteInNS

func ExecuteInNS(nsName string, f func() error) error

Helper function that allows executing a function in a VM namespace Does not work for process namespaces

func GetPodNameWithoutSuffix

func GetPodNameWithoutSuffix(podName string) string

func GetSnatContIfName

func GetSnatContIfName(epInfo *EndpointInfo) string

func GetSnatHostIfName

func GetSnatHostIfName(epInfo *EndpointInfo) string

func IsNetworkNotFoundError

func IsNetworkNotFoundError(err error) bool

func MoveInfraEndpointToContainerNS

func MoveInfraEndpointToContainerNS(client *OVSEndpointClient, netnsPath string, nsID uintptr) error

func MoveSnatEndpointToContainerNS

func MoveSnatEndpointToContainerNS(snatClient *snat.Client, netnsPath string, nsID uintptr) error

func NewInfraVnetClient

func NewInfraVnetClient(client *OVSEndpointClient, epID string)

func SetupInfraVnetContainerInterface

func SetupInfraVnetContainerInterface(client *OVSEndpointClient) error

func SetupSnatContainerInterface

func SetupSnatContainerInterface(snatClient *snat.Client) error

Types

type AzureHNSEndpoint

type AzureHNSEndpoint struct{}

type AzureHNSEndpointClient

type AzureHNSEndpointClient interface{}

type DNSInfo

type DNSInfo struct {
	Suffix  string
	Servers []string
	Options []string
}

DNSInfo contains DNS information for a container network or endpoint.

type EndpointClient

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
	IPsToRouteViaHost        []string
	InfraVnetIP              net.IPNet
	Routes                   []RouteInfo
	Policies                 []policy.Policy
	Gateways                 []net.IP
	EnableSnatOnHost         bool
	EnableInfraVnet          bool
	EnableMultiTenancy       bool
	EnableSnatForDns         bool
	AllowInboundFromHostToNC bool
	AllowInboundFromNCToHost bool
	NetworkContainerID       string
	PODName                  string
	PODNameSpace             string
	Data                     map[string]interface{}
	InfraVnetAddressSpace    string
	SkipHotAttachEp          bool
	IPV6Mode                 string
	VnetCidrs                string
	ServiceCidrs             string
	NATInfo                  []policy.NATInfo
}

EndpointInfo contains read-only information about an endpoint.

func (*EndpointInfo) PrettyString

func (epInfo *EndpointInfo) PrettyString() string

type LinuxBridgeClient

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

func NewLinuxBridgeClient

func NewLinuxBridgeClient(
	bridgeName string,
	hostInterfaceName string,
	nwInfo NetworkInfo,
	nl netlink.NetlinkInterface,
	plc platform.ExecClient,
) *LinuxBridgeClient

func (*LinuxBridgeClient) AddL2Rules

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

func (*LinuxBridgeClient) CreateBridge

func (client *LinuxBridgeClient) CreateBridge() error

func (*LinuxBridgeClient) DeleteBridge

func (client *LinuxBridgeClient) DeleteBridge() error

func (*LinuxBridgeClient) DeleteL2Rules

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

func (*LinuxBridgeClient) SetBridgeMasterToHostInterface

func (client *LinuxBridgeClient) SetBridgeMasterToHostInterface() error

func (*LinuxBridgeClient) SetHairpinOnHostInterface

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

type LinuxBridgeEndpointClient

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

func NewLinuxBridgeEndpointClient

func NewLinuxBridgeEndpointClient(
	extIf *externalInterface,
	hostVethName string,
	containerVethName string,
	mode string,
	nl netlink.NetlinkInterface,
	plc platform.ExecClient,
) *LinuxBridgeEndpointClient

func (*LinuxBridgeEndpointClient) AddEndpointRules

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

func (*LinuxBridgeEndpointClient) AddEndpoints

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

func (*LinuxBridgeEndpointClient) ConfigureContainerInterfacesAndRoutes

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

func (*LinuxBridgeEndpointClient) DeleteEndpointRules

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

func (*LinuxBridgeEndpointClient) DeleteEndpoints

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

func (*LinuxBridgeEndpointClient) MoveEndpointsToContainerNS

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

func (*LinuxBridgeEndpointClient) SetupContainerInterfaces

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

type MockEndpointClient

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

func NewMockEndpointClient

func NewMockEndpointClient(returnError bool) *MockEndpointClient

func (*MockEndpointClient) AddEndpointRules

func (client *MockEndpointClient) AddEndpointRules(_ *EndpointInfo) error

func (*MockEndpointClient) AddEndpoints

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

func (*MockEndpointClient) ConfigureContainerInterfacesAndRoutes

func (client *MockEndpointClient) ConfigureContainerInterfacesAndRoutes(_ *EndpointInfo) error

func (*MockEndpointClient) DeleteEndpointRules

func (client *MockEndpointClient) DeleteEndpointRules(_ *endpoint)

func (*MockEndpointClient) DeleteEndpoints

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

func (*MockEndpointClient) MoveEndpointsToContainerNS

func (client *MockEndpointClient) MoveEndpointsToContainerNS(_ *EndpointInfo, _ uintptr) error

func (*MockEndpointClient) SetupContainerInterfaces

func (client *MockEndpointClient) SetupContainerInterfaces(_ *EndpointInfo) error

type MockNetworkManager

type MockNetworkManager struct {
	TestNetworkInfoMap  map[string]*NetworkInfo
	TestEndpointInfoMap map[string]*EndpointInfo
}

MockNetworkManager is a mock structure for Network Manager

func NewMockNetworkmanager

func NewMockNetworkmanager() *MockNetworkManager

NewMockNetworkmanager returns a new mock

func (*MockNetworkManager) AddExternalInterface

func (nm *MockNetworkManager) AddExternalInterface(ifName string, subnet string) error

AddExternalInterface mock

func (*MockNetworkManager) AttachEndpoint

func (nm *MockNetworkManager) AttachEndpoint(networkID string, endpointID string, sandboxKey string) (*endpoint, error)

AttachEndpoint mock

func (*MockNetworkManager) CreateEndpoint

func (nm *MockNetworkManager) CreateEndpoint(_ apipaClient, networkID string, epInfo *EndpointInfo) error

CreateEndpoint mock

func (*MockNetworkManager) CreateNetwork

func (nm *MockNetworkManager) CreateNetwork(nwInfo *NetworkInfo) error

CreateNetwork mock

func (*MockNetworkManager) DeleteEndpoint

func (nm *MockNetworkManager) DeleteEndpoint(networkID, endpointID string) error

DeleteEndpoint mock

func (*MockNetworkManager) DeleteNetwork

func (nm *MockNetworkManager) DeleteNetwork(networkID string) error

DeleteNetwork mock

func (*MockNetworkManager) DetachEndpoint

func (nm *MockNetworkManager) DetachEndpoint(networkID string, endpointID string) error

DetachEndpoint mock

func (*MockNetworkManager) FindNetworkIDFromNetNs

func (nm *MockNetworkManager) FindNetworkIDFromNetNs(netNs string) (string, error)

func (*MockNetworkManager) GetAllEndpoints

func (nm *MockNetworkManager) GetAllEndpoints(networkID string) (map[string]*EndpointInfo, error)

func (*MockNetworkManager) GetEndpointInfo

func (nm *MockNetworkManager) GetEndpointInfo(networkID string, endpointID string) (*EndpointInfo, error)

GetEndpointInfo mock

func (*MockNetworkManager) GetEndpointInfoBasedOnPODDetails

func (nm *MockNetworkManager) GetEndpointInfoBasedOnPODDetails(networkID string, podName string, podNameSpace string, doExactMatchForPodName bool) (*EndpointInfo, error)

GetEndpointInfoBasedOnPODDetails mock

func (*MockNetworkManager) GetNetworkInfo

func (nm *MockNetworkManager) GetNetworkInfo(networkID string) (NetworkInfo, error)

GetNetworkInfo mock

func (*MockNetworkManager) GetNumEndpointsByContainerID

func (nm *MockNetworkManager) GetNumEndpointsByContainerID(_ string) int

GetNumEndpointsByContainerID mock

func (*MockNetworkManager) GetNumberOfEndpoints

func (nm *MockNetworkManager) GetNumberOfEndpoints(ifName string, networkID string) int

GetNumberOfEndpoints mock

func (*MockNetworkManager) Initialize

func (nm *MockNetworkManager) Initialize(config *common.PluginConfig, isRehydrationRequired bool) error

Initialize mock

func (*MockNetworkManager) SetupNetworkUsingState

func (nm *MockNetworkManager) SetupNetworkUsingState(networkMonitor *cnms.NetworkMonitor) error

SetupNetworkUsingState mock

func (*MockNetworkManager) Uninitialize

func (nm *MockNetworkManager) Uninitialize()

Uninitialize mock

func (*MockNetworkManager) UpdateEndpoint

func (nm *MockNetworkManager) UpdateEndpoint(networkID string, existingEpInfo *EndpointInfo, targetEpInfo *EndpointInfo) error

UpdateEndpoint mock

type Namespace

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

Namespace represents a network namespace.

func GetCurrentThreadNamespace added in v1.0.0

func GetCurrentThreadNamespace() (*Namespace, error)

GetCurrentThreadNamespace returns the caller thread's current namespace.

func OpenNamespace added in v1.0.0

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

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

type NetworkInfo

type NetworkInfo struct {
	MasterIfName                  string
	AdapterName                   string
	Id                            string
	Mode                          string
	Subnets                       []SubnetInfo
	PodSubnet                     SubnetInfo
	DNS                           DNSInfo
	Policies                      []policy.Policy
	BridgeName                    string
	EnableSnatOnHost              bool
	NetNs                         string
	Options                       map[string]interface{}
	DisableHairpinOnHostInterface bool
	IPV6Mode                      string
	IPAMType                      string
	ServiceCidrs                  string
	IsIPv6Enabled                 bool
}

NetworkInfo contains read-only information about a container network.

func (*NetworkInfo) PrettyString

func (nwInfo *NetworkInfo) PrettyString() string

type NetworkManager

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

	AddExternalInterface(ifName string, subnet string) error

	CreateNetwork(nwInfo *NetworkInfo) error
	DeleteNetwork(networkID string) error
	GetNetworkInfo(networkID string) (NetworkInfo, error)
	// FindNetworkIDFromNetNs returns the network name that contains an endpoint created for this netNS, errNetworkNotFound if no network is found
	FindNetworkIDFromNetNs(netNs string) (string, error)
	GetNumEndpointsByContainerID(containerID string) int

	CreateEndpoint(client apipaClient, networkID string, epInfo *EndpointInfo) error
	DeleteEndpoint(networkID string, endpointID string) error
	GetEndpointInfo(networkID string, endpointID string) (*EndpointInfo, error)
	GetAllEndpoints(networkID string) (map[string]*EndpointInfo, error)
	GetEndpointInfoBasedOnPODDetails(networkID string, podName string, podNameSpace string, doExactMatchForPodName bool) (*EndpointInfo, error)
	AttachEndpoint(networkID string, endpointID string, sandboxKey string) (*endpoint, error)
	DetachEndpoint(networkID string, endpointID string) error
	UpdateEndpoint(networkID string, existingEpInfo *EndpointInfo, targetEpInfo *EndpointInfo) error
	GetNumberOfEndpoints(ifName string, networkID string) int
	SetupNetworkUsingState(networkMonitor *cnms.NetworkMonitor) error
}

NetworkManager API.

func NewNetworkManager

func NewNetworkManager(nl netlink.NetlinkInterface, plc platform.ExecClient, netioCli netio.NetIOInterface) (NetworkManager, error)

Creates a new network manager.

type OVSEndpointClient

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

func NewOVSEndpointClient

func NewOVSEndpointClient(
	nw *network,
	epInfo *EndpointInfo,
	hostVethName string,
	containerVethName string,
	vlanid int,
	localIP string,
	nl netlink.NetlinkInterface,
	ovs ovsctl.OvsInterface,
	plc platform.ExecClient,
) *OVSEndpointClient

func (*OVSEndpointClient) AddEndpointRules

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

func (*OVSEndpointClient) AddEndpoints

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

func (*OVSEndpointClient) AddSnatEndpoint

func (client *OVSEndpointClient) AddSnatEndpoint() error

func (*OVSEndpointClient) AddSnatEndpointRules

func (client *OVSEndpointClient) AddSnatEndpointRules() error

func (*OVSEndpointClient) ConfigureContainerInterfacesAndRoutes

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

func (*OVSEndpointClient) ConfigureSnatContainerInterface

func (client *OVSEndpointClient) ConfigureSnatContainerInterface() error

func (*OVSEndpointClient) DeleteEndpointRules

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

func (*OVSEndpointClient) DeleteEndpoints

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

func (*OVSEndpointClient) DeleteSnatEndpoint

func (client *OVSEndpointClient) DeleteSnatEndpoint() error

func (*OVSEndpointClient) DeleteSnatEndpointRules

func (client *OVSEndpointClient) DeleteSnatEndpointRules()

func (*OVSEndpointClient) MoveEndpointsToContainerNS

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

func (*OVSEndpointClient) MoveSnatEndpointToContainerNS

func (client *OVSEndpointClient) MoveSnatEndpointToContainerNS(netnsPath string, nsID uintptr) error

func (*OVSEndpointClient) NewSnatClient

func (client *OVSEndpointClient) NewSnatClient(snatBridgeIP, localIP string, epInfo *EndpointInfo)

func (*OVSEndpointClient) SetupContainerInterfaces

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

func (*OVSEndpointClient) SetupSnatContainerInterface

func (client *OVSEndpointClient) SetupSnatContainerInterface() error

type OVSNetworkClient

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

func NewOVSClient

func NewOVSClient(bridgeName, hostInterfaceName string, ovsctlClient ovsctl.OvsInterface,
	nl netlink.NetlinkInterface, plc platform.ExecClient,
) *OVSNetworkClient

func (*OVSNetworkClient) AddL2Rules

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

func (*OVSNetworkClient) AddRoutes

func (client *OVSNetworkClient) AddRoutes(nwInfo *NetworkInfo, interfaceName string) error

func (*OVSNetworkClient) CreateBridge

func (client *OVSNetworkClient) CreateBridge() error

func (*OVSNetworkClient) DeleteBridge

func (client *OVSNetworkClient) DeleteBridge() error

func (*OVSNetworkClient) DeleteL2Rules

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

func (*OVSNetworkClient) SetBridgeMasterToHostInterface

func (client *OVSNetworkClient) SetBridgeMasterToHostInterface() error

func (*OVSNetworkClient) SetHairpinOnHostInterface

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

type RouteInfo

type RouteInfo struct {
	Dst      net.IPNet
	Src      net.IP
	Gw       net.IP
	Protocol int
	DevName  string
	Scope    int
	Priority int
	Table    int
}

RouteInfo contains information about an IP route.

type SubnetInfo

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

SubnetInfo contains subnet information for a container network.

type TransparentEndpointClient

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

func NewTransparentEndpointClient

func NewTransparentEndpointClient(
	extIf *externalInterface,
	hostVethName string,
	containerVethName string,
	mode string,
	nl netlink.NetlinkInterface,
	plc platform.ExecClient,
) *TransparentEndpointClient

func (*TransparentEndpointClient) AddEndpointRules

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

func (*TransparentEndpointClient) AddEndpoints

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

func (*TransparentEndpointClient) ConfigureContainerInterfacesAndRoutes

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

func (*TransparentEndpointClient) DeleteEndpointRules

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

func (*TransparentEndpointClient) DeleteEndpoints

func (client *TransparentEndpointClient) DeleteEndpoints(_ *endpoint) error

func (*TransparentEndpointClient) MoveEndpointsToContainerNS

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

func (*TransparentEndpointClient) SetupContainerInterfaces

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

type TransparentVlanEndpointClient

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

func NewTransparentVlanEndpointClient

func NewTransparentVlanEndpointClient(
	nw *network,
	ep *EndpointInfo,
	vnetVethName string,
	containerVethName string,
	vlanid int,
	localIP string,
	nl netlink.NetlinkInterface,
	plc platform.ExecClient,
) *TransparentVlanEndpointClient

func (*TransparentVlanEndpointClient) AddDefaultArp

func (client *TransparentVlanEndpointClient) AddDefaultArp(interfaceName, destMac string) error

Helper that creates arp entry for the current NS which maps the virtual gateway (169.254.2.1) to destMac on a particular interfaceName Example: (169.254.2.1) at 12:34:56:78:9a:bc [ether] PERM on <interfaceName>

func (*TransparentVlanEndpointClient) AddEndpointRules

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

func (*TransparentVlanEndpointClient) AddEndpoints

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

Adds interfaces to the vnet (created if not existing) and vm namespace

func (*TransparentVlanEndpointClient) AddSnatEndpoint

func (client *TransparentVlanEndpointClient) AddSnatEndpoint() error

func (*TransparentVlanEndpointClient) AddSnatEndpointRules

func (client *TransparentVlanEndpointClient) AddSnatEndpointRules() error

func (*TransparentVlanEndpointClient) AddVnetRules

func (client *TransparentVlanEndpointClient) AddVnetRules(epInfo *EndpointInfo) error

Add rules related to tunneling the packet outside of the VM, assumes all calls are idempotent. Namespace: vnet

func (*TransparentVlanEndpointClient) ConfigureContainerInterfacesAndRoutes

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

Adds routes, arp entries, etc. to the vnet and container namespaces

func (*TransparentVlanEndpointClient) ConfigureContainerInterfacesAndRoutesImpl

func (client *TransparentVlanEndpointClient) ConfigureContainerInterfacesAndRoutesImpl(epInfo *EndpointInfo) error

Called from ConfigureContainerInterfacesAndRoutes, Namespace: Container

func (*TransparentVlanEndpointClient) ConfigureSnatContainerInterface

func (client *TransparentVlanEndpointClient) ConfigureSnatContainerInterface() error

func (*TransparentVlanEndpointClient) ConfigureVnetInterfacesAndRoutesImpl

func (client *TransparentVlanEndpointClient) ConfigureVnetInterfacesAndRoutesImpl(epInfo *EndpointInfo) error

Called from ConfigureContainerInterfacesAndRoutes, Namespace: Vnet

func (*TransparentVlanEndpointClient) DeleteEndpointRules

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

func (*TransparentVlanEndpointClient) DeleteEndpoints

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

func (*TransparentVlanEndpointClient) DeleteEndpointsImpl

func (client *TransparentVlanEndpointClient) DeleteEndpointsImpl(ep *endpoint, _ func() (int, error)) error

getNumRoutesLeft is a function which gets the current number of routes in the namespace. Namespace: Vnet

func (*TransparentVlanEndpointClient) DeleteSnatEndpoint

func (client *TransparentVlanEndpointClient) DeleteSnatEndpoint() error

func (*TransparentVlanEndpointClient) DeleteSnatEndpointRules

func (client *TransparentVlanEndpointClient) DeleteSnatEndpointRules()

func (*TransparentVlanEndpointClient) GetVnetRoutes

func (client *TransparentVlanEndpointClient) GetVnetRoutes(ipAddresses []net.IPNet) []RouteInfo

Helper that gets the routes in the vnet NS for a particular list of IP addresses Example: 192.168.0.4 dev <device which connects to NS with that IP> proto static

func (*TransparentVlanEndpointClient) MoveEndpointsToContainerNS

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

func (*TransparentVlanEndpointClient) MoveSnatEndpointToContainerNS

func (client *TransparentVlanEndpointClient) MoveSnatEndpointToContainerNS(netnsPath string, nsID uintptr) error

func (*TransparentVlanEndpointClient) NewSnatClient

func (client *TransparentVlanEndpointClient) NewSnatClient(snatBridgeIP, localIP string, epInfo *EndpointInfo)

func (*TransparentVlanEndpointClient) PopulateVM

func (client *TransparentVlanEndpointClient) PopulateVM(epInfo *EndpointInfo) error

Called from AddEndpoints, Namespace: VM

func (*TransparentVlanEndpointClient) PopulateVnet

func (client *TransparentVlanEndpointClient) PopulateVnet(epInfo *EndpointInfo) error

Called from AddEndpoints, Namespace: Vnet

func (*TransparentVlanEndpointClient) SetupContainerInterfaces

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

func (*TransparentVlanEndpointClient) SetupSnatContainerInterface

func (client *TransparentVlanEndpointClient) SetupSnatContainerInterface() error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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