Wireshark-users: Re: [Wireshark-users] IPv6 VRRP checksum

From: Jaap Keuter <jaap.keuter@xxxxxxxxx>
Date: Fri, 6 Oct 2006 07:58:15 +0200 (CEST)
Hi,

The checksum code in VRRP looks very similar to the code used in TCP for
instance. Note that is different for version 2 than 3 (whatever that may
be, I'm not at all familiar with the protocol).

Thanx,
Jaap

On Fri, 6 Oct 2006, Sada Mita wrote:

>
> Hello,
>
> Sorry for the 2nd e-mail, but I'd like to hear your advice.
> I'm running 0.99.4-SVN-19188.(Running 0.99.3, the result is the
> same.)  Is the IPv6 VRRP checksum correctly written in the code?
> I still see the checksum incorrect on IPv6 VRRP packet from my DUT.
> Could someone check it if the code use the correct checksum.
>
> ### Here is the statement from IPv6 VRRP checksum.
>
>   5.3.7 Checksum
>
>    The checksum field is used to detect data corruption in the VRRP
>    message.
>
>    The checksum is the 16-bit one's complement of the one's complement
>    sum of the entire VRRP message starting with the version field and a
>    "pseudo-header" as defined in section 8.1 of RFC2460 [IPv6].  The
>    next header field in the "pseudo-header" should be set to 112
>    (decimal) for VRRP.  For computing the checksum, the checksum field
>    is set to zero.  See RFC1071 for more detail [CKSM].
>
>
> ###Here is the cut&paste from test2pcap.c
>
>   static hdr_ip_t HDR_IP = {0x45, 0, 0, 0x3412, 0, 0, 0xff, 0, 0,
> 0x01010101, 0x02020202};
>
>   static struct {   /* pseudo header for checksum calculation */
>  guint32 src_addr;
>  guint32 dest_addr;
>  guint8  zero;
>  guint8  protocol;
>  guint16 length;
> } pseudoh;
>
>
> Thanks
> Sam
>