socketinfo

package
v0.28.0 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2021 License: Apache-2.0 Imports: 24 Imported by: 3

Documentation

Index

Constants

View Source
const (
	StateUnknown     = "UNKNOWN"
	StateEstablished = "ESTABLISHED"
	StateSynSent     = "SYN_SENT"
	StateSynRecv     = "SYN_RECV"
	StateFinWait1    = "FIN_WAIT1"
	StateFinWait2    = "FIN_WAIT2"
	StateTimeWait    = "TIME_WAIT"
	StateClose       = "CLOSE"
	StateCloseWait   = "CLOSE_WAIT"
	StateLastAck     = "LAST_ACK"
	StateListen      = "LISTEN"
	StateClosing     = "CLOSING"
)

Variables

This section is empty.

Functions

func HashTuple

func HashTuple(protocol flow.FlowProtocol, srcAddr net.IP, srcPort int64, dstAddr net.IP, dstPort int64) string

HashTuple computes a hash value for a connection 5 tuple

func NewProbe added in v0.26.0

func NewProbe(ctx tp.Context, bundle *probe.Bundle) (probe.Handler, error)

NewProbe returns a new socket info topology probe

Types

type ConnectionCache

type ConnectionCache struct {
	*cache.Cache
}

ConnectionCache describes a cache of TCP connections

func NewConnectionCache

func NewConnectionCache() *ConnectionCache

NewConnectionCache returns a new connection cache

func (*ConnectionCache) Get

func (c *ConnectionCache) Get(protocol flow.FlowProtocol, srcIP net.IP, srcPort int, dstIP net.IP, dstPort int) (interface{}, string)

Get returns the connection for a pair of TCP addresses

func (*ConnectionCache) Map

func (c *ConnectionCache) Map(protocol flow.FlowProtocol, srcIP net.IP, srcPort int, dstIP net.IP, dstPort int) (a *ProcessInfo, b *ProcessInfo)

Map a flow to a process

func (*ConnectionCache) MapTCP

func (c *ConnectionCache) MapTCP(srcAddr, dstAddr *net.TCPAddr) (a *ProcessInfo, b *ProcessInfo)

MapTCP returns the sending and receiving processes for a pair of TCP addresses

func (*ConnectionCache) MapUDP

func (c *ConnectionCache) MapUDP(srcAddr, dstAddr *net.UDPAddr) (a *ProcessInfo, b *ProcessInfo)

MapUDP returns the sending and receiving processes for a pair of UDP addresses

func (*ConnectionCache) Remove

func (c *ConnectionCache) Remove(protocol flow.FlowProtocol, srcAddr, dstAddr *net.TCPAddr)

Remove the entry for a pair of TCP addresses

func (*ConnectionCache) Set

func (c *ConnectionCache) Set(hash string, obj interface{})

Set maps a hash to a connection

type ConnectionInfo

type ConnectionInfo struct {
	ProcessInfo   `mapstructure:",squash"`
	LocalAddress  string
	LocalPort     int64
	RemoteAddress string
	RemotePort    int64
	Protocol      flow.FlowProtocol
	State         ConnectionState
}

ConnectionInfo describes a connection and its corresponding process easyjson:json gendecoder

func (*ConnectionInfo) Decode

func (c *ConnectionInfo) Decode(obj interface{}) error

Decode an JSON object to connection info

func (*ConnectionInfo) GetField

func (obj *ConnectionInfo) GetField(key string) (interface{}, error)

func (*ConnectionInfo) GetFieldBool added in v0.26.0

func (obj *ConnectionInfo) GetFieldBool(key string) (bool, error)

func (*ConnectionInfo) GetFieldInt64

func (obj *ConnectionInfo) GetFieldInt64(key string) (int64, error)

func (*ConnectionInfo) GetFieldKeys added in v0.21.0

func (obj *ConnectionInfo) GetFieldKeys() []string

func (*ConnectionInfo) GetFieldString

func (obj *ConnectionInfo) GetFieldString(key string) (string, error)

func (*ConnectionInfo) Hash

func (c *ConnectionInfo) Hash() string

Hash computes the hash of a connection

func (ConnectionInfo) MarshalEasyJSON added in v0.26.0

func (v ConnectionInfo) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ConnectionInfo) MarshalJSON added in v0.26.0

func (v ConnectionInfo) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ConnectionInfo) MatchBool added in v0.26.0

func (obj *ConnectionInfo) MatchBool(key string, predicate getter.BoolPredicate) bool

func (*ConnectionInfo) MatchInt64 added in v0.26.0

func (obj *ConnectionInfo) MatchInt64(key string, predicate getter.Int64Predicate) bool

func (*ConnectionInfo) MatchString added in v0.26.0

func (obj *ConnectionInfo) MatchString(key string, predicate getter.StringPredicate) bool

func (*ConnectionInfo) UnmarshalEasyJSON added in v0.26.0

func (v *ConnectionInfo) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ConnectionInfo) UnmarshalJSON added in v0.26.0

func (v *ConnectionInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ConnectionState

type ConnectionState string

ConnectionState describes the state of a connection

type ProbeHandler added in v0.25.0

type ProbeHandler struct {
	probe.Handler
}

ProbeHandler describes a probe that collects active connections

type ProcProbe added in v0.25.0

type ProcProbe struct {
	Ctx tp.Context
	// contains filtered or unexported fields
}

ProcProbe describes a probe that collects active connections

func NewProcProbe added in v0.25.0

func NewProcProbe(ctx tp.Context) *ProcProbe

NewProcProbe create a new socket info probe

func (*ProcProbe) MapTCP added in v0.25.0

func (s *ProcProbe) MapTCP(srcAddr, dstAddr *net.TCPAddr) (src *ProcessInfo, dst *ProcessInfo)

MapTCP returns the sending and receiving processes for a pair of TCP addresses When using /proc, if the connection was not found at the first try, we scan /proc again

func (*ProcProbe) Start added in v0.25.0

func (s *ProcProbe) Start() error

Start the socket info probe

func (*ProcProbe) Stop added in v0.25.0

func (s *ProcProbe) Stop()

Stop the socket info probe

type ProcessInfo

type ProcessInfo struct {
	Process string
	Pid     int64
	Name    string
}

ProcessInfo describes the information of a running process

Jump to

Keyboard shortcuts

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