{"id":2196366,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2196366/?format=json","project":{"id":46,"url":"http://patchwork.ozlabs.org/api/1.0/projects/46/?format=json","name":"Intel Wired Ethernet development","link_name":"intel-wired-lan","list_id":"intel-wired-lan.osuosl.org","list_email":"intel-wired-lan@osuosl.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260213-bpf-xdp-meta-rxcksum-v2-2-a82c4802afbe@kernel.org>","date":"2026-02-13T15:26:21","name":"[bpf-next,v2,2/5] net: veth: Add xmo_rx_checksum callback to veth driver","commit_ref":null,"pull_url":null,"state":"handled-elsewhere","archived":false,"hash":"75b3340175438713b74af912c25ce49a009b06b7","submitter":{"id":76007,"url":"http://patchwork.ozlabs.org/api/1.0/people/76007/?format=json","name":"Lorenzo Bianconi","email":"lorenzo@kernel.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260213-bpf-xdp-meta-rxcksum-v2-2-a82c4802afbe@kernel.org/mbox/","series":[{"id":492113,"url":"http://patchwork.ozlabs.org/api/1.0/series/492113/?format=json","date":"2026-02-13T15:26:20","name":"Add the the capability to load HW RX checsum in eBPF programs","version":2,"mbox":"http://patchwork.ozlabs.org/series/492113/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2196366/checks/","tags":{},"headers":{"Return-Path":"<intel-wired-lan-bounces@osuosl.org>","X-Original-To":["incoming@patchwork.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=GGB2wGWv;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])\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 4fCGHk4dVHz1xvQ\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 14 Feb 2026 02:27:14 +1100 (AEDT)","from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 1589C41D2E;\n\tFri, 13 Feb 2026 15:27:11 +0000 (UTC)","from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 4RWdz_bFF2AO; Fri, 13 Feb 2026 15:27:09 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id F2B6341D1D;\n\tFri, 13 Feb 2026 15:27:08 +0000 (UTC)","from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists1.osuosl.org (Postfix) with ESMTP id 30C40255\n for <intel-wired-lan@lists.osuosl.org>; Fri, 13 Feb 2026 15:27:08 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id 2247441D1D\n for <intel-wired-lan@lists.osuosl.org>; Fri, 13 Feb 2026 15:27:08 +0000 (UTC)","from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 14qmUFnfG4QK for <intel-wired-lan@lists.osuosl.org>;\n Fri, 13 Feb 2026 15:27:07 +0000 (UTC)","from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 121E641CDF\n for <intel-wired-lan@lists.osuosl.org>; Fri, 13 Feb 2026 15:27:06 +0000 (UTC)","from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])\n by tor.source.kernel.org (Postfix) with ESMTP id 371986001A;\n Fri, 13 Feb 2026 15:27:06 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 64D50C116C6;\n Fri, 13 Feb 2026 15:27:05 +0000 (UTC)"],"X-Virus-Scanned":["amavis at osuosl.org","amavis at osuosl.org"],"X-Comment":"SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ","DKIM-Filter":["OpenDKIM Filter v2.11.0 smtp4.osuosl.org F2B6341D1D","OpenDKIM Filter v2.11.0 smtp4.osuosl.org 121E641CDF"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1770996429;\n\tbh=s7F0qbhkjAnV1PcaQ1kJXNd2gdF9vnCkoqvlkGZXzW8=;\n\th=From:Date:References:In-Reply-To:To:Cc:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=GGB2wGWviYBQ2l5tV/sukOcToBR8GmNYlP6yqdyC6c3yJ5ko42NH6uq1WL8ZYbJD4\n\t 5GKQPST29grKnom2FoQTTR74Ju2FCP3B4LkT22Ky3Q0aRnWgxfDfZ2cQvXaWUFXHQv\n\t ZLUgulaGVIZA68zk11wFZj/YfoT7w7UkZFsxmpTkcAZvvOZDig89mXiPxwFsdwieQz\n\t NMVmbq27YaqGHGvxGH7/mY/MD86xYL6Mrz5joYgZFEj4fkE6+VmV8QchasrKrdfyhy\n\t R1MOdYb1Z7BzwEvEoubPbfKMnmJe53RyBb98d+6J9J3UFSsrg+iL+zJNEf17KdmFaC\n\t lgLUeqJXe9VJg==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=172.105.4.254;\n helo=tor.source.kernel.org; envelope-from=lorenzo@kernel.org;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp4.osuosl.org 121E641CDF","From":"Lorenzo Bianconi <lorenzo@kernel.org>","Date":"Fri, 13 Feb 2026 16:26:21 +0100","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20260213-bpf-xdp-meta-rxcksum-v2-2-a82c4802afbe@kernel.org>","References":"<20260213-bpf-xdp-meta-rxcksum-v2-0-a82c4802afbe@kernel.org>","In-Reply-To":"<20260213-bpf-xdp-meta-rxcksum-v2-0-a82c4802afbe@kernel.org>","To":"Donald Hunter <donald.hunter@gmail.com>,\n Jakub Kicinski <kuba@kernel.org>, \"David S. Miller\" <davem@davemloft.net>,\n Eric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>,\n Simon Horman <horms@kernel.org>, Alexei Starovoitov <ast@kernel.org>,\n Daniel Borkmann <daniel@iogearbox.net>,\n Jesper Dangaard Brouer <hawk@kernel.org>,\n John Fastabend <john.fastabend@gmail.com>,\n Stanislav Fomichev <sdf@fomichev.me>, Andrew Lunn <andrew+netdev@lunn.ch>,\n Tony Nguyen <anthony.l.nguyen@intel.com>,\n Przemek Kitszel <przemyslaw.kitszel@intel.com>,\n Alexander Lobakin <aleksander.lobakin@intel.com>,\n Andrii Nakryiko <andrii@kernel.org>,\n Martin KaFai Lau <martin.lau@linux.dev>,\n Eduard Zingerman <eddyz87@gmail.com>, Song Liu <song@kernel.org>,\n Yonghong Song <yonghong.song@linux.dev>, KP Singh <kpsingh@kernel.org>,\n Hao Luo <haoluo@google.com>, Jiri Olsa <jolsa@kernel.org>,\n Shuah Khan <shuah@kernel.org>,\n Maciej Fijalkowski <maciej.fijalkowski@intel.com>","Cc":"Jakub Sitnicki <jakub@cloudflare.com>, netdev@vger.kernel.org,\n bpf@vger.kernel.org, intel-wired-lan@lists.osuosl.org,\n linux-kselftest@vger.kernel.org,\n Aleksandr Loktionov <aleksandr.loktionov@intel.com>,\n Lorenzo Bianconi <lorenzo@kernel.org>","X-Mailer":"b4 0.14.2","X-Mailman-Original-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n d=kernel.org; s=k20201202; t=1770996425;\n bh=jzwrIvlfZk6MWSMCC0apFup4Q/S1x/hMT1Pen21jYHM=;\n h=From:Date:Subject:References:In-Reply-To:To:Cc:From;\n b=rwHh1NLb4cG2OfEAbgLg+lNi1i07uP/G2ZALst8A7GRIvdEeMBzHaYrqp+JSreA2f\n 5RHuF//UI8ycWM5gv6G90axt6O2QpAY5gxUW8hqKZtCjxnI5zqfb0V2TnBneeeyOu8\n 7SdQjxpWmxn6ZL8SjCF316eb7HoYCft5uSRPawYvMjh4GdsSIBQLs8JM4rFpamDBWS\n rJ+0nhibZbNspaG23PA96Jug9e0xuBCElYZUbGa84YgI1imSUQFLB6JIJ5NgfUOtYV\n fLMViBBC385xwUaXIft0UR/RpuhHuvR9ftNd4ghfzLjL1hWlaeL+fU6fHFuCe5Iao6\n Yt9FgcroU0Ztg==","X-Mailman-Original-Authentication-Results":["smtp4.osuosl.org;\n dmarc=pass (p=quarantine dis=none)\n header.from=kernel.org","smtp4.osuosl.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.a=rsa-sha256 header.s=k20201202 header.b=rwHh1NLb"],"Subject":"[Intel-wired-lan] [PATCH bpf-next v2 2/5] net: veth: Add\n xmo_rx_checksum callback to veth driver","X-BeenThere":"intel-wired-lan@osuosl.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>","List-Unsubscribe":"<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>","List-Archive":"<http://lists.osuosl.org/pipermail/intel-wired-lan/>","List-Post":"<mailto:intel-wired-lan@osuosl.org>","List-Help":"<mailto:intel-wired-lan-request@osuosl.org?subject=help>","List-Subscribe":"<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>","Errors-To":"intel-wired-lan-bounces@osuosl.org","Sender":"\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"},"content":"Implement xmo_rx_checksum callback in veth driver to report RX checksum\nresult to the eBPF program bounded to the veth device.\n\nReviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>\nSigned-off-by: Lorenzo Bianconi <lorenzo@kernel.org>\n---\n drivers/net/veth.c | 30 ++++++++++++++++++++++++++++++\n 1 file changed, 30 insertions(+)","diff":"diff --git a/drivers/net/veth.c b/drivers/net/veth.c\nindex 9982412fd7f238e996ccdff24342974cb25094bf..3ec77599299ae0bbb7df88e5820793065911e88e 100644\n--- a/drivers/net/veth.c\n+++ b/drivers/net/veth.c\n@@ -1697,6 +1697,35 @@ static int veth_xdp_rx_vlan_tag(const struct xdp_md *ctx, __be16 *vlan_proto,\n \treturn err;\n }\n \n+static int veth_xdp_rx_checksum(const struct xdp_md *ctx,\n+\t\t\t\tenum xdp_checksum *ip_summed,\n+\t\t\t\tu32 *cksum_meta)\n+{\n+\tconst struct veth_xdp_buff *_ctx = (void *)ctx;\n+\tconst struct sk_buff *skb = _ctx->skb;\n+\n+\tif (!skb)\n+\t\treturn -ENODATA;\n+\n+\t*ip_summed = skb->ip_summed;\n+\tswitch (skb->ip_summed) {\n+\tcase CHECKSUM_COMPLETE:\n+\t\t*ip_summed = XDP_CHECKSUM_COMPLETE;\n+\t\t*cksum_meta = skb->csum;\n+\t\tbreak;\n+\tcase CHECKSUM_UNNECESSARY:\n+\t\t*ip_summed = XDP_CHECKSUM_UNNECESSARY;\n+\t\t*cksum_meta = skb->csum_level;\n+\t\tbreak;\n+\tdefault:\n+\t\t*ip_summed = XDP_CHECKSUM_NONE;\n+\t\t*cksum_meta = 0;\n+\t\tbreak;\n+\t}\n+\n+\treturn 0;\n+}\n+\n static const struct net_device_ops veth_netdev_ops = {\n \t.ndo_init            = veth_dev_init,\n \t.ndo_open            = veth_open,\n@@ -1722,6 +1751,7 @@ static const struct xdp_metadata_ops veth_xdp_metadata_ops = {\n \t.xmo_rx_timestamp\t\t= veth_xdp_rx_timestamp,\n \t.xmo_rx_hash\t\t\t= veth_xdp_rx_hash,\n \t.xmo_rx_vlan_tag\t\t= veth_xdp_rx_vlan_tag,\n+\t.xmo_rx_checksum\t\t= veth_xdp_rx_checksum,\n };\n \n #define VETH_FEATURES (NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HW_CSUM | \\\n","prefixes":["bpf-next","v2","2/5"]}