[{"id":1775859,"web_url":"http://patchwork.ozlabs.org/comment/1775859/","msgid":"<59CAC15B.8040209@iogearbox.net>","list_archive_url":null,"date":"2017-09-26T21:06:35","subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","submitter":{"id":65705,"url":"http://patchwork.ozlabs.org/api/people/65705/","name":"Daniel Borkmann","email":"daniel@iogearbox.net"},"content":"On 09/26/2017 05:35 PM, Jakub Kicinski wrote:\n> Add a simple tool for querying and updating BPF objects on the system.\n>\n> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\n> Reviewed-by: Simon Horman <simon.horman@netronome.com>\n\nLGTM, thanks!\n\nAcked-by: Daniel Borkmann <daniel@iogearbox.net>","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y1tmc4Bxcz9t3x\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 27 Sep 2017 07:06:40 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1754589AbdIZVGi (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 26 Sep 2017 17:06:38 -0400","from www62.your-server.de ([213.133.104.62]:52218 \"EHLO\n\twww62.your-server.de\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1754506AbdIZVGh (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 26 Sep 2017 17:06:37 -0400","from [85.7.161.218] (helo=localhost.localdomain)\n\tby www62.your-server.de with esmtpsa (TLSv1.2:DHE-RSA-AES256-SHA:256)\n\t(Exim 4.85_2) (envelope-from <daniel@iogearbox.net>)\n\tid 1dwx3s-0001Tq-CB; Tue, 26 Sep 2017 23:06:36 +0200"],"Message-ID":"<59CAC15B.8040209@iogearbox.net>","Date":"Tue, 26 Sep 2017 23:06:35 +0200","From":"Daniel Borkmann <daniel@iogearbox.net>","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:31.0) Gecko/20100101 Thunderbird/31.7.0","MIME-Version":"1.0","To":"Jakub Kicinski <jakub.kicinski@netronome.com>, netdev@vger.kernel.org","CC":"alexei.starovoitov@gmail.com, davem@davemloft.net,\n\thannes@stressinduktion.org, dsahern@gmail.com, oss-drivers@netronome.com","Subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","References":"<20170926153522.31500-1-jakub.kicinski@netronome.com>\n\t<20170926153522.31500-3-jakub.kicinski@netronome.com>","In-Reply-To":"<20170926153522.31500-3-jakub.kicinski@netronome.com>","Content-Type":"text/plain; charset=windows-1252; format=flowed","Content-Transfer-Encoding":"7bit","X-Authenticated-Sender":"daniel@iogearbox.net","X-Virus-Scanned":"Clear (ClamAV 0.99.2/23876/Tue Sep 26 22:41:53 2017)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1775921,"web_url":"http://patchwork.ozlabs.org/comment/1775921/","msgid":"<20170926222405.nq23enzudbjklczb@ast-mbp>","list_archive_url":null,"date":"2017-09-26T22:24:06","subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","submitter":{"id":42586,"url":"http://patchwork.ozlabs.org/api/people/42586/","name":"Alexei Starovoitov","email":"alexei.starovoitov@gmail.com"},"content":"On Tue, Sep 26, 2017 at 08:35:22AM -0700, Jakub Kicinski wrote:\n> Add a simple tool for querying and updating BPF objects on the system.\n> \n> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\n> Reviewed-by: Simon Horman <simon.horman@netronome.com>\n> ---\n>  tools/bpf/Makefile             |  18 +-\n>  tools/bpf/bpftool/Makefile     |  80 +++++\n>  tools/bpf/bpftool/common.c     | 214 ++++++++++++\n>  tools/bpf/bpftool/jit_disasm.c |  83 +++++\n>  tools/bpf/bpftool/main.c       | 212 ++++++++++++\n>  tools/bpf/bpftool/main.h       |  99 ++++++\n>  tools/bpf/bpftool/map.c        | 742 +++++++++++++++++++++++++++++++++++++++++\n>  tools/bpf/bpftool/prog.c       | 392 ++++++++++++++++++++++\n>  8 files changed, 1837 insertions(+), 3 deletions(-)\n...\n> +static int do_help(int argc, char **argv)\n> +{\n> +\tfprintf(stderr,\n> +\t\t\"Usage: %s %s show   [MAP]\\n\"\n> +\t\t\"       %s %s dump    MAP\\n\"\n> +\t\t\"       %s %s update  MAP  key BYTES value VALUE [UPDATE_FLAGS]\\n\"\n> +\t\t\"       %s %s lookup  MAP  key BYTES\\n\"\n> +\t\t\"       %s %s getnext MAP [key BYTES]\\n\"\n> +\t\t\"       %s %s delete  MAP  key BYTES\\n\"\n> +\t\t\"       %s %s pin     MAP  FILE\\n\"\n> +\t\t\"       %s %s help\\n\"\n> +\t\t\"\\n\"\n> +\t\t\"       MAP := { id MAP_ID | pinned FILE }\\n\"\n> +\t\t\"       \" HELP_SPEC_PROGRAM \"\\n\"\n> +\t\t\"       VALUE := { BYTES | MAP | PROG }\\n\"\n> +\t\t\"       UPDATE_FLAGS := { any | exist | noexist }\\n\"\n> +\t\t\"\",\n\noverall looks good to me, but still difficult to grasp how to use it.\nCan you add README with example usage and expected output?\n\nAcked-by: Alexei Starovoitov <ast@kernel.org>\n\nYou also realize that you're signing up maintaining this tool, right? ;)","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"U4IGotdo\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y1wVS0tRWz9s0Z\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 27 Sep 2017 08:24:32 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1032556AbdIZWYP (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 26 Sep 2017 18:24:15 -0400","from mail-pg0-f67.google.com ([74.125.83.67]:37457 \"EHLO\n\tmail-pg0-f67.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1031284AbdIZWYK (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 26 Sep 2017 18:24:10 -0400","by mail-pg0-f67.google.com with SMTP id v5so7503088pgn.4\n\tfor <netdev@vger.kernel.org>; Tue, 26 Sep 2017 15:24:10 -0700 (PDT)","from ast-mbp ([2620:10d:c090:180::1:6adc])\n\tby smtp.gmail.com with ESMTPSA id\n\tr138sm15757339pgr.12.2017.09.26.15.24.08\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tTue, 26 Sep 2017 15:24:09 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:in-reply-to:user-agent;\n\tbh=NvWcj+P/yGGoPXh/6Pu3t+uHZwRnoEHJMtq3/XUI1io=;\n\tb=U4IGotdoD3h66aGs6QYpj79uN+2egVwG/1l1o4DQCGsTX+XfI/ROjvjHfkWWUkJLwP\n\twZt6Ta9s4g/5PWyx5yfkxOc7YR1UHatU2qFKaawLO7ZBB9NdU4Pjh92+Xof0yGo1pQeg\n\t3R/RtikwhAN8ziMmEQyHAJtvsYJpMORcJZTyZItZGPRKMkO8QXEoB3YbHzUYz4UZuzeM\n\tfBEArkTghdXvGTcX8NKmkAvC7hBnwTOn9c8L4C0lE69Hn4S8GWquz99BbEqwkmoVwxfl\n\tKTLr3w9NPjZIZl63OI3O3NIO++nidrYw18Lj6bSlvlSwp7ODnrafAfhEuYklyqrKe3yH\n\ttm6A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:in-reply-to:user-agent;\n\tbh=NvWcj+P/yGGoPXh/6Pu3t+uHZwRnoEHJMtq3/XUI1io=;\n\tb=lmxmMrUy7i6KdJLzMLXaU7k0//cel9H34cXjethUBxPtzFYAxRjv3uM0rfhgZFpdeS\n\tVVF3haXHdlza9zXeOUrcuFtItNDFRjcl3GC7cKdVHTi8pJ0QWiZSlctiFa8yeOy9TAkc\n\ti7S0V68ckmJjLt0SOu9n2bp1rq6swjxkPGq2FN4DdBCG2OuK7x/1hbiTq5BnG7WZDgq4\n\trsOYMYS+EtgclyZJTlDpl6wEAOfaICdr9Vc4sdUV/zlLjgUh6o1TrfNvKukoQrNRrCvb\n\tw5vhnTvAY9YVzefAlcgWCfr21JClNNPFI+Jcqy5cKTEJuERVCrsKuoruXuEcU1BoSPBC\n\tE7bw==","X-Gm-Message-State":"AHPjjUi9AgCD4Pumu3wK9OgvV/14hpOAUUwpVGGN3MlsVP+Bk05qxOLr\n\tIrHNsUbmkTOMsrbcN4I5w7Q=","X-Google-Smtp-Source":"AOwi7QAw22uv1Bb+13OmBBTq6Oq6Ru+vE3UusA/pvl5ZvCURIdHfmtFQ0BhzKYJRbf5pH9zbvkqNsQ==","X-Received":"by 10.101.68.130 with SMTP id l2mr12488176pgq.346.1506464650112; \n\tTue, 26 Sep 2017 15:24:10 -0700 (PDT)","Date":"Tue, 26 Sep 2017 15:24:06 -0700","From":"Alexei Starovoitov <alexei.starovoitov@gmail.com>","To":"Jakub Kicinski <jakub.kicinski@netronome.com>","Cc":"netdev@vger.kernel.org, daniel@iogearbox.net, davem@davemloft.net,\n\thannes@stressinduktion.org, dsahern@gmail.com, oss-drivers@netronome.com","Subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","Message-ID":"<20170926222405.nq23enzudbjklczb@ast-mbp>","References":"<20170926153522.31500-1-jakub.kicinski@netronome.com>\n\t<20170926153522.31500-3-jakub.kicinski@netronome.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170926153522.31500-3-jakub.kicinski@netronome.com>","User-Agent":"NeoMutt/20170421 (1.8.2)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1775948,"web_url":"http://patchwork.ozlabs.org/comment/1775948/","msgid":"<20170927000208.4396dfb7@cakuba>","list_archive_url":null,"date":"2017-09-26T23:02:08","subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","submitter":{"id":67484,"url":"http://patchwork.ozlabs.org/api/people/67484/","name":"Jakub Kicinski","email":"jakub.kicinski@netronome.com"},"content":"On Tue, 26 Sep 2017 15:24:06 -0700, Alexei Starovoitov wrote:\n> On Tue, Sep 26, 2017 at 08:35:22AM -0700, Jakub Kicinski wrote:\n> > Add a simple tool for querying and updating BPF objects on the system.\n> > \n> > Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\n> > Reviewed-by: Simon Horman <simon.horman@netronome.com>\n> > ---\n> >  tools/bpf/Makefile             |  18 +-\n> >  tools/bpf/bpftool/Makefile     |  80 +++++\n> >  tools/bpf/bpftool/common.c     | 214 ++++++++++++\n> >  tools/bpf/bpftool/jit_disasm.c |  83 +++++\n> >  tools/bpf/bpftool/main.c       | 212 ++++++++++++\n> >  tools/bpf/bpftool/main.h       |  99 ++++++\n> >  tools/bpf/bpftool/map.c        | 742 +++++++++++++++++++++++++++++++++++++++++\n> >  tools/bpf/bpftool/prog.c       | 392 ++++++++++++++++++++++\n> >  8 files changed, 1837 insertions(+), 3 deletions(-)  \n> ...\n> > +static int do_help(int argc, char **argv)\n> > +{\n> > +\tfprintf(stderr,\n> > +\t\t\"Usage: %s %s show   [MAP]\\n\"\n> > +\t\t\"       %s %s dump    MAP\\n\"\n> > +\t\t\"       %s %s update  MAP  key BYTES value VALUE [UPDATE_FLAGS]\\n\"\n> > +\t\t\"       %s %s lookup  MAP  key BYTES\\n\"\n> > +\t\t\"       %s %s getnext MAP [key BYTES]\\n\"\n> > +\t\t\"       %s %s delete  MAP  key BYTES\\n\"\n> > +\t\t\"       %s %s pin     MAP  FILE\\n\"\n> > +\t\t\"       %s %s help\\n\"\n> > +\t\t\"\\n\"\n> > +\t\t\"       MAP := { id MAP_ID | pinned FILE }\\n\"\n> > +\t\t\"       \" HELP_SPEC_PROGRAM \"\\n\"\n> > +\t\t\"       VALUE := { BYTES | MAP | PROG }\\n\"\n> > +\t\t\"       UPDATE_FLAGS := { any | exist | noexist }\\n\"\n> > +\t\t\"\",  \n> \n> overall looks good to me, but still difficult to grasp how to use it.\n> Can you add README with example usage and expected output?\n\nI have a README on GitHub, but I was thinking about perhaps writing a\nproper man page?  Do you prefer one over the other?\n\n> Acked-by: Alexei Starovoitov <ast@kernel.org>\n\nThanks!\n\n> You also realize that you're signing up maintaining this tool, right? ;)\n\nYes :)","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=netronome-com.20150623.gappssmtp.com\n\theader.i=@netronome-com.20150623.gappssmtp.com\n\theader.b=\"Suy37ku0\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y1xLF5XZmz9t3x\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 27 Sep 2017 09:02:29 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S969645AbdIZXC0 (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 26 Sep 2017 19:02:26 -0400","from mail-wr0-f175.google.com ([209.85.128.175]:44183 \"EHLO\n\tmail-wr0-f175.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S964903AbdIZXCZ (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 26 Sep 2017 19:02:25 -0400","by mail-wr0-f175.google.com with SMTP id v109so14396487wrc.1\n\tfor <netdev@vger.kernel.org>; Tue, 26 Sep 2017 16:02:25 -0700 (PDT)","from cakuba ([2a00:23c0:7307:7c01:cb44:299d:b33e:839b])\n\tby smtp.gmail.com with ESMTPSA id\n\tf140sm2827480wmd.12.2017.09.26.16.02.19\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tTue, 26 Sep 2017 16:02:24 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=netronome-com.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:in-reply-to:references\n\t:organization:mime-version:content-transfer-encoding;\n\tbh=1wlGiDHyEORQ5tUyz91OLXZDp+BkmAhGt1mswbLQ3W4=;\n\tb=Suy37ku0fvhqMZTtaN/jQLMxgOitE0XPot637KwKr4ThVNUKOXbol+fZEeA4G0h/xy\n\trFURqwsC12LpW26qXipnrOoZbimdg+v1PD8JNu+x6Hv/5Wcr1P3YfkTWdCIgvTC7ngPp\n\twvHmlQcOeF8XAtOtxc36sfvCBU8XnFxX8EUpyHBOWeT4p5puaurw8CbtKPTZ93G55fdp\n\tdtv2tQKv6i+qqjmv/kkulMLJuvGeBeT0N1AlFzKCJyUL+fACCF58etZ/kxtazeB+mgUY\n\t+XIJBeV9GidAi1D6SmdrKKWJpysPitmZtNjDBVENEmuVZLmTQlKpe7+LA5VG6NzKfJit\n\tgicQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to\n\t:references:organization:mime-version:content-transfer-encoding;\n\tbh=1wlGiDHyEORQ5tUyz91OLXZDp+BkmAhGt1mswbLQ3W4=;\n\tb=QDOJNVp4+RdTxAQTHXQz3mnI7bVKJXC9cCpKaEDEt2CDltrgKNiZ9X6+n4ZJKv/4YF\n\tJAo20LlN23DXkkSF1vbsCHMILJXbyCK8TrOrLgGx+fI45M+6L/ZULM2HpI52luQIx2d1\n\tApCVIOHXwU3cTLRSuku/dMAV4UIt556Vqc7GujD/71dZUWxy3d6vMF2VSppmJrHNpcqF\n\t3+CtGfvwc18lLSoxQp97BJZi5d3PywFDGdWkCRLJiQm0PcrC/l8qMUVbXE9rGxkbMG/5\n\tGhOgjfvMHD5TAHvDbTRU5L9gCEn8HRaoJIo/RjkNUd2u7DX2VXlGGFdN4B5wofNFXkPF\n\tO3SA==","X-Gm-Message-State":"AHPjjUji+2X47HFmi6FIfRJtOyW7n5TUyKVLb0RmqlU00rE6wGKc0qAr\n\tqUpiI6OiAoNLRqFNZOgh08Xi3g==","X-Google-Smtp-Source":"AOwi7QAFwEH8GGvY/sHyKgVJEIAwuc4yUUaNGc9g9nIcHDflEw7BgtoodtCKngF4LvcL5Q6ImqvhbQ==","X-Received":"by 10.223.160.68 with SMTP id l4mr9893279wrl.79.1506466944582;\n\tTue, 26 Sep 2017 16:02:24 -0700 (PDT)","Date":"Wed, 27 Sep 2017 00:02:08 +0100","From":"Jakub Kicinski <jakub.kicinski@netronome.com>","To":"Alexei Starovoitov <alexei.starovoitov@gmail.com>","Cc":"netdev@vger.kernel.org, daniel@iogearbox.net, davem@davemloft.net,\n\thannes@stressinduktion.org, dsahern@gmail.com, oss-drivers@netronome.com","Subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","Message-ID":"<20170927000208.4396dfb7@cakuba>","In-Reply-To":"<20170926222405.nq23enzudbjklczb@ast-mbp>","References":"<20170926153522.31500-1-jakub.kicinski@netronome.com>\n\t<20170926153522.31500-3-jakub.kicinski@netronome.com>\n\t<20170926222405.nq23enzudbjklczb@ast-mbp>","Organization":"Netronome Systems, Ltd.","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1776239,"web_url":"http://patchwork.ozlabs.org/comment/1776239/","msgid":"<20170927124511.650870bc@redhat.com>","list_archive_url":null,"date":"2017-09-27T10:45:11","subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","submitter":{"id":13625,"url":"http://patchwork.ozlabs.org/api/people/13625/","name":"Jesper Dangaard Brouer","email":"brouer@redhat.com"},"content":"On Wed, 27 Sep 2017 00:02:08 +0100\nJakub Kicinski <jakub.kicinski@netronome.com> wrote:\n\n> On Tue, 26 Sep 2017 15:24:06 -0700, Alexei Starovoitov wrote:\n> > On Tue, Sep 26, 2017 at 08:35:22AM -0700, Jakub Kicinski wrote:  \n> > > Add a simple tool for querying and updating BPF objects on the system.\n> > > \n> > > Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\n> > > Reviewed-by: Simon Horman <simon.horman@netronome.com>\n[...]\n> > >  tools/bpf/Makefile             |  18 +-\n> > >  tools/bpf/bpftool/Makefile     |  80 +++++\n> > >  tools/bpf/bpftool/common.c     | 214 ++++++++++++\n> > >  tools/bpf/bpftool/jit_disasm.c |  83 +++++\n> > >  tools/bpf/bpftool/main.c       | 212 ++++++++++++\n> > >  tools/bpf/bpftool/main.h       |  99 ++++++\n> > >  tools/bpf/bpftool/map.c        | 742 +++++++++++++++++++++++++++++++++++++++++\n> > >  tools/bpf/bpftool/prog.c       | 392 ++++++++++++++++++++++\n> > >  8 files changed, 1837 insertions(+), 3 deletions(-)    \n> > ...  \n> > > +static int do_help(int argc, char **argv)\n> > > +{\n> > > +\tfprintf(stderr,\n> > > +\t\t\"Usage: %s %s show   [MAP]\\n\"\n> > > +\t\t\"       %s %s dump    MAP\\n\"\n> > > +\t\t\"       %s %s update  MAP  key BYTES value VALUE [UPDATE_FLAGS]\\n\"\n> > > +\t\t\"       %s %s lookup  MAP  key BYTES\\n\"\n> > > +\t\t\"       %s %s getnext MAP [key BYTES]\\n\"\n> > > +\t\t\"       %s %s delete  MAP  key BYTES\\n\"\n> > > +\t\t\"       %s %s pin     MAP  FILE\\n\"\n> > > +\t\t\"       %s %s help\\n\"\n> > > +\t\t\"\\n\"\n> > > +\t\t\"       MAP := { id MAP_ID | pinned FILE }\\n\"\n> > > +\t\t\"       \" HELP_SPEC_PROGRAM \"\\n\"\n> > > +\t\t\"       VALUE := { BYTES | MAP | PROG }\\n\"\n> > > +\t\t\"       UPDATE_FLAGS := { any | exist | noexist }\\n\"\n> > > +\t\t\"\",    \n> > \n> > overall looks good to me, but still difficult to grasp how to use it.\n> > Can you add README with example usage and expected output?  \n> \n> I have a README on GitHub, but I was thinking about perhaps writing a\n> proper man page?  Do you prefer one over the other?\n\nI would prefer adding a README.rst file, in RST-format, as the rest of\nthe kernel documentation is moving in that direction[1] (your github\nversion is in README.md format).  A man page will always be\nout-of-sync, and even out-of-sync on different distros.\n\n See[1]: https://www.kernel.org/doc/html/latest/\n\nAnd then I would find some place in Documentation/admin-guide/ and\ninclude the README.rst file, so it shows up at [1].\n\nRST have an include method like:\n\n.. include:: ../../tools/bpf/bpftool/README.rst","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=brouer@redhat.com"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2DxK0mf7z9tXf\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 27 Sep 2017 20:45:25 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752822AbdI0KpW (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 27 Sep 2017 06:45:22 -0400","from mx1.redhat.com ([209.132.183.28]:46610 \"EHLO mx1.redhat.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1751943AbdI0KpS (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tWed, 27 Sep 2017 06:45:18 -0400","from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 613427E442;\n\tWed, 27 Sep 2017 10:45:18 +0000 (UTC)","from localhost (ovpn-200-30.brq.redhat.com [10.40.200.30])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 0871A7EE8D;\n\tWed, 27 Sep 2017 10:45:12 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 613427E442","Date":"Wed, 27 Sep 2017 12:45:11 +0200","From":"Jesper Dangaard Brouer <brouer@redhat.com>","To":"Jakub Kicinski <jakub.kicinski@netronome.com>","Cc":"brouer@redhat.com, Alexei Starovoitov <alexei.starovoitov@gmail.com>,\n\tnetdev@vger.kernel.org, daniel@iogearbox.net, davem@davemloft.net,\n\thannes@stressinduktion.org, dsahern@gmail.com, oss-drivers@netronome.com,\n\t\"linux-doc@vger.kernel.org\" <linux-doc@vger.kernel.org>","Subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","Message-ID":"<20170927124511.650870bc@redhat.com>","In-Reply-To":"<20170927000208.4396dfb7@cakuba>","References":"<20170926153522.31500-1-jakub.kicinski@netronome.com>\n\t<20170926153522.31500-3-jakub.kicinski@netronome.com>\n\t<20170926222405.nq23enzudbjklczb@ast-mbp>\n\t<20170927000208.4396dfb7@cakuba>","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.11","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.27]);\n\tWed, 27 Sep 2017 10:45:18 +0000 (UTC)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1776245,"web_url":"http://patchwork.ozlabs.org/comment/1776245/","msgid":"<59CB8386.6050307@iogearbox.net>","list_archive_url":null,"date":"2017-09-27T10:55:02","subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","submitter":{"id":65705,"url":"http://patchwork.ozlabs.org/api/people/65705/","name":"Daniel Borkmann","email":"daniel@iogearbox.net"},"content":"On 09/27/2017 12:45 PM, Jesper Dangaard Brouer wrote:\n> On Wed, 27 Sep 2017 00:02:08 +0100\n> Jakub Kicinski <jakub.kicinski@netronome.com> wrote:\n>> On Tue, 26 Sep 2017 15:24:06 -0700, Alexei Starovoitov wrote:\n>>> On Tue, Sep 26, 2017 at 08:35:22AM -0700, Jakub Kicinski wrote:\n>>>> Add a simple tool for querying and updating BPF objects on the system.\n>>>>\n>>>> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\n>>>> Reviewed-by: Simon Horman <simon.horman@netronome.com>\n> [...]\n>>>>   tools/bpf/Makefile             |  18 +-\n>>>>   tools/bpf/bpftool/Makefile     |  80 +++++\n>>>>   tools/bpf/bpftool/common.c     | 214 ++++++++++++\n>>>>   tools/bpf/bpftool/jit_disasm.c |  83 +++++\n>>>>   tools/bpf/bpftool/main.c       | 212 ++++++++++++\n>>>>   tools/bpf/bpftool/main.h       |  99 ++++++\n>>>>   tools/bpf/bpftool/map.c        | 742 +++++++++++++++++++++++++++++++++++++++++\n>>>>   tools/bpf/bpftool/prog.c       | 392 ++++++++++++++++++++++\n>>>>   8 files changed, 1837 insertions(+), 3 deletions(-)\n>>> ...\n>>>> +static int do_help(int argc, char **argv)\n>>>> +{\n>>>> +\tfprintf(stderr,\n>>>> +\t\t\"Usage: %s %s show   [MAP]\\n\"\n>>>> +\t\t\"       %s %s dump    MAP\\n\"\n>>>> +\t\t\"       %s %s update  MAP  key BYTES value VALUE [UPDATE_FLAGS]\\n\"\n>>>> +\t\t\"       %s %s lookup  MAP  key BYTES\\n\"\n>>>> +\t\t\"       %s %s getnext MAP [key BYTES]\\n\"\n>>>> +\t\t\"       %s %s delete  MAP  key BYTES\\n\"\n>>>> +\t\t\"       %s %s pin     MAP  FILE\\n\"\n>>>> +\t\t\"       %s %s help\\n\"\n>>>> +\t\t\"\\n\"\n>>>> +\t\t\"       MAP := { id MAP_ID | pinned FILE }\\n\"\n>>>> +\t\t\"       \" HELP_SPEC_PROGRAM \"\\n\"\n>>>> +\t\t\"       VALUE := { BYTES | MAP | PROG }\\n\"\n>>>> +\t\t\"       UPDATE_FLAGS := { any | exist | noexist }\\n\"\n>>>> +\t\t\"\",\n>>>\n>>> overall looks good to me, but still difficult to grasp how to use it.\n>>> Can you add README with example usage and expected output?\n>>\n>> I have a README on GitHub, but I was thinking about perhaps writing a\n>> proper man page?  Do you prefer one over the other?\n>\n> I would prefer adding a README.rst file, in RST-format, as the rest of\n> the kernel documentation is moving in that direction[1] (your github\n> version is in README.md format).  A man page will always be\n> out-of-sync, and even out-of-sync on different distros.\n>\n>   See[1]: https://www.kernel.org/doc/html/latest/\n>\n> And then I would find some place in Documentation/admin-guide/ and\n> include the README.rst file, so it shows up at [1].\n>\n> RST have an include method like:\n>\n> .. include:: ../../tools/bpf/bpftool/README.rst\n\nAgree, to have a README.rst with a description/howto in bpftool/\nseems like a good idea to me, too.\n\nThanks,\nDaniel","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2F8d4dFDz9tXf\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 27 Sep 2017 20:55:13 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751929AbdI0KzG (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 27 Sep 2017 06:55:06 -0400","from www62.your-server.de ([213.133.104.62]:53906 \"EHLO\n\twww62.your-server.de\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751287AbdI0KzF (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Wed, 27 Sep 2017 06:55:05 -0400","from [85.7.161.218] (helo=localhost.localdomain)\n\tby www62.your-server.de with esmtpsa (TLSv1.2:DHE-RSA-AES256-SHA:256)\n\t(Exim 4.85_2) (envelope-from <daniel@iogearbox.net>)\n\tid 1dx9za-0002TC-Oi; Wed, 27 Sep 2017 12:55:02 +0200"],"Message-ID":"<59CB8386.6050307@iogearbox.net>","Date":"Wed, 27 Sep 2017 12:55:02 +0200","From":"Daniel Borkmann <daniel@iogearbox.net>","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:31.0) Gecko/20100101 Thunderbird/31.7.0","MIME-Version":"1.0","To":"Jesper Dangaard Brouer <brouer@redhat.com>,\n\tJakub Kicinski <jakub.kicinski@netronome.com>","CC":"Alexei Starovoitov <alexei.starovoitov@gmail.com>,\n\tnetdev@vger.kernel.org, davem@davemloft.net,\n\thannes@stressinduktion.org, dsahern@gmail.com, oss-drivers@netronome.com,\n\t\"linux-doc@vger.kernel.org\" <linux-doc@vger.kernel.org>","Subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","References":"<20170926153522.31500-1-jakub.kicinski@netronome.com>\n\t<20170926153522.31500-3-jakub.kicinski@netronome.com>\n\t<20170926222405.nq23enzudbjklczb@ast-mbp>\n\t<20170927000208.4396dfb7@cakuba>\n\t<20170927124511.650870bc@redhat.com>","In-Reply-To":"<20170927124511.650870bc@redhat.com>","Content-Type":"text/plain; charset=windows-1252; format=flowed","Content-Transfer-Encoding":"7bit","X-Authenticated-Sender":"daniel@iogearbox.net","X-Virus-Scanned":"Clear (ClamAV 0.99.2/23878/Wed Sep 27 06:44:38 2017)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1776247,"web_url":"http://patchwork.ozlabs.org/comment/1776247/","msgid":"<20170927035742.5c9ee8c3@cakuba>","list_archive_url":null,"date":"2017-09-27T10:57:42","subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","submitter":{"id":67484,"url":"http://patchwork.ozlabs.org/api/people/67484/","name":"Jakub Kicinski","email":"jakub.kicinski@netronome.com"},"content":"On Wed, 27 Sep 2017 12:45:11 +0200, Jesper Dangaard Brouer wrote:\n> On Wed, 27 Sep 2017 00:02:08 +0100\n> Jakub Kicinski <jakub.kicinski@netronome.com> wrote:\n> \n> > On Tue, 26 Sep 2017 15:24:06 -0700, Alexei Starovoitov wrote:  \n> > > On Tue, Sep 26, 2017 at 08:35:22AM -0700, Jakub Kicinski wrote:    \n> > > > Add a simple tool for querying and updating BPF objects on the system.\n> > > > \n> > > > Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\n> > > > Reviewed-by: Simon Horman <simon.horman@netronome.com>  \n> [...]\n> > > >  tools/bpf/Makefile             |  18 +-\n> > > >  tools/bpf/bpftool/Makefile     |  80 +++++\n> > > >  tools/bpf/bpftool/common.c     | 214 ++++++++++++\n> > > >  tools/bpf/bpftool/jit_disasm.c |  83 +++++\n> > > >  tools/bpf/bpftool/main.c       | 212 ++++++++++++\n> > > >  tools/bpf/bpftool/main.h       |  99 ++++++\n> > > >  tools/bpf/bpftool/map.c        | 742 +++++++++++++++++++++++++++++++++++++++++\n> > > >  tools/bpf/bpftool/prog.c       | 392 ++++++++++++++++++++++\n> > > >  8 files changed, 1837 insertions(+), 3 deletions(-)      \n> > > ...    \n> > > > +static int do_help(int argc, char **argv)\n> > > > +{\n> > > > +\tfprintf(stderr,\n> > > > +\t\t\"Usage: %s %s show   [MAP]\\n\"\n> > > > +\t\t\"       %s %s dump    MAP\\n\"\n> > > > +\t\t\"       %s %s update  MAP  key BYTES value VALUE [UPDATE_FLAGS]\\n\"\n> > > > +\t\t\"       %s %s lookup  MAP  key BYTES\\n\"\n> > > > +\t\t\"       %s %s getnext MAP [key BYTES]\\n\"\n> > > > +\t\t\"       %s %s delete  MAP  key BYTES\\n\"\n> > > > +\t\t\"       %s %s pin     MAP  FILE\\n\"\n> > > > +\t\t\"       %s %s help\\n\"\n> > > > +\t\t\"\\n\"\n> > > > +\t\t\"       MAP := { id MAP_ID | pinned FILE }\\n\"\n> > > > +\t\t\"       \" HELP_SPEC_PROGRAM \"\\n\"\n> > > > +\t\t\"       VALUE := { BYTES | MAP | PROG }\\n\"\n> > > > +\t\t\"       UPDATE_FLAGS := { any | exist | noexist }\\n\"\n> > > > +\t\t\"\",      \n> > > \n> > > overall looks good to me, but still difficult to grasp how to use it.\n> > > Can you add README with example usage and expected output?    \n> > \n> > I have a README on GitHub, but I was thinking about perhaps writing a\n> > proper man page?  Do you prefer one over the other?  \n> \n> I would prefer adding a README.rst file, in RST-format, as the rest of\n> the kernel documentation is moving in that direction[1] (your github\n> version is in README.md format).  A man page will always be\n> out-of-sync, and even out-of-sync on different distros.\n> \n>  See[1]: https://www.kernel.org/doc/html/latest/\n> \n> And then I would find some place in Documentation/admin-guide/ and\n> include the README.rst file, so it shows up at [1].\n> \n> RST have an include method like:\n> \n> .. include:: ../../tools/bpf/bpftool/README.rst\n\nCan the docs in new format be rendered into a man page?  Call me old\nfashioned but I think we should provide some form of a man page.. :)","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=netronome-com.20150623.gappssmtp.com\n\theader.i=@netronome-com.20150623.gappssmtp.com\n\theader.b=\"CDA4Zl6D\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2FCl0S2nz9tXf\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 27 Sep 2017 20:57:55 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751943AbdI0K5u (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 27 Sep 2017 06:57:50 -0400","from mail-wm0-f45.google.com ([74.125.82.45]:50951 \"EHLO\n\tmail-wm0-f45.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751287AbdI0K5s (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Wed, 27 Sep 2017 06:57:48 -0400","by mail-wm0-f45.google.com with SMTP id b195so16740649wmb.5\n\tfor <netdev@vger.kernel.org>; Wed, 27 Sep 2017 03:57:48 -0700 (PDT)","from cakuba ([85.133.27.70]) by smtp.gmail.com with ESMTPSA id\n\tx17sm6042363wrg.50.2017.09.27.03.57.46\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tWed, 27 Sep 2017 03:57:47 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=netronome-com.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:in-reply-to:references\n\t:organization:mime-version:content-transfer-encoding;\n\tbh=J+M2fjmXkYILzywk0zIRNbhOK4j0uWrNEJYNXefSDNE=;\n\tb=CDA4Zl6D02X+Wy/vGf6nU9UU4FQQrBkMzwwCb1of2XZZShp0U6VE7RaV40NQ4DZg0v\n\tsEbnV0/CnFOIqsdh7h0dJoU/wYCiFIS367XT8nYIH+H1ydCbmCQqyo8nS6yVPRgdrTxG\n\t6E9jjpD2CvLWOiFLgNfiev12J6CcDSM/mU3ICgT6Ycs8tRz9ZLjCRzDel/S/IfSoD8yV\n\tH/wjkt5vdeYsWMioa9TU41ZevsaoqMW4/r5bhd3Cis49Uqk6X7z6/GaT3H24Emmt8yFW\n\tKcPLEJeFLvdyo0NuFrevEqc/k+VAszC5MEy2mh1tdY+p1s7XSIFjqHSjU1NQeuBMbUCe\n\tGA9w==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to\n\t:references:organization:mime-version:content-transfer-encoding;\n\tbh=J+M2fjmXkYILzywk0zIRNbhOK4j0uWrNEJYNXefSDNE=;\n\tb=ELW5xHohNvakYz2rsIvGMHt9ieQ1jmf8yi5CR5smDyOKkPKsGOh6n9TP+32vYLASvC\n\tBSGOdFo/ERD5n6wtbkBDgDHSskYw3qqgCB8lpIzFHX9bX/7kQ3nis611bbia7kiDByqV\n\tarLGtMz2uiOjtDtNjUWftEm5vffk/MFzvBxEn3WGwzus1OqNbef5ST32hB3PPaj1DV0i\n\t+d+RdGKCTNLm2VL0Qf3vhlY0/Ahp6dBcyMU8ZDIUhdgRYcapJB2pzG9lGxnoNlpdrcQs\n\tO0zzPrLIB6ZmWfy88ctCKMIcj1HcoMjl/zd48Bzo5Yeu0qvKScJ2SdCOIqBnnFSCbMjr\n\tIHOA==","X-Gm-Message-State":"AHPjjUgHaVCcszOq+49/uIRgfLReksF9u9dLZsuUIQTHqmJjBr3AhNxo\n\tmfdZPG2a5MX6BbrVc8dyi3DmTQ==","X-Google-Smtp-Source":"AOwi7QCVrZHhRvMVkTImPC9CzCcur88Z5tUNrfGjcC9DNLHexLh3XdCNO0XXCNoPcVW6LYt91bu9OA==","X-Received":"by 10.28.203.196 with SMTP id b187mr1363571wmg.126.1506509867328;\n\tWed, 27 Sep 2017 03:57:47 -0700 (PDT)","Date":"Wed, 27 Sep 2017 03:57:42 -0700","From":"Jakub Kicinski <jakub.kicinski@netronome.com>","To":"Jesper Dangaard Brouer <brouer@redhat.com>","Cc":"Alexei Starovoitov <alexei.starovoitov@gmail.com>,\n\tnetdev@vger.kernel.org, daniel@iogearbox.net, davem@davemloft.net,\n\thannes@stressinduktion.org, dsahern@gmail.com, oss-drivers@netronome.com,\n\t\"linux-doc@vger.kernel.org\" <linux-doc@vger.kernel.org>","Subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","Message-ID":"<20170927035742.5c9ee8c3@cakuba>","In-Reply-To":"<20170927124511.650870bc@redhat.com>","References":"<20170926153522.31500-1-jakub.kicinski@netronome.com>\n\t<20170926153522.31500-3-jakub.kicinski@netronome.com>\n\t<20170926222405.nq23enzudbjklczb@ast-mbp>\n\t<20170927000208.4396dfb7@cakuba>\n\t<20170927124511.650870bc@redhat.com>","Organization":"Netronome Systems, Ltd.","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1776257,"web_url":"http://patchwork.ozlabs.org/comment/1776257/","msgid":"<20170927131906.286b1e25@redhat.com>","list_archive_url":null,"date":"2017-09-27T11:19:06","subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","submitter":{"id":13625,"url":"http://patchwork.ozlabs.org/api/people/13625/","name":"Jesper Dangaard Brouer","email":"brouer@redhat.com"},"content":"On Wed, 27 Sep 2017 03:57:42 -0700\nJakub Kicinski <jakub.kicinski@netronome.com> wrote:\n\n> On Wed, 27 Sep 2017 12:45:11 +0200, Jesper Dangaard Brouer wrote:\n> > On Wed, 27 Sep 2017 00:02:08 +0100\n> > Jakub Kicinski <jakub.kicinski@netronome.com> wrote:\n> >   \n> > > On Tue, 26 Sep 2017 15:24:06 -0700, Alexei Starovoitov wrote:    \n> > > > On Tue, Sep 26, 2017 at 08:35:22AM -0700, Jakub Kicinski wrote:      \n> > > > > Add a simple tool for querying and updating BPF objects on the system.\n> > > > > \n> > > > > Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\n> > > > > Reviewed-by: Simon Horman <simon.horman@netronome.com>    \n> > [...]  \n> > > > >  tools/bpf/Makefile             |  18 +-\n> > > > >  tools/bpf/bpftool/Makefile     |  80 +++++\n> > > > >  tools/bpf/bpftool/common.c     | 214 ++++++++++++\n> > > > >  tools/bpf/bpftool/jit_disasm.c |  83 +++++\n> > > > >  tools/bpf/bpftool/main.c       | 212 ++++++++++++\n> > > > >  tools/bpf/bpftool/main.h       |  99 ++++++\n> > > > >  tools/bpf/bpftool/map.c        | 742 +++++++++++++++++++++++++++++++++++++++++\n> > > > >  tools/bpf/bpftool/prog.c       | 392 ++++++++++++++++++++++\n> > > > >  8 files changed, 1837 insertions(+), 3 deletions(-)        \n> > > > ...      \n> > > > > +static int do_help(int argc, char **argv)\n> > > > > +{\n> > > > > +\tfprintf(stderr,\n> > > > > +\t\t\"Usage: %s %s show   [MAP]\\n\"\n> > > > > +\t\t\"       %s %s dump    MAP\\n\"\n> > > > > +\t\t\"       %s %s update  MAP  key BYTES value VALUE [UPDATE_FLAGS]\\n\"\n> > > > > +\t\t\"       %s %s lookup  MAP  key BYTES\\n\"\n> > > > > +\t\t\"       %s %s getnext MAP [key BYTES]\\n\"\n> > > > > +\t\t\"       %s %s delete  MAP  key BYTES\\n\"\n> > > > > +\t\t\"       %s %s pin     MAP  FILE\\n\"\n> > > > > +\t\t\"       %s %s help\\n\"\n> > > > > +\t\t\"\\n\"\n> > > > > +\t\t\"       MAP := { id MAP_ID | pinned FILE }\\n\"\n> > > > > +\t\t\"       \" HELP_SPEC_PROGRAM \"\\n\"\n> > > > > +\t\t\"       VALUE := { BYTES | MAP | PROG }\\n\"\n> > > > > +\t\t\"       UPDATE_FLAGS := { any | exist | noexist }\\n\"\n> > > > > +\t\t\"\",        \n> > > > \n> > > > overall looks good to me, but still difficult to grasp how to use it.\n> > > > Can you add README with example usage and expected output?      \n> > > \n> > > I have a README on GitHub, but I was thinking about perhaps writing a\n> > > proper man page?  Do you prefer one over the other?    \n> > \n> > I would prefer adding a README.rst file, in RST-format, as the rest of\n> > the kernel documentation is moving in that direction[1] (your github\n> > version is in README.md format).  A man page will always be\n> > out-of-sync, and even out-of-sync on different distros.\n> > \n> >  See[1]: https://www.kernel.org/doc/html/latest/\n> > \n> > And then I would find some place in Documentation/admin-guide/ and\n> > include the README.rst file, so it shows up at [1].\n> > \n> > RST have an include method like:\n> > \n> > .. include:: ../../tools/bpf/bpftool/README.rst  \n> \n> Can the docs in new format be rendered into a man page?  Call me old\n> fashioned but I think we should provide some form of a man page.. :)\n\nYes, simply create the man page like:\n\n rst2man README.rst README.man\n\nYou can add this to your local makefile.\n\nThe standard sphinx build can also generate man-pages, but it have been\nremoved from the kernel makefile targets:\n\nDocumentation targets:\n Linux kernel internal documentation in different formats from ReST:\n  htmldocs        - HTML\n  latexdocs       - LaTeX\n  pdfdocs         - PDF\n  epubdocs        - EPUB\n  xmldocs         - XML\n  linkcheckdocs   - check for broken external links (will connect to external hosts)\n  cleandocs       - clean all generated files","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=brouer@redhat.com"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2FhW3Mhqz9s0Z\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 27 Sep 2017 21:19:23 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752215AbdI0LTP (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 27 Sep 2017 07:19:15 -0400","from mx1.redhat.com ([209.132.183.28]:54330 \"EHLO mx1.redhat.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1751671AbdI0LTO (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tWed, 27 Sep 2017 07:19:14 -0400","from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id E42C4C0546D3;\n\tWed, 27 Sep 2017 11:19:13 +0000 (UTC)","from localhost (ovpn-200-30.brq.redhat.com [10.40.200.30])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id E0F7A782B4;\n\tWed, 27 Sep 2017 11:19:07 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com E42C4C0546D3","Date":"Wed, 27 Sep 2017 13:19:06 +0200","From":"Jesper Dangaard Brouer <brouer@redhat.com>","To":"Jakub Kicinski <jakub.kicinski@netronome.com>","Cc":"Alexei Starovoitov <alexei.starovoitov@gmail.com>,\n\tnetdev@vger.kernel.org, daniel@iogearbox.net, davem@davemloft.net,\n\thannes@stressinduktion.org, dsahern@gmail.com, oss-drivers@netronome.com,\n\t\"linux-doc@vger.kernel.org\" <linux-doc@vger.kernel.org>,\n\tbrouer@redhat.com","Subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","Message-ID":"<20170927131906.286b1e25@redhat.com>","In-Reply-To":"<20170927035742.5c9ee8c3@cakuba>","References":"<20170926153522.31500-1-jakub.kicinski@netronome.com>\n\t<20170926153522.31500-3-jakub.kicinski@netronome.com>\n\t<20170926222405.nq23enzudbjklczb@ast-mbp>\n\t<20170927000208.4396dfb7@cakuba>\n\t<20170927124511.650870bc@redhat.com>\n\t<20170927035742.5c9ee8c3@cakuba>","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.15","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.32]);\n\tWed, 27 Sep 2017 11:19:14 +0000 (UTC)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1776281,"web_url":"http://patchwork.ozlabs.org/comment/1776281/","msgid":"<C92884FB-9948-4CCF-9B58-7811691F6574@darmarit.de>","list_archive_url":null,"date":"2017-09-27T11:49:58","subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","submitter":{"id":70056,"url":"http://patchwork.ozlabs.org/api/people/70056/","name":"Markus Heiser","email":"markus.heiser@darmarit.de"},"content":"> Am 27.09.2017 um 13:19 schrieb Jesper Dangaard Brouer <brouer@redhat.com>:\n[...]\n>>> I would prefer adding a README.rst file, in RST-format, as the rest of\n>>> the kernel documentation is moving in that direction[1] (your github\n>>> version is in README.md format).  A man page will always be\n>>> out-of-sync, and even out-of-sync on different distros.\n>>> \n>>> See[1]: https://www.kernel.org/doc/html/latest/\n>>> \n>>> And then I would find some place in Documentation/admin-guide/ and\n>>> include the README.rst file, so it shows up at [1].\n>>> \n>>> RST have an include method like:\n>>> \n>>> .. include:: ../../tools/bpf/bpftool/README.rst  \n>> \n>> Can the docs in new format be rendered into a man page?  Call me old\n>> fashioned but I think we should provide some form of a man page.. :)\n> \n> Yes, simply create the man page like:\n> \n> rst2man README.rst README.man\n> You can add this to your local makefile.\n\nHm ... this will work only for simple reST files.\n\nFYI: Sphinx is build up on top of docutils extending the reST markup. Tools\nlike rst2man are from docutils and do not cover the markup extensions\nfrom Sphinx. Since Sphinx has its own builder for man pages, generating\nman pages is not the problem ...\n\n> The standard sphinx build can also generate man-pages, but it have been\n> removed from the kernel makefile targets:\n> \n> Documentation targets:\n> Linux kernel internal documentation in different formats from ReST:\n> htmldocs        - HTML\n> latexdocs       - LaTeX\n> pdfdocs         - PDF\n> epubdocs        - EPUB\n> xmldocs         - XML\n> linkcheckdocs   - check for broken external links (will connect to external hosts)\n> cleandocs       - clean all generated files\n\nThe reason why we have no man page target is, that we have not yet\nevaluated a concept, how we can manage the 'build man pages' task in\nthe kernel build.\n\nBeside what you find in the kernel-source tree I'am working on such\na concept (adapted man page builder for the Kernel) [1].\n\nIMO: Even if we merge the builder from [1] or implement something different,\nwe have to touch the current kernel-doc parser. I guess that and the absence\nof a handy concept is the reason why we are dangling with a 'man' target.\n\nAnyway, these are my estimations, it might be better if we hear what\nJon think about a man page builder (concept).\n\n[1] https://return42.github.io/linuxdoc/linuxdoc-howto/man-pages.html\n\n-- Markus --","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2GVs0Y4Jz9tXC\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 27 Sep 2017 21:56:05 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752114AbdI0L4C convert rfc822-to-8bit (ORCPT\n\t<rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 27 Sep 2017 07:56:02 -0400","from smtp3.goneo.de ([85.220.129.37]:37160 \"EHLO smtp3.goneo.de\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1750854AbdI0L4B (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tWed, 27 Sep 2017 07:56:01 -0400","from localhost (localhost [127.0.0.1])\n\tby smtp3.goneo.de (Postfix) with ESMTP id D852223F61D;\n\tWed, 27 Sep 2017 13:50:41 +0200 (CEST)","from smtp3.goneo.de ([127.0.0.1])\n\tby localhost (smtp3.goneo.de [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id hh3tdGl1RQSQ; Wed, 27 Sep 2017 13:50:00 +0200 (CEST)","from [192.168.1.112] (dyndsl-091-096-210-010.ewe-ip-backbone.de\n\t[91.96.210.10])\n\tby smtp3.goneo.de (Postfix) with ESMTPSA id 4B5A723F367;\n\tWed, 27 Sep 2017 13:49:59 +0200 (CEST)"],"X-Greylist":"delayed 318 seconds by postgrey-1.27 at vger.kernel.org;\n\tWed, 27 Sep 2017 07:56:01 EDT","X-Virus-Scanned":"by goneo","X-Spam-Flag":"NO","X-Spam-Score":"-2.77","X-Spam-Level":"","X-Spam-Status":"No, score=-2.77 tagged_above=-999 tests=[ALL_TRUSTED=-1,\n\tAWL=0.130, BAYES_00=-1.9] autolearn=unavailable","Content-Type":"text/plain; charset=us-ascii","Mime-Version":"1.0 (Mac OS X Mail 10.3 \\(3273\\))","Subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","From":"Markus Heiser <markus.heiser@darmarit.de>","In-Reply-To":"<20170927131906.286b1e25@redhat.com>","Date":"Wed, 27 Sep 2017 13:49:58 +0200","Cc":"Jakub Kicinski <jakub.kicinski@netronome.com>,\n\tAlexei Starovoitov <alexei.starovoitov@gmail.com>,\n\tnetdev@vger.kernel.org, daniel@iogearbox.net, davem@davemloft.net,\n\thannes@stressinduktion.org, dsahern@gmail.com, oss-drivers@netronome.com,\n\tLinux Doc Mailing List <linux-doc@vger.kernel.org>","Content-Transfer-Encoding":"8BIT","Message-Id":"<C92884FB-9948-4CCF-9B58-7811691F6574@darmarit.de>","References":"<20170926153522.31500-1-jakub.kicinski@netronome.com>\n\t<20170926153522.31500-3-jakub.kicinski@netronome.com>\n\t<20170926222405.nq23enzudbjklczb@ast-mbp>\n\t<20170927000208.4396dfb7@cakuba>\n\t<20170927124511.650870bc@redhat.com> <20170927035742.5c9ee8c3@cakuba>\n\t<20170927131906.286b1e25@redhat.com>","To":"Jesper Dangaard Brouer <brouer@redhat.com>,\n\tJonathan Corbet <corbet@lwn.net>","X-Mailer":"Apple Mail (2.3273)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1777041,"web_url":"http://patchwork.ozlabs.org/comment/1777041/","msgid":"<20170928065912.00a9b6a1@cakuba>","list_archive_url":null,"date":"2017-09-28T13:59:12","subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","submitter":{"id":17220,"url":"http://patchwork.ozlabs.org/api/people/17220/","name":"Jakub Kicinski","email":"kubakici@wp.pl"},"content":"On Tue, 26 Sep 2017 08:35:22 -0700, Jakub Kicinski wrote:\n> Add a simple tool for querying and updating BPF objects on the system.\n> \n> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\n> Reviewed-by: Simon Horman <simon.horman@netronome.com>\n\nDave, I got some late review nitpicks internally which I think are\nworth addressing.  Would you mind dropping this series?  I will post v2\nwith the cleanups and README included.","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=wp.pl header.i=@wp.pl header.b=\"bA1rpd9+\";\n\tdkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2xBr5k3jz9t33\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 28 Sep 2017 23:59:32 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1753151AbdI1N7a (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 28 Sep 2017 09:59:30 -0400","from mx4.wp.pl ([212.77.101.12]:7301 \"EHLO mx4.wp.pl\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1753029AbdI1N73 (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tThu, 28 Sep 2017 09:59:29 -0400","(wp-smtpd smtp.wp.pl 18763 invoked from network);\n\t28 Sep 2017 15:59:26 +0200","from unknown (HELO cakuba) (kubakici@wp.pl@[75.53.12.129])\n\t(envelope-sender <kubakici@wp.pl>)\n\tby smtp.wp.pl (WP-SMTPD) with ECDHE-RSA-AES256-GCM-SHA384 encrypted\n\tSMTP for <netdev@vger.kernel.org>; 28 Sep 2017 15:59:26 +0200"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=wp.pl; s=1024a;\n\tt=1506607167; bh=eaPftq/H+QKiz9uybp7KJPPxFx3raLLHewidbPW8+r4=;\n\th=From:To:Cc:Subject;\n\tb=bA1rpd9+u37gTJFnSBG6XlgxcAhvoBW5/H5axHYj58CNOM7r6Qjqr/3pCaDkPwD94\n\tYoPUIfiOtRgw9nIIrJLz9G1RWCrtbuk/JEhaVzy81G7IRZucQbZ3BZMAz4bLHBtFsc\n\tedVA9bp8wMCSCXYWJclZZ6JAGLbuVLlomD4WGsnw=","Date":"Thu, 28 Sep 2017 06:59:12 -0700","From":"Jakub Kicinski <kubakici@wp.pl>","To":"davem@davemloft.net","Cc":"netdev@vger.kernel.org, daniel@iogearbox.net,\n\talexei.starovoitov@gmail.com, hannes@stressinduktion.org,\n\tdsahern@gmail.com, oss-drivers@netronome.com","Subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","Message-ID":"<20170928065912.00a9b6a1@cakuba>","In-Reply-To":"<20170926153522.31500-3-jakub.kicinski@netronome.com>","References":"<20170926153522.31500-1-jakub.kicinski@netronome.com>\n\t<20170926153522.31500-3-jakub.kicinski@netronome.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit","X-WP-MailID":"4093e611fdee79bde6c1b2ba28c16286","X-WP-AV":"skaner antywirusowy Poczty Wirtualnej Polski","X-WP-SPAM":"NO 000000A [ofMU]                               ","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1777119,"web_url":"http://patchwork.ozlabs.org/comment/1777119/","msgid":"<20170928.084838.221261977944137338.davem@davemloft.net>","list_archive_url":null,"date":"2017-09-28T15:48:38","subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","submitter":{"id":15,"url":"http://patchwork.ozlabs.org/api/people/15/","name":"David Miller","email":"davem@davemloft.net"},"content":"From: Jakub Kicinski <kubakici@wp.pl>\nDate: Thu, 28 Sep 2017 06:59:12 -0700\n\n> On Tue, 26 Sep 2017 08:35:22 -0700, Jakub Kicinski wrote:\n>> Add a simple tool for querying and updating BPF objects on the system.\n>> \n>> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\n>> Reviewed-by: Simon Horman <simon.horman@netronome.com>\n> \n> Dave, I got some late review nitpicks internally which I think are\n> worth addressing.  Would you mind dropping this series?  I will post v2\n> with the cleanups and README included.\n\nSure.","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2zcn2nBRz9t5Y\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 29 Sep 2017 01:48:41 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751643AbdI1Psk (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 28 Sep 2017 11:48:40 -0400","from shards.monkeyblade.net ([184.105.139.130]:47182 \"EHLO\n\tshards.monkeyblade.net\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751091AbdI1Psj (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 28 Sep 2017 11:48:39 -0400","from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net\n\t[74.93.104.98]) (using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(Client did not present a certificate)\n\t(Authenticated sender: davem-davemloft)\n\tby shards.monkeyblade.net (Postfix) with ESMTPSA id EA8D71340B936;\n\tThu, 28 Sep 2017 08:48:38 -0700 (PDT)"],"Date":"Thu, 28 Sep 2017 08:48:38 -0700 (PDT)","Message-Id":"<20170928.084838.221261977944137338.davem@davemloft.net>","To":"kubakici@wp.pl","Cc":"netdev@vger.kernel.org, daniel@iogearbox.net,\n\talexei.starovoitov@gmail.com, hannes@stressinduktion.org,\n\tdsahern@gmail.com, oss-drivers@netronome.com","Subject":"Re: [PATCH net-next 2/2] tools: bpf: add bpftool","From":"David Miller <davem@davemloft.net>","In-Reply-To":"<20170928065912.00a9b6a1@cakuba>","References":"<20170926153522.31500-1-jakub.kicinski@netronome.com>\n\t<20170926153522.31500-3-jakub.kicinski@netronome.com>\n\t<20170928065912.00a9b6a1@cakuba>","X-Mailer":"Mew version 6.7 on Emacs 25.3 / Mule 6.0 (HANACHIRUSATO)","Mime-Version":"1.0","Content-Type":"Text/Plain; charset=us-ascii","Content-Transfer-Encoding":"7bit","X-Greylist":"Sender succeeded SMTP AUTH, not delayed by\n\tmilter-greylist-4.5.12 (shards.monkeyblade.net\n\t[149.20.54.216]); Thu, 28 Sep 2017 08:48:39 -0700 (PDT)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]