flowtrack

package
v0.0.0-...-ded95ce Latest Latest
Warning

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

Go to latest
Published: Dec 14, 2022 License: BSD-3-Clause Imports: 4 Imported by: 0

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 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) Add

func (c *Cache) Add(key Tuple, value any)

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) Get

func (c *Cache) Get(key Tuple) (value any, ok bool)

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

func (*Cache) Len

func (c *Cache) Len() int

Len returns the number of items in the cache.

func (*Cache) Remove

func (c *Cache) Remove(key Tuple)

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

func (*Cache) RemoveOldest

func (c *Cache) 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