On 09/26, Jesper Dangaard Brouer wrote:
On 26/09/2025 06.20, Stanislav Fomichev wrote:
On 09/25, Lorenzo Bianconi wrote:
Introduce XDP RX checksum capability to XDP metadata specs. XDP RX checksum will be use by devices capable of exposing receive checksum result via bpf_xdp_metadata_rx_checksum(). Moreover, introduce xmo_rx_checksum netdev callback in order allow the eBPF program bounded to the device to retrieve the RX checksum result computed by the hw NIC.
Signed-off-by: Lorenzo Bianconi lorenzo@kernel.org
Documentation/netlink/specs/netdev.yaml | 5 +++++ include/net/xdp.h | 14 ++++++++++++++ net/core/xdp.c | 29 +++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+)
diff --git a/Documentation/netlink/specs/netdev.yaml b/Documentation/netlink/specs/netdev.yaml index e00d3fa1c152d7165e9485d6d383a2cc9cef7cfd..00699bf4a7fdb67c6b9ee3548098b0c933fd39a4 100644 --- a/Documentation/netlink/specs/netdev.yaml +++ b/Documentation/netlink/specs/netdev.yaml @@ -61,6 +61,11 @@ definitions: doc: | Device is capable of exposing receive packet VLAN tag via bpf_xdp_metadata_rx_vlan_tag().
-
name: checksum
doc: |
Device is capable of exposing receive checksum result via
bpf_xdp_metadata_rx_checksum().
- type: flags name: xsk-flags
diff --git a/include/net/xdp.h b/include/net/xdp.h index aa742f413c358575396530879af4570dc3fc18de..9ab9ac10ae2074b70618a9d4f32544d8b9a30b63 100644 --- a/include/net/xdp.h +++ b/include/net/xdp.h @@ -586,6 +586,10 @@ void xdp_attachment_setup(struct xdp_attachment_info *info, NETDEV_XDP_RX_METADATA_VLAN_TAG, \ bpf_xdp_metadata_rx_vlan_tag, \ xmo_rx_vlan_tag) \
- XDP_METADATA_KFUNC(XDP_METADATA_KFUNC_RX_CHECKSUM, \
NETDEV_XDP_RX_METADATA_CHECKSUM, \
bpf_xdp_metadata_rx_checksum, \
enum xdp_rx_metadata { #define XDP_METADATA_KFUNC(name, _, __, ___) name,xmo_rx_checksum)
@@ -643,12 +647,22 @@ enum xdp_rss_hash_type { XDP_RSS_TYPE_L4_IPV6_SCTP_EX = XDP_RSS_TYPE_L4_IPV6_SCTP | XDP_RSS_L3_DYNHDR, }; +enum xdp_checksum {
- XDP_CHECKSUM_NONE = CHECKSUM_NONE,
- XDP_CHECKSUM_UNNECESSARY = CHECKSUM_UNNECESSARY,
- XDP_CHECKSUM_COMPLETE = CHECKSUM_COMPLETE,
- XDP_CHECKSUM_PARTIAL = CHECKSUM_PARTIAL,
+};
Btw, might be worth mentioning, awhile ago we had settled on a smaller set of exposed types:
https://lore.kernel.org/netdev/20230811161509.19722-13-larysa.zaremba@intel....
Maybe go through the previous postings and check if the arguments are still relevant? (or explain why we want more checksum now)
IHMO the linked proposal reduced the types too much.
IIRC, PARTIAL was removed because it's mostly (or only) a TX feature? So no real need to expose it as an rx hint. And I think empty xdp_csum_status in that proposal might have indicated NONE?