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=-10.6 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, 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 5EE99C282C3 for ; Thu, 24 Jan 2019 16:49:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 30EC7218AF for ; Thu, 24 Jan 2019 16:49:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="CP+5Kojr" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728888AbfAXQt5 (ORCPT ); Thu, 24 Jan 2019 11:49:57 -0500 Received: from mail-qt1-f202.google.com ([209.85.160.202]:35585 "EHLO mail-qt1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726252AbfAXQt4 (ORCPT ); Thu, 24 Jan 2019 11:49:56 -0500 Received: by mail-qt1-f202.google.com with SMTP id p24so7302424qtl.2 for ; Thu, 24 Jan 2019 08:49:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=Wb3gzJWzG136nW0Cv6NVORzavLSQsWrTogz/O2LLXKw=; b=CP+5KojrRS8MtK0S9UIK0p9Cgs/4b3fFWyqvAJEFCeKSlfp2rAMD75s5SjeIHO2/Qt 2i3Ee48OYTjZ8xscVFUpdX5huVT6wLayYKUZaIyFpwYWzl02+HhnPREHUBIXsH0JENtR Mo1f+UB0gJzuTPZEqu0kYowrRFSpSPNhpjqoYiNjX+WXcxrXJMK7PM54gcJ5XdqeDUxP Bk1uHDzheoHUcQUOiFvj8g8Z6Jk4dbEBU8z7UPFjPtFxhVm1jx09pZMkLW81fgFaSZiP NP/igMul9HsWIXocRsIJ3trj+5alzG2I2KhcewpQv2B8Jjl+VRDv4yRcZohPxrdPoXjC JxLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=Wb3gzJWzG136nW0Cv6NVORzavLSQsWrTogz/O2LLXKw=; b=BWvviuv5QToAkZMeWHoTHM68PFAgK9oLpi/mcJuQjwfuyfEpbu9Ptb6ga9M/rry4Tk A232hdlfRE1TJ1HmHORQRxfJpUyRE/ZvEg9TH0Ix0fLAOksSp6ZDFczdkDx4Z5i1ReR3 0rf4wSoOPuqPNGQOoZwrY2nUrZUJlDmHcO+EjnnWgnekznIiwc5uAsOs/JkhgK13kMw6 VHHnxkqre1wfMJ6lz1TRjRGcyiu+iDFDUUi6ztLj0vwEWXvkjlNGH5dkIfR6qgF9vgQf jq6Bsf18ZVJYyeQGSygWa60dkq52sUaq0Vtk8QB8Yap4+aNB1VOG/i/a2xfuzKwFqEd3 dFbQ== X-Gm-Message-State: AJcUukeEzVAaxflQCwHJqWQ4Vyvg5t72wjU9tYvDx8gcV6UKjeMyRbtj Vn9Z/i4T6iGd23+R71NOIRjvlbRrUhe8CK6Zu1Tw2MxfIW9aeldt5LlGQ3mNNk9t3iN20t8V8HC a0ppMSYeGeRBrxQmkDVQoozKttBwe/rSPkMWu4Ah4uVgB8AtYaJ6qWw== X-Google-Smtp-Source: ALg8bN4FeL4bsgXUi8gVrvKTQ+cZN6tqDvBa5ReMdvq1IzJ5kNSMC9z//FKDiv6bSIYMdlWLQZa1/WM= X-Received: by 2002:a0c:9e19:: with SMTP id p25mr5032889qve.50.1548348595916; Thu, 24 Jan 2019 08:49:55 -0800 (PST) Date: Thu, 24 Jan 2019 08:49:50 -0800 Message-Id: <20190124164953.29740-1-sdf@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.20.1.321.g9e740568ce-goog Subject: [PATCH bpf-next v2 0/3] support flow dissector in BPF_PROG_TEST_RUN From: Stanislav Fomichev To: netdev@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, 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 patch series adds support for testing flow dissector BPF programs by extending already existing BPF_PROG_TEST_RUN. The goal is to have a packet as an input and `struct bpf_flow_key' as an output. That way we can easily test flow dissector programs' behavior. I've also modified existing test_progs.c test to do a simple flow dissector run as well. * first patch introduces new __skb_flow_bpf_dissect to simplify sharing between __skb_flow_bpf_dissect and BPF_PROG_TEST_RUN * second patch adds actual BPF_PROG_TEST_RUN support * third patch adds example usage to the selftests v2: * loop over 'kattr->test.repeat' inside of bpf_prog_test_run_flow_dissector, don't reuse bpf_test_run/bpf_test_run_one Stanislav Fomichev (3): net/flow_dissector: move bpf case into __skb_flow_bpf_dissect bpf: add BPF_PROG_TEST_RUN support for flow dissector selftests/bpf: add simple BPF_PROG_TEST_RUN examples for flow dissector include/linux/bpf.h | 3 + include/linux/skbuff.h | 5 + net/bpf/test_run.c | 82 +++++++++++++++++ net/core/filter.c | 1 + net/core/flow_dissector.c | 92 +++++++++++-------- tools/testing/selftests/bpf/Makefile | 3 + .../selftests/bpf/flow_dissector_load.c | 43 +-------- .../selftests/bpf/flow_dissector_load.h | 55 +++++++++++ tools/testing/selftests/bpf/test_progs.c | 78 +++++++++++++++- 9 files changed, 284 insertions(+), 78 deletions(-) create mode 100644 tools/testing/selftests/bpf/flow_dissector_load.h -- 2.20.1.321.g9e740568ce-goog