Documentation ¶
Index ¶
- Variables
- type Client
- func (c *Client) AddExternalIPRoute(externalIP net.IP) error
- func (c *Client) AddLocalAntreaFlexibleIPAMPodRule(podAddresses []net.IP) error
- func (c *Client) AddNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error
- func (c *Client) AddRouteForLink(dstCIDR *net.IPNet, linkIndex int) error
- func (c *Client) AddRoutes(podCIDR *net.IPNet, nodeName string, peerNodeIP, peerGwIP net.IP) error
- func (c *Client) AddSNATRule(snatIP net.IP, mark uint32) error
- func (c *Client) DeleteExternalIPRoute(externalIP net.IP) error
- func (c *Client) DeleteLocalAntreaFlexibleIPAMPodRule(podAddresses []net.IP) error
- func (c *Client) DeleteNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error
- func (c *Client) DeleteRouteForLink(dstCIDR *net.IPNet, linkIndex int) error
- func (c *Client) DeleteRoutes(podCIDR *net.IPNet) error
- func (c *Client) DeleteSNATRule(mark uint32) error
- func (c *Client) Initialize(nodeConfig *config.NodeConfig, done func()) error
- func (c *Client) MigrateRoutesToGw(linkName string) error
- func (c *Client) Reconcile(podCIDRs []string) error
- func (c *Client) Run(stopCh <-chan struct{})
- func (c *Client) UnMigrateRoutesFromGw(route *net.IPNet, linkName string) error
- type Interface
Constants ¶
This section is empty.
Variables ¶
var (
PodCIDRIPv4 *net.IPNet
)
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
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 (*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 (*Client) AddRouteForLink ¶ added in v1.12.0
func (*Client) AddRoutes ¶
AddRoutes adds routes to the provided podCIDR. It overrides the routes if they already exist, without error.
func (*Client) DeleteExternalIPRoute ¶ added in v1.12.0
DeleteExternalIPRoute deletes the route entry for the external IP.
func (*Client) DeleteLocalAntreaFlexibleIPAMPodRule ¶ added in v1.4.0
func (*Client) DeleteNodePort ¶ added in v1.4.0
func (*Client) DeleteRouteForLink ¶ added in v1.12.0
func (*Client) DeleteRoutes ¶
DeleteRoutes deletes routes to the provided podCIDR. It does nothing if the routes don't exist, without error.
func (*Client) DeleteSNATRule ¶
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 ¶
MigrateRoutesToGw is not supported on Windows.
func (*Client) Reconcile ¶
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.
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.