engine: more performance improvements

This commit is contained in:
2026-05-18 09:17:24 +05:30
parent 77dba0c4fa
commit 581041b1a7
12 changed files with 1005 additions and 103 deletions
+6 -1
View File
@@ -27,6 +27,7 @@ const (
type engine struct {
logger Logger
io io.PacketIO
macResolver *sourceMACResolver
workers []*worker
stats *statsCounters
verdicts sync.Map // streamID(uint32) -> verdictEntry
@@ -46,7 +47,7 @@ func NewEngine(config Config) (Engine, error) {
}
overflowPolicy := config.OverflowPolicy
if overflowPolicy == "" {
overflowPolicy = OverflowPolicyDrop
overflowPolicy = OverflowPolicyAccept
}
selectionMode := config.AnalyzerSelectionMode
if selectionMode == "" {
@@ -80,6 +81,7 @@ func NewEngine(config Config) (Engine, error) {
e := &engine{
logger: config.Logger,
io: config.IO,
macResolver: macResolver,
workers: workers,
stats: stats,
overflowPolicy: overflowPolicy,
@@ -105,6 +107,9 @@ func (e *engine) Run(ctx context.Context) error {
for _, w := range e.workers {
go w.Run(ioCtx)
}
if e.macResolver != nil {
go e.macResolver.Run(ioCtx)
}
go e.drainResults(ioCtx)
go e.sweepVerdicts(ioCtx)