Page MenuHomeFreeBSD

dwc: improve checksum offloading
ClosedPublic

Authored by tuexen on Mon, Dec 29, 2:18 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Jan 17, 5:25 PM
Unknown Object (File)
Fri, Jan 16, 10:57 AM
Unknown Object (File)
Wed, Jan 14, 2:04 PM
Unknown Object (File)
Wed, Jan 14, 11:47 AM
Unknown Object (File)
Wed, Jan 14, 5:50 AM
Unknown Object (File)
Mon, Jan 12, 6:35 AM
Unknown Object (File)
Sun, Jan 11, 8:39 PM
Unknown Object (File)
Sat, Jan 10, 2:33 AM
Subscribers

Details

Summary

This patch provides two improvements for TCP/IPv4 and UDP/IPv4 checksum offloading:

  1. Use *CIC_SEG instead of *CIC_FULL, since FreeBSD always provides a pseudo header checksum.
  2. Don't make IPv4 header checksum offloading a prerequisite for TCP/IPv4 or UDP/IPv4 checksum offloading.

This is the root cause of PR 291696, since right now the epair interface does not support IPv4 header checksum offloading, but TCP/IPv4 and UDP/IPv4 checksum offloading.

Thanks to Marek Benc for reporting the issue and testing the fix.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

The different checksum offloading features should work independently.

I don't understand why *CIC_FULL worked at all.

This seems to be a good improvement to me.

This revision is now accepted and ready to land.Fri, Jan 2, 9:19 AM