Bug 18093 - ICMP Checksum failure
Summary: ICMP Checksum failure
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: net-tools
Version: 6.2
Hardware: i686
OS: Linux
Target Milestone: ---
Assignee: Crutcher Dunnavant
QA Contact:
Depends On:
TreeView+ depends on / blocked
Reported: 2000-10-02 14:25 UTC by Need Real Name
Modified: 2008-05-01 15:37 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2000-10-02 20:29:29 UTC

Attachments (Terms of Use)

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).

Note You need to log in before you can comment on or make changes to this bug.