Я хочу использовать bpf для перехвата / ввода некоторых событий, но я не смог найти документацию для них, например, так:
//https://github.com/torvalds/linux/blob/master/include/trace/events/net.h#L143
DEFINE_EVENT(net_dev_template, net_dev_queue,
TP_PROTO(struct sk_buff *skb),
TP_ARGS(skb)
);
Событие net_dev_queue
нигде не описано. Конечно, я могу посмотреть в его формате, используя cat /sys/kernel/debug/tracing/events/net/net_dev_queue/format
# cat /sys/kernel/debug/tracing/events/net/net_dev_queue/format
name: net_dev_queue
ID: 1355
format:
field:unsigned short common_type; offset:0; size:2; signed:0;
field:unsigned char common_flags; offset:2; size:1; signed:0;
field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
field:int common_pid; offset:4; size:4; signed:1;
field:void * skbaddr; offset:8; size:8; signed:0;
field:unsigned int len; offset:16; size:4; signed:0;
field:__data_loc char[] name; offset:20; size:4; signed:1;
print fmt: "dev=%s skbaddr=%p len=%u", __get_str(name), REC->skbaddr, REC->len
... но мне нужна дополнительная информация.