From patchwork Wed Nov 21 04:55:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Nikita V. Shirokov" X-Patchwork-Id: 1000915 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=none (p=none dis=none) header.from=tehnerd.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=tehnerd-com.20150623.gappssmtp.com header.i=@tehnerd-com.20150623.gappssmtp.com header.b="ZezmnNrR"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4309JQ726pz9s3x for ; Wed, 21 Nov 2018 15:56:06 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727308AbeKUP2y (ORCPT ); Wed, 21 Nov 2018 10:28:54 -0500 Received: from mail-it1-f179.google.com ([209.85.166.179]:36267 "EHLO mail-it1-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725939AbeKUP2y (ORCPT ); Wed, 21 Nov 2018 10:28:54 -0500 Received: by mail-it1-f179.google.com with SMTP id c9so7143224itj.1 for ; Tue, 20 Nov 2018 20:56:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tehnerd-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=vui53/sR6/d+jMhoNhvV8482ZLmdQvhy/fl6ntUsYHM=; b=ZezmnNrRICRqVuoYO3xFXw8tdhAX7nsSQjuJkMfKSGrFWrD5PTM7inHP7iHpe8vYOH cgo28R8Ru8QC9FFUqNLM42mISX/RsitsS4rwmqj4tvaXeb+D9lTxPTZB3j/AouQ43FbV SiM/ZNh5sc/ztazejQfc81nF5JkTu/qvr22DzDxVmlFJApWbx8juIOyL6chHXdnjdUNq 1E0rDzGp1y2JEBoPZwpOV1oKFkAZwuekFRxaJgJurFOThuy0otqXi6oOGbjAUAXmOR76 fCZSIqOQVEA6tKYChi20m/drtwvxETvcjlUco311igwVtevjbpU3Q6Q7RHV0fr5EWFfj 30JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=vui53/sR6/d+jMhoNhvV8482ZLmdQvhy/fl6ntUsYHM=; b=EFBXSEIzSVVKmih17uBVqsqoK7z1/BJWg5Bu/UNYyEmJtOZVJGoXjO8Cu1x/nVT3LR 10gZ9s49k4LG62U5Z9z8ypoPOHNHp/8MeSF3RyY8qJqdh35n2QlYvN13oJlwUeEv8Pdj PSEjxOAC3r6rRx0T1tOVgSY+X67oCDN+5O9wUMVe2s6kBu8WujT0QegZXAjYD06algYH Bjem+ArgTE/7E90TrmLI8WO634E/jzbBBZvOhVUE/rxE2Fm8HDMT4qyZi5xknvO5W58k rKvKtgU3pXYmMRWrQPj+zSCpQVd1qjwZI2G/1oRiodTcvdnHebMm1p7bMXRcavEb82FZ SvPA== X-Gm-Message-State: AGRZ1gLJY6i7Q3ZZHCZJ+BDksK91PmZfreuE1JcdFLC0W48Q3v1LYbmH u8gLNYxqD7er+YFXvysid5tBQU9NaUw= X-Google-Smtp-Source: AJdET5cYdM0Md+GQDZ1jdqmxD51c7/xl0QhdmUNaUyeXvpHeMgO7dVR1tjLqwIP0ei21cFdsGjmnIg== X-Received: by 2002:a24:c983:: with SMTP id h125-v6mr4540828itg.152.1542776163853; Tue, 20 Nov 2018 20:56:03 -0800 (PST) Received: from maindev.thefacebook.com ([199.201.64.4]) by smtp.gmail.com with ESMTPSA id r18sm5376193ita.6.2018.11.20.20.56.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Nov 2018 20:56:02 -0800 (PST) From: "Nikita V. Shirokov" To: Alexei Starovoitov , Daniel Borkmann , Jakub Kicinski Cc: netdev@vger.kernel.org, "Nikita V. Shirokov" Subject: [PATCH v5 bpf-next 0/2] bpf: adding support for mapinmap in libbpf Date: Tue, 20 Nov 2018 20:55:55 -0800 Message-Id: <20181121045557.17924-1-tehnerd@tehnerd.com> X-Mailer: git-send-email 2.15.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org in this patch series i'm adding a helper for libbpf which would allow it to load map-in-map(BPF_MAP_TYPE_ARRAY_OF_MAPS and BPF_MAP_TYPE_HASH_OF_MAPS). first patch contains new helper + explains proposed workflow second patch contains tests which also could be used as example of usage v4->v5: - naming: renamed everything to map_in_map instead of mapinmap - start to return nonzero val if set_inner_map_fd failed v3->v4: - renamed helper to set_inner_map_fd - now we set this value only if it haven't been set before and only for (array|hash) of maps v2->v3: - fixing typo in patch description - initializing inner_map_fd to -1 by default v1->v2: - addressing nits - removing const identifier from fd in new helper - starting to check return val for bpf_map_update_elem Nikita V. Shirokov (2): bpf: adding support for map in map in libbpf bpf: adding tests for mapinmap helpber in libbpf tools/lib/bpf/libbpf.c | 40 ++++++++++-- tools/lib/bpf/libbpf.h | 2 + tools/testing/selftests/bpf/Makefile | 3 +- tools/testing/selftests/bpf/test_map_in_map.c | 49 +++++++++++++++ tools/testing/selftests/bpf/test_maps.c | 90 +++++++++++++++++++++++++++ 5 files changed, 177 insertions(+), 7 deletions(-) create mode 100644 tools/testing/selftests/bpf/test_map_in_map.c