Receiver Checksum Offloading
- Optimization essentially “Free”, but NIC hardware must support it.
- Details for Trapeze implementation:
- Firmware accumulates partial checksum for payload portion of message
- Obtains partial checksums from lanai-host DMA engines
- Driver swizzles headers & computes header checksum
- Driver adds payload & header checksum
- M_HWCKSUM Flag set in mbuf header if checksum is correct (e.g., 0)
- in_cksum() routines modified to skip checksum if header has M_HWCKSUM set