nfrule

package
v0.0.0-...-2572d14 Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFoundRule      = errors.New("rule is not found")
	ErrConvertRuleToJson = errors.New("failed conversion rule to json")
	ErrExpiredTrace      = errors.New("expired trace")
)

Error messages which can be returned by ruler.

Functions

This section is empty.

Types

type CountRulerNlErrMemEvent

type CountRulerNlErrMemEvent struct {
	observer.EventType
}

CountRulerNlErrMemEvent -

type Deps

type Deps struct {
	// Adapters
	AgentSubject observer.Subject
	NlWatcher    NetlinkWatcher
}

Deps - dependency

type ErrRule

type ErrRule struct {
	Err error
}

ErrRule -

func (ErrRule) Cause

func (e ErrRule) Cause() error

Cause -

func (ErrRule) Error

func (e ErrRule) Error() string

Error -

type NetlinkWatcher

type NetlinkWatcher interface {
	Read() chan nl.NlData
}

RuleTracer - common interface for the rule trace

type RuleCache

type RuleCache struct {
	// contains filtered or unexported fields
}

RuleCache - cache to store nftables rules

func NewRuleCache

func NewRuleCache(ttl time.Duration) *RuleCache

NewRuleCache - creator for the cache

func (*RuleCache) Close

func (r *RuleCache) Close() error

Close rule cache

func (*RuleCache) GetRule

func (r *RuleCache) GetRule(k RuleEntryKey) (RuleEntry, bool)

Get rule by key

func (*RuleCache) InsertRule

func (r *RuleCache) InsertRule(rl RuleEntry)

InsertRule insert rule into cache

func (*RuleCache) Refresh

func (r *RuleCache) Refresh() error

Refresh - update rule cache

func (*RuleCache) RmRule

func (r *RuleCache) RmRule(k RuleEntryKey)

RmRule remove rule by key

func (*RuleCache) UpdRule

func (r *RuleCache) UpdRule(rl RuleEntry)

UpdRule update rule in cache

type RuleEntry

type RuleEntry struct {
	RuleNative *nftLib.Rule
	RuleStr    string

	At time.Time
	// contains filtered or unexported fields
}

type RuleEntryKey

type RuleEntryKey struct {
	TableName   string
	TableFamily nftLib.TableFamily
	ChainName   string
	Handle      uint64
}

type RuleTracer

type RuleTracer interface {
	Run(ctx context.Context) (err error)
	GetRuleForTrace(tr *model.NetlinkTrace) (re RuleEntry, err error)
	Close() error
}

RuleTracer - common interface for the rule trace

func NewRuleTrace

func NewRuleTrace(d Deps) (rt RuleTracer)

Jump to

Keyboard shortcuts

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