flowtrack

package
v1.60.1 Latest Latest
Warning

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

Go to latest
Published: Feb 29, 2024 License: BSD-3-Clause Imports: 4 Imported by: 9

Documentation

Overview

Package flowtrack contains types for tracking TCP/UDP flows by 4-tuples.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache[Value any] struct {
	// MaxEntries is the maximum number of cache entries before
	// an item is evicted. Zero means no limit.
	MaxEntries int
	// contains filtered or unexported fields
}

Cache is an LRU cache keyed by Tuple.

The zero value is valid to use.

It is not safe for concurrent access.

func (*Cache[Value]) Add

func (c *Cache[Value]) Add(key Tuple, value Value)

Add adds a value to the cache, set or updating its associated value.

If MaxEntries is non-zero and the length of the cache is greater after any addition, the least recently used value is evicted.

func (*Cache[Value]) Get

func (c *Cache[Value]) Get(key Tuple) (value *Value, ok bool)

Get looks up a key's value from the cache, also reporting whether it was present.

func (*Cache[Value]) Len

func (c *Cache[Value]) Len() int

Len returns the number of items in the cache.

func (*Cache[Value]) Remove

func (c *Cache[Value]) Remove(key Tuple)

Remove removes the provided key from the cache if it was present.

func (*Cache[Value]) RemoveOldest

func (c *Cache[Value]) RemoveOldest()

RemoveOldest removes the oldest item from the cache, if any.

type Tuple

type Tuple struct {
	Proto ipproto.Proto  `json:"proto"`
	Src   netip.AddrPort `json:"src"`
	Dst   netip.AddrPort `json:"dst"`
}

Tuple is a 5-tuple of proto, source and destination IP and port.

func (Tuple) String

func (t Tuple) String() string

Jump to

Keyboard shortcuts

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