On 10/10/2018 10:11 AM, Jakub Kicinski wrote: > On Wed, 10 Oct 2018 09:44:26 -0700, John Fastabend wrote: >> Sock map/hash introduce support for attaching programs to maps. To >> date I have been doing this with custom tooling but this is less than >> ideal as we shift to using bpftool as the single CLI for our BPF uses. >> This patch adds new sub commands 'attach' and 'detach' to the 'prog' >> command to attach programs to maps and then detach them. >> >> Signed-off-by: John Fastabend <john.fastab...@gmail.com> >> --- >> tools/bpf/bpftool/main.h | 1 + >> tools/bpf/bpftool/prog.c | 92 >> ++++++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 92 insertions(+), 1 deletion(-) >> >> diff --git a/tools/bpf/bpftool/main.h b/tools/bpf/bpftool/main.h >> index 40492cd..9ceb2b6 100644 >> --- a/tools/bpf/bpftool/main.h >> +++ b/tools/bpf/bpftool/main.h >> @@ -137,6 +137,7 @@ int cmd_select(const struct cmd *cmds, int argc, char >> **argv, >> int do_cgroup(int argc, char **arg); >> int do_perf(int argc, char **arg); >> int do_net(int argc, char **arg); >> +int do_attach_cmd(int argc, char **arg); > > Looks like a leftover? >
Yeah original I made attach/detach its own top level command but it seems better fit under prog. [..] >> + if (!REQ_ARGS(4)) { > > Hm, 4 or 5? id $prog $type id $map ? > Yep thanks. [...] >> + >> + NEXT_ARG(); > > nit: maybe NEXT_ARG() should be grouped with the code that consumes the > parameter, i.e. new line after not before? sure. > >> + mapfd = map_parse_fd(&argc, &argv); >> + if (mapfd < 0) >> + return mapfd; >> + >> + err = bpf_prog_attach(progfd, mapfd, attach_type, 0); >> + if (err) { >> + p_err("failed prog attach to map"); >> + return -EINVAL; >> + } > > Could you plunk a > > if (json_output) > jsonw_null(json_wtr); > > here to always produce valid JSON even for commands with no output > today? > Makes sense. > Same comments for detach. [...] > Would you mind updating the man page and the bash completions? > Will do this. Thanks.