Checksum offloading

Pyun YongHyeon pyunyh at gmail.com
Sun Dec 21 17:19:38 PST 2008


On Sat, Dec 20, 2008 at 10:31:39PM +0100, Michael T?xen wrote:
 > 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...
 > 

I guess you're right. FreeBSD still lacks IPv6 checksum offloading
related stuff. All recent hardwares support checksum offloading for
TCP/UDP/IPv6 as well as TSO for IPv6. Don't know SCTP checksum
offloading as I don't know any hardwares that can do SCTP checksum
offloading. Sun Netptune might have the capability but I didn't
check it though.

 > Best regards
 > Michael

-- 
Regards,
Pyun YongHyeon


More information about the freebsd-net mailing list