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)
Sat, Oct 10, 7:19 AM
Unknown Object (File)
Thu, Oct 1, 11:28 PM
Unknown Object (File)
Thu, Oct 1, 6:51 PM
Unknown Object (File)
Wed, Sep 30, 2:39 AM
Unknown Object (File)
Fri, Sep 25, 7:41 PM
Unknown Object (File)
Fri, Sep 25, 5:32 PM
Unknown Object (File)
Sep 12 2026, 4:36 AM
Unknown Object (File)
Sep 12 2026, 4:31 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