Skip to content

Commit 1a40f0a

Browse files
tixxdzjrfastab
authored andcommitted
tests:sensors: add bpf cgroups sensor to test
This allows to load and test bpf cgroups programs. Later we will move these bpf cgroups programs to be part of the base sensor; until then let's babysit them here. Signed-off-by: Djalal Harouni <[email protected]>
1 parent 764f3ad commit 1a40f0a

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

pkg/sensors/test/cgroups.go

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
// Copyright Authors of Tetragon
3+
4+
package test
5+
6+
import (
7+
"github.com/cilium/tetragon/pkg/kernels"
8+
"github.com/cilium/tetragon/pkg/sensors"
9+
"github.com/cilium/tetragon/pkg/sensors/program"
10+
)
11+
12+
var (
13+
CgroupMkdir = program.Builder(
14+
"bpf_cgroup_mkdir.o",
15+
"cgroup/cgroup_mkdir",
16+
"raw_tracepoint/cgroup_mkdir",
17+
"tg_tp_cgrp_mkdir",
18+
"raw_tracepoint",
19+
)
20+
21+
CgroupRmdir = program.Builder(
22+
"bpf_cgroup_rmdir.o",
23+
"cgroup/cgroup_rmdir",
24+
"raw_tracepoint/cgroup_rmdir",
25+
"tg_tp_cgrp_rmdir",
26+
"raw_tracepoint",
27+
)
28+
29+
CgroupRelease = program.Builder(
30+
"bpf_cgroup_release.o",
31+
"cgroup/cgroup_release",
32+
"raw_tracepoint/cgroup_release",
33+
"tg_tp_cgrp_release",
34+
"raw_tracepoint",
35+
)
36+
37+
/* Cgroup tracking maps */
38+
CgroupsTrackingMap = program.MapBuilder("tg_cgrps_tracking_map", CgroupMkdir)
39+
CgroupsTrackingMapV53 = program.MapBuilder("tg_cgrps_tracking_map", CgroupMkdir)
40+
)
41+
42+
func getCgroupsTrackingMap() *program.Map {
43+
if kernels.EnableLargeProgs() {
44+
return CgroupsTrackingMapV53
45+
}
46+
return CgroupsTrackingMap
47+
}
48+
49+
func getCgroupPrograms() []*program.Program {
50+
progs := []*program.Program{
51+
CgroupMkdir,
52+
CgroupRmdir,
53+
CgroupRelease,
54+
}
55+
return progs
56+
}
57+
58+
func getCgroupMaps() []*program.Map {
59+
maps := []*program.Map{
60+
getCgroupsTrackingMap(),
61+
}
62+
return maps
63+
}
64+
65+
// GetCgroupSensor returns the Cgroups base sensor
66+
func GetCgroupSensor() *sensors.Sensor {
67+
return &sensors.Sensor{
68+
Name: "test-sensor-cgroups",
69+
Progs: getCgroupPrograms(),
70+
Maps: getCgroupMaps(),
71+
}
72+
}

0 commit comments

Comments
 (0)