On Tue, Sep 26, 2017 at 08:35:22AM -0700, Jakub Kicinski wrote: > Add a simple tool for querying and updating BPF objects on the system. > > Signed-off-by: Jakub Kicinski <jakub.kicin...@netronome.com> > Reviewed-by: Simon Horman <simon.hor...@netronome.com> > --- > tools/bpf/Makefile | 18 +- > tools/bpf/bpftool/Makefile | 80 +++++ > tools/bpf/bpftool/common.c | 214 ++++++++++++ > tools/bpf/bpftool/jit_disasm.c | 83 +++++ > tools/bpf/bpftool/main.c | 212 ++++++++++++ > tools/bpf/bpftool/main.h | 99 ++++++ > tools/bpf/bpftool/map.c | 742 > +++++++++++++++++++++++++++++++++++++++++ > tools/bpf/bpftool/prog.c | 392 ++++++++++++++++++++++ > 8 files changed, 1837 insertions(+), 3 deletions(-) ... > +static int do_help(int argc, char **argv) > +{ > + fprintf(stderr, > + "Usage: %s %s show [MAP]\n" > + " %s %s dump MAP\n" > + " %s %s update MAP key BYTES value VALUE > [UPDATE_FLAGS]\n" > + " %s %s lookup MAP key BYTES\n" > + " %s %s getnext MAP [key BYTES]\n" > + " %s %s delete MAP key BYTES\n" > + " %s %s pin MAP FILE\n" > + " %s %s help\n" > + "\n" > + " MAP := { id MAP_ID | pinned FILE }\n" > + " " HELP_SPEC_PROGRAM "\n" > + " VALUE := { BYTES | MAP | PROG }\n" > + " UPDATE_FLAGS := { any | exist | noexist }\n" > + "",
overall looks good to me, but still difficult to grasp how to use it. Can you add README with example usage and expected output? Acked-by: Alexei Starovoitov <a...@kernel.org> You also realize that you're signing up maintaining this tool, right? ;)