Subject: IGMP checksum question

From: Koen Vermeulen <[email-masked]>
Date: Wed, 04 Aug 2004 13:02:27 +0200

Hello,

In RFC3376 (IGMPv3) is stated that the IGMP checksum is calculated over 
the whole IGMP
packet, which is the total length of the IP payload. Using the full 
length of the IP payload makes
sense according to me because there exists no length field in the IGMP 
header.

During testing I however saw some tools which have a different way of 
calculating the checksum.
I recently saw a tool which sometimes pads the IP packet to 64 bytes 
(don't ask me why this is
done) and instead of calculating the checksum over the full IP payload, 
it only calculates this checksum
over the length of the IGMP information inside the IP packet.

I initially thought this was a bug of the tool, but when I was sending 
these packets to the ethereal
tool, I could see that ethereal interpreted this checksum as correct.

Is there anyone who is also having some experience with this kind of 
problem and knows which
approached is followed in the 'world'?

Thanks,
Koen

---

From: Bill Fenner <[email-masked]>
Date: Wed, 18 Aug 2004 11:06:21 -0700

Are you sure the IP length is extended, or are you just seeing padding
in layer 2?

I've never seen an implementation that calculates the checksum (either
for transmitting or receiving) over a subset of the IP length.

  Bill