Documentation
¶
Index ¶
- func HashTuple(protocol flow.FlowProtocol, srcAddr net.IP, srcPort int64, dstAddr net.IP, ...) string
- type ConnectionCache
- func (c *ConnectionCache) Get(protocol flow.FlowProtocol, srcIP net.IP, srcPort int, dstIP net.IP, ...) (interface{}, string)
- func (c *ConnectionCache) Map(protocol flow.FlowProtocol, srcIP net.IP, srcPort int, dstIP net.IP, ...) (a *ProcessInfo, b *ProcessInfo)
- func (c *ConnectionCache) MapTCP(srcAddr, dstAddr *net.TCPAddr) (a *ProcessInfo, b *ProcessInfo)
- func (c *ConnectionCache) MapUDP(srcAddr, dstAddr *net.UDPAddr) (a *ProcessInfo, b *ProcessInfo)
- func (c *ConnectionCache) Remove(protocol flow.FlowProtocol, srcAddr, dstAddr *net.TCPAddr)
- func (c *ConnectionCache) Set(hash string, obj interface{})
- type ConnectionInfo
- type ConnectionState
- type ProbeHandler
- type ProcProbe
- type ProcessInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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) Hash ¶
func (c *ConnectionInfo) Hash() string
Hash computes the hash of a connection
type ConnectionState ¶
type ConnectionState string
ConnectionState describes the state of a connection
type ProbeHandler ¶ added in v0.25.0
ProbeHandler describes a probe that collects active connections
type ProcProbe ¶ added in v0.25.0
ProcProbe describes a probe that collects active connections
func NewProcProbe ¶ added in v0.25.0
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
Source Files
¶
- connection.go
- socket_info.go
- socket_info_noebpf.go
- socket_info_proc.go