Page MenuHomeFreeBSD

dwc: improve checksum offloading
AcceptedPublic

Authored by tuexen on Mon, Dec 29, 2:18 PM.
Tags
None
Referenced Files
F141902220: D54395.diff
Mon, Jan 12, 6:35 AM
F141875779: D54395.diff
Sun, Jan 11, 8:39 PM
Unknown Object (File)
Sat, Jan 10, 2:33 AM
Unknown Object (File)
Sat, Jan 10, 12:19 AM
Unknown Object (File)
Thu, Jan 8, 10:18 AM
Unknown Object (File)
Mon, Jan 5, 5:02 AM
Unknown Object (File)
Fri, Jan 2, 11:04 AM
Unknown Object (File)
Thu, Jan 1, 11:50 PM
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 Skipped
Unit
Tests Skipped

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