From patchwork Wed May 1 16:11:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 900 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 37CCD43F5D; Wed, 1 May 2024 18:14:16 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B4590402A8; Wed, 1 May 2024 18:14:15 +0200 (CEST) Received: from mail-pg1-f170.google.com (mail-pg1-f170.google.com [209.85.215.170]) by mails.dpdk.org (Postfix) with ESMTP id 7406E4021E for ; Wed, 1 May 2024 18:14:14 +0200 (CEST) Received: by mail-pg1-f170.google.com with SMTP id 41be03b00d2f7-5d81b08d6f2so5110888a12.0 for ; Wed, 01 May 2024 09:14:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1714580053; x=1715184853; 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=4VYzxTTE7Uk8/4qdA2stOtTYtIREv1qVrnPVDltSFvE=; b=1Y5Qbu8qaw+8gMWsbRse26I7EAwezT45wBN0HJwZ4vp9mchGUXvw+x1q9lAFOmuPrl T/gWBcs4uJY2PrtuYJDqPqUJ52pAdRWOrKtMF/TRhHVuqBDyiIZyK9Q5Zu+TXcRBwkmE EkYxnl5mtmXMfnjwZ6078mRDjV4CAGGO4IhMTWb7iRuTitJ3akIZqJH6dn7crMZvatrb OKy8AVkVDrDUyBjU/y/C77ZJ5y25LKTWDfebXQ9zMUUHHN1uTcY5oufXI3f1AnIaSCNT OkSfSW0zcTv37ZJj52cV2VIwPe1TU1IXm5JJk+8FHL8wCwQQz/IOi6WVpDjsAN8lsWn9 NQhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714580053; x=1715184853; 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=4VYzxTTE7Uk8/4qdA2stOtTYtIREv1qVrnPVDltSFvE=; b=IUcnkQHOuBKbwxkRQwSoVOBK/ub81rtjo7fZZwLtYWLlbXhqi7PG9C94NLcGxQsj84 O1JZUf6OqvLatZG5oW6DGfWRMytMTBarLxuDj3iNXnbu/PhN0MdKJJtNL5k0k2XkAT/Z J1Mm70i9UcWNAoZ7xo6zV3VJRmkga2TyNTuM1AS6eDuSPswGgdihz4yqaOTT22BzjWBN XbtMnpH2osVMFH2UN7+Mv2VG4lzzf1t3Z9d+BkkQpsijMWepmfhvwSQPLmgLLEr1E95G aEZf6UogaOScUIMyzd3fnNr10NQ93JHYuPYoonfYhlNO+aYb/aQYg/oR93Uo1CttbDMS KZeA== X-Gm-Message-State: AOJu0YxdOio6cZO2vKKMah0di8imQ693O/r+qtzvpuRC7++BRJAEkKSD eo4v2AwSqVWJdBZQ1mBYHWqqZsRMIq+bMHLPCLbEKUYe4vBc/QBz2Yay56PbDWcpyOmhTN7fwMd AGXQ= X-Google-Smtp-Source: AGHT+IHtLisGYSV1jpt7cr5p6yfys3PUQlI0vKieBhCWw9aJFyoQ6JavTQkEaujfahdwh3XrqQpQ/A== X-Received: by 2002:a17:90a:d243:b0:2a0:86b6:2e9 with SMTP id o3-20020a17090ad24300b002a086b602e9mr2834754pjw.12.1714580053307; Wed, 01 May 2024 09:14:13 -0700 (PDT) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id ee6-20020a17090afc4600b002b328adc4b9sm1382447pjb.42.2024.05.01.09.14.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 May 2024 09:14:12 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [PATCH v10 0/9] net/tap: fix RSS (BPF) flow support Date: Wed, 1 May 2024 09:11:59 -0700 Message-ID: <20240501161403.114658-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. I do not intend to support backporting this to stable releases due to lack of demand and dealing with older distros. v10 - add some cleanups to stats and name sizes - update documentation from review Stephen Hemminger (9): net/tap: do not duplicate fd's net/tap: remove unused fields net/tap: validate and setup parameters for BPF RSS net/tap: do not build flow support if header is out of date net/tap: rewrite the RSS BPF program net/tap: use libbpf to load new BPF program net/tap: remove no longer used files net/tap: simplify internals net/tap: update documentation .gitignore | 3 - doc/guides/nics/tap.rst | 274 ++-- doc/guides/rel_notes/release_24_07.rst | 7 + drivers/net/tap/bpf/Makefile | 19 - drivers/net/tap/bpf/README | 49 + 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 | 42 +- drivers/net/tap/rte_eth_tap.c | 339 ++--- drivers/net/tap/rte_eth_tap.h | 32 +- 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 | 559 ++------ 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, 887 insertions(+), 3584 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