|
| 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