0

bpf内で「よく」理解できれば、tools/testing/selftests/bpf/bpf_helpers.h heleprs プロトタイプが定義されます。

特定のプログラム タイプで使用できるヘルパーを知りたい場合は、次の結果内で検索する必要があります。'func_proto(enum bpf_func_id func_id' kernel/ net/ drivers/

たとえば、ソケットフィルタープログラムが呼び出すことができるヘルパーを確認するには、次の定義を読むことができます

static const struct bpf_func_proto *
sock_filter_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
{
        switch (func_id) {
        /* inet and inet6 sockets are created in a process
         * context so there is always a valid uid/gid
         */
        case BPF_FUNC_get_current_uid_gid:
                return &bpf_get_current_uid_gid_proto;
        case BPF_FUNC_get_local_storage:
                return &bpf_get_local_storage_proto;
        default:
                return bpf_base_func_proto(func_id);
        }
}

質問:

1) は見えませんload_halfが、ソケット フィルター プログラムから呼び出すことはできます。なんで?socket_filter2)との違いはsk_filterどれですか?

4

1 に答える 1