Checksum offloading

Michael Tüxen Michael.Tuexen at lurchi.franken.de
Sat Dec 20 13:31:43 PST 2008


Dear all,

I'm currently analyzing how TCP/UDP checksum offloading works
to find the best way to add SCTP checksum offloading.

sys/mbuf.h has constants:
#define	CSUM_IP			0x0001		/* will csum IP */
#define	CSUM_TCP		0x0002		/* will csum TCP */
#define	CSUM_UDP		0x0004		/* will csum UDP */
which are used to signal which offloading is supported by the drive.
But, if I understand the code correctly, this only
applies to UDP/IPv4 and TCP/IPv4.
What about IPv6? Would this require flags like CSUM_TCP6 and CSUM_UDP6
to signal that also offloading of UDP/IPv6 and TCP/IPv6 is supported?

I'm asking this because we want to add CRC offloading for SCTP/IPv4
and SCTP/IPv6. We could only add one flag CSUM_SCTP and use it
for IPv4 and IPv6 ar two flags CSUM_SCTP4 and CSUM_SCTP6...

Best regards
Michael



More information about the freebsd-net mailing list