Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Mar 2001 14:18:27 +0200
From:      Ruslan Ermilov <ru@FreeBSD.ORG>
To:        Madhavi Suram <madhavis@sasken.com>
Cc:        freebsd-hackers@FreeBSD.ORG, Jonathan Lemon <jlemon@FreeBSD.ORG>
Subject:   Re: udp checksum problem..
Message-ID:  <20010324141827.A38948@sunbay.com>
In-Reply-To: <Pine.LNX.4.21.0103241655060.15455-100000@pcs111.sasi.com>; from madhavis@sasken.com on Sat, Mar 24, 2001 at 05:10:04PM %2B0530
References:  <20010324012954.A31961@xor.obsecurity.org> <Pine.LNX.4.21.0103241655060.15455-100000@pcs111.sasi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 24, 2001 at 05:10:04PM +0530, Madhavi Suram wrote:
> 
> Hi
> 
> I am modifying FreeBSD 4.1  kernel. I am hacking all UDP packets in
> ip_input, changing some headers and finding the udp checksum
> using in_pseudo() and setting the packet header csum_flags to
> CSUM_UDP (I know this is a dirty way of doing it.. but, had to do it
> for efficiency reasons). When I try to see the checksum after the checksum
> calculation is complete in ip_output, I am getting the checksum
> 65535(0xffff). Is this a special checksum(error or something like
> that..)? I have seen INVERT doing something like this in the file
> /sys/alpha/alpha/in_cksum.c.
> 
> 	sum == 0xffff ? 0xffff : ~sum & 0xffff.
> 
> After modifying the packet in ip_input(), I call ip_forward() and the
> packet should go and reach the intended destination as usual. But, this
> destination address is the one that is changed in ip_input(). But, the
> destination host is not getting the packet. I think this is a checksum
> problem.
> 
> Could anyone please tell me what checksum 0xffff means, or give me some
> pointers to where I can find this information?
> 
INVERT was a failed attempt to comply with RFC 768 requirement to transmit
all zero computed checksum as all ones.  For some unknown reason, the fix
(sys/alpha/alpha/in_cksum.c, revision 1.5) was not yet MFC'ed.


Cheers,
-- 
Ruslan Ermilov		Oracle Developer/DBA,
ru@sunbay.com		Sunbay Software AG,
ru@FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010324141827.A38948>