flowtracking

package
v10.267.37+incompatible Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2021 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

Client is a flow update client

func NewClient

func NewClient(ctx context.Context) (*Client, error)

NewClient creates a new flow tracking client. s

func (*Client) Close

func (c *Client) Close() error

Close will close the connection of the client.

func (*Client) GetOriginalDest

func (c *Client) GetOriginalDest(ipSrc, ipDst net.IP, srcport, dstport uint16, protonum uint8) (net.IP, uint16, uint32, error)

GetOriginalDest gets the original destination ip, port and the mark on the packet

func (*Client) UpdateApplicationFlowMark

func (c *Client) UpdateApplicationFlowMark(ipSrc, ipDst net.IP, protonum uint8, srcport, dstport uint16, newmark uint32) error

UpdateApplicationFlowMark will update the mark for a flow based on the packet information received from an application. It will use the forward entries of conntrack for that.

func (*Client) UpdateMark

func (c *Client) UpdateMark(ipSrc, ipDst net.IP, protonum uint8, srcport, dstport uint16, newmark uint32, network bool) error

UpdateMark updates the mark of the flow. Caller must indicate if this is an application flow or a network flow.

func (*Client) UpdateNetworkFlowMark

func (c *Client) UpdateNetworkFlowMark(ipSrc, ipDst net.IP, protonum uint8, srcport, dstport uint16, newmark uint32) error

UpdateNetworkFlowMark will update the mark for a flow based on packet information received from the network. It will use the reverse tables in conntrack for that.

type FlowClient

type FlowClient interface {
	// Close will close the connection of the client.
	Close() error
	// UpdateMark updates the mark of the flow. Caller must indicate if this is an application
	// flow or a network flow.
	UpdateMark(ipSrc, ipDst net.IP, protonum uint8, srcport, dstport uint16, newmark uint32, network bool) error
	// GetOriginalDest gets the original destination ip, port and the mark on the packet
	GetOriginalDest(ipSrc, ipDst net.IP, srcport, dstport uint16, protonum uint8) (net.IP, uint16, uint32, error)
	// UpdateNetworkFlowMark will update the mark for a flow based on packet information received
	// from the network. It will use the reverse tables in conntrack for that.
	UpdateNetworkFlowMark(ipSrc, ipDst net.IP, protonum uint8, srcport, dstport uint16, newmark uint32) error
	// UpdateApplicationFlowMark will update the mark for a flow based on the packet information
	// received from an application. It will use the forward entries of conntrack for that.
	UpdateApplicationFlowMark(ipSrc, ipDst net.IP, protonum uint8, srcport, dstport uint16, newmark uint32) error
}

FlowClient defines an interface that trireme uses to communicate with the conntrack

Jump to

Keyboard shortcuts

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