From: Brian Haley <[EMAIL PROTECTED]>
Date: Thu, 09 Nov 2006 12:32:18 -0500

> Al Viro wrote:
> >     AFAICS, the rules are:
> > 
> > (1) checksum is 16-bit one's complement of the one's complement sum of
> > relevant 16bit words.
> > 
> > (2) for v4 UDP all-zeroes has special meaning - no checksum; if you get
> > it from (1), send all-ones instead.
> > 
> > (3) for v6 UDP we have the same remapping as in (2), but all-zeroes has
> > different meaning - not "ignore checksum" as in v4, but "reject the
> > packet".
> > 
> > (4) there is no (4).
> > 
> >     IOW, nobody except UDP has any business doing that 0->0xffff
> > replacement.  However, we have
> >        if (icmp6h->icmp6_cksum == 0)
> >                icmp6h->icmp6_cksum = -1;
> 
> This doesn't look necessary, RFCs 4443/2463 don't mention it being 
> necessary, and BSD doesn't do it either.  I'll cook-up a patch to remove 
> that since I was doing some other mods in that codepath.

This is how things look to me too.

> > and similar in net/ipv6/raw.c
> 
> Maybe here it only needs to be done if (fl->proto == IPPROTO_UDP)?

Yes, I believe that is what is needed.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to