From patchwork Thu Feb 8 19:05:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 631 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 85CAB43AB4; Thu, 8 Feb 2024 20:08:32 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E6AC242DF9; Thu, 8 Feb 2024 20:08:31 +0100 (CET) Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by mails.dpdk.org (Postfix) with ESMTP id 04E56402D1 for ; Thu, 8 Feb 2024 20:08:29 +0100 (CET) Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-6da202aa138so122481b3a.2 for ; Thu, 08 Feb 2024 11:08:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1707419309; x=1708024109; 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=qPjaLB2M0tVgFq+C8n/CDu4++R2alvqdATFtHvga98E=; b=Jv+UtrOnJwpE5OHDeAD/VQQRjBMS7ZySXouE7ZrpZVKe+5NAHKz2OTszQLQHl8h/a8 T6QxCg/oCWunpU7zhaHJS2p2pqkPPuJw/7qAS+hFDua3DMlGvXSns8vHSdCICXW3qQDG BLoPfksDOJj5Ei865OVTWXxtfW/fSIgAHigfHmAZZS2skdgBEBqeexh9OFutGBVMhagT W3OQQ67i0hN6/jNMG9v+LiaU5s3gdoryQcIxsQGpsLSnNfNwf2dI0w8M4KjL2KpYQTMy GbdvhxAEezw5cyT3nKJ/yI8K8ZXjgDwnx+LLkmv4KpJpyjiblErHqAaXPK87QNjkKgru c+0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707419309; x=1708024109; 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=qPjaLB2M0tVgFq+C8n/CDu4++R2alvqdATFtHvga98E=; b=RmJB+348AKjwtNjx0bcacCL6SLd7C9KyWlvf86fDJcv/wn9dWTEqnJWFkPUX3OP43E rbFHaAn0vblFK+SPr+kphxry7apBclE6IWBhOlD48kXQUuYJweAgUw1QJPWiMk4bc68c chYEVBg90zvHEl+qR0MzETPQLdf24cR5rVlpenvcFsqQiNt2j5hmXU3Q0r7FxAtZnqs2 /uynGQoWWdnl/OII8vn89kCay9rQP/++S6aAOyFQfhuNDYvoY8wJd3DWrbeArZUj47xf ncnBHZ6Qqz7BNmjPS2CtGouNp2kNzs0Q2w8hvuUMHR+xLFAvVQTHJGK/jZYvmSHZMo+C rBjA== X-Gm-Message-State: AOJu0YyxaJffNSAdVT4hdKnHXOxnj1UXDqDu7GL8X3E/pHe6BK79lcDn eHWJwnUU/JORyb1cBBhch4aoKfPXLaCGq3niEVzL9jhQ3NZp1Xdgo0q9hClHCc5Zp5clCPkucNu kVQU= X-Google-Smtp-Source: AGHT+IE2auqFMFt7YYbSwbDGjZ900nml4RFQFtaVOTq2RAN71vFkq4QgULQXrKyCb8Buh9tKs5ZYpQ== X-Received: by 2002:a05:6a00:410f:b0:6de:3521:b3c2 with SMTP id bu15-20020a056a00410f00b006de3521b3c2mr229663pfb.11.1707419308979; Thu, 08 Feb 2024 11:08:28 -0800 (PST) Received: from hermes.lan (204-195-123-141.wavecable.com. [204.195.123.141]) by smtp.gmail.com with ESMTPSA id z1-20020aa79901000000b006e053e98e1csm79951pff.136.2024.02.08.11.08.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 11:08:28 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [PATCH v4 0/7] net/tap: queue flow action RSS using BPF redo Date: Thu, 8 Feb 2024 11:05:48 -0800 Message-ID: <20240208190827.332368-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. The build process checks for the required components and if not there will stub out to not supported. This patch series is mostly the same as the original RFC, most of the changes are to split it up and always build the BPF from source. v4 - remove accidental inclusion of tap_bpf_program.o split number of queues from the number of RSS queue flows define number of queues one place Stephen Hemminger (7): net/tap: remove unused RSS hash types net/tap: validate and setup parameters for BPF RSS 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 MAINTAINERS: add maintainer for TAP device .gitignore | 3 - MAINTAINERS | 1 + drivers/net/tap/bpf/Makefile | 19 - drivers/net/tap/bpf/README | 12 + 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 | 82 ++ drivers/net/tap/bpf/tap_bpf_program.c | 255 ---- drivers/net/tap/bpf/tap_rss.c | 272 ++++ drivers/net/tap/meson.build | 29 +- drivers/net/tap/rte_eth_tap.c | 2 + drivers/net/tap/rte_eth_tap.h | 9 +- 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 | 521 +++----- drivers/net/tap/tap_flow.h | 16 +- drivers/net/tap/tap_rss.h | 21 +- drivers/net/tap/tap_tcmsgs.h | 4 +- 20 files changed, 543 insertions(+), 3172 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