From patchwork Tue Apr 9 03:40:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 850 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 6426E43DD9; Tue, 9 Apr 2024 05:42:43 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 175CF402B9; Tue, 9 Apr 2024 05:42:42 +0200 (CEST) Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) by mails.dpdk.org (Postfix) with ESMTP id 333204027B for ; Tue, 9 Apr 2024 05:42:40 +0200 (CEST) Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-2a484f772e2so2254144a91.3 for ; Mon, 08 Apr 2024 20:42:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1712634159; x=1713238959; 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=AGFusM84+PCLjzeKfEqwV7nEDjBlVMA5uRo4FYAuhoU=; b=Ibb52YgmxZwDS89VOTb+7QIUr0gvuV5jFLrmeTsgmnpPyT4NBKZ3cuBKrM1YxSqhv3 t1edrv34o5RVaPkqwcD2/okNObQAiM/Xfu+0IR5oMbInidMdQpUVw9Ut1SDDVAYv4plt v0p1XW+T+LEscNEHUHqCk6sY3Ho4Og4hUlHAJsCuT7nOzXN7KlQ+rPo+4fY1LJ/1YyfV L4uyTicGqTDI+afzp/IUQqbRND1oq7rMztKyW9iEXnOiNsYTQymobPLFekPTRTZOc1EC lF3+EnFk9XX+4vlc3uJ33QU52di2Qp6jHOCb7l0ASuVMYr8TXAZ+cqR4jw9Wj82x+8xZ He0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712634159; x=1713238959; 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=AGFusM84+PCLjzeKfEqwV7nEDjBlVMA5uRo4FYAuhoU=; b=ABgHAuHK/BQMMrcf4I4n17wUQlioLQlLQCS39qAi0kwjRNfleWzUwZDSrlsHMSk0cu rwffyIDvQndrvOAAX5Q+mBr2BUQj7ncJM7vjsBNHuTozcORr7CLz7YukiytBa2Qt+mFd wIy48b4tuCC7jyjC9BaDF4kbvTbgLfMoRJRY5GaKH9cigsEDaeCjx4k7IEVSI4CbzsKm JudgdrEG+za7UKntPLu/OmZaj5rqukLlUqrOEdntwZLw92ugH7QRmraEa6AQSlrTf5wd 4+zc4jwPOiJT9wEmScXYVUVGx0e7vTiGmxERHn8bP4jbjkPFSOAAHLwuFFCRqz9zS2BJ ZGqQ== X-Gm-Message-State: AOJu0Yw59YMgTEaIv65nhKJauXlPTZ3H86b1vznj11RjeHpb7Gp1j5Jt W+mLsZ8t9lKhr5G6sL3c7gCkfbTmeT65FEZBSRYhpYJfLLPtdlQsJJDrOfT2je9OwTm8zYt70tK IV2I= X-Google-Smtp-Source: AGHT+IHlWm8ZfCiIRDyTTMSUGWlzw1Ab97Nn+3NHb+gHaR2R4SiizYMLiBFs6dlrIkLWVrVHNioZ5g== X-Received: by 2002:a17:90b:108c:b0:2a2:d498:eec2 with SMTP id gj12-20020a17090b108c00b002a2d498eec2mr9087661pjb.40.1712634159039; Mon, 08 Apr 2024 20:42:39 -0700 (PDT) Received: from hermes.lan (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id gm24-20020a17090b101800b0029de90f4d44sm9238197pjb.9.2024.04.08.20.42.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Apr 2024 20:42:38 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [PATCH v8 0/8] net/tap: cleanups and fix BPF support Date: Mon, 8 Apr 2024 20:40:29 -0700 Message-ID: <20240409034237.433270-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. Stephen Hemminger (8): 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 doc: update documentation of TAP PMD v8 - fix build with CentOS 7. Although CentOS will soon be unsupported in DPDK. .gitignore | 3 - doc/guides/linux_gsg/sys_reqs.rst | 3 + doc/guides/nics/tap.rst | 274 ++-- 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 | 42 +- drivers/net/tap/rte_eth_tap.c | 225 ++-- drivers/net/tap/rte_eth_tap.h | 20 +- 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, 801 insertions(+), 3529 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