route

package
v1.12.0 Latest Latest
Warning

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

Go to latest
Published: May 25, 2023 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	PodCIDRIPv4 *net.IPNet
)
View Source
var (
	// SyncInterval is exported so that sync interval can be configured for running integration test with
	// smaller values. It is meant to be used internally by Run.
	SyncInterval = 60 * time.Second
)

Functions

This section is empty.

Types

type Client

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

func NewClient

func NewClient(networkConfig *config.NetworkConfig, noSNAT, proxyAll, connectUplinkToBridge, multicastEnabled bool, serviceCIDRProvider servicecidr.Interface) (*Client, error)

NewClient returns a route client.

func (*Client) AddExternalIPRoute added in v1.12.0

func (c *Client) AddExternalIPRoute(externalIP net.IP) error

AddExternalIPRoute adds a route entry that forwards traffic destined for the external IP to the Antrea gateway interface.

func (*Client) AddLocalAntreaFlexibleIPAMPodRule added in v1.4.0

func (c *Client) AddLocalAntreaFlexibleIPAMPodRule(podAddresses []net.IP) error

func (*Client) AddNodePort added in v1.4.0

func (c *Client) AddNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error

TODO: nodePortAddresses is not supported currently.

func (c *Client) AddRouteForLink(dstCIDR *net.IPNet, linkIndex int) error

func (*Client) AddRoutes

func (c *Client) AddRoutes(podCIDR *net.IPNet, nodeName string, peerNodeIP, peerGwIP net.IP) error

AddRoutes adds routes to the provided podCIDR. It overrides the routes if they already exist, without error.

func (*Client) AddSNATRule

func (c *Client) AddSNATRule(snatIP net.IP, mark uint32) error

func (*Client) DeleteExternalIPRoute added in v1.12.0

func (c *Client) DeleteExternalIPRoute(externalIP net.IP) error

DeleteExternalIPRoute deletes the route entry for the external IP.

func (*Client) DeleteLocalAntreaFlexibleIPAMPodRule added in v1.4.0

func (c *Client) DeleteLocalAntreaFlexibleIPAMPodRule(podAddresses []net.IP) error

func (*Client) DeleteNodePort added in v1.4.0

func (c *Client) DeleteNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error
func (c *Client) DeleteRouteForLink(dstCIDR *net.IPNet, linkIndex int) error

func (*Client) DeleteRoutes

func (c *Client) DeleteRoutes(podCIDR *net.IPNet) error

DeleteRoutes deletes routes to the provided podCIDR. It does nothing if the routes don't exist, without error.

func (*Client) DeleteSNATRule

func (c *Client) DeleteSNATRule(mark uint32) error

func (*Client) Initialize

func (c *Client) Initialize(nodeConfig *config.NodeConfig, done func()) error

Initialize sets nodeConfig on Window. Service LoadBalancing is provided by OpenFlow.

func (*Client) MigrateRoutesToGw

func (c *Client) MigrateRoutesToGw(linkName string) error

MigrateRoutesToGw is not supported on Windows.

func (*Client) Reconcile

func (c *Client) Reconcile(podCIDRs []string) error

Reconcile removes the orphaned routes and related configuration based on the desired podCIDRs and Service IPs. Only the route entries on the host gateway interface are stored in the cache.

func (*Client) Run

func (c *Client) Run(stopCh <-chan struct{})

Run periodically syncs netNatStaticMapping and route. It will not return until stopCh is closed.

func (*Client) UnMigrateRoutesFromGw

func (c *Client) UnMigrateRoutesFromGw(route *net.IPNet, linkName string) error

UnMigrateRoutesFromGw is not supported on Windows.

type Interface

type Interface interface {
	// Initialize should initialize all infrastructures required to route container packets in host network.
	// It should be idempotent and can be safely called on every startup.
	Initialize(nodeConfig *config.NodeConfig, done func()) error

	// Reconcile should remove orphaned routes and related configuration based on the desired podCIDRs.
	// If IPv6 is enabled in the cluster, Reconcile should also remove the orphaned IPv6 neighbors.
	Reconcile(podCIDRs []string) error

	// AddRoutes should add routes to the provided podCIDR.
	// It should override the routes if they already exist, without error.
	AddRoutes(podCIDR *net.IPNet, peerNodeName string, peerNodeIP, peerGwIP net.IP) error

	// DeleteRoutes should delete routes to the provided podCIDR.
	// It should do nothing if the routes don't exist, without error.
	DeleteRoutes(podCIDR *net.IPNet) error

	// MigrateRoutesToGw should move routes from device linkname to local gateway.
	MigrateRoutesToGw(linkName string) error

	// UnMigrateRoutesFromGw should move routes back from local gateway to original device linkName
	// if linkName is nil, it should remove the routes.
	UnMigrateRoutesFromGw(route *net.IPNet, linkName string) error

	// AddSNATRule should add rule to SNAT outgoing traffic with the mark, using the provided SNAT IP.
	AddSNATRule(snatIP net.IP, mark uint32) error

	// DeleteSNATRule should delete rule to SNAT outgoing traffic with the mark.
	DeleteSNATRule(mark uint32) error

	// AddNodePort adds configurations when a NodePort Service is created.
	AddNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error

	// DeleteNodePort deletes related configurations when a NodePort Service is deleted.
	DeleteNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error

	// AddExternalIPRoute adds a route entry when an external IP is added.
	AddExternalIPRoute(externalIP net.IP) error

	// DeleteExternalIPRoute deletes the related route entry when an external IP is deleted.
	DeleteExternalIPRoute(externalIP net.IP) error

	// Run starts the sync loop.
	Run(stopCh <-chan struct{})

	// AddLocalAntreaFlexibleIPAMPodRule is used to add IP to target ip set when an AntreaFlexibleIPAM Pod is added. An entry is added
	// for every Pod IP.
	AddLocalAntreaFlexibleIPAMPodRule(podAddresses []net.IP) error

	// DeleteLocalAntreaFlexibleIPAMPodRule is used to delete related IP set entries when an AntreaFlexibleIPAM Pod is deleted.
	DeleteLocalAntreaFlexibleIPAMPodRule(podAddresses []net.IP) error

	// AddRouteForLink adds a route entry for a specific link in format:
	// "dstCIDR" dev "link" scope link
	AddRouteForLink(dstCIDR *net.IPNet, linkIndex int) error

	// DeleteRouteForLink deletes a route entry for a specific link.
	DeleteRouteForLink(dstCIDR *net.IPNet, linkIndex int) error
}

Interface is the interface for routing container packets in host network.

Directories

Path Synopsis
Package testing is a generated GoMock package.
Package testing is a generated GoMock package.

Jump to

Keyboard shortcuts

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