{"id":2221423,"url":"http://patchwork.ozlabs.org/api/1.0/covers/2221423/?format=json","project":{"id":26,"url":"http://patchwork.ozlabs.org/api/1.0/projects/26/?format=json","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":"<cover.1775739840.git.daniel@makrotopia.org>","date":"2026-04-09T13:07:22","name":"[RFC,net-next,0/4] improve hw flow offload byte accounting","submitter":{"id":64091,"url":"http://patchwork.ozlabs.org/api/1.0/people/64091/?format=json","name":"Daniel Golle","email":"daniel@makrotopia.org"},"series":[{"id":499290,"url":"http://patchwork.ozlabs.org/api/1.0/series/499290/?format=json","date":"2026-04-09T13:07:22","name":"improve hw flow offload byte accounting","version":1,"mbox":"http://patchwork.ozlabs.org/series/499290/mbox/"}],"headers":{"Return-Path":"\n <netfilter-devel+bounces-11763-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=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11763-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 sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4])\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 4fs0bZ6h9Sz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 23:07:54 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id E8FC6300B9CB\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  9 Apr 2026 13:07:45 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id B514D3CF698;\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 1EC3B3CE494;\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 1wAp6T-000000001k1-21AP;\n\tThu, 09 Apr 2026 13:07:25 +0000"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775740059; cv=none;\n b=q4LGfBO4Vw4xhezY4CeqGJrzInEtTW6QWG1xv/22NjkOPaM+sDTo6qRuQbvv+ts4Dj/HJ6waOxq8j16KTtg0eNKIEXR84DIgqqICeM/bZU6+UtkU+tn+qsWIbq6lN+8Pz10MxnGTjMB1NCxWwlUJNqXrD/DlKPyZPsnGVvEWIcY=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775740059; c=relaxed/simple;\n\tbh=0baEriNkC/Y6wDoeOryOBErKLQExcCEELcjgBz/Ep94=;\n\th=Date:From:To:Subject:Message-ID:MIME-Version:Content-Type:\n\t Content-Disposition;\n b=jIJhehL/0mAhoQCPlkCaKdVIA+ptN/FFs3imLGfWz+R71M0A+/erY2x5dpyrLXXcs0uhw5Scvdm1HWXdnmFdiYtyzvBEixnxKynqze2FpDZa9XXFYgHeZKTkMJMwFXYuTZkfL/vBEiVJUoYaFX+Z+3fGal2SyFWA6Y5vFM8+kAE=","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:22 +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 0/4] improve hw flow offload byte accounting","Message-ID":"<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"},"content":"Hardware flow counters report raw byte counts whose semantics\nvary by vendor -- some count ingress L2 frames, others egress\nL2, others L3. The nf_flow_table framework currently passes\nthese bytes straight to conntrack without conversion, and\nsub-interfaces (VLAN, PPPoE) that are bypassed by hw offload\nnever see any counter updates at all.\n\nThis series lets drivers declare what their counters represent,\nso the framework can normalize to L3 for conntrack and\npropagate per-layer stats to encap sub-interfaces.\n\nQuestions:\n - Sub-interface stats accesses vlan_dev_priv() directly --\n   should there be a generic netdev callback instead?\n - Are there hw offload drivers whose counters do not fit the\n   ingress-L2 / egress-L2 / L3 model?\n\nDaniel Golle (4):\n  net: flow_offload: let drivers report byte counter semantics\n  nf_flow_table: track sub-interface and bridge ifindex in flow tuple\n  nf_flow_table: convert hw byte counts and update sub-interface stats\n  net: ethernet: mtk_eth_soc: report INGRESS_L2 byte_type in flow stats\n\n .../net/ethernet/mediatek/mtk_ppe_offload.c   |   1 +\n include/net/flow_offload.h                    |   7 +\n include/net/netfilter/nf_flow_table.h         |   5 +\n net/netfilter/nf_flow_table_core.c            |   2 +\n net/netfilter/nf_flow_table_offload.c         | 174 +++++++++++++++++-\n net/netfilter/nf_flow_table_path.c            |   8 +\n 6 files changed, 195 insertions(+), 2 deletions(-)"}