Commit 3494bec0 authored by Andrey Ignatov's avatar Andrey Ignatov Committed by Daniel Borkmann
Browse files

bpftool: Support struct_ops, tracing, ext prog types



Add support for prog types that were added to kernel but not present in
bpftool yet: struct_ops, tracing, ext prog types and corresponding
section names.

Before:
  # bpftool p l
  ...
  184: type 26  name test_subprog3  tag dda135a7dc0daf54  gpl
          loaded_at 2020-02-25T13:28:33-0800  uid 0
          xlated 112B  jited 103B  memlock 4096B  map_ids 136
          btf_id 85
  185: type 28  name new_get_skb_len  tag d2de5b87d8e5dc49  gpl
          loaded_at 2020-02-25T13:28:33-0800  uid 0
          xlated 72B  jited 69B  memlock 4096B  map_ids 136
          btf_id 85

After:
  # bpftool p l
  ...
  184: tracing  name test_subprog3  tag dda135a7dc0daf54  gpl
          loaded_at 2020-02-25T13:28:33-0800  uid 0
          xlated 112B  jited 103B  memlock 4096B  map_ids 136
          btf_id 85
  185: ext  name new_get_skb_len  tag d2de5b87d8e5dc49  gpl
          loaded_at 2020-02-25T13:28:33-0800  uid 0
          xlated 72B  jited 69B  memlock 4096B  map_ids 136
          btf_id 85

Signed-off-by: default avatarAndrey Ignatov <rdna@fb.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Reviewed-by: default avatarQuentin Monnet <quentin@isovalent.com>
Acked-by: default avatarSong Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20200225223441.689109-1-rdna@fb.com
parent 3cd046f1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -42,7 +42,8 @@ PROG COMMANDS
|		**cgroup/bind4** | **cgroup/bind6** | **cgroup/post_bind4** | **cgroup/post_bind6** |
|		**cgroup/connect4** | **cgroup/connect6** | **cgroup/sendmsg4** | **cgroup/sendmsg6** |
|		**cgroup/recvmsg4** | **cgroup/recvmsg6** | **cgroup/sysctl** |
|		**cgroup/getsockopt** | **cgroup/setsockopt**
|		**cgroup/getsockopt** | **cgroup/setsockopt** |
|		**struct_ops** | **fentry** | **fexit** | **freplace**
|	}
|       *ATTACH_TYPE* := {
|		**msg_verdict** | **stream_verdict** | **stream_parser** | **flow_dissector**
+2 −1
Original line number Diff line number Diff line
@@ -469,7 +469,8 @@ _bpftool()
                                cgroup/recvmsg4 cgroup/recvmsg6 \
                                cgroup/post_bind4 cgroup/post_bind6 \
                                cgroup/sysctl cgroup/getsockopt \
                                cgroup/setsockopt" -- \
                                cgroup/setsockopt struct_ops \
                                fentry fexit freplace" -- \
                                                   "$cur" ) )
                            return 0
                            ;;
+3 −0
Original line number Diff line number Diff line
@@ -76,6 +76,9 @@ static const char * const prog_type_name[] = {
	[BPF_PROG_TYPE_CGROUP_SYSCTL]		= "cgroup_sysctl",
	[BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE]	= "raw_tracepoint_writable",
	[BPF_PROG_TYPE_CGROUP_SOCKOPT]		= "cgroup_sockopt",
	[BPF_PROG_TYPE_TRACING]			= "tracing",
	[BPF_PROG_TYPE_STRUCT_OPS]		= "struct_ops",
	[BPF_PROG_TYPE_EXT]			= "ext",
};

extern const char * const map_type_name[];
+2 −2
Original line number Diff line number Diff line
@@ -1573,8 +1573,8 @@ static int do_help(int argc, char **argv)
		"                 cgroup/bind4 | cgroup/bind6 | cgroup/post_bind4 |\n"
		"                 cgroup/post_bind6 | cgroup/connect4 | cgroup/connect6 |\n"
		"                 cgroup/sendmsg4 | cgroup/sendmsg6 | cgroup/recvmsg4 |\n"
		"                 cgroup/recvmsg6 | cgroup/getsockopt |\n"
		"                 cgroup/setsockopt }\n"
		"                 cgroup/recvmsg6 | cgroup/getsockopt | cgroup/setsockopt |\n"
		"                 struct_ops | fentry | fexit | freplace }\n"
		"       ATTACH_TYPE := { msg_verdict | stream_verdict | stream_parser |\n"
		"                        flow_dissector }\n"
		"       " HELP_SPEC_OPTIONS "\n"