On Fri, Jul 5, 2019 at 10:54 AM Quentin Monnet <quentin.monnet@xxxxxxxxxxxxx> wrote: > > Add a new "bpftool prog run" subcommand to run a loaded program on input > data (and possibly with input context) passed by the user. > > Print output data (and output context if relevant) into a file or into > the console. Print return value and duration for the test run into the > console. > > A "repeat" argument can be passed to run the program several times in a > row. > > The command does not perform any kind of verification based on program > type (Is this program type allowed to use an input context?) or on data > consistency (Can I work with empty input data?), this is left to the > kernel. > > Example invocation: > > # perl -e 'print "\x0" x 14' | ./bpftool prog run \ > pinned /sys/fs/bpf/sample_ret0 \ > data_in - data_out - repeat 5 > 0000000 0000 0000 0000 0000 0000 0000 0000 | ........ ...... > Return value: 0, duration (average): 260ns > > When one of data_in or ctx_in is "-", bpftool reads from standard input, > in binary format. Other formats (JSON, hexdump) might be supported (via > an optional command line keyword like "data_fmt_in") in the future if > relevant, but this would require doing more parsing in bpftool. > > v2: > - Fix argument names for function check_single_stdin(). (Yonghong) > > Signed-off-by: Quentin Monnet <quentin.monnet@xxxxxxxxxxxxx> > Reviewed-by: Jakub Kicinski <jakub.kicinski@xxxxxxxxxxxxx> Acked-by: Yonghong Song <yhs@xxxxxx>