[英]Why load_half is defined in bpf_helpers but it doesn't appear in filter.c?
[英]net/core/filter.c and linux/bpf/verifier.c
如果我最初很了解cBPF验证程序和解释程序都在net/core/fiter.c
,例如sk_run_filter
访问https://elixir.bootlin.com/linux/v3.2/source/net/core/filter.c# L112只是转换cBPF指令,将它们应用到仿真寄存器上,然后直接应用到sk_buff上。 在sk_chk_filter
检查指令是否全部合法。
目前,我已经看到filter.c中仍然有一个bpf_check_classic
函数来替代旧的sk_chk_filter
。 检查之后,尝试将程序JIT,如果不可能的话,下一步是在eBPF中转换cBPF。
问题:
1)在最后一个net/core/filter.c
运行jitted / converted cbpf过滤器的调用实际上在哪里?
2)将cBPF程序作为eBPF程序执行的函数调用顺序是什么?
据我所知,cBPF程序仅用于seccomp-bpf和套接字过滤器。
kernel/seccomp.c
seccomp.c中。 net/core/filter.c
。 然后,对于所有类型的套接字, sk_filter_trim_cap()
都会在内核中的多个位置被调用 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.