Bug 18093

Summary: ICMP Checksum failure
Product: [Retired] Red Hat Linux Reporter: Need Real Name <gconnell>
Component: net-toolsAssignee: Crutcher Dunnavant <crutcher>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2CC: pekkas
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2000-10-02 20:29:29 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Need Real Name 2000-10-02 14:25:36 UTC
Running Redhat Linux 6.2 on a Compaq Deskpro with 3Com NIC.
Ping a Cisco (or other device that can reply to ICMP).

If you send:  ping -s 100

It works.  

If you send:  ping -s 101

It fails.  Some protocol tracing reveals that the Linux box is incorrectly 
computing the ICMP packet checksum, and the Cisco is dropping the packet.  
This actually happens with all ICMP packets with an ODD SIZE PAYLOAD.

Comment 1 Pekka Savola 2000-10-02 20:12:01 UTC
I wasn't able to reproduce this on RH6.0, RH6.2 or RH7.0.  Are you sure your Cisco isn't 
misbehaving?  For example, could there be some kind of 'drop too big pings' issue there?

FWIW, using kernel-2.2.16-3 (and up) here.

Comment 2 Need Real Name 2000-10-02 20:29:26 UTC
Nope.  I used a Sniffer(TM) device set up for Ethernet to snoop on the frames 
coming out of my linux box.  Each ICMP packet that was captured was reported as 
having a correct TCP header checksum, but each packet with odd sized payload 
was being flagged as having an incorrect ICMP checksum by the Sniffer, and was 
being dropped by the Cisco.  I attached the linux box to other devices where I 
can force it to ignore checksum vlaues, and all sizes worked o.k.  I also tried 
it for a range of sizes, from 64-10001 bytes.  All odd sizes were computed 
wrong.  I'm looking to blame drivers for my ethernet hardware, but I'm going to 
look through the ping checksum routine as well. 

I'm running Red Hat (Hedwig) 2.2.5-15 Kernel

Comment 3 Jeff Johnson 2000-10-06 21:17:20 UTC
There was an odd-byte checksum problem fixed in ping.  The ping in
fixes the odd-byte checksum problem (and several things).