mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 08:02:30 +00:00
ba95c74524
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@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Acked-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* include/linux/sizes.h
|
|
*/
|
|
#ifndef __LINUX_SIZES_H__
|
|
#define __LINUX_SIZES_H__
|
|
|
|
#include <linux/const.h>
|
|
|
|
#define SZ_1 0x00000001
|
|
#define SZ_2 0x00000002
|
|
#define SZ_4 0x00000004
|
|
#define SZ_8 0x00000008
|
|
#define SZ_16 0x00000010
|
|
#define SZ_32 0x00000020
|
|
#define SZ_64 0x00000040
|
|
#define SZ_128 0x00000080
|
|
#define SZ_256 0x00000100
|
|
#define SZ_512 0x00000200
|
|
|
|
#define SZ_1K 0x00000400
|
|
#define SZ_2K 0x00000800
|
|
#define SZ_4K 0x00001000
|
|
#define SZ_8K 0x00002000
|
|
#define SZ_16K 0x00004000
|
|
#define SZ_32K 0x00008000
|
|
#define SZ_64K 0x00010000
|
|
#define SZ_128K 0x00020000
|
|
#define SZ_256K 0x00040000
|
|
#define SZ_512K 0x00080000
|
|
|
|
#define SZ_1M 0x00100000
|
|
#define SZ_2M 0x00200000
|
|
#define SZ_4M 0x00400000
|
|
#define SZ_8M 0x00800000
|
|
#define SZ_16M 0x01000000
|
|
#define SZ_32M 0x02000000
|
|
#define SZ_64M 0x04000000
|
|
#define SZ_128M 0x08000000
|
|
#define SZ_256M 0x10000000
|
|
#define SZ_512M 0x20000000
|
|
|
|
#define SZ_1G 0x40000000
|
|
#define SZ_2G 0x80000000
|
|
|
|
#define SZ_4G _AC(0x100000000, ULL)
|
|
|
|
#endif /* __LINUX_SIZES_H__ */
|