From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from outbound.qs.icloud.com (qs-2004j-snip4-2.eps.apple.com [57.103.84.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 538833DD87E for ; Wed, 8 Jul 2026 20:35:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=57.103.84.95 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783542908; cv=none; b=lBVOHBHfssIVr5njBLxs1lzQMzPzK8W8/8jYRjW0AR5wtXuz21fC7EwtY7rI4MmBZg9on6QHckMFXFCwdFyjZTxHcXz+KOZZiUV8UcOZ5xCBy4DW2vP0wLuTq6A2RheWMW3gRa2D7f+m7yXIG9+OSrZ2qnjjehvGRtk7/dV9GI4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783542908; c=relaxed/simple; bh=Ob6KhEnJEHL49NGQIQ7skMx8gNTZdt4HvuzDLrR7h8s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J215nq5q9NnuRcSGw/nQosH56gk/yCk+W4gF+hd1LY3zBG8FQgR15rplp68G8jb1poK+Sk4xgW3dj9SMHTxn0oZRRdoKZ5E+h5klS+8e01YhIho43OudBlNx21zOA0DQGAjdePLPh09nD9P4b4ei/FBuZKKlmFvfq/l4NSrDVu8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=verdict.gg; spf=pass smtp.mailfrom=verdict.gg; dkim=pass (2048-bit key) header.d=verdict.gg header.i=@verdict.gg header.b=dL4HSmuq; arc=none smtp.client-ip=57.103.84.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=verdict.gg Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=verdict.gg Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=verdict.gg header.i=@verdict.gg header.b="dL4HSmuq" Received: from outbound.qs.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-2d-10-percent-0 (Postfix) with ESMTPS id E61603001123; Wed, 08 Jul 2026 20:34:54 +0000 (UTC) X-ICL-RepId: 019f4370-d0ce-7cdb-8d2c-bde2998f77a0 X-ICL-Out-Info: HUtFAUMHWwJACUgBTUQeDx5WFlZNRAJCTQhICkMGWQJeCEABQwVdEhVdRVcIWwJAEVc4RQhFD1sTTVZUChcNVk1PHUEJXghGXl4fEx9UVgFDGRBWAVhWXQVNGlwYWQ8cAUpWWg5bBEcUFxtcABcbRgIEIwJfAEUCXglWATAXD1ZNTx1BCV4IRl5eHxMAXg8PTAtIAVsHXAJIC0gAWQZbHEQMSQFcGlgfFFwUWh9WBXIGXApXBFQfHBdeRhMZThtXTVoNQBlYBm0UVhVSBFk= Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=verdict.gg; s=sig1; t=1783542901; x=1786134901; bh=GWr+/cYzoqlgW0kcEges+YFVPk1EvrUUCWQCvaQHOqI=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=dL4HSmuqc/VJH0/UZr+88qr6rSn61knIn8+Wh9JIlJHgVotUdvZAEHbMDJcsshsK5kPIOsZ7ThORGJDpEDSbAxy7Fq19PCZ22/FmuFiCUAdd4b8OWr7EFkROdtf4NMhDB7yNHRS4dcOb+Jl+rZWPYvF1X1P+nAJQ1navn6KWneWoQF+8ChI4dtZXLGAYiX9NB0xKgdLsokenF1elFDGbjDCdnZFKKtN6GOa3KomrINczVDq9VwJR6kaO+JBtpFak5K18Uv0vomG862ECLCpFmGX4hY6+hYN5ekM3f6ZEjbXj6M1k2XPclrG9D74jSdQXFa8ix19ERuaSSEgf1gTAVw== mail-alias-created-date: 1621344842221 Received: from DelNac.mail.msk (unknown [17.57.155.37]) by p00-icloudmta-asmtp-us-east-2d-10-percent-0 (Postfix) with ESMTPSA id 00DA9300011A; Wed, 08 Jul 2026 20:34:48 +0000 (UTC) From: Vladimir Vdovin To: Lorenzo Bianconi , Donald Hunter , Jakub Kicinski , "David S . Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Andrew Lunn , Tony Nguyen , Przemek Kitszel , Alexander Lobakin , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , KP Singh , Hao Luo , Jiri Olsa , Shuah Khan , Maciej Fijalkowski Cc: Jakub Sitnicki , Aleksandr Loktionov , netdev@vger.kernel.org, bpf@vger.kernel.org, intel-wired-lan@lists.osuosl.org, linux-kselftest@vger.kernel.org, Vladimir Vdovin Subject: [PATCH bpf-next v4 2/6] net: veth: Add xmo_rx_checksum callback to veth driver Date: Wed, 8 Jul 2026 23:34:06 +0300 Message-ID: <20260708203410.45121-3-deliran@verdict.gg> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20260708203410.45121-1-deliran@verdict.gg> References: <20260708203410.45121-1-deliran@verdict.gg> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-ORIG-GUID: lo6NqBdX611puj1IL8BWwXcDTgFJwfIx X-Proofpoint-GUID: lo6NqBdX611puj1IL8BWwXcDTgFJwfIx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA4MDIwMiBTYWx0ZWRfX5VrYUA0tufOn ktYk9UvpocZIym5Q9GBeOgMFdThscsOvClhGAi3jjTiI5wddEoS2zpFbp9bjDdlr1UcOscQ9pgO MqAYl3YlggfGrqUeS2CKHnliNLDQe8RkAfz8AN/0rl9ogiMQiYM68eGbIu8pTzMtkCyLcdQwqse o3t7aB3/EznB/IS6EproSpb3sVxXz7yXf3py37a3/CvhJvlE5hGzvchf9QUpySVX8aZKm1Garo0 m3jc9bcGvEvewwyrv/Daqzlp7rmxrDC66o4/WcG7GjjqFIWvysxI2AgeubNcadEhMVtxtL5QPHS Xr9e0+VrvaBQ91FC5qG From: Lorenzo Bianconi Implement xmo_rx_checksum callback in veth driver to report RX checksum result to the eBPF program bounded to the veth device. Signed-off-by: Lorenzo Bianconi Signed-off-by: Vladimir Vdovin --- drivers/net/veth.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/drivers/net/veth.c b/drivers/net/veth.c index 1c5142149175..498d894d043d 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c @@ -1700,6 +1700,37 @@ static int veth_xdp_rx_vlan_tag(const struct xdp_md *ctx, __be16 *vlan_proto, return err; } +static int veth_xdp_rx_checksum(const struct xdp_md *ctx, + enum xdp_checksum *ip_summed, + u32 *cksum, u8 *cksum_level) +{ + const struct veth_xdp_buff *_ctx = (void *)ctx; + const struct sk_buff *skb = _ctx->skb; + + if (!skb) + return -ENODATA; + + switch (skb->ip_summed) { + case CHECKSUM_COMPLETE: + *ip_summed = XDP_CHECKSUM_COMPLETE; + *cksum = skb->csum; + *cksum_level = 0; + break; + case CHECKSUM_UNNECESSARY: + *ip_summed = XDP_CHECKSUM_UNNECESSARY; + *cksum_level = skb->csum_level; + *cksum = 0; + break; + default: + *ip_summed = XDP_CHECKSUM_NONE; + *cksum_level = 0; + *cksum = 0; + break; + } + + return 0; +} + static const struct net_device_ops veth_netdev_ops = { .ndo_init = veth_dev_init, .ndo_open = veth_open, @@ -1725,6 +1756,7 @@ static const struct xdp_metadata_ops veth_xdp_metadata_ops = { .xmo_rx_timestamp = veth_xdp_rx_timestamp, .xmo_rx_hash = veth_xdp_rx_hash, .xmo_rx_vlan_tag = veth_xdp_rx_vlan_tag, + .xmo_rx_checksum = veth_xdp_rx_checksum, }; #define VETH_FEATURES (NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HW_CSUM | \ -- 2.47.0