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>