On 12/20/18 3:52 AM, Jakub Kicinski wrote:
On Wed, 19 Dec 2018 17:52:40 +0900, Taeung Song wrote:
We need to let users check their wrong section name
with proper section names when failed to get proper type from it.
Because there is no knowing what kind of section name can be used.
# bpftool prog help
Usage: bpftool prog { show | list } [PROG]
[...]
TYPE := { socket | kprobe | kretprobe | classifier | action |
tracepoint | raw_tracepoint | xdp | perf_event | cgroup/skb |
cgroup/sock | cgroup/dev | lwt_in | lwt_out | lwt_xmit |
lwt_seg6local | sockops | sk_skb | sk_msg | lirc_mode2 |
sk_reuseport | flow_dissector |
cgroup/bind4 | cgroup/bind6 | cgroup/post_bind4 |
cgroup/post_bind6 | cgroup/connect4 | cgroup/connect6 |
cgroup/sendmsg4 | cgroup/sendmsg6 }
ATTACH_TYPE := { msg_verdict | skb_verdict | skb_parse |
flow_dissector }
OPTIONS := { {-j|--json} [{-p|--pretty}] | {-f|--bpffs} |
{-m|--mapcompat} | {-n|--nomount} }
Also in man bpftool-prog.
Perhaps we could just point users to that info? IMHO having libraries
Right, I think when users used wrong section names
we need to let them realize libbpf guess prog/attach types from given
section names because users who are unfamiliar with BPF programming
mightn't even know that, right ?
And how about a function that return supported section names ?
I think it can be used for the 'TYPE'/'ATTACH_TYPE' help message
because it is just a string and couldn't have latest types.
unconditionally print warnings is not great..
OK, need to change that, will send v2.
Thanks,
Taeung
For example, when a 'cgroup' section name of a BPF program is used,
Before:
$ bpftool prog load bpf-prog.o /sys/fs/bpf/prog1
Error: failed to guess program type based on section name cgroup
After:
libbpf: failed to guess program type based on section name 'cgroup'
libbpf: possible section(type) names are: socket kprobe/ kretprobe/
classifier action tracepoint/ raw_tracepoint/ xdp perf_event lwt_in lwt_out
lwt_xmit lwt_seg6local cgroup_skb/ingress cgroup_skb/egress cgroup/skb
cgroup/sock cgroup/post_bind4 cgroup/post_bind6 cgroup/dev sockops
sk_skb/stream_parser sk_skb/stream_verdict sk_skb sk_msg lirc_mode2
flow_dissector cgroup/bind4 cgroup/bind6 cgroup/connect4 cgroup/connect6
cgroup/sendmsg4 cgroup/sendmsg6
Cc: Jakub Kicinski <jakub.kicin...@netronome.com>
Cc: Andrey Ignatov <r...@fb.com>
Signed-off-by: Taeung Song <treeze.tae...@gmail.com>