• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stillya / wg-relay / 19409146590

16 Nov 2025 05:11PM UTC coverage: 13.028% (+0.09%) from 12.934%
19409146590

push

github

stillya
fix: align prometheus metrics with naming conventions

- Add _total suffix to counter metrics (wg_relay_packets_total, wg_relay_bytes_total)

0 of 17 new or added lines in 5 files covered. (0.0%)

108 of 829 relevant lines covered (13.03%)

0.14 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/pkg/dataplane/loader.go
1
package dataplane
2

3
import (
4
        "context"
5
        log "log/slog"
6

7
        "github.com/cilium/ebpf/rlimit"
8
        "github.com/pkg/errors"
9
        "github.com/stillya/wg-relay/pkg/dataplane/config"
10

11
        "github.com/stillya/wg-relay/pkg/dataplane/maps"
12
)
13

14
// Loader interface for eBPF proxy loaders
15
type Loader interface {
16
        LoadAndAttach(ctx context.Context, cfg config.ProxyConfig) error
17
        Close() error
18
        Maps() *maps.Maps
19
}
20

21
// Manager manages the eBPF dataplane
22
type Manager struct {
23
        cfg    config.ProxyConfig
24
        loader Loader
25
}
26

27
// ManagerConfig holds configuration for the dataplane manager
28
type ManagerConfig struct {
29
        Cfg    config.ProxyConfig
30
        Loader Loader
31
}
32

33
// NewManager creates a new dataplane manager
34
func NewManager(cfg ManagerConfig) (*Manager, error) {
×
35
        if err := rlimit.RemoveMemlock(); err != nil {
×
36
                return nil, errors.Wrap(err, "failed to remove memlock limit")
×
37
        }
×
38

39
        return &Manager{
×
40
                cfg:    cfg.Cfg,
×
41
                loader: cfg.Loader,
×
42
        }, nil
×
43
}
44

45
// LoadAndAttach loads eBPF programs and attaches them to interfaces
46
func (dm *Manager) LoadAndAttach(ctx context.Context) error {
×
47
        log.Info("Loading eBPF dataplane", "mode", dm.cfg.Mode)
×
48
        return dm.loader.LoadAndAttach(ctx, dm.cfg)
×
49
}
×
50

51
// Start initializes and starts the dataplane
52
func (dm *Manager) Start(ctx context.Context) error {
×
53
        return dm.LoadAndAttach(ctx)
×
54
}
×
55

56
// Stop stops the dataplane
57
func (dm *Manager) Stop() error {
×
58
        return dm.Close()
×
59
}
×
60

61
// Close cleans up all resources
62
func (dm *Manager) Close() error {
×
63
        if dm.loader != nil {
×
64
                return dm.loader.Close()
×
65
        }
×
66
        return nil
×
67
}
68

69
// Maps returns eBPF maps from the underlying loader
70
func (dm *Manager) Maps() *maps.Maps {
×
71
        if dm.loader != nil {
×
72
                return dm.loader.Maps()
×
73
        }
×
74

NEW
75
        return nil
×
76
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc