From patchwork Wed Jan 16 19:10:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1026131 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="nA20prlB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43fxcG1N0tz9sD4 for ; Thu, 17 Jan 2019 06:10:22 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730263AbfAPTKV (ORCPT ); Wed, 16 Jan 2019 14:10:21 -0500 Received: from mail-pf1-f202.google.com ([209.85.210.202]:49466 "EHLO mail-pf1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730036AbfAPTKU (ORCPT ); Wed, 16 Jan 2019 14:10:20 -0500 Received: by mail-pf1-f202.google.com with SMTP id x67so5358937pfk.16 for ; Wed, 16 Jan 2019 11:10:19 -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=CnNLesP3ke3NN3GB2F8nbWuEwf9VJU9k0UtFbQPDvm8=; b=nA20prlB+48C8mbQyIk5MTErQhpELto/w/HDS8WodadPG3l76sWYdo9neT/WUWm3ji vqXvtfKHRboX6AqDXUQBXqcUVxayQvlFhZ7+AXgFsucAz3zrh0Q529D1E4b/2kbKu1KV HySL9DgNYkrRqyjdMHpY6EBRP1WeAOQXJEIvKGymM0T26IR9PLbTk1wd5Nd8/0dhFOhL ZMd8KOrHI7rnEUiZvTRHWedhwpjVe2MIwXpFT8T+nn808zWlvlBQv9/4eDAzY4+peLEn sQ8rGlq302xoYM/EqAssFfHqGduJbbz2hlicKi027GAqPagXfITu+yU6CiBZW3u4FjPi EdOw== 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=CnNLesP3ke3NN3GB2F8nbWuEwf9VJU9k0UtFbQPDvm8=; b=NP6u6u62W3rgRWs3PJn+MdRrxxzReU4arTlqAJ6uUdiHK0EAa+35MdRJC+IYcomc2u Y3dklR+ijJsriZKCmjDZsQ02utzPajuEEXDfyD4vOuRRLWnn4vLUr0rUIkvDk6wGbyTh yN+zjt/ILtZ4AJAy9QdzlZQmGffFHSMWEBUPhK6EeNS1n74AUkl0eNj/l/o2AcrW9B1k hUIRS3RuiYfpWDa6LCYB9TkYyvtun6bbT6uwkYCnWLKmYrmPRU1EcQQQ2MspBSctyZ+7 Yep/OhJjoNtbH5mKTC06Nd184ByLgXS5mFpCvcOmBu+9so3nwcA2wXd+NFqUBhUGYCAE Y9cQ== X-Gm-Message-State: AJcUukcdtUD226adHf4ZA0n4w/oZInQ5VNhxZxO7jaNb1a1qMYjXSAim dek37TnT2kbgi030UtSMGwGrujxharxH+eneZ4k/xWKzmq8kEZKviGj7+sGhxkh49TUnOefGmBO sgXldAgA8qJZt3+JbcajVgbWjHsZ7TA8c7R5snmuow2utg+OvEDezWg== X-Google-Smtp-Source: ALg8bN5QvH8bo95M818Lry9LgYrNQ5SOPNlw8cKsbPzfns9LnqRywPrVgQJ98Amr3a4SO8asQB36pXA= X-Received: by 2002:a17:902:59d9:: with SMTP id d25mr3250533plj.13.1547665819125; Wed, 16 Jan 2019 11:10:19 -0800 (PST) Date: Wed, 16 Jan 2019 11:10:02 -0800 In-Reply-To: <20190116191005.164355-1-sdf@google.com> Message-Id: <20190116191005.164355-5-sdf@google.com> Mime-Version: 1.0 References: <20190116191005.164355-1-sdf@google.com> X-Mailer: git-send-email 2.20.1.97.g81188d93c3-goog Subject: [PATCH bpf-next v2 4/7] 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 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/map.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) 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/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 } };