Subject: CVS commit: syssrc
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 06/02/2001 19:17:12
Module Name:	syssrc
Committed By:	thorpej
Date:		Sat Jun  2 16:17:12 UTC 2001

Modified Files:
	basesrc/sbin/ifconfig: ifconfig.8 ifconfig.c
	syssrc/sys/conf: files
	syssrc/sys/dev/ic: elinkxl.c
	syssrc/sys/dev/pci: if_sip.c if_ti.c
	syssrc/sys/net: if.c if.h
	syssrc/sys/netinet: fil.c in.h ip_fil.c ip_flow.c ip_input.c
	    ip_mroute.c ip_output.c tcp_input.c tcp_output.c tcp_subr.c
	    udp_usrreq.c
	syssrc/sys/netinet6: in6.h
	syssrc/sys/sys: mbuf.h sockio.h

Log Message:
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.


To generate a diff of this commit:
cvs rdiff -r1.49 -r1.50 basesrc/sbin/ifconfig/ifconfig.8
cvs rdiff -r1.107 -r1.108 basesrc/sbin/ifconfig/ifconfig.c
cvs rdiff -r1.443 -r1.444 syssrc/sys/conf/files
cvs rdiff -r1.49 -r1.50 syssrc/sys/dev/ic/elinkxl.c
cvs rdiff -r1.30 -r1.31 syssrc/sys/dev/pci/if_sip.c
cvs rdiff -r1.20 -r1.21 syssrc/sys/dev/pci/if_ti.c
cvs rdiff -r1.88 -r1.89 syssrc/sys/net/if.c
cvs rdiff -r1.69 -r1.70 syssrc/sys/net/if.h
cvs rdiff -r1.46 -r1.47 syssrc/sys/netinet/fil.c
cvs rdiff -r1.54 -r1.55 syssrc/sys/netinet/in.h \
    syssrc/sys/netinet/ip_mroute.c
cvs rdiff -r1.67 -r1.68 syssrc/sys/netinet/ip_fil.c
cvs rdiff -r1.17 -r1.18 syssrc/sys/netinet/ip_flow.c
cvs rdiff -r1.134 -r1.135 syssrc/sys/netinet/ip_input.c
cvs rdiff -r1.85 -r1.86 syssrc/sys/netinet/ip_output.c
cvs rdiff -r1.124 -r1.125 syssrc/sys/netinet/tcp_input.c
cvs rdiff -r1.65 -r1.66 syssrc/sys/netinet/tcp_output.c
cvs rdiff -r1.110 -r1.111 syssrc/sys/netinet/tcp_subr.c
cvs rdiff -r1.77 -r1.78 syssrc/sys/netinet/udp_usrreq.c
cvs rdiff -r1.25 -r1.26 syssrc/sys/netinet6/in6.h
cvs rdiff -r1.57 -r1.58 syssrc/sys/sys/mbuf.h
cvs rdiff -r1.17 -r1.18 syssrc/sys/sys/sockio.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.