summaryrefslogtreecommitdiff
path: root/internal/flags
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-02-15 09:58:49 +0200
committerPaul Buetow <paul@buetow.org>2024-02-15 09:58:49 +0200
commita7733cd4ab00b542d7e1afd53d9319b7f8b33674 (patch)
tree4975fe995d15fd7af9be5b1aeb870f52e19aac36 /internal/flags
parent00b7b0383d6610a585dbea190a2c9c6326174fe9 (diff)
map sizes can be specified through flags
Diffstat (limited to 'internal/flags')
-rw-r--r--internal/flags/flags.go34
1 files changed, 33 insertions, 1 deletions
diff --git a/internal/flags/flags.go b/internal/flags/flags.go
index 674f22f..1ba9d60 100644
--- a/internal/flags/flags.go
+++ b/internal/flags/flags.go
@@ -2,17 +2,22 @@ package flags
import (
"flag"
+ "fmt"
"unsafe"
bpf "github.com/aquasecurity/libbpfgo"
)
type Flags struct {
- UidFilter int
+ UidFilter int
+ FdEventMapSize int
+ OpenEventMapSize int
}
func New() (flags Flags) {
flag.IntVar(&flags.UidFilter, "uid", 0, "Filter for processes with UID")
+ flag.IntVar(&flags.FdEventMapSize, "fdMapSize", 4096, "BPF FD event map size")
+ flag.IntVar(&flags.OpenEventMapSize, "openMapSize", 1024, "BPF open event map size")
flag.Parse()
return flags
}
@@ -32,3 +37,30 @@ func (flags Flags) SetBPF(bpfModule *bpf.Module) error {
key := uint32(1)
return flagsMap.Update(unsafe.Pointer(&key), unsafe.Pointer(&flagsValues))
}
+
+func (flags Flags) ResizeBPFMaps(bpfModule *bpf.Module) error {
+ if err := resizeBPFMap(bpfModule, "open_event_map", uint32(flags.OpenEventMapSize)); err != nil {
+ return err
+ }
+ if err := resizeBPFMap(bpfModule, "fd_event_map", uint32(flags.FdEventMapSize)); err != nil {
+ return err
+ }
+ return nil
+}
+
+func resizeBPFMap(module *bpf.Module, name string, size uint32) error {
+ m, err := module.GetMap("open_event_map")
+ if err != nil {
+ return err
+ }
+
+ if err = m.SetMaxEntries(size); err != nil {
+ return err
+ }
+
+ if actual := m.MaxEntries(); actual != size {
+ return fmt.Errorf("map resize failed, expected %v, actual %v", size, actual)
+ }
+
+ return nil
+}