bpf_prog_get_type和类型检查实现

时间:2019-09-16 09:14:56

标签: c bpf ebpf

我试图了解bpf_prog_get_type()的功能。我以为它的目标是检查作为第一个参数传递的fd是否对应于将类型作为第二个参数传递给函数的程序。例如下面的代码

prog = bpf_prog_get_type(fd, BPF_PROG_TYPE_SOCKET_FILTER);
    if (IS_ERR(prog))
        return PTR_ERR(prog);

在我看来,编的类型需要为BPF_PROG_TYPE_SOCKET_FILTER。但是内部bpf_prog_get_type()会调用bpf_prog_get_type_dev(),而后者只会返回。

static inline struct bpf_prog *bpf_prog_get_type_dev(u32 ufd,
                             enum bpf_prog_type type,
                             bool attach_drv)
{
    return ERR_PTR(-EOPNOTSUPP);
}

问题: 我想念什么?如何执行类型检查?

0 个答案:

没有答案