`cgroup_skb` returns 0 will block traffic in the current direction.
An example program should not block traffic, this can cause difficulties for beginners.
This adds a LICENSE to the generated code, but also to the code included
in this repository. To make things simple, userspace code is Apache/MIT
licensed - like Aya. eBPF code is MIT/GPL which is GPL compatible to
allow use of all the eBPF helper functions, but is also permissively
licensed via the MIT license.
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
This adds `perf_event` program type as a template entry.
The new entry comes with a skeleton example which register
scheduled events on each CPU at 1 HZ, triggered by the kernel
(based on clock ticks). The corresponding BPF logic logs each
event, and can identify kernel tasks from userland processes.
Users should opt in into `unsafe` when performing particular unsafe
actions (accesing raw pointers, interacting with maps etc.), but
assuming that the whole eBPF program code is unsafe is quite an
exaggeration.
Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
That new context type exposes `data` and `data_end` fields for direct
access to the packet payload.
Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
User may specify a program_type by prompt or CLI flag.
We then generate skeleton code to the ebpf program for a noop program of
that type.
Requires cargo-generate@main
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>