Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.0/patches/2221426/?format=api
{ "id": 2221426, "url": "http://patchwork.ozlabs.org/api/1.0/patches/2221426/?format=api", "project": { "id": 26, "url": "http://patchwork.ozlabs.org/api/1.0/projects/26/?format=api", "name": "Netfilter Development", "link_name": "netfilter-devel", "list_id": "netfilter-devel.vger.kernel.org", "list_email": "netfilter-devel@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<15636456e2bb94a565d139333e586ce5b63bc8c2.1775739840.git.daniel@makrotopia.org>", "date": "2026-04-09T13:07:29", "name": "[RFC,net-next,1/4] net: flow_offload: let drivers report byte counter semantics", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "b2d637f702f0e906862e71d7daab154749f1078f", "submitter": { "id": 64091, "url": "http://patchwork.ozlabs.org/api/1.0/people/64091/?format=api", "name": "Daniel Golle", "email": "daniel@makrotopia.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/netfilter-devel/patch/15636456e2bb94a565d139333e586ce5b63bc8c2.1775739840.git.daniel@makrotopia.org/mbox/", "series": [ { "id": 499290, "url": "http://patchwork.ozlabs.org/api/1.0/series/499290/?format=api", "date": "2026-04-09T13:07:22", "name": "improve hw flow offload byte accounting", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/499290/mbox/" } ], "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2221426/checks/", "tags": {}, "headers": { "Return-Path": "\n <netfilter-devel+bounces-11764-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "netfilter-devel@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11764-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=185.142.180.65", "smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=makrotopia.org", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=makrotopia.org" ], "Received": [ "from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fs0fB5FCTz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 23:10:10 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 014D13032DF0\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 9 Apr 2026 13:07:47 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id CEA463CFF4D;\n\tThu, 9 Apr 2026 13:07:39 +0000 (UTC)", "from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 1EBAB3C6A39;\n\tThu, 9 Apr 2026 13:07:37 +0000 (UTC)", "from local\n\tby pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256)\n\t (Exim 4.99)\n\t(envelope-from <daniel@makrotopia.org>)\n\tid 1wAp6a-000000001k4-1gBy;\n\tThu, 09 Apr 2026 13:07:32 +0000" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775740059; cv=none;\n b=EasXYTomy1U5NbXYWBvSK0VNi1Vhio5XzXbzjK3XEZv7nbF/6xi1+Tq93p+rmVj6VheY1HdOAMsICD0ozfYtPMZRC0s6CZQtmGjdUfgcehJmYW2+2G5rBwsVoKitpxuE4d/ORRUPr48GjH6tgqHk/dACMtWzl4n/JBuJLn4XsQ4=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775740059; c=relaxed/simple;\n\tbh=dls/Wpp1Eq0cIYONF2jW98TENqkjUWDdoHaOOiHpl34=;\n\th=Date:From:To:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=DopUIG2jcoNO1jHz4dSMc2r9h8l51B6yDAn6YnYzINZBMjq3JojAfdHwmFFmBQ/J4b0Z1p3WvOixzjeXDD9+UfkhNL4wHSIf1BSt28NnYz0+ZSGMxfkjBtfI0h96evXmTActWWnG+gB/IqjUzvgf8gykZLvTbxWurGhvB/kL4xM=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=makrotopia.org;\n spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65", "Date": "Thu, 9 Apr 2026 14:07:29 +0100", "From": "Daniel Golle <daniel@makrotopia.org>", "To": "Felix Fietkau <nbd@nbd.name>, John Crispin <john@phrozen.org>,\n\tLorenzo Bianconi <lorenzo@kernel.org>,\n\tAndrew Lunn <andrew+netdev@lunn.ch>,\n\t\"David S. Miller\" <davem@davemloft.net>,\n\tEric Dumazet <edumazet@google.com>,\n\tJakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,\n\tMatthias Brugger <matthias.bgg@gmail.com>,\n\tAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>,\n\tSimon Horman <horms@kernel.org>,\n\tPablo Neira Ayuso <pablo@netfilter.org>,\n\tFlorian Westphal <fw@strlen.de>, Phil Sutter <phil@nwl.cc>,\n\tnetdev@vger.kernel.org, linux-kernel@vger.kernel.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-mediatek@lists.infradead.org, netfilter-devel@vger.kernel.org,\n\tcoreteam@netfilter.org", "Subject": "[PATCH RFC net-next 1/4] net: flow_offload: let drivers report byte\n counter semantics", "Message-ID": "\n <15636456e2bb94a565d139333e586ce5b63bc8c2.1775739840.git.daniel@makrotopia.org>", "References": "<cover.1775739840.git.daniel@makrotopia.org>", "Precedence": "bulk", "X-Mailing-List": "netfilter-devel@vger.kernel.org", "List-Id": "<netfilter-devel.vger.kernel.org>", "List-Subscribe": "<mailto:netfilter-devel+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:netfilter-devel+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<cover.1775739840.git.daniel@makrotopia.org>" }, "content": "Hardware flow offload engines count bytes at different points --\nsome report ingress L2 frame bytes, others egress L2, others L3.\nAdd an enum so drivers can declare what their counters represent.\nThe framework can then convert to L3 as needed for conntrack.\n\nDefault is FLOW_STATS_BYTES_L3 (zero), preserving existing\nbehaviour for all current drivers.\n\nSigned-off-by: Daniel Golle <daniel@makrotopia.org>\n---\n include/net/flow_offload.h | 7 +++++++\n 1 file changed, 7 insertions(+)", "diff": "diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h\nindex 70a02ee143080..7f5ef29b3abce 100644\n--- a/include/net/flow_offload.h\n+++ b/include/net/flow_offload.h\n@@ -541,12 +541,19 @@ static inline bool flow_rule_match_has_control_flags(const struct flow_rule *rul\n \treturn flow_rule_has_control_flags(match.mask->flags, extack);\n }\n \n+enum flow_stats_byte_type {\n+\tFLOW_STATS_BYTES_L3 = 0,\t/* L3 (inner IP) bytes */\n+\tFLOW_STATS_BYTES_INGRESS_L2,\t/* full ingress L2 frame bytes */\n+\tFLOW_STATS_BYTES_EGRESS_L2,\t/* full egress L2 frame bytes */\n+};\n+\n struct flow_stats {\n \tu64\tpkts;\n \tu64\tbytes;\n \tu64\tdrops;\n \tu64\tlastused;\n \tenum flow_action_hw_stats used_hw_stats;\n+\tenum flow_stats_byte_type byte_type;\n \tbool used_hw_stats_valid;\n };\n \n", "prefixes": [ "RFC", "net-next", "1/4" ] }