<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: bnx2 ip checksum error in Operating System - Linux</title>
    <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119432#M83353</link>
    <description>It was my understanding that segmentation offload depended on checksum offload being enabled.  If my understanding is correct, disabling checksum offload should have been enough to also disable segmentation offload.  If my understanding is incorrect, hopefully this will trigger someone gently applying a clue-bat to my skull :)</description>
    <pubDate>Mon, 31 Dec 2007 18:13:20 GMT</pubDate>
    <dc:creator>rick jones</dc:creator>
    <dc:date>2007-12-31T18:13:20Z</dc:date>
    <item>
      <title>bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119430#M83351</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;I'm noticing a random amount of outgoing packets with ip checksum error, generated by eth1 in DL385 G2. Bnx2 driver version is either 1.4.43-rh or 1.4.52d, RHEL4 release 6. This happens regardless of the tcp checksum offload setting (ethtool -K) and I also see bad packets on the other side, which means this problem is real and not just artefact of hw checksum offloading.&lt;BR /&gt;&lt;BR /&gt;Has anyone seen anything like that?&lt;BR /&gt;&lt;BR /&gt;I have a batch of fresh DL385s here on the table on which I can simply repeat the problem. Hook two together via eth1, enable chargen in xinetd on one and nc to port 19 from the other and redirect to /dev/null. Observe traffic with something like iptraf -d eth1. Ip checksum error counter goes up like crazy.</description>
      <pubDate>Thu, 20 Dec 2007 10:23:47 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119430#M83351</guid>
      <dc:creator>Jure Pecar_1</dc:creator>
      <dc:date>2007-12-20T10:23:47Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119431#M83352</link>
      <description>This turned out to be a tcp segmentation offload problem. Disabling it on the cards via ethtool -K eth1 tso off makes the problem go away.&lt;BR /&gt;&lt;BR /&gt;Looks like Broadcom BCM5708 has issues with tcp segmentation, so it's better to do it in software.</description>
      <pubDate>Thu, 20 Dec 2007 16:11:18 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119431#M83352</guid>
      <dc:creator>Jure Pecar_1</dc:creator>
      <dc:date>2007-12-20T16:11:18Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119432#M83353</link>
      <description>It was my understanding that segmentation offload depended on checksum offload being enabled.  If my understanding is correct, disabling checksum offload should have been enough to also disable segmentation offload.  If my understanding is incorrect, hopefully this will trigger someone gently applying a clue-bat to my skull :)</description>
      <pubDate>Mon, 31 Dec 2007 18:13:20 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119432#M83353</guid>
      <dc:creator>rick jones</dc:creator>
      <dc:date>2007-12-31T18:13:20Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119433#M83354</link>
      <description>No, disabling checksum offload doesn't make a difference. I'm not familiar with tcp internals, but that's what expeirmental results show.</description>
      <pubDate>Mon, 31 Dec 2007 18:24:20 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119433#M83354</guid>
      <dc:creator>Jure Pecar_1</dc:creator>
      <dc:date>2007-12-31T18:24:20Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119434#M83355</link>
      <description>strange indeed.  i'll ask around internally.  just to be pedanticly clear - is this the checksum in the TCP header, or the checksum in the IP header?</description>
      <pubDate>Mon, 31 Dec 2007 19:50:47 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119434#M83355</guid>
      <dc:creator>rick jones</dc:creator>
      <dc:date>2007-12-31T19:50:47Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119435#M83356</link>
      <description>Good question. If UDP flows smoothly, i'd say it's TCP header.&lt;BR /&gt;&lt;BR /&gt;Whatever that ethool -K affects :)</description>
      <pubDate>Mon, 31 Dec 2007 20:30:50 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119435#M83356</guid>
      <dc:creator>Jure Pecar_1</dc:creator>
      <dc:date>2007-12-31T20:30:50Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119436#M83357</link>
      <description>&lt;A href="http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=commit;h=fde82055c1d0e64ff660d83c705db0e1abc9d12e" target="_blank"&gt;http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=commit;h=fde82055c1d0e64ff660d83c705db0e1abc9d12e&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;You may be seeing the problem fixed by the above patch.  This patch is in bnx2 version 1.5.11 or later.  The latest driver from Broadcom's website should also have the patch.</description>
      <pubDate>Wed, 02 Jan 2008 21:54:09 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119436#M83357</guid>
      <dc:creator>michael chan_4</dc:creator>
      <dc:date>2008-01-02T21:54:09Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119437#M83358</link>
      <description>I just tested with 1.6.7b driver and the situation is actually worse. Now iptraf shows IP checksum error regardless of tso being on or off.&lt;BR /&gt;&lt;BR /&gt;I think I'll contact mchan and davem directly to get this analyzed and hopefully fixed.</description>
      <pubDate>Mon, 07 Jan 2008 11:43:06 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119437#M83358</guid>
      <dc:creator>Jure Pecar_1</dc:creator>
      <dc:date>2008-01-07T11:43:06Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119438#M83359</link>
      <description>Exactly what are you sending using nc?  IP checksum is not offloaded if you turn off TSO.  Can you run ethereal instead on the receiver to capture the packet and see how exactly the checksum is corrupted?</description>
      <pubDate>Mon, 07 Jan 2008 18:11:05 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119438#M83359</guid>
      <dc:creator>michael chan_4</dc:creator>
      <dc:date>2008-01-07T18:11:05Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119439#M83360</link>
      <description>Anything really. The problem was originaly detected when drbd link between two machines started to misbehave under io load. Later I found out I can easily reproduce the problem with simple chargen. See my first post in this thread.&lt;BR /&gt;&lt;BR /&gt;I'm attaching 1mb of dump on sending and receiving side. You can see many "tcp checkusm incorrect" on sending and "tcp previous segment lost" on receiving side.&lt;BR /&gt;&lt;BR /&gt;The only pattern that I find interesting is that whenever tcp checksum is wrong on sending side, it is like 0x2nnn. Hopefully you can get some more information from dumps.</description>
      <pubDate>Tue, 08 Jan 2008 08:46:58 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119439#M83360</guid>
      <dc:creator>Jure Pecar_1</dc:creator>
      <dc:date>2008-01-08T08:46:58Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119440#M83361</link>
      <description>Why I said above that situation with 1.6.7b is worse ...&lt;BR /&gt;&lt;BR /&gt;I did some more experiments and discovered that if I have established connection to chargen and change tso setting with ethtool, it does not affect that particular connection.&lt;BR /&gt;&lt;BR /&gt;(S=sender, R=receiver)&lt;BR /&gt;&lt;BR /&gt;S: ethtool -K eth1 tso off&lt;BR /&gt;R: nc sender 19 &amp;gt; /dev/null&lt;BR /&gt;S: iptraf -d eth1 shows no bad packets&lt;BR /&gt;S: ethtool -K eth1 tso on&lt;BR /&gt;S: iptraf -d eth1 shows no bad packets&lt;BR /&gt;R: kill nc&lt;BR /&gt;R: nc sender 19 &amp;gt; /dev/null&lt;BR /&gt;S: iptraf -d eth1 shows avalanche of bad packets&lt;BR /&gt;&lt;BR /&gt;It's the same if I start with tso on and disable it later, while chargen connection is still up. That's why I prematurely concluded above that 1.6.7b is worse, when actually the situation is still the same.&lt;BR /&gt;</description>
      <pubDate>Tue, 08 Jan 2008 09:10:36 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119440#M83361</guid>
      <dc:creator>Jure Pecar_1</dc:creator>
      <dc:date>2008-01-08T09:10:36Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119441#M83362</link>
      <description>You will always see TCP checksum incorrect on the sender when you do TCP checksum offload or TSO.  That's because the TCP checksum hasn't been calculated yet when ethereal captures these sending packets.  If you turn on TSO, you'll even see packets bigger than 1514 in addition to wrong TCP checksum because segmentation hasn't been done yet.  These are all normal.  The TCP checksum and segmentation will be done by the NIC hardware as packets are sent on the wire.&lt;BR /&gt;&lt;BR /&gt;If you see bad TCP or IP checksum on the receiver, then it's different and it's real.  Do you see any on the receiver?  I did a search for bad TCP or bad IP checksum and did not find any on receiving.tcp.&lt;BR /&gt;&lt;BR /&gt;The "TCP previous segment lost" on receiving.tcp is a different thing and I see that a lot.  My guess is that ethereal for some reason cannot keep up and sometimes drops packets during capture.  When analyzing the trace, it will falsely detect some missing packets.  To see if you really have any TCP loss, you should use netstat -s and look at the TCP counters.</description>
      <pubDate>Tue, 08 Jan 2008 22:45:13 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119441#M83362</guid>
      <dc:creator>michael chan_4</dc:creator>
      <dc:date>2008-01-08T22:45:13Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119442#M83363</link>
      <description>When doing nc from one to the other, do the bad IP checksums show up in netstat -s?&lt;BR /&gt;&lt;BR /&gt;I could not duplicate the problem doing the exact same steps you outlined.</description>
      <pubDate>Tue, 08 Jan 2008 23:16:43 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119442#M83363</guid>
      <dc:creator>michael chan_4</dc:creator>
      <dc:date>2008-01-08T23:16:43Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119443#M83364</link>
      <description>Sorry for the delay ... had some busy days :(&lt;BR /&gt;&lt;BR /&gt;You might be right that I got fooled by the hardware checksuming on the testing systems here, but the dumps I'm attaching this time are from our production system drbd link, which I managed to upgrade to 1.6.7b. These captures were done with tso off and bad packets are seen on receiving side too.&lt;BR /&gt;&lt;BR /&gt;I hope you can get some useful info from them, because I would really like to figure this out.</description>
      <pubDate>Fri, 11 Jan 2008 11:04:46 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119443#M83364</guid>
      <dc:creator>Jure Pecar_1</dc:creator>
      <dc:date>2008-01-11T11:04:46Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119444#M83365</link>
      <description>Your receiver has TCP checksum offload enabled and ethereal will always see TCP bad checksum on every TCP packet that has its checksum calculated by the transmitting NIC.  When you run ethereal on a box, you are not capturing the packets transmitted by the box on the wire so you need to look at these traces carefully.  Once again, I did not see any bad IP checksums when I did a search on the receiver's trace.  So this does match up with IP checksum errors that iptraf was reporting.</description>
      <pubDate>Tue, 15 Jan 2008 01:04:00 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119444#M83365</guid>
      <dc:creator>michael chan_4</dc:creator>
      <dc:date>2008-01-15T01:04:00Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119445#M83366</link>
      <description>Ok then I'm missing something here. I'm sorry for wasting your time.&lt;BR /&gt;&lt;BR /&gt;Can you point me to some docs where I can study this to understand better the details of what I'm seeing?</description>
      <pubDate>Tue, 15 Jan 2008 09:37:40 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119445#M83366</guid>
      <dc:creator>Jure Pecar_1</dc:creator>
      <dc:date>2008-01-15T09:37:40Z</dc:date>
    </item>
    <item>
      <title>Re: bnx2 ip checksum error</title>
      <link>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119446#M83367</link>
      <description>You mentioned that you saw IP checksum error with iptraf so we need to confirm that or conclude that iptraf was giving you wrong data.&lt;BR /&gt;&lt;BR /&gt;ethereal traces that you collected did not show any IP checksum error packets.  You can also look up /proc/net/snmp and look for the InHdrErrors counter.</description>
      <pubDate>Tue, 15 Jan 2008 18:11:12 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/bnx2-ip-checksum-error/m-p/4119446#M83367</guid>
      <dc:creator>michael chan_4</dc:creator>
      <dc:date>2008-01-15T18:11:12Z</dc:date>
    </item>
  </channel>
</rss>

