From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4EF48C43387 for ; Tue, 15 Jan 2019 23:23:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1F52020883 for ; Tue, 15 Jan 2019 23:23:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="WwTctRnO" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391417AbfAOXXJ (ORCPT ); Tue, 15 Jan 2019 18:23:09 -0500 Received: from mail-yw1-f74.google.com ([209.85.161.74]:50125 "EHLO mail-yw1-f74.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727036AbfAOXXI (ORCPT ); Tue, 15 Jan 2019 18:23:08 -0500 Received: by mail-yw1-f74.google.com with SMTP id l7so2141286ywh.16 for ; Tue, 15 Jan 2019 15:23:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=MIfQlFsZM4jfmL4zQj8Gm4w5rvtPbyh3H/huHz5Fgsk=; b=WwTctRnOGMZiyh/m/6F7u83KObxkii3YjOSwPifl4PAVGPKZSmUN0P74oTFxX2FCcO lMMKrxmmtZRyfHZ/eOY7ipAzuFRiRw37l/ydfD8JZjY0zkdTsVArbq9NRTKnvzFaABgi hBKDNZ+x0BfMbDEO6j62HTs2CA6SWar1eLk+JrjwnW5QpKy8jkzHVRjWpV3dIbSPYcYk wF0TWHITU9aL/2+RmUHtRgfFEiUengCWcKJVG4P8ZgxGgizFIOzQC3SFc0k/7K9D84Oc OTLDUmRcEYyazh5zjszICLTlB0EnsDxzu3WNdIGuij0mheGKLOgVx8/53RXnGZzLVCi4 /RlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=MIfQlFsZM4jfmL4zQj8Gm4w5rvtPbyh3H/huHz5Fgsk=; b=dFqrZxVC7bj/wzRbUhw79qzwQTIyKlpR30B7I0bYUfPVIuTM5hm7wP7+Rin5UfVHx2 oIPitf2RFZs5xhI+KrMDu4Vnyc1TILMnCV8M11H7N2VWXycETllrBi3Q64bAW54oPTVU K3r67gtjv5vXbsCwbThFxVBncMUlO4Dwkz+DZu1c0L7R7w3WOqRNwensRWXPzroyC4nm AHxrFzauIA6rHVOWplSZ7TbTnlniDyGyEidlManTVy+NcZviBHF1WOTO7ywWMUwTaAXa IdmP24rszr1sBtdrgK/054drwULM6dNGBz0sO+4B6HQkTqUHm0hLqZOQ/91t4jvJIfhT FMQg== X-Gm-Message-State: AJcUukd6bI02Ipn3dY3w/4wT7XZtu6jLn9f6HAvKxmiPAIKJLO6zeI4Q Oz9ZPKQDMLx2y064Q2TkZj56SRvCaAdcZU6zfVIvuiexqRZYr40nx64+wb/f4ePfZLCmc3LjiaZ YAQ1vDhuEbz0iUV69Y43nSrt37vOEmSS6lylX6O2qCBFhX9FvlkMZ+g== X-Google-Smtp-Source: ALg8bN5bN931xDEhu27QQVLeo5uvjf6OB5OLvY4G6q90BQ5n8v9hkfAG9+hRqGHOjKaTgfroxEXDHYY= X-Received: by 2002:a5b:c83:: with SMTP id i3mr2575047ybq.37.1547594587779; Tue, 15 Jan 2019 15:23:07 -0800 (PST) Date: Tue, 15 Jan 2019 15:22:50 -0800 In-Reply-To: <20190115232252.5736-1-sdf@google.com> Message-Id: <20190115232252.5736-5-sdf@google.com> Mime-Version: 1.0 References: <20190115232252.5736-1-sdf@google.com> X-Mailer: git-send-email 2.20.1.97.g81188d93c3-goog Subject: [PATCH bpf-next 4/6] bpftool: add peek command From: Stanislav Fomichev To: netdev@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, jakub.kicinski@netronome.com, quentin.monnet@netronome.com, Stanislav Fomichev Content-Type: text/plain; charset="UTF-8" Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This is intended to be used with queues and stacks and be more user-friendly than 'lookup' without key/value. Example: bpftool map create /sys/fs/bpf/q type queue value 4 entries 10 name q bpftool map update pinned /sys/fs/bpf/q value 0 1 2 3 bpftool map peek pinned /sys/fs/bpf/q value: 00 01 02 03 Signed-off-by: Stanislav Fomichev --- tools/bpf/bpftool/Documentation/bpftool-map.rst | 4 ++++ tools/bpf/bpftool/bash-completion/bpftool | 5 +++-- tools/bpf/bpftool/map.c | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tools/bpf/bpftool/Documentation/bpftool-map.rst b/tools/bpf/bpftool/Documentation/bpftool-map.rst index f34cace771bd..b79da683da88 100644 --- a/tools/bpf/bpftool/Documentation/bpftool-map.rst +++ b/tools/bpf/bpftool/Documentation/bpftool-map.rst @@ -31,6 +31,7 @@ MAP COMMANDS | **bpftool** **map delete** *MAP* **key** *DATA* | **bpftool** **map pin** *MAP* *FILE* | **bpftool** **map event_pipe** *MAP* [**cpu** *N* **index** *M*] +| **bpftool** **map peek** *MAP* | **bpftool** **map help** | | *MAP* := { **id** *MAP_ID* | **pinned** *FILE* } @@ -107,6 +108,9 @@ DESCRIPTION replace any existing ring. Any other application will stop receiving events if it installed its rings earlier. + **bpftool map peek** *MAP* + Peek next **value** in the queue or stack. + **bpftool map help** Print short help message. diff --git a/tools/bpf/bpftool/bash-completion/bpftool b/tools/bpf/bpftool/bash-completion/bpftool index e4e4fab1b8c7..fe4880d9bd8d 100644 --- a/tools/bpf/bpftool/bash-completion/bpftool +++ b/tools/bpf/bpftool/bash-completion/bpftool @@ -382,7 +382,7 @@ _bpftool() map) local MAP_TYPE='id pinned' case $command in - show|list|dump) + show|list|dump|peek) case $prev in $command) COMPREPLY=( $( compgen -W "$MAP_TYPE" -- "$cur" ) ) @@ -546,7 +546,8 @@ _bpftool() *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'delete dump getnext help \ - lookup pin event_pipe show list update create' -- \ + lookup pin event_pipe show list update create \ + peek' -- \ "$cur" ) ) ;; esac diff --git a/tools/bpf/bpftool/map.c b/tools/bpf/bpftool/map.c index 3f599399913b..d7344fcd2089 100644 --- a/tools/bpf/bpftool/map.c +++ b/tools/bpf/bpftool/map.c @@ -1168,6 +1168,7 @@ static int do_help(int argc, char **argv) " %s %s delete MAP key DATA\n" " %s %s pin MAP FILE\n" " %s %s event_pipe MAP [cpu N index M]\n" + " %s %s peek MAP\n" " %s %s help\n" "\n" " " HELP_SPEC_MAP "\n" @@ -1185,7 +1186,7 @@ static int do_help(int argc, char **argv) bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], bin_name, argv[-2], - bin_name, argv[-2]); + bin_name, argv[-2], bin_name, argv[-2]); return 0; } @@ -1202,6 +1203,7 @@ static const struct cmd cmds[] = { { "pin", do_pin }, { "event_pipe", do_event_pipe }, { "create", do_create }, + { "peek", do_lookup }, { 0 } }; -- 2.20.1.97.g81188d93c3-goog