[PATCH 2/4] bpf: update BPF constants
Dmitry V. Levin
ldv at altlinux.org
Wed Mar 4 23:50:38 UTC 2020
On Sun, Feb 23, 2020 at 11:13:13AM +0100, Paul Chaignon wrote:
> * xlat/bpf_attach_flags.in (BPF_F_REPLACE): New constant introduced in
> Linux commit v5.6-rc1~151^2~199^2~7^2~3.
> * xlat/bpf_map_types.in (BPF_MAP_TYPE_STRUCT_OPS): New constant
> introduced in Linux commit v5.6-rc1~151^2~46^2~37^2~5.
> * xlat/bpf_prog_types.in (BPF_PROG_TYPE_STRUCT_OPS): New constant
> introduced in Linux commit v5.6-rc1~151^2~46^2~37^2~6.
> (BPF_PROG_TYPE_EXT): New constant introduced in Linux commit
> v5.6-rc1~151^2~46^2~1^2~2.
> * NEWS: Mention this.
> * tests/bpf.c (BPF_MAP_CREATE_checks, BPF_PROG_LOAD_checks,
> BPF_PROG8QUERY_checks): Update expected outputs.
> * tests/kernel_version.c (print_bpf_attr, main): Likewise.
>
> Signed-off-by: Paul Chaignon <paul.chaignon at gmail.com>
> ---
> NEWS | 1 +
> tests/bpf.c | 24 ++++++++++++------------
> tests/kernel_version.c | 6 +++---
> xlat/bpf_attach_flags.in | 5 +++--
> xlat/bpf_map_types.in | 1 +
> xlat/bpf_prog_types.in | 2 ++
> 6 files changed, 22 insertions(+), 17 deletions(-)
>
> diff --git a/NEWS b/NEWS
> index 1a4dbdda..c54b97e0 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -3,6 +3,7 @@ Noteworthy changes in release ?.? (????-??-??)
>
> * Improvements
> * Enhanced decoding of BPF_MAP_CREATE bpf syscall command.
> + * Updated lists of BPF_* constants.
>
> * Bug fixes
> * Fixed build on csky abiv1 architecture.
> diff --git a/tests/bpf.c b/tests/bpf.c
> index a462d008..2e4894a3 100644
> --- a/tests/bpf.c
> +++ b/tests/bpf.c
> @@ -286,7 +286,7 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = {
> },
> { /* 2 */
> .data = { .BPF_MAP_CREATE_data = {
> - .map_type = 26,
> + .map_type = 27,
> .key_size = 0xface1e55,
> .value_size = 0xbadc0ded,
> .max_entries = 0xbeefcafe,
> @@ -297,7 +297,7 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = {
> .map_ifindex = 3141592653,
> } },
> .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex),
> - .str = "map_type=0x1a /* BPF_MAP_TYPE_??? */"
> + .str = "map_type=0x1b /* BPF_MAP_TYPE_??? */"
> ", key_size=4207812181, value_size=3134983661"
> ", max_entries=3203386110"
> ", map_flags=0xfffff800 /* BPF_F_??? */"
> @@ -612,7 +612,7 @@ print_BPF_PROG_LOAD_attr4(const struct bpf_attr_check *check, unsigned long addr
> license, IFINDEX_LO_STR);
> }
>
> -static_assert(ARRAY_SIZE(bpf_prog_types_xdata) == 27,
> +static_assert(ARRAY_SIZE(bpf_prog_types_xdata) == 29,
> "The prog_type for test 5 below needs to be updated");
> static struct bpf_attr_check BPF_PROG_LOAD_checks[] = {
> {
> @@ -623,7 +623,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = {
> },
> { /* 1 */
> .data = { .BPF_PROG_LOAD_data = {
> - .prog_type = 27,
> + .prog_type = 29,
> .insn_cnt = 0xbadc0ded,
> .insns = 0,
> .license = 0,
> @@ -634,7 +634,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = {
> .prog_flags = 0,
> } },
> .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_flags),
> - .str = "prog_type=0x1b /* BPF_PROG_TYPE_??? */"
> + .str = "prog_type=0x1d /* BPF_PROG_TYPE_??? */"
> ", insn_cnt=3134983661, insns=NULL, license=NULL"
> ", log_level=42, log_size=3141592653, log_buf=NULL"
> ", kern_version=KERNEL_VERSION(51966, 240, 13)"
> @@ -697,7 +697,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = {
> },
> { /* 5 */
> .data = { .BPF_PROG_LOAD_data = {
> - .prog_type = 26,
> + .prog_type = 28,
> .insn_cnt = 0xbadc0ded,
> .insns = 0xffffffff00000000,
> .license = 0xffffffff00000000,
> @@ -709,7 +709,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = {
> .prog_name = "fedcba987654321",
> } },
> .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_name),
> - .str = "prog_type=BPF_PROG_TYPE_TRACING"
> + .str = "prog_type=BPF_PROG_TYPE_EXT"
> ", insn_cnt=3134983661"
> ", insns=" BIG_ADDR("0xffffffff00000000", "NULL")
> ", license=" BIG_ADDR("0xffffffff00000000", "NULL")
> @@ -1034,7 +1034,7 @@ print_BPF_PROG_QUERY_attr4(const struct bpf_attr_check *check, unsigned long add
> printf("query={target_fd=-1153374643"
> ", attach_type=0xfeedface /* BPF_??? */"
> ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c"
> - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc"
> + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8"
> #if defined(INJECT_RETVAL)
> ", prog_ids=[0, 1, 4294967295, 2718281828], prog_cnt=4}"
> #else
> @@ -1062,7 +1062,7 @@ print_BPF_PROG_QUERY_attr5(const struct bpf_attr_check *check, unsigned long add
> printf("query={target_fd=-1153374643"
> ", attach_type=0xfeedface /* BPF_??? */"
> ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c"
> - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc"
> + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8"
> #if defined(INJECT_RETVAL)
> ", prog_ids=[0, 1, 4294967295, 2718281828, ... /* %p */]"
> ", prog_cnt=5}",
> @@ -1100,7 +1100,7 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = {
> .target_fd = 3141592653U,
> .attach_type = 26,
> .query_flags = 0xfffffffe,
> - .attach_flags = 0xfffffffc,
> + .attach_flags = 0xfffffff8,
> .prog_ids = 0xffffffffffffffffULL,
> .prog_cnt = 2718281828,
> } },
> @@ -1108,7 +1108,7 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = {
> .str = "query={target_fd=-1153374643"
> ", attach_type=0x1a /* BPF_??? */"
> ", query_flags=0xfffffffe /* BPF_F_QUERY_??? */"
> - ", attach_flags=0xfffffffc /* BPF_F_??? */"
> + ", attach_flags=0xfffffff8 /* BPF_F_??? */"
> ", prog_ids="
> BIG_ADDR("0xffffffffffffffff", "0xffffffff")
> ", prog_cnt=2718281828}",
> @@ -1126,7 +1126,7 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = {
> .str = "query={target_fd=-1153374643"
> ", attach_type=0xfeedface /* BPF_??? */"
> ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c"
> - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc"
> + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8"
> ", prog_ids=" BIG_ADDR_MAYBE("0xffffffffffffffff") "[]"
> ", prog_cnt=0}",
> },
> diff --git a/tests/kernel_version.c b/tests/kernel_version.c
> index a667b584..025e9733 100644
> --- a/tests/kernel_version.c
> +++ b/tests/kernel_version.c
> @@ -34,9 +34,9 @@ static void
> print_bpf_attr(void)
> {
> #if XLAT_RAW
> - printf("{prog_type=0x1b"
> + printf("{prog_type=0x1d"
> #else
> - printf("{prog_type=0x1b /* BPF_PROG_TYPE_??? */"
> + printf("{prog_type=0x1d /* BPF_PROG_TYPE_??? */"
> #endif
> ", insn_cnt=3134983661"
> ", insns=NULL"
> @@ -79,7 +79,7 @@ main(void)
> {
> long ret;
> struct BPF_PROG_LOAD_struct prog = {
> - .prog_type = 27,
> + .prog_type = 29,
> .insn_cnt = 0xbadc0ded,
> .insns = 0,
> .license = 0,
> diff --git a/xlat/bpf_attach_flags.in b/xlat/bpf_attach_flags.in
> index a67c02b6..cee8d191 100644
> --- a/xlat/bpf_attach_flags.in
> +++ b/xlat/bpf_attach_flags.in
> @@ -1,2 +1,3 @@
> -BPF_F_ALLOW_OVERRIDE 1
> -BPF_F_ALLOW_MULTI 2
> +BPF_F_ALLOW_OVERRIDE 1U
> +BPF_F_ALLOW_MULTI (1U << 1)
> +BPF_F_REPLACE (1U << 2)
> diff --git a/xlat/bpf_map_types.in b/xlat/bpf_map_types.in
> index 0b3519c9..3aa61d3d 100644
> --- a/xlat/bpf_map_types.in
> +++ b/xlat/bpf_map_types.in
> @@ -25,3 +25,4 @@ BPF_MAP_TYPE_QUEUE 22
> BPF_MAP_TYPE_STACK 23
> BPF_MAP_TYPE_SK_STORAGE 24
> BPF_MAP_TYPE_DEVMAP_HASH 25
> +BPF_MAP_TYPE_STRUCT_OPS 26
> diff --git a/xlat/bpf_prog_types.in b/xlat/bpf_prog_types.in
> index 97d99081..e572311e 100644
> --- a/xlat/bpf_prog_types.in
> +++ b/xlat/bpf_prog_types.in
> @@ -26,3 +26,5 @@ BPF_PROG_TYPE_CGROUP_SYSCTL 23
> BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE 24
> BPF_PROG_TYPE_CGROUP_SOCKOPT 25
> BPF_PROG_TYPE_TRACING 26
> +BPF_PROG_TYPE_STRUCT_OPS 27
> +BPF_PROG_TYPE_EXT 28
Eugene suggested to update the first check of BPF_MAP_CREATE_checks as well.
I've pushed the following commit to ldv/next branch for testing,
please let me know if anything has to be changed.
--
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-bpf-update-BPF_-constants.patch
Type: text/x-patch
Size: 9134 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20200305/b73b3125/attachment.bin>
More information about the Strace-devel
mailing list