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 5433FC43387 for ; Wed, 16 Jan 2019 19:10:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 25463206C2 for ; Wed, 16 Jan 2019 19:10:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="G6YrjAJc" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730274AbfAPTKY (ORCPT ); Wed, 16 Jan 2019 14:10:24 -0500 Received: from mail-oi1-f201.google.com ([209.85.167.201]:46591 "EHLO mail-oi1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730036AbfAPTKW (ORCPT ); Wed, 16 Jan 2019 14:10:22 -0500 Received: by mail-oi1-f201.google.com with SMTP id k76so2127004oih.13 for ; Wed, 16 Jan 2019 11:10:22 -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=nOLrJb9+rUI3f4oIy6Jgvv7/VTwYgVp0ZIENbMFtb8w=; b=G6YrjAJc2vCn43RufzoB3RR9ANF5NRnmgf8DJcEbV31f4tmh7EDIbc85Z2K5un7hGS WZ16c8OEuz7Vwt1XxMlKOW6yp4idvhUTU95hVCtpjBuLq83JyHPxmKdz6XpTn7pjgI8N WxIxrevfjNpmGNk1Ij/an2jQqzlWxVVAnLDCMcHQf7A7mJkq8GQCLp2au9BAE+uUHOT9 ap6s5mBGqITvK1+0rdCzdkoM6XOJCrR+Ek39+xSvP9jWv5IRK671zeIyVVLpuDZ9oy0o GsInbhjuttMcCZ1Zl43sucLNvmtaD2urT16QhktHTm667Do3fMCZ8FSahvutqorjSdVr hGdg== 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=nOLrJb9+rUI3f4oIy6Jgvv7/VTwYgVp0ZIENbMFtb8w=; b=cGTZJjpJwnA3VdB8d1i50O3ki046/1tiXmOe6uWSxdXByXYCGd6NtQJgVEzC+aGLSB 4BOWXmNQKq80UHQaun4BW1uJ8tbr+0uERudwwg2VXRnDHIM7+SyPE6pmw3RKOqAfdR/v hLR2WhfMZSvMpnAa2zhMLBfvvkp9fas3e9zIvcL7Wp5NII94Z9Y4kdpRXQ+bOUgm3rYO QLoR6MWce+WEaEEPXIKNe65koeLrbiRW0A+r3VWv7mV7RrwCLQtrIa139f5tIYMa3Bl5 CQqAo/HfmkzbI1GwKvXjVztLCaIZxfqP+bkjMJE5exZatVGsIlz9UgDVxdiJPXK+vvs+ Q0Mw== X-Gm-Message-State: AJcUukdwzxW89POddTqQGI03tOgh+xxnolbhZzMM44ok1+rE3wS3FNNM es/3/jaigvH9YtmEpy3NX0yVMwUiIVqkBRyd+90iiuuMREd3EU/pWeZHfJZv40vj0MFiJ16Wk8/ /5AqTJkNdhBDUQPIDCK9PoVYCAVeWvWID4dGQA+YSvbMZ2f2IPfCDsQ== X-Google-Smtp-Source: ALg8bN6hJzGPinq+Mzx1qsXB4O7LgfBquzFSJ7XsUNbiSA8msv8STWhN4N627W1eNMWGAa7e89APi7E= X-Received: by 2002:a05:6830:d4:: with SMTP id x20mr6140130oto.38.1547665821985; Wed, 16 Jan 2019 11:10:21 -0800 (PST) Date: Wed, 16 Jan 2019 11:10:03 -0800 In-Reply-To: <20190116191005.164355-1-sdf@google.com> Message-Id: <20190116191005.164355-6-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 5/7] bpftool: add push and enqueue commands 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 'update' without the key. Example: bpftool map create /sys/fs/bpf/q type queue value 4 entries 10 name q bpftool map push pinned /sys/fs/bpf/q value 0 1 2 3 bpftool map peek pinned /sys/fs/bpf/q value: 00 01 02 03 bpftool map create /sys/fs/bpf/s type stack value 4 entries 10 name s bpftool map enqueue pinned /sys/fs/bpf/s value 0 1 2 3 bpftool map peek pinned /sys/fs/bpf/s value: 00 01 02 03 Signed-off-by: Stanislav Fomichev --- tools/bpf/bpftool/Documentation/bpftool-map.rst | 8 ++++++++ tools/bpf/bpftool/map.c | 7 ++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/tools/bpf/bpftool/Documentation/bpftool-map.rst b/tools/bpf/bpftool/Documentation/bpftool-map.rst index b79da683da88..435a79d2eed5 100644 --- a/tools/bpf/bpftool/Documentation/bpftool-map.rst +++ b/tools/bpf/bpftool/Documentation/bpftool-map.rst @@ -32,6 +32,8 @@ MAP COMMANDS | **bpftool** **map pin** *MAP* *FILE* | **bpftool** **map event_pipe** *MAP* [**cpu** *N* **index** *M*] | **bpftool** **map peek** *MAP* +| **bpftool** **map push** *MAP* **value** *VALUE* +| **bpftool** **map enqueue** *MAP* **value** *VALUE* | **bpftool** **map help** | | *MAP* := { **id** *MAP_ID* | **pinned** *FILE* } @@ -111,6 +113,12 @@ DESCRIPTION **bpftool map peek** *MAP* Peek next **value** in the queue or stack. + **bpftool map push** *MAP* **value** *VALUE* + Push **value** onto the stack. + + **bpftool map enqueue** *MAP* **value** *VALUE* + Enqueue **value** into the queue. + **bpftool map help** Print short help message. diff --git a/tools/bpf/bpftool/map.c b/tools/bpf/bpftool/map.c index d7344fcd2089..6b5fcbe2d9d4 100644 --- a/tools/bpf/bpftool/map.c +++ b/tools/bpf/bpftool/map.c @@ -1169,6 +1169,8 @@ static int do_help(int argc, char **argv) " %s %s pin MAP FILE\n" " %s %s event_pipe MAP [cpu N index M]\n" " %s %s peek MAP\n" + " %s %s push MAP value VALUE\n" + " %s %s enqueue MAP value VALUE\n" " %s %s help\n" "\n" " " HELP_SPEC_MAP "\n" @@ -1186,7 +1188,8 @@ 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], bin_name, argv[-2], bin_name, argv[-2], + bin_name, argv[-2]); return 0; } @@ -1204,6 +1207,8 @@ static const struct cmd cmds[] = { { "event_pipe", do_event_pipe }, { "create", do_create }, { "peek", do_lookup }, + { "push", do_update }, + { "enqueue", do_update }, { 0 } }; -- 2.20.1.97.g81188d93c3-goog