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)
Thu, Feb 26, 6:58 AM
Unknown Object (File)
Dec 28 2025, 1:39 PM
Unknown Object (File)
Dec 26 2025, 1:02 AM
Unknown Object (File)
Nov 20 2025, 10:29 PM
Unknown Object (File)
Nov 20 2025, 10:28 PM
Unknown Object (File)
Nov 20 2025, 10:23 PM
Unknown Object (File)
Nov 20 2025, 12:07 AM
Unknown Object (File)
Nov 17 2025, 2:58 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