Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jan 2007 11:01:50 +0900
From:      Pyun YongHyeon <pyunyh@gmail.com>
To:        Rene Ladan <r.c.ladan@gmail.com>
Cc:        freebsd-hackers@freebsd.org, Pietro Cerutti <pietro.cerutti@gmail.com>
Subject:   Re: re(4) incorrect checksum
Message-ID:  <20070112020149.GA42529@cdnetworks.co.kr>
In-Reply-To: <45A659A1.2060401@gmail.com>
References:  <e572718c0701110229q60a66d32o68f789c889b4a06@mail.gmail.com> <45A61C1A.3090600@gmail.com> <20070111122049.GE33964@cdnetworks.co.kr> <45A659A1.2060401@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--VbJkn9YxBvnuCH5J
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Thu, Jan 11, 2007 at 04:37:05PM +0100, Rene Ladan wrote:
 > Pyun YongHyeon schreef:
 > > On Thu, Jan 11, 2007 at 12:14:34PM +0100, Rene Ladan wrote:
 > >  > Pietro Cerutti schreef:
 > >  > > Hi lists,
 > >  > > 
 > >  > > FreeBSD gahrtop.localhost 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #1:
 > >  > > Tue Jan  9 19:34:13 CET 2007
 > >  > > root@gahrtop:/usr/obj/usr/src/sys/GAHRTOP  i386
 > >  > > 
 > >  > > CPU: Intel(R) Core(TM)2 CPU         T7200  @ 2.00GHz (2000.15-MHz
 > >  > > 686-class CPU)
 > >  > >  Cores per package: 2
 > >  > > 
 > >  > > re0: <RealTek 8168B/8111B PCIe Gigabit Ethernet> port 0xc800-0xc8ff
 > >  > > mem 0xff2ff000-0xff2fffff irq 17 at device 0.0 on pci2
 > >  > > 
 > >  > > ($FreeBSD: src/sys/dev/re/if_re.c,v 1.46.2.20 2006/09/21 11:08:28
 > >  > > yongari Exp $)
 > >  > > 
 > >  > > I get checksum errors on every packet I send, example:
 > >  > > 
 > >  > > Checksum: 0x0bc5 [incorrect, should be 0x78fe (maybe caused by
 > >  > > checksum offloading?)]
 > >  > > 
 > >  > > I think this could be the cause of some web pages (e.g. Gmail in
 > >  > > standard view [html view works well]) not to be displayed.
 > >  > > 
 > >  > > I tracked down the problem to the re(4) driver just because wlan works
 > >  > > good...
 > >  > > 
 > >  > > Any ideas?
 > >  > > 
 > >  > I'm also seeing these www problems with my re(4) card (chipid
 > >  > 0x816810ec), see
 > >  > http://lists.freebsd.org/pipermail/freebsd-current/2006-December/068333.html
 > >  > 
 > > 
 > > Does your re(4) also work when you disable checksum offload?
 > > 
 > Yes, 'ifconfig re0 -txcsum' does the trick.
 > 
 > re0: <RealTek 8168/8111B PCIe Gigabit Ethernet> port 0xc800-0xc8ff mem
 > 0xfe0ff000-0xfe0fffff irq 16 at device 0.0 on pci2
 > 
 > if.re.c revision 1.80 2006/12/20 02:13:59 marius
 > 

I've never encountered checksum offload issue after wpaul's fix.
How about attached one? It's just vague guess but please give it
try and let me know the result.

-- 
Regards,
Pyun YongHyeon

--VbJkn9YxBvnuCH5J
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="if_re.checksum.patch"

Index: if_re.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/re/if_re.c,v
retrieving revision 1.80
diff -u -r1.80 if_re.c
--- if_re.c	20 Dec 2006 02:13:59 -0000	1.80
+++ if_re.c	12 Jan 2007 01:42:59 -0000
@@ -2027,9 +2027,9 @@
 		arg.rl_flags = RL_TDESC_CMD_LGSEND |
 		    ((uint32_t)(*m_head)->m_pkthdr.tso_segsz <<
 		    RL_TDESC_CMD_MSSVAL_SHIFT);
-	else {
-		if ((*m_head)->m_pkthdr.csum_flags & CSUM_IP)
-			arg.rl_flags |= RL_TDESC_CMD_IPCSUM;
+	else if (((*m_head)->m_pkthdr.csum_flags &
+	    (CSUM_IP | CSUM_TCP | CSUM_UDP)) != 0) {
+		arg.rl_flags |= RL_TDESC_CMD_IPCSUM;
 		if ((*m_head)->m_pkthdr.csum_flags & CSUM_TCP)
 			arg.rl_flags |= RL_TDESC_CMD_TCPCSUM;
 		if ((*m_head)->m_pkthdr.csum_flags & CSUM_UDP)

--VbJkn9YxBvnuCH5J--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070112020149.GA42529>