diff options
author | scottl <scottl@FreeBSD.org> | 2006-10-24 08:24:31 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2006-10-24 08:24:31 +0000 |
commit | dbd998a427edb992f0bdd7022b4811e5317c70d3 (patch) | |
tree | d6f616298e38bdd829c4cd687f91f0733290a36a /sys/dev/bce/if_bcereg.h | |
parent | 1d06416b309668dcf3499b5368feedde76ba6b38 (diff) | |
download | FreeBSD-src-dbd998a427edb992f0bdd7022b4811e5317c70d3.zip FreeBSD-src-dbd998a427edb992f0bdd7022b4811e5317c70d3.tar.gz |
Refine the checksum hack a little. It appears that the chip can handle UDP
and TCP checksum offloading fine, it only has a problem with IP checksums on
IP fragments.. Barring a fix or workaround available from the hardware, the
real solution would be to have finer grained control in the stack over what
can and cannot be assisted in hardware.
Diffstat (limited to 'sys/dev/bce/if_bcereg.h')
-rw-r--r-- | sys/dev/bce/if_bcereg.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/bce/if_bcereg.h b/sys/dev/bce/if_bcereg.h index 41dd02d..e6eae0e 100644 --- a/sys/dev/bce/if_bcereg.h +++ b/sys/dev/bce/if_bcereg.h @@ -4613,11 +4613,15 @@ struct fw_info { #define BCE_BUS_SPACE_MAXADDR 0xFFFFFFFFFF #endif -/* XXX UDP checksum offload seems to cause problems on transmit */ -#ifdef BCE_UDP_CSUM +/* + * XXX Checksum offload involving IP fragments seems to cause problems on + * transmit. Disable it for now, hopefully there will be a more elegant + * solution later. + */ +#ifdef BCE_IP_CSUM #define BCE_IF_HWASSIST (CSUM_IP | CSUM_TCP | CSUM_UDP) #else -#define BCE_IF_HWASSIST (CSUM_TCP) +#define BCE_IF_HWASSIST (CSUM_TCP | CSUM_UDP) #endif #if __FreeBSD_version < 700000 |