connections

package
v0.0.0-...-bfd0bb2 Latest Latest
Warning

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

Go to latest
Published: May 27, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HeliosFlowToAntreaConnection

func HeliosFlowToAntreaConnection(conn *conntrack.Flow) *flowexporter.Connection

func NetlinkFlowToAntreaConnection

func NetlinkFlowToAntreaConnection(conn *conntrack.Flow) *flowexporter.Connection

func NewConnTrackSystem

func NewConnTrackSystem(nodeConfig *config.NodeConfig, serviceCIDRv4 *net.IPNet, serviceCIDRv6 *net.IPNet, isAntreaProxyEnabled bool) *connTrackSystem

TODO: detect the endianness of the system when initializing conntrack dumper to handle situations on big-endian platforms. All connection labels are required to store in little endian format in conntrack dumper.

func NewConnectionStore

func NewConnectionStore(
	connTrackDumper ConnTrackDumper,
	flowRecords *flowrecords.FlowRecords,
	ifaceStore interfacestore.InterfaceStore,
	v4Enabled bool,
	v6Enabled bool,
	pollInterval time.Duration,
) *connectionStore

func SetupConntrackParameters

func SetupConntrackParameters() error

Types

type ConnTrackDumper

type ConnTrackDumper interface {
	// DumpFlows returns a list of filtered connections and the number of total connections.
	DumpFlows(zoneFilter uint16) ([]*flowexporter.Connection, int, error)
	// GetMaxConnections returns the size of the connection tracking table.
	GetMaxConnections() (int, error)
}

ConnTrackDumper is an interface that is used to dump connections from conntrack module. This supports dumping through netfilter socket (OVS kernel datapath) and ovs-appctl command (OVS userspace datapath). In future, support will be extended to Windows.

func InitializeConnTrackDumper

func InitializeConnTrackDumper(nodeConfig *config.NodeConfig, serviceCIDRv4 *net.IPNet, serviceCIDRv6 *net.IPNet, isAntreaProxyEnabled bool) ConnTrackDumper

InitializeConnTrackDumper initializes the ConnTrackDumper interface for different OS and datapath types.

type ConnectionStore

type ConnectionStore interface {
	// Run enables the periodical polling of conntrack connections at a given flowPollInterval.
	Run(stopCh <-chan struct{})
	// GetConnByKey gets the connection in connection map given the connection key.
	GetConnByKey(connKey flowexporter.ConnectionKey) (*flowexporter.Connection, bool)
	// SetExportDone sets DoneExport field of connection to true given the connection key.
	SetExportDone(connKey flowexporter.ConnectionKey) error
	// ForAllConnectionsDo execute the callback for each connection in connection map.
	ForAllConnectionsDo(callback flowexporter.ConnectionMapCallBack) error
}

type NetFilterConnTrack

type NetFilterConnTrack interface {
	Dial() error
	DumpFlowsInCtZone(zoneFilter uint16) ([]*flowexporter.Connection, error)
}

NetFilterConnTrack interface helps for testing the code that contains the third party library functions ("github.com/ti-mo/conntrack")

Jump to

Keyboard shortcuts

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