• Daniel Borkmann's avatar
    selftests/bpf: Test bpf_mprog query API via libbpf and raw syscall · f9b08790
    Daniel Borkmann authored
    Add a new test case which performs double query of the bpf_mprog through
    libbpf API, but also via raw bpf(2) syscall. This is testing to gather
    first the count and then in a subsequent probe the full information with
    the program array without clearing passed structs in between.
    
      # ./vmtest.sh -- ./test_progs -t tc_opts
      [...]
      ./test_progs -t tc_opts
      [    1.398818] tsc: Refined TSC clocksource calibration: 3407.999 MHz
      [    1.400263] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fd336761, max_idle_ns: 440795243819 ns
      [    1.402734] clocksource: Switched to clocksource tsc
      [    1.426639] bpf_testmod: loading out-of-tree module taints kernel.
      [    1.428112] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel
      #252     tc_opts_after:OK
      #253     tc_opts_append:OK
      #254     tc_opts_basic:OK
      #255     tc_opts_before:OK
      #256     tc_opts_chain_classic:OK
      #257     tc_opts_chain_mixed:OK
      #258     tc_opts_delete_empty:OK
      #259     tc_opts_demixed:OK
      #260     tc_opts_detach:OK
      #261     tc_opts_detach_after:OK
      #262     tc_opts_detach_before:OK
      #263     tc_opts_dev_cleanup:OK
      #264     tc_opts_invalid:OK
      #265     tc_opts_max:OK
      #266     tc_opts_mixed:OK
      #267     tc_opts_prepend:OK
      #268     tc_opts_query:OK            <--- (new test)
      #269     tc_opts_replace:OK
      #270     tc_opts_revision:OK
      Summary: 19/0 PASSED, 0 SKIPPED, 0 FAILED
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/r/20231006220655.1653-4-daniel@iogearbox.netSigned-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
    f9b08790
tc_opts.c 69.7 KB