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 0D76CC282C8 for ; Mon, 28 Jan 2019 16:54:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D13362087E for ; Mon, 28 Jan 2019 16:54:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="aQ7ZE/B+" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388714AbfA1QyA (ORCPT ); Mon, 28 Jan 2019 11:54:00 -0500 Received: from mail-qt1-f201.google.com ([209.85.160.201]:34364 "EHLO mail-qt1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387641AbfA1Qx7 (ORCPT ); Mon, 28 Jan 2019 11:53:59 -0500 Received: by mail-qt1-f201.google.com with SMTP id u32so21412443qte.1 for ; Mon, 28 Jan 2019 08:53:58 -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=ikFUuOlMkDJNdue1UwlOdVRbd/I13UG50GqpJECCbDE=; b=aQ7ZE/B+MMT1lx+9lf194jInL5A7Hlbx6hOAmVzV/d3spudb0pyQzHflEUCkow7DiS 2wi7bQVZ/DbkgVpH/uKSa/ve5M9RQQFrdyAbTnaLGf3J8TVuALAWrfS6LeHE9LQBIQr4 STSbpk2bcborWXU4ANc28+nALfsxiX9CNu1+XCtky3nCqpl0KJ99eJ9iYOqbIFhjA88R 0/SbwWYw2PDXihrZ/JAgDuIf2hUiWlnYL4sGAUYAfTI/qTYTA1m0nCzFHQuchq53QVfR EGMBVzu+9JASU8ff78jZFWKSh14OK1fjxOi8K3yp6Rqsq9rVWfP2fw3+nSw3Fac9tVWn qdMw== 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=ikFUuOlMkDJNdue1UwlOdVRbd/I13UG50GqpJECCbDE=; b=aLdKB7jYjgbxGgy3VUOlRg/64FeU4yz8j9OAptTQ9rV9d5Rav7mU54JnW1bZy14nq7 c6imrL4saM054DXxBiOtOT2vEl4UXaBp9QMCS2X/QWo6LFLfQmVqONjNjPLsdLqMOPYp xfiM9QUMtXM+4zdJkKzEouh0r3ugzSIFpS3G8HnqQNrdwolvCYg54vN1GiYXKMW4ZTB4 WNVaCKX1vEidJ24IVenQkO8fr59C7fbUu7r9iQeU7uXU6cc/M/j4zN+sc93t26MK+w9R 0I7kd8B5V3zfFqjErH4CywXn7ewplAiQ7D99TBBI2O6nR9CBCfqwlElE8YLIEjqdSnfv Smwg== X-Gm-Message-State: AHQUAuaNwI6AEWUQh5jCrtG7vAJtV7CuoIdrZGCI/188NwW3iw0HqEMv Fn8gQTEtQmGBgDA3CbSLq5rTp9cltLG2FsGAZhvMwWUApLvpKmOvVC4jhh+PHQJiimx7JacwcGI iW5wngwoalfLUN69mzALjrj5/JJTnam1sG4lemmJuwC2qPKx++sROZA== X-Google-Smtp-Source: AHgI3IY607DNzoOXaBYRHPBKYEaMcIgYagwDqN6sOr1ZsQyx7fu75Hjt4CvXpW50aC3vOiBZeB50v00= X-Received: by 2002:a0c:b988:: with SMTP id v8mr385681qvf.29.1548694438226; Mon, 28 Jan 2019 08:53:58 -0800 (PST) Date: Mon, 28 Jan 2019 08:53:52 -0800 Message-Id: <20190128165355.229403-1-sdf@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.20.1.495.gaa96b0ce6b-goog Subject: [PATCH bpf-next v3 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 v3: * rebased on top of latest bpf-next 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.495.gaa96b0ce6b-goog