• Hou Tao's avatar
    bpf: Add dummy BPF STRUCT_OPS for test purpose · c196906d
    Hou Tao authored
    Currently the test of BPF STRUCT_OPS depends on the specific bpf
    implementation of tcp_congestion_ops, but it can not cover all
    basic functionalities (e.g, return value handling), so introduce
    a dummy BPF STRUCT_OPS for test purpose.
    
    Loading a bpf_dummy_ops implementation from userspace is prohibited,
    and its only purpose is to run BPF_PROG_TYPE_STRUCT_OPS program
    through bpf(BPF_PROG_TEST_RUN). Now programs for test_1() & test_2()
    are supported. The following three cases are exercised in
    bpf_dummy_struct_ops_test_run():
    
    (1) test and check the value returned from state arg in test_1(state)
    The content of state is copied from userspace pointer and copied back
    after calling test_1(state). The user pointer is saved in an u64 array
    and the array address is passed through ctx_in.
    
    (2) test and check the return value of test_1(NULL)
    Just simulate the case in which an invalid input argument is passed in.
    
    (3) test multiple arguments passing in test_2(state, ...)
    5 arguments are passed through ctx_in in form of u64 array. The first
    element of array is userspace pointer of state and others 4 arguments
    follow.
    Signed-off-by: default avatarHou Tao <houtao1@huawei.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Acked-by: default avatarMartin KaFai Lau <kafai@fb.com>
    Link: https://lore.kernel.org/bpf/20211025064025.2567443-4-houtao1@huawei.com
    c196906d
Makefile 165 Bytes