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 7CFA1C43387 for ; Tue, 15 Jan 2019 23:23:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E74B820883 for ; Tue, 15 Jan 2019 23:23:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Xt2hvQ3i" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391422AbfAOXXM (ORCPT ); Tue, 15 Jan 2019 18:23:12 -0500 Received: from mail-pg1-f202.google.com ([209.85.215.202]:51644 "EHLO mail-pg1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727036AbfAOXXL (ORCPT ); Tue, 15 Jan 2019 18:23:11 -0500 Received: by mail-pg1-f202.google.com with SMTP id t26so2639333pgu.18 for ; Tue, 15 Jan 2019 15:23:10 -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=9/DsatJKeuxsTF5ORc9YOhhX6lmBVg6KZlD0SDDaaDs=; b=Xt2hvQ3iUB8nFo5yHf8r9puzpYtYApfk6ILsZv8uTi2BS5hvX0262eHlUYCjY5ocDS y9gIHD6fAIi1ujRRrRyYRnZg7bb2zusviOxCOW4rV2BtF78tyVyifG9sm13ql2GdkoMd u6m5QEZWql0xKZRaoj/EdpFq2FFNKii5NZz14Hw0Uhad8PoVWX83Gpd1WVVcCx+vFCuQ aG9x56mgn2Pf6G77L3TDUFv4Wn63ro37jAmxAxhCiSN/RTAMyVrt7uAet6WeIhlqdE40 P+kzSRb3yqFBd2WmepFT5JdRNd+XwYclgErOn8iLxj4Kh+ZNm9wEjGh6ld3jYIFQgkzg JQTA== 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=9/DsatJKeuxsTF5ORc9YOhhX6lmBVg6KZlD0SDDaaDs=; b=j0qLsXrS93D7D/9eSelf9vz3hpj32FncLVjzPk1JEHMSWj1Ze3JgcBeSM/EwWwIxMb NT1A44h/3EX1/0fnXXTR5lipPZAjLSnI+H2reoS+nDbo4nVM/5KxXXseSxO75cWPipWJ cUYd5RkzCT/aLCU/PWRlYtbWGDPgRdCTFm+6WYRQ717l3Avcy9+CHu+PVvcXszh8j2Ke DRvUDTg7KLk0LHSFYD6de/USbUhDscL/qEJWe4QBec8uJ+9z5WkXVFLtlJ+G2ifJfyWD siGcTystwzZT1ejx2UWfumlG5s7P1i2KToRAFqzG8nV++i493wYpgaLoNlTzSYNf6pyq qHhA== X-Gm-Message-State: AJcUukdyt4sEMaEvENfpSZsR7q/Dct1DpERc7qvy32nBSJA+apDZqEB1 K8njW++XAWgHQ+c851k65K1N16aAs13YZgsuJNs3/PAHKFjioE+G/MItnk9ijWgDR7E4IY6CvMe /lKRed+bqmvpQv37k2qNv6RJMQ09YRo0FjGc7P8NSlGYNk1KT/cijMA== X-Google-Smtp-Source: ALg8bN5RJ3P4vt7Mp7t70zUrAUhXYMrDwMrbAB4ugly7/HcfTStp5zrsmo7LVvsMtx5hAPOL5nm9D5A= X-Received: by 2002:a65:420a:: with SMTP id c10mr2372540pgq.109.1547594590488; Tue, 15 Jan 2019 15:23:10 -0800 (PST) Date: Tue, 15 Jan 2019 15:22:51 -0800 In-Reply-To: <20190115232252.5736-1-sdf@google.com> Message-Id: <20190115232252.5736-6-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 5/6] 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/bash-completion/bpftool | 4 ++-- tools/bpf/bpftool/map.c | 7 ++++++- 3 files changed, 16 insertions(+), 3 deletions(-) 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/bash-completion/bpftool b/tools/bpf/bpftool/bash-completion/bpftool index fe4880d9bd8d..69096e058308 100644 --- a/tools/bpf/bpftool/bash-completion/bpftool +++ b/tools/bpf/bpftool/bash-completion/bpftool @@ -452,7 +452,7 @@ _bpftool() ;; esac ;; - update) + update|push|enqueue) case $prev in $command) COMPREPLY=( $( compgen -W "$MAP_TYPE" -- "$cur" ) ) @@ -547,7 +547,7 @@ _bpftool() [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'delete dump getnext help \ lookup pin event_pipe show list update create \ - peek' -- \ + peek push enqueue' -- \ "$cur" ) ) ;; esac 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