enumbpf_prog_type{BPF_PROG_TYPE_UNSPEC,/* Reserve 0 as invalid program type */BPF_PROG_TYPE_SOCKET_FILTER, BPF_PROG_TYPE_KPROBE, BPF_PROG_TYPE_SCHED_CLS, BPF_PROG_TYPE_SCHED_ACT, BPF_PROG_TYPE_TRACEPOINT, BPF_P
另外,BPF_MAP_TYPE_PERF_EVENT_ARRAY 类型的map也不需要指定max_entries,因为在libbpf中默认会将max_entries设置为系统中cpu个数。 二ebpf.o解析map 我们仍然以libbpf-bootstrap为开发框架进行说明。 一个完整的ebpf程序一般由两个部分组成,一个是ebpf部分(prog、map的定义等等),另外一个是用户态部分(解析ebpf部分...
BPF_MAP_TYPE_PROG_ARRAY, BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_MAP_TYPE_PERCPU_HASH, BPF_MAP_TYPE_PERCPU_ARRAY, BPF_MAP_TYPE_STACK_TRACE, BPF_MAP_TYPE_CGROUP_ARRAY, BPF_MAP_TYPE_LRU_HASH, BPF_MAP_TYPE_LRU_PERCPU_HASH, BPF_MAP_TYPE_LPM_TRIE, BPF_MAP_TYPE...
perf event map的构建流程: 上面构建流程完成后,用户态和内核态,就存在了event fd关联。接着用户态使用epoll来持续侦听fd上的通知,而fd实际上是映射到了缓存,所以当侦听到变化时,就可以到缓存中读取具体的数据。 在内核中,则通过 bpf_perf_event_output(ctx,&events,BPF_F_CURRENT_CPU, &data, sizeof(data)...
h 964 enum bpf_prog_type { 965 BPF_PROG_TYPE_UNSPEC, 966 BPF_PROG_TYPE_SOCKET_FILTER, 967 BPF_PROG_TYPE_KPROBE, 968 BPF_PROG_TYPE_SCHED_CLS, 969 BPF_PROG_TYPE_SCHED_ACT, 970 BPF_PROG_TYPE_TRACEPOINT, 971 BPF_PROG_TYPE_XDP, 972 BPF_PROG_TYPE_PERF_EVENT, 973 BPF_PROG_TYPE_...
enum bpf_map_type { BPF_MAP_TYPE_UNSPEC, /* Reserve 0 as invalid map type */ BPF_MAP_TYPE_HASH, BPF_MAP_TYPE_ARRAY, BPF_MAP_TYPE_PROG_ARRAY, BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_MAP_TYPE_PERCPU_HASH, BPF_MAP_TYPE_PERCPU_ARRAY, ...
bpf_register_prog_type(&perf_event_tl); return 0; }static int __init register_sk_filter_ops(void) { bpf_register_prog_type(&sk_filter_type); bpf_register_prog_type(&sched_cls_type); bpf_register_prog_type(&sched_act_type);
BPF_PROG_TYPE_PERF_EVENT, BPF_PROG_TYPE_CGROUP_SKB, BPF_PROG_TYPE_CGROUP_SOCK, BPF_PROG_TYPE_LWT_IN, BPF_PROG_TYPE_LWT_OUT, BPF_PROG_TYPE_LWT_XMIT, BPF_PROG_TYPE_SOCK_OPS, BPF_PROG_TYPE_SK_SKB, BPF_PROG_TYPE_CGROUP_DEVICE, ...
BPF_MAP_TYPE_HASH, BPF_MAP_TYPE_ARRAY, BPF_MAP_TYPE_PROG_ARRAY, BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_MAP_TYPE_PERCPU_HASH, BPF_MAP_TYPE_PERCPU_ARRAY, BPF_MAP_TYPE_STACK_TRACE, BPF_MAP_TYPE_CGROUP_ARRAY, BPF_MAP_TYPE_LRU_HASH, ...
BPF_PROG_TYPE_SOCKET_FILTER, BPF_PROG_TYPE_KPROBE, BPF_PROG_TYPE_SCHED_CLS, BPF_PROG_TYPE_SCHED_ACT, BPF_PROG_TYPE_TRACEPOINT, BPF_PROG_TYPE_XDP, BPF_PROG_TYPE_PERF_EVENT, BPF_PROG_TYPE_CGROUP_SKB, BPF_PROG_TYPE_CGROUP_SOCK,