From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ophir Munk Subject: [PATCH v4 0/5] TAP RSS eBPF cover letter Date: Thu, 11 Jan 2018 17:45:46 +0000 Message-ID: <1515692751-25257-1-git-send-email-ophirmu@mellanox.com> References: <1515567969-27946-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 EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0044.outbound.protection.outlook.com [104.47.1.44]) by dpdk.org (Postfix) with ESMTP id 3B4B21B01C for ; Thu, 11 Jan 2018 18:46:10 +0100 (CET) In-Reply-To: <1515567969-27946-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/ 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 (5): net/tap: support actions for different classifiers net/tap: add eBPF bytes code net/tap: add eBPF program file net/tap: add eBPF API net/tap: implement TAP RSS using eBPF 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 + 10 files changed, 2862 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