Page MenuHomeFreeBSD

dpaa2: dpaa2_ni_rx() RX checksum EN/ERR information for L3/4
Changes PlannedPublic

Authored by bz on Feb 17 2026, 3:14 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Apr 5, 1:07 PM
Unknown Object (File)
Sun, Mar 29, 12:50 PM
Unknown Object (File)
Wed, Mar 25, 7:17 AM
Unknown Object (File)
Wed, Mar 25, 1:52 AM
Unknown Object (File)
Sat, Mar 21, 7:22 PM
Unknown Object (File)
Mar 11 2026, 12:49 PM
Unknown Object (File)
Mar 11 2026, 8:09 AM
Unknown Object (File)
Mar 11 2026, 7:40 AM
Subscribers

Details

Reviewers
dsl
tuexen
Summary

In order to enable RX checksum offloading we need to check the
meta-information for the (good) frames to see if the L3/4 checksums
were calculated and if there was an error.

The way the buffere are setup, the needed frame meta-information is
already requested. All we have to do is make sure it is really part
of the RX frame, that it is valid, and if the respective bits are set.

Also do not forget to set the (dummy) csum_data as otherwise upper
layers will just be cranky. An artefact of the past which likely
should disappear.

MFC after: 3 days

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 70720
Build 67603: arc lint + arc unit

Event Timeline

bz requested review of this revision.Feb 17 2026, 3:14 AM

I tested it on a ten64 machine, it works as expected.

This revision is now accepted and ready to land.Feb 17 2026, 8:07 PM
sys/dev/dpaa2/dpaa2_ni.c
3239

Are always all fields part of the reply and just not valid if the bit is not set in the FRC? I thought the reason of ASAL was that the length be flexible. And then the idea of that struct breaks as soon as one adds any of the later fields but FAS not being valid. I need to go and read the datasheet again to see.

bz planned changes to this revision.Feb 22 2026, 11:34 PM
bz added inline comments.
sys/dev/dpaa2/dpaa2_ni.c
3239

I'll rework this and a few other bits.

sys/dev/dpaa2/dpaa2_ni.c
3228

Where did you get those bits documented? I'm looking at the 7.31.2 WRIOP FD frame context (FRC) of LX2160A DPAA2 Low-Level Hardware Reference Manual, Rev. 0, 06/2020 and bits 24-31 described as "other DPAA2.0 accelerators annotation valid" only.

sys/dev/dpaa2/dpaa2_ni.c
3228

I assume Table 7-7. FD[FRC] WRIOP Description from
LS1088A Family DPAA2 Low-Level Hardware Reference Manual (LS1088ADPAA2RM), Rev. 0, 02/2021