From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 1D17E3B2A4; Tue, 11 Jul 2023 09:29:12 -0400 (EDT) Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-55bc29a909dso2829495a12.3; Tue, 11 Jul 2023 06:29:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689082150; x=1691674150; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=ZxVfe0TuEAvbf2RWqQBDaZCxjX5FyNIePTDDaeIJTNo=; b=UfK2n06of58Kmx8Bd9TQeTZFmzHQUOmrNZvn2nbC0JEDe6VQ3JNAdJhUfIG5Lv/ZL0 W7WIi0x5/qz7Q8x43M68XdzgqfZ4Y+DxxmcB6T7XILhklErQANW92vskXJwFNd593v5i wHVV8C1n2C5VSM9/2XbU0jmLpy6axhXdiH0manN4cjaqkvMxtyQ/YWT7XVudXpt9rzLQ kb1huloZWxb6t2OR3OkvAe/YyX4uffh7wXQEVmdb45XBIvlvFOfanIVm+TgxB6Sk8roF px1GV/O+nkYNhm/B5NNopPT5ZyCPbcrw5F5Y2TtwYU9QLncXNxr1HMaHVvg3y9gb5S+O QfBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689082150; x=1691674150; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZxVfe0TuEAvbf2RWqQBDaZCxjX5FyNIePTDDaeIJTNo=; b=YyhCD3c1Y7RAF/lWSlMrnTScWUhO+s1G2TkIgk4/sF9cyt3eUh5jf8flIVeGArctbo 4tCef2ALfaM9IDNmA+UyjFlH1Q4YsBkI6WoiO4ZDUd5D9N/Oo3wyzNtWhyCDTgVLw9Ms b0Aw68GmuNqlWE+tdoIZ1pAEohDB0KIZoD4Wm4AAG9EN3aUztvfhMC6S/G4VWlW1/7rg FJdSkhGu0dtDPS1OCiXQVJrz0yzhNdIhYT+pvBwp8WJYARTEc6mF5g/oNLjnKOBLCRlL 57jNx0Mq8cAo+sA2wy8cuStiOryBUcQiq1FpGBgM0FMNl/rnSjqYvBHaf8NOymtiWtRl Q+Iw== X-Gm-Message-State: ABy/qLY3GrqnrpBL3LPn6XVCq1wa7mxX3ZYRNYO3ZhamoUGessZ12wLj FokjRZOQucFT3YDEJYW+dQEm4MI/QvJpRTvCpc2Yx6i6QTQpxg== X-Google-Smtp-Source: APBJJlHsOur5aY8Z98G/c80Gg8ZAOSPkhxNsoA/fAD8DhWb8IT0pC1pgnlO6KDkmJJasTwRgwxQ5qisSfO8AuuRqycY= X-Received: by 2002:a17:90b:3506:b0:263:4157:66de with SMTP id ls6-20020a17090b350600b00263415766demr11072887pjb.42.1689082150534; Tue, 11 Jul 2023 06:29:10 -0700 (PDT) MIME-Version: 1.0 References: <20230710073703.147351-1-fujita.tomonori@gmail.com> In-Reply-To: <20230710073703.147351-1-fujita.tomonori@gmail.com> From: Dave Taht Date: Tue, 11 Jul 2023 07:28:59 -0600 Message-ID: To: libreqos , Cake List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: [Cake] Fwd: [PATCH v2 0/5] Rust abstractions for network device drivers X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Jul 2023 13:29:12 -0000 I have often thought that the best way to implement a multi-core capable cake was to bypass bql, qdisc, and ethernet driver entirely, writing something like the carousel virtualized driver described here: https://dl.acm.org/doi/abs/10.1145/3098822.3098852 ---------- Forwarded message --------- From: FUJITA Tomonori Date: Mon, Jul 10, 2023 at 1:39=E2=80=AFAM Subject: [PATCH v2 0/5] Rust abstractions for network device drivers To: , Cc: , , , , This patchset adds minimum Rust abstractions for network device drivers and an example of a Rust network device driver, a simpler version of drivers/net/dummy.c. The major change is a way to drop an skb (1/5 patch); a driver needs to explicitly call a function to drop a skb. The code to let a skb go out of scope can't be compiled. I dropped get_stats64 support patch that the current sample driver doesn't use. Instead I added a patch to update the NETWORKING DRIVERS entry in MAINTAINERS. Changes since v1 [1]: - a driver must explicitly call a function to drop a skb. - simplify the code (thanks to Benno Lossin). - update MAINTAINERS file. [1] https://lwn.net/ml/netdev/20230613045326.3938283-1-fujita.tomonori@gmai= l.com/ FUJITA Tomonori (5): rust: core abstractions for network device drivers rust: add support for ethernet operations rust: add methods for configure net_device samples: rust: add dummy network driver MAINTAINERS: add Rust network abstractions files to the NETWORKING DRIVERS entry MAINTAINERS | 2 + rust/bindings/bindings_helper.h | 3 + rust/helpers.c | 23 ++ rust/kernel/lib.rs | 3 + rust/kernel/net.rs | 5 + rust/kernel/net/dev.rs | 598 ++++++++++++++++++++++++++++++++ samples/rust/Kconfig | 13 + samples/rust/Makefile | 1 + samples/rust/rust_net_dummy.rs | 75 ++++ scripts/Makefile.build | 2 +- 10 files changed, 724 insertions(+), 1 deletion(-) create mode 100644 rust/kernel/net.rs create mode 100644 rust/kernel/net/dev.rs create mode 100644 samples/rust/rust_net_dummy.rs base-commit: d2e3115d717197cb2bc020dd1f06b06538474ac3 -- 2.34.1 --=20 Podcast: https://www.linkedin.com/feed/update/urn:li:activity:7058793910227= 111937/ Dave T=C3=A4ht CSO, LibreQos