From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ophir Munk Subject: [PATCH v6 0/6] TAP RSS eBPF cover letter Date: Sat, 20 Jan 2018 21:11:31 +0000 Message-ID: <1516482697-8348-1-git-send-email-ophirmu@mellanox.com> References: <1516282691-29698-1-git-send-email-ophirmu@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain Cc: Thomas Monjalon , Olga Shern , Ophir Munk To: dev@dpdk.org, Pascal Mazon Return-path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40057.outbound.protection.outlook.com [40.107.4.57]) by dpdk.org (Postfix) with ESMTP id 0BC1C71B3 for ; Sat, 20 Jan 2018 22:11:49 +0100 (CET) In-Reply-To: <1516282691-29698-1-git-send-email-ophirmu@mellanox.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The patches of TAP RSS eBPF follow the RFC on this issue https://dpdk.org/dev/patchwork/patch/31781/ v6 changes with respect to v5 ============================= 1. Reorder thes following commits (source file commit before byte code commit) net/tap: add eBPF program file net/tap: add eBPF bytes code 2. Add acknowledgment to commits v5 changes with respect to v4 ============================= Update TAP document guide with RSS v4 changes with respect to v3 ============================= * Code updates based on review comments * New commits organization (2-->5) based on review comments 1. net/tap: support actions for different classifiers (preparations for BPF. No BPF code yet) 2. net/tap: add eBPF bytes code (BPF bytes code in a separate file) 3. net/tap: add eBPF program file (Program source code of bytes code) 4. net/tap: add eBPF API (BPF API to be used by TAP) 5. net/tap: implement TAP RSS using eBPF v3 changes with respect to v2 ============================= * Add support for IPv6 RSS in BPF program * Bug fixes * Updated compatibility to kernel versions: eBPF requires Linux version 4.9 configured with BPF * New license header (SPDX) for newly added files v2 changes with respect to v1 ============================= * v2 has new commits organization (3 --> 2) * BPF program was revised. It is successfully tested on IPv4 L3 L4 layers (compatible to mlx4 device) * Licensing: no comments received for using "Dual BSD/GPL" string during BPF program loading to the kernel. (v1 and v2 are using the same license strings) Any comments are welcome. * Compatibility to kernel versions: eBPF requires Linux version 4.2 configured with BPF. TAP PMD will successfully compile on systems with old or non-BPF configured kernels. During compilation time the required Linux headers are searched for. If they are not present missing definitions are locally added (tap_autoconf.h). If the kernel cannot support a BPF operation - at runtime it will gracefully reject the netlink message (with BPF) sent to it. Ophir Munk (6): net/tap: support actions for different classifiers net/tap: add eBPF program file net/tap: add eBPF bytes code net/tap: add eBPF API net/tap: implement TAP RSS using eBPF doc: detail new tap RSS feature in guides doc/guides/nics/tap.rst | 60 ++ drivers/net/tap/Makefile | 34 + drivers/net/tap/rte_eth_tap.h | 9 +- drivers/net/tap/tap_bpf.h | 112 +++ drivers/net/tap/tap_bpf_api.c | 190 +++++ drivers/net/tap/tap_bpf_insns.h | 1693 +++++++++++++++++++++++++++++++++++++ drivers/net/tap/tap_bpf_program.c | 221 +++++ drivers/net/tap/tap_flow.c | 648 +++++++++++--- drivers/net/tap/tap_flow.h | 13 + drivers/net/tap/tap_rss.h | 34 + drivers/net/tap/tap_tcmsgs.h | 4 + 11 files changed, 2922 insertions(+), 96 deletions(-) create mode 100644 drivers/net/tap/tap_bpf.h create mode 100644 drivers/net/tap/tap_bpf_api.c create mode 100644 drivers/net/tap/tap_bpf_insns.h create mode 100644 drivers/net/tap/tap_bpf_program.c create mode 100644 drivers/net/tap/tap_rss.h -- 2.7.4