Page MenuHomeFreeBSD

Use m_copyback() to write delayed checksum into mbuf, when a checksum is not located in first mbuf in the chain
AbandonedPublic

Authored by ae on May 11 2018, 3:17 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Jul 20, 4:33 AM
Unknown Object (File)
Thu, Jul 2, 5:18 AM
Unknown Object (File)
Jun 26 2026, 6:23 AM
Unknown Object (File)
May 18 2026, 7:06 PM
Unknown Object (File)
May 16 2026, 4:44 PM
Unknown Object (File)
May 16 2026, 9:31 AM
Unknown Object (File)
May 15 2026, 12:22 PM
Unknown Object (File)
Apr 28 2026, 3:16 AM
Subscribers

Details

Reviewers
None
Group Reviewers
network
transport
Summary

Modify in_delayed_cksum() and in6_delayed_cksum() to use m_copyback(), when checksum is not located in first mbuf in the chain.
There is one report https://lists.freebsd.org/pipermail/freebsd-net/2018-April/050375.html that in6_delayed_cksum() floods into console about wrong assumption, that checksum location is always in first mbuf.

I modified both function for IPv4 and IPv6 to be similar and used m_copyback() for this case. Also I replaced access to m_data with mtodo() macro.
NetBSD/OpenBSD seems do the same for many years.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 16529
Build 16443: arc lint + arc unit