Documentation ¶
Index ¶
- Constants
- Variables
- func AddInfraEndpointRules(client *OVSEndpointClient, infraIP net.IPNet, hostPort string) error
- func AddInfraVnetEndpoint(client *OVSEndpointClient) error
- func AddSnatEndpoint(snatClient *snat.Client) error
- func AddSnatEndpointRules(snatClient *snat.Client, hostToNC, ncToHost bool, nl netlink.NetlinkInterface, ...) error
- func AddStaticRoute(nl netlink.NetlinkInterface, netioshim netio.NetIOInterface, ...) error
- func ConfigureInfraVnetContainerInterface(client *OVSEndpointClient, infraIP net.IPNet) error
- func ConfigureSnatContainerInterface(snatClient *snat.Client) error
- func ConstructEndpointID(containerID string, _ string, ifName string) (string, string)
- func DeleteInfraVnetEndpoint(client *OVSEndpointClient, epID string) error
- func DeleteInfraVnetEndpointRules(client *OVSEndpointClient, ep *endpoint, hostPort string)
- func DeleteSnatEndpoint(snatClient *snat.Client) error
- func DeleteSnatEndpointRules(snatClient *snat.Client, hostToNC, ncToHost bool)
- func ExecuteInNS(nsName string, f func() error) error
- func GetPodNameWithoutSuffix(podName string) string
- func GetSnatContIfName(epInfo *EndpointInfo) string
- func GetSnatHostIfName(epInfo *EndpointInfo) string
- func IsNetworkNotFoundError(err error) bool
- func MoveInfraEndpointToContainerNS(client *OVSEndpointClient, netnsPath string, nsID uintptr) error
- func MoveSnatEndpointToContainerNS(snatClient *snat.Client, netnsPath string, nsID uintptr) error
- func NewInfraVnetClient(client *OVSEndpointClient, epID string)
- func SetupInfraVnetContainerInterface(client *OVSEndpointClient) error
- func SetupSnatContainerInterface(snatClient *snat.Client) error
- type AzureHNSEndpoint
- type AzureHNSEndpointClient
- type DNSInfo
- type EndpointClient
- type EndpointInfo
- type LinuxBridgeClient
- func (client *LinuxBridgeClient) AddL2Rules(extIf *externalInterface) error
- func (client *LinuxBridgeClient) CreateBridge() error
- func (client *LinuxBridgeClient) DeleteBridge() error
- func (client *LinuxBridgeClient) DeleteL2Rules(extIf *externalInterface)
- func (client *LinuxBridgeClient) SetBridgeMasterToHostInterface() error
- func (client *LinuxBridgeClient) SetHairpinOnHostInterface(enable bool) error
- type LinuxBridgeEndpointClient
- func (client *LinuxBridgeEndpointClient) AddEndpointRules(epInfo *EndpointInfo) error
- func (client *LinuxBridgeEndpointClient) AddEndpoints(epInfo *EndpointInfo) error
- func (client *LinuxBridgeEndpointClient) ConfigureContainerInterfacesAndRoutes(epInfo *EndpointInfo) error
- func (client *LinuxBridgeEndpointClient) DeleteEndpointRules(ep *endpoint)
- func (client *LinuxBridgeEndpointClient) DeleteEndpoints(ep *endpoint) error
- func (client *LinuxBridgeEndpointClient) MoveEndpointsToContainerNS(epInfo *EndpointInfo, nsID uintptr) error
- func (client *LinuxBridgeEndpointClient) SetupContainerInterfaces(epInfo *EndpointInfo) error
- type MockNetworkManager
- func (nm *MockNetworkManager) AddExternalInterface(ifName string, subnet string) error
- func (nm *MockNetworkManager) AttachEndpoint(networkID string, endpointID string, sandboxKey string) (*endpoint, error)
- func (nm *MockNetworkManager) CreateEndpoint(_ apipaClient, networkID string, epInfo *EndpointInfo) error
- func (nm *MockNetworkManager) CreateNetwork(nwInfo *NetworkInfo) error
- func (nm *MockNetworkManager) DeleteEndpoint(networkID, endpointID string) error
- func (nm *MockNetworkManager) DeleteNetwork(networkID string) error
- func (nm *MockNetworkManager) DetachEndpoint(networkID string, endpointID string) error
- func (nm *MockNetworkManager) FindNetworkIDFromNetNs(netNs string) (string, error)
- func (nm *MockNetworkManager) GetAllEndpoints(networkID string) (map[string]*EndpointInfo, error)
- func (nm *MockNetworkManager) GetEndpointInfo(networkID string, endpointID string) (*EndpointInfo, error)
- func (nm *MockNetworkManager) GetEndpointInfoBasedOnPODDetails(networkID string, podName string, podNameSpace string, ...) (*EndpointInfo, error)
- func (nm *MockNetworkManager) GetNetworkInfo(networkID string) (NetworkInfo, error)
- func (nm *MockNetworkManager) GetNumberOfEndpoints(ifName string, networkID string) int
- func (nm *MockNetworkManager) Initialize(config *common.PluginConfig, isRehydrationRequired bool) error
- func (nm *MockNetworkManager) SetupNetworkUsingState(networkMonitor *cnms.NetworkMonitor) error
- func (nm *MockNetworkManager) Uninitialize()
- func (nm *MockNetworkManager) UpdateEndpoint(networkID string, existingEpInfo *EndpointInfo, targetEpInfo *EndpointInfo) error
- type Namespace
- type NetworkClient
- type NetworkInfo
- type NetworkManager
- type OVSEndpointClient
- func (client *OVSEndpointClient) AddEndpointRules(epInfo *EndpointInfo) error
- func (client *OVSEndpointClient) AddEndpoints(epInfo *EndpointInfo) error
- func (client *OVSEndpointClient) AddSnatEndpoint() error
- func (client *OVSEndpointClient) AddSnatEndpointRules() error
- func (client *OVSEndpointClient) ConfigureContainerInterfacesAndRoutes(epInfo *EndpointInfo) error
- func (client *OVSEndpointClient) ConfigureSnatContainerInterface() error
- func (client *OVSEndpointClient) DeleteEndpointRules(ep *endpoint)
- func (client *OVSEndpointClient) DeleteEndpoints(ep *endpoint) error
- func (client *OVSEndpointClient) DeleteSnatEndpoint() error
- func (client *OVSEndpointClient) DeleteSnatEndpointRules()
- func (client *OVSEndpointClient) MoveEndpointsToContainerNS(epInfo *EndpointInfo, nsID uintptr) error
- func (client *OVSEndpointClient) MoveSnatEndpointToContainerNS(netnsPath string, nsID uintptr) error
- func (client *OVSEndpointClient) NewSnatClient(snatBridgeIP, localIP string, epInfo *EndpointInfo)
- func (client *OVSEndpointClient) SetupContainerInterfaces(epInfo *EndpointInfo) error
- func (client *OVSEndpointClient) SetupSnatContainerInterface() error
- type OVSNetworkClient
- func (client *OVSNetworkClient) AddL2Rules(extIf *externalInterface) error
- func (client *OVSNetworkClient) AddRoutes(nwInfo *NetworkInfo, interfaceName string) error
- func (client *OVSNetworkClient) CreateBridge() error
- func (client *OVSNetworkClient) DeleteBridge() error
- func (client *OVSNetworkClient) DeleteL2Rules(extIf *externalInterface)
- func (client *OVSNetworkClient) SetBridgeMasterToHostInterface() error
- func (client *OVSNetworkClient) SetHairpinOnHostInterface(enable bool) error
- type RouteInfo
- type SubnetInfo
- type TransparentEndpointClient
- func (client *TransparentEndpointClient) AddEndpointRules(epInfo *EndpointInfo) error
- func (client *TransparentEndpointClient) AddEndpoints(epInfo *EndpointInfo) error
- func (client *TransparentEndpointClient) ConfigureContainerInterfacesAndRoutes(epInfo *EndpointInfo) error
- func (client *TransparentEndpointClient) DeleteEndpointRules(ep *endpoint)
- func (client *TransparentEndpointClient) DeleteEndpoints(ep *endpoint) error
- func (client *TransparentEndpointClient) MoveEndpointsToContainerNS(epInfo *EndpointInfo, nsID uintptr) error
- func (client *TransparentEndpointClient) SetupContainerInterfaces(epInfo *EndpointInfo) error
- type TransparentVlanEndpointClient
- func (client *TransparentVlanEndpointClient) AddDefaultArp(interfaceName, destMac string) error
- func (client *TransparentVlanEndpointClient) AddDefaultRoutes(linkToName string, table int) error
- func (client *TransparentVlanEndpointClient) AddEndpointRules(epInfo *EndpointInfo) error
- func (client *TransparentVlanEndpointClient) AddEndpoints(epInfo *EndpointInfo) error
- func (client *TransparentVlanEndpointClient) AddSnatEndpoint() error
- func (client *TransparentVlanEndpointClient) AddSnatEndpointRules() error
- func (client *TransparentVlanEndpointClient) AddVnetRules(epInfo *EndpointInfo) error
- func (client *TransparentVlanEndpointClient) ConfigureContainerInterfacesAndRoutes(epInfo *EndpointInfo) error
- func (client *TransparentVlanEndpointClient) ConfigureContainerInterfacesAndRoutesImpl(epInfo *EndpointInfo) error
- func (client *TransparentVlanEndpointClient) ConfigureSnatContainerInterface() error
- func (client *TransparentVlanEndpointClient) ConfigureVnetInterfacesAndRoutesImpl(epInfo *EndpointInfo) error
- func (client *TransparentVlanEndpointClient) DeleteEndpointRules(ep *endpoint)
- func (client *TransparentVlanEndpointClient) DeleteEndpoints(ep *endpoint) error
- func (client *TransparentVlanEndpointClient) DeleteEndpointsImpl(ep *endpoint, getNumRoutesLeft func() (int, error)) error
- func (client *TransparentVlanEndpointClient) DeleteSnatEndpoint() error
- func (client *TransparentVlanEndpointClient) DeleteSnatEndpointRules()
- func (client *TransparentVlanEndpointClient) GetVnetRoutes(ipAddresses []net.IPNet) []RouteInfo
- func (client *TransparentVlanEndpointClient) MoveEndpointsToContainerNS(epInfo *EndpointInfo, nsID uintptr) error
- func (client *TransparentVlanEndpointClient) MoveSnatEndpointToContainerNS(netnsPath string, nsID uintptr) error
- func (client *TransparentVlanEndpointClient) NewSnatClient(snatBridgeIP, localIP string, epInfo *EndpointInfo)
- func (client *TransparentVlanEndpointClient) PopulateVM(epInfo *EndpointInfo) error
- func (client *TransparentVlanEndpointClient) PopulateVnet(epInfo *EndpointInfo) error
- func (client *TransparentVlanEndpointClient) SetupContainerInterfaces(epInfo *EndpointInfo) error
- func (client *TransparentVlanEndpointClient) SetupSnatContainerInterface() error
Constants ¶
const ( VlanIDKey = "VlanID" AzureCNS = "azure-cns" SNATIPKey = "NCPrimaryIPKey" RoutesKey = "RoutesKey" IPTablesKey = "IPTablesKey" )
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" // Ubuntu Release Version for checking which command to use. Ubuntu22 = "22.04" )
const (
DisableRPFilterCmd = "sysctl -w net.ipv4.conf.all.rp_filter=0" // Command to disable the rp filter for tunneling
)
const (
// ipv6 modes
IPV6Nat = "ipv6nat"
)
const (
InfraVnet = 0
)
Variables ¶
Functions ¶
func AddInfraEndpointRules ¶
func AddInfraEndpointRules(client *OVSEndpointClient, infraIP net.IPNet, hostPort string) error
func AddInfraVnetEndpoint ¶
func AddInfraVnetEndpoint(client *OVSEndpointClient) error
func AddSnatEndpoint ¶
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 ConstructEndpointID ¶
func DeleteInfraVnetEndpoint ¶
func DeleteInfraVnetEndpoint(client *OVSEndpointClient, epID string) error
func DeleteInfraVnetEndpointRules ¶
func DeleteInfraVnetEndpointRules(client *OVSEndpointClient, ep *endpoint, hostPort string)
func DeleteSnatEndpoint ¶
func DeleteSnatEndpointRules ¶
func ExecuteInNS ¶
Helper function that allows executing a function in a VM namespace Does not work for process namespaces
func GetPodNameWithoutSuffix ¶
func GetSnatContIfName ¶
func GetSnatContIfName(epInfo *EndpointInfo) string
func GetSnatHostIfName ¶
func GetSnatHostIfName(epInfo *EndpointInfo) string
func IsNetworkNotFoundError ¶
func MoveInfraEndpointToContainerNS ¶
func MoveInfraEndpointToContainerNS(client *OVSEndpointClient, netnsPath string, nsID uintptr) error
func NewInfraVnetClient ¶
func NewInfraVnetClient(client *OVSEndpointClient, epID string)
func SetupInfraVnetContainerInterface ¶
func SetupInfraVnetContainerInterface(client *OVSEndpointClient) error
Types ¶
type AzureHNSEndpoint ¶
type AzureHNSEndpoint struct{}
type AzureHNSEndpointClient ¶
type AzureHNSEndpointClient interface{}
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 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) 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
GetCurrentThreadNamespace returns the caller thread's current namespace.
func OpenNamespace ¶ added in v1.0.0
OpenNamespace creates a new namespace object for the given netns path.
type NetworkClient ¶
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 }
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) 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(ep *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.1.1) to destMac on a particular interfaceName Example: (169.254.1.1) at 12:34:56:78:9a:bc [ether] PERM on <interfaceName>
func (*TransparentVlanEndpointClient) AddDefaultRoutes ¶ added in v1.4.31
func (client *TransparentVlanEndpointClient) AddDefaultRoutes(linkToName string, table int) error
Helper that creates routing rules for the current NS which direct packets to the virtual gateway ip on linkToName device interface Route 1: 169.254.1.1 dev <linkToName> Route 2: default via 169.254.1.1 dev <linkToName>
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, getNumRoutesLeft 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
Source Files ¶
- api.go
- bridge_endpointclient_linux.go
- bridge_networkclient_linux.go
- endpoint.go
- endpoint_linux.go
- endpoint_snatroute_linux.go
- errors.go
- manager.go
- manager_mock.go
- monitor_linux.go
- namespace_linux.go
- network.go
- network_linux.go
- ovs_endpoint_infraroute_linux.go
- ovs_endpoint_snatroute_linux.go
- ovs_endpointclient_linux.go
- ovs_networkclient_linux.go
- transparent_endpointclient_linux.go
- transparent_vlan_endpoint_snatroute_linux.go
- transparent_vlan_endpointclient_linux.go