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 E4BCBC43387 for ; Tue, 15 Jan 2019 23:23:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AE93C20896 for ; Tue, 15 Jan 2019 23:23:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="uKhV6/7s" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391407AbfAOXXD (ORCPT ); Tue, 15 Jan 2019 18:23:03 -0500 Received: from mail-vk1-f202.google.com ([209.85.221.202]:53627 "EHLO mail-vk1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727036AbfAOXXD (ORCPT ); Tue, 15 Jan 2019 18:23:03 -0500 Received: by mail-vk1-f202.google.com with SMTP id e10so1126129vke.20 for ; Tue, 15 Jan 2019 15:23:02 -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=9b2Fb0a+6/g5BWAt6FeVPnh0E88TqgNa8+4JD52ycww=; b=uKhV6/7sc3ugWevv8sdU+3nVhDQJfmttCCHcdf2Oi+TKMTqeM8qlz3bJZuC0RqNqSO Y4VlLcrZaeNyRgz0vcyYo5t5q1oNVqMiMLSzGcs07haNlseDIwlA8ZGVkS34NKrHEZNQ P2B0mUztKhE4IJtNJ8skXwiKeZazozu2Uhm+SEmncCEGle9LE+S2+gP4Im4kuvm4h1Es sp7Z6reTjLJuStg3a10B9Px4KXB+i1Mic1oMlyumAvxp1srwbYKaG0gwpM3N0zYPXngG zijd3D7N8mX9QRpsqOeYmlvcH9Szo+5SQWkZhOBp4nMmmDM8QxsCo7rHnizKFD7PVhKi u6OQ== 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=9b2Fb0a+6/g5BWAt6FeVPnh0E88TqgNa8+4JD52ycww=; b=DHo36uWp7XeTj3K5MYMHrrXwe6ZnDtBUIo3A6ZuFAk63OMs4CbwjQmQprZ19NYM9kN jf4jdqBoP4xSUrZpvbDl7sDb3/y+l2+/HDyQPrUZV0EmhoDdB0gCNVkklrvMrUQEU5X2 SUNTUV9kKU9o8cO4aPLZnyYvP5pNDY+zIF9y0jS/Wwos47A61EX0Tg2I031mchLEZ+Mt 8TJIkjDIzgbF4yFMTTl4Y4PbsYiGUT2bTEg61Pppdbbh1xMUE9tC1RmKAq7swO8aiqOl gBZkRgQiAPLR9lvtokyQ0cKRd4gf0NhaJyR86J3GZsKJwN8b+qX1ZTsPfT0bMPIEtX6d eLJA== X-Gm-Message-State: AJcUukcKL41EtzEoLIm9evGX8F4bQ17yY8tQIEdU4iGoiZM+elZwlD8w fjxjrYu/dPol2fJfUsS9dBShj6YksHHeVoH4Npy3qBhzceYhzlvJthpejbXWFAWYFIqIzClZkbt tzEDV6DfznM63asPtuIfCW0WURJJInF788Jc8kclqmu8QVGXNWhdCVQ== X-Google-Smtp-Source: ALg8bN5pLj5tMd1hCpgPy0go7dmBg/kyw3RiO4Nh8hVBBp2fRZB/5SimGRnI0Goco5VeTr3e2JdsIts= X-Received: by 2002:a67:348e:: with SMTP id m14mr4165330vsi.28.1547594582123; Tue, 15 Jan 2019 15:23:02 -0800 (PST) Date: Tue, 15 Jan 2019 15:22:48 -0800 In-Reply-To: <20190115232252.5736-1-sdf@google.com> Message-Id: <20190115232252.5736-3-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 2/6] bpftool: make key optional in lookup 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 Bpftool expects key for 'lookup' operations. For some map types, key should not be specified. Support looking up those map types. Before: 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 lookup pinned /sys/fs/bpf/q Error: did not find key After: 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 lookup pinned /sys/fs/bpf/q key: value: 00 01 02 03 Signed-off-by: Stanislav Fomichev --- tools/bpf/bpftool/Documentation/bpftool-map.rst | 4 ++-- tools/bpf/bpftool/map.c | 10 +++------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/tools/bpf/bpftool/Documentation/bpftool-map.rst b/tools/bpf/bpftool/Documentation/bpftool-map.rst index 1f1dfe06e66d..f34cace771bd 100644 --- a/tools/bpf/bpftool/Documentation/bpftool-map.rst +++ b/tools/bpf/bpftool/Documentation/bpftool-map.rst @@ -26,7 +26,7 @@ MAP COMMANDS | **entries** *MAX_ENTRIES* **name** *NAME* [**flags** *FLAGS*] [**dev** *NAME*] | **bpftool** **map dump** *MAP* | **bpftool** **map update** *MAP* [**key** *DATA*] [**value** *VALUE*] [*UPDATE_FLAGS*] -| **bpftool** **map lookup** *MAP* **key** *DATA* +| **bpftool** **map lookup** *MAP* [**key** *DATA*] | **bpftool** **map getnext** *MAP* [**key** *DATA*] | **bpftool** **map delete** *MAP* **key** *DATA* | **bpftool** **map pin** *MAP* *FILE* @@ -75,7 +75,7 @@ DESCRIPTION the bytes are parsed as decimal values, unless a "0x" prefix (for hexadecimal) or a "0" prefix (for octal) is provided. - **bpftool map lookup** *MAP* **key** *DATA* + **bpftool map lookup** *MAP* [**key** *DATA*] Lookup **key** in the map. **bpftool map getnext** *MAP* [**key** *DATA*] diff --git a/tools/bpf/bpftool/map.c b/tools/bpf/bpftool/map.c index 61453a1ba6e1..4256842f9664 100644 --- a/tools/bpf/bpftool/map.c +++ b/tools/bpf/bpftool/map.c @@ -865,13 +865,9 @@ static int do_lookup(int argc, char **argv) if (fd < 0) return -1; - key = malloc(info.key_size); - value = alloc_value(&info); - if (!key || !value) { - p_err("mem alloc failed"); - err = -1; + err = alloc_key_value(&info, &key, &value); + if (err) goto exit_free; - } err = parse_elem(argv, &info, key, NULL, info.key_size, 0, NULL, NULL); if (err) @@ -1158,7 +1154,7 @@ static int do_help(int argc, char **argv) " [dev NAME]\n" " %s %s dump MAP\n" " %s %s update MAP [key DATA] [value VALUE] [UPDATE_FLAGS]\n" - " %s %s lookup MAP key DATA\n" + " %s %s lookup MAP [key DATA]\n" " %s %s getnext MAP [key DATA]\n" " %s %s delete MAP key DATA\n" " %s %s pin MAP FILE\n" -- 2.20.1.97.g81188d93c3-goog