From patchwork Fri Apr 5 21:14:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 845 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 802AD43E0E; Fri, 5 Apr 2024 23:17:57 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 47D40402CE; Fri, 5 Apr 2024 23:17:57 +0200 (CEST) Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) by mails.dpdk.org (Postfix) with ESMTP id D3745402CE for ; Fri, 5 Apr 2024 23:17:56 +0200 (CEST) Received: by mail-pg1-f182.google.com with SMTP id 41be03b00d2f7-5c66b093b86so2823979a12.0 for ; Fri, 05 Apr 2024 14:17:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1712351876; x=1712956676; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vS4OYsJPJms+q3KVvjhXNZApKvI0/pOzDMzhtYred3I=; b=0buX+aRkrFQ3LyMTAVCb3xyux48rFSLzCo6QY4ceBp5xHZwjxq6OPZQauNqFevUmo7 iVWDMBFJ0FL5AhRLxBS6zJbc0AFyhcK5DW9lDPK9QVftqmk+8gJaO+7LLMdHyWHTenyi +lIGqx5xhglXsSDq9NA2T+VK+Tc5gUFugqho1aQcJ5mIg1BKym3ntw3SajpIoj9fkvUU +4UwlpVk5SWgWkfl/GpTKzk/glatyM4JTeEqvM8Shg3aJsuI/MC9J3KbFyIwS1EHu1nW iztlEzF+M9Dwb9K69BJCPzQtBUqjjCkU5w1wGhFmUZpdKUhiL0q3pP41ZjDQEbpPH2C3 LKMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712351876; x=1712956676; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vS4OYsJPJms+q3KVvjhXNZApKvI0/pOzDMzhtYred3I=; b=Zn/mITzuJZa3JiMjYDXe1DekwVlEd+rZjvPMlcFg4drjqhOnA6pOJB/mLvEGn6D6zf MZj87AH9piHzkdsCtjNESaQSQiIwUz87Ns4feq5CajCXs7pS1Eqm5CY3y9mZukXqahor UGyOJvcT7//iGv73TnOgzRfAPVUT1Bp3GNKc/96JqPwHKpmP3sMPkBwY1LnEQQwam7xc DdzXO9SqP7DGCZzqb/Sel7Hgr6bx6Mhbf29JXD10C6qhV9shjRggq4FudbeW4yEFT+zv Z2G/gXU+K5CmvwA4KMziwxUfWRXXqR6k0k2DTFSVsKGGZVOyL8EXnqSkiGAs8BPtsrji SoKg== X-Gm-Message-State: AOJu0Ywe4IOnQrNCvxcBtYqGe/14EIqjrf629xW9yDxu0eXhKOpz092+ ImvwH34YP0U1qlxbFZohpqMxoGP+k0RWjbRaEcZfdB2tmY/mNO+LRTbe9kX/wcP8oxdd460/VVR D7PaHNg== X-Google-Smtp-Source: AGHT+IEnSLyEUPUNxbh5nMagPFlUVQocT33T2m/9C0wOhtwN396pdFBRzzDCE+u4Ix/81bYnfFLN6g== X-Received: by 2002:a17:90a:3906:b0:2a0:7895:f356 with SMTP id y6-20020a17090a390600b002a07895f356mr5023162pjb.12.1712351875843; Fri, 05 Apr 2024 14:17:55 -0700 (PDT) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id r32-20020a17090a43a300b002a2f1e6f50bsm2137521pjg.1.2024.04.05.14.17.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Apr 2024 14:17:55 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [PATCH v6 0/8] net/tap: cleanup and fix BPF flow support Date: Fri, 5 Apr 2024 14:14:52 -0700 Message-ID: <20240405211745.699697-1-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240130034925.44869-1-stephen@networkplumber.org> References: <20240130034925.44869-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The support of doing RSS for rte_flow_action was a cool idea but it has been broken for several releases of DPDK as the kernel and BPF infrastructure changed. This series cleans up the BPF program, implements several features that were never completed in the original code and changes to use the current BPF toolchain. The result should be easier to read and maintain. v6 - don't build if missing TC flower, a kernel that old is not supported. But somebody will try. Use BPF CO:RE attribute wrapper to avoid kernel header skew. Stephen Hemminger (8): net/tap: do not duplicate fd's doc: fix the requirements and building of TAP flow net/tap: remove unused fields net/tap: validate and setup parameters for BPF RSS net/tap: stop "vendoring" linux bpf headers net/tap: rewrite the RSS BPF program net/tap: use libbpf to load new BPF program net/tap: remove no longer used files .gitignore | 3 - doc/guides/linux_gsg/sys_reqs.rst | 3 + doc/guides/nics/tap.rst | 95 +- drivers/net/tap/bpf/Makefile | 19 - drivers/net/tap/bpf/README | 38 + drivers/net/tap/bpf/bpf_api.h | 276 ---- drivers/net/tap/bpf/bpf_elf.h | 53 - drivers/net/tap/bpf/bpf_extract.py | 86 -- drivers/net/tap/bpf/meson.build | 107 ++ drivers/net/tap/bpf/tap_bpf_program.c | 255 ---- drivers/net/tap/bpf/tap_rss.c | 267 ++++ drivers/net/tap/meson.build | 39 +- drivers/net/tap/rte_eth_tap.c | 199 ++- drivers/net/tap/rte_eth_tap.h | 17 +- drivers/net/tap/tap_bpf.h | 121 -- drivers/net/tap/tap_bpf_api.c | 190 --- drivers/net/tap/tap_bpf_insns.h | 1743 ------------------------- drivers/net/tap/tap_flow.c | 549 ++------ drivers/net/tap/tap_flow.h | 17 +- drivers/net/tap/tap_intr.c | 7 +- drivers/net/tap/tap_rss.h | 21 +- drivers/net/tap/tap_tcmsgs.h | 4 +- 22 files changed, 710 insertions(+), 3399 deletions(-) delete mode 100644 drivers/net/tap/bpf/Makefile create mode 100644 drivers/net/tap/bpf/README delete mode 100644 drivers/net/tap/bpf/bpf_api.h delete mode 100644 drivers/net/tap/bpf/bpf_elf.h delete mode 100644 drivers/net/tap/bpf/bpf_extract.py create mode 100644 drivers/net/tap/bpf/meson.build delete mode 100644 drivers/net/tap/bpf/tap_bpf_program.c create mode 100644 drivers/net/tap/bpf/tap_rss.c delete mode 100644 drivers/net/tap/tap_bpf.h delete mode 100644 drivers/net/tap/tap_bpf_api.c delete mode 100644 drivers/net/tap/tap_bpf_insns.h