From 646a3b8ccec627d7080c1100a3efd00b2d0e87fe Mon Sep 17 00:00:00 2001 From: Daniel Hellstrom Date: Tue, 22 Oct 2013 12:09:26 +0200 Subject: GRETH: avoid hw generated UDP/TCP cksum generation Hardware generated checksum UDP packets does not work for IP fragmented UDP packets. It seems as if the BSD stack never signals to the GRETH driver to generate or not to generate TCP/UDP checksum for different cases. The GRETH driver never tells the BSD stack about it capabilities either so there is no point generating the cksums in HW when its done in SW any way. This patch disables hardware generated UDP and TCP checksums. --- c/src/libchip/network/greth.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/c/src/libchip/network/greth.c b/c/src/libchip/network/greth.c index 6cd5bd198f..d3405579ca 100644 --- a/c/src/libchip/network/greth.c +++ b/c/src/libchip/network/greth.c @@ -812,9 +812,9 @@ sendpacket_gbit (struct ifnet *ifp, struct mbuf *m) /* Wrap around? */ if (dp->tx_ptr < dp->txbufs-1) { - ctrl = GRETH_TXD_ENABLE | GRETH_TXD_CS; + ctrl = GRETH_TXD_ENABLE; }else{ - ctrl = GRETH_TXD_ENABLE | GRETH_TXD_CS | GRETH_TXD_WRAP; + ctrl = GRETH_TXD_ENABLE | GRETH_TXD_WRAP; } /* Enable Descriptor */ -- cgit v1.2.3