connections

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2020 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewConnTrackOvsAppCtl

func NewConnTrackOvsAppCtl(nodeConfig *config.NodeConfig, serviceCIDR *net.IPNet, ovsctlClient ovsctl.OVSCtlClient) *connTrackOvsCtl

func NewConnTrackSystem

func NewConnTrackSystem(nodeConfig *config.NodeConfig, serviceCIDR *net.IPNet) *connTrackSystem

Types

type ConnTrackDumper

type ConnTrackDumper interface {
	DumpFlows(zoneFilter uint16) ([]*flowexporter.Connection, 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, serviceCIDR *net.IPNet, ovsctlClient ovsctl.OVSCtlClient, ovsDatapathType string) ConnTrackDumper

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

type ConnectionStore

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

func NewConnectionStore

func NewConnectionStore(connTrackDumper ConnTrackDumper, ifaceStore interfacestore.InterfaceStore, serviceCIDR *net.IPNet, proxier proxy.Proxier, pollInterval time.Duration) *ConnectionStore

func (*ConnectionStore) DeleteConnectionByKey

func (cs *ConnectionStore) DeleteConnectionByKey(connKey flowexporter.ConnectionKey) error

DeleteConnectionByKey deletes the connection in connection map given the connection key

func (*ConnectionStore) ForAllConnectionsDo

func (cs *ConnectionStore) ForAllConnectionsDo(callback flowexporter.ConnectionMapCallBack) error

ForAllConnectionsDo execute the callback for each connection in connection map

func (*ConnectionStore) GetConnByKey

func (cs *ConnectionStore) GetConnByKey(flowTuple flowexporter.ConnectionKey) (*flowexporter.Connection, bool)

GetConnByKey gets the connection in connection map given the connection key

func (*ConnectionStore) Poll

func (cs *ConnectionStore) Poll() (int, error)

Poll calls into conntrackDumper interface to dump conntrack flows TODO: As optimization, only poll invalid/closed connections during every poll, and poll the established connections right before the export.

func (*ConnectionStore) Run

func (cs *ConnectionStore) Run(stopCh <-chan struct{}, pollDone chan struct{})

Run enables the periodical polling of conntrack connections, at the given flowPollInterval

type NetFilterConnTrack

type NetFilterConnTrack interface {
	Dial() error
	DumpFilter(filter conntrack.Filter) ([]*flowexporter.Connection, error)
}

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

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