Subject: Re: Hardware IPv4/TCP/UDP checksumming support
To: None <tech-net@netbsd.org>
From: Ignatios Souvatzis <ignatios@theory.cs.uni-bonn.de>
List: tech-net
Date: 09/06/2001 13:59:57
On Thu, Sep 06, 2001 at 01:48:46PM +0200, Pål Halvorsen wrote:
> 
> I'm using the ti driver. How do you tell the system to use HW
> checksumming, setsockopt/ioctl? Or is it default if an on-board NIC CPU is
> present? Do you know a nice starting point to look at the code?

sys/dev/pci/if_ti.c

From the revision log:

iRevision 1.21 / (download) - annotate - [select for diffs] , Sat Jun 2 16:17:08 2001 UTC (3 months ago) by thorpej 
Branch: MAIN 
Changes since 1.20: +111 -39 lines
Diff to previous 1.20 (colored) 

Implement support for IP/TCP/UDP checksum offloading provided by
network interfaces.  This works by pre-computing the pseudo-header
checksum and caching it, delaying the actual checksum to ip_output()
if the hardware cannot perform the sum for us.  In-bound checksums
can either be fully-checked by hardware, or summed up for final
verification by software.  This method was modeled after how this
is done in FreeBSD, although the code is significantly different in
most places.

We don't delay checksums for IPv6/TCP, but we do take advantage of the
cached pseudo-header checksum.

Note: hardware-assisted checksumming defaults to "off".  It is
enabled with ifconfig(8).  See the manual page for details.

Implement hardware-assisted checksumming on the DP83820 Gigabit Ethernet,
3c90xB/3c90xC 10/100 Ethernet, and Alteon Tigon/Tigon2 Gigabit Ethernet.

	-is