flowtrack
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
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¶
typeCache¶
type Cache[Valueany] struct {// MaxEntries is the maximum number of cache entries before// an item is evicted. Zero means no limit.MaxEntriesint// 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¶
Add adds a value to the cache, set or updating its associatedvalue.
If MaxEntries is non-zero and the length of the cache is greaterafter any addition, the least recently used value is evicted.
func (*Cache[Value])Get¶
Get looks up a key's value from the cache, also reportingwhether it was present.
func (*Cache[Value])RemoveOldest¶
func (c *Cache[Value]) RemoveOldest()
RemoveOldest removes the oldest item from the cache, if any.
typeTuple¶
type Tuple struct {// contains filtered or unexported fields}Tuple is a 5-tuple of proto, source and destination IP and port.
This struct originally used netip.AddrPort, but that was about twice as slowwhen used as a map key due to the alignment and extra space for the IPv6 zonepointers (unneeded for all our current 2024-06-17 flowtrack needs).
This struct is packed optimally and doesn't contain gaps or pointers.