Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Oct 2000 14:38:49 +0300
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        net@FreeBSD.org
Subject:   IP reassembly, options, checksum, and ICMP error generation
Message-ID:  <20001020143849.A42456@sunbay.com>

next in thread | raw e-mail | index | archive | help
Hi!

RFC 791 says we should copy the IP header from the first fragment of the
datagram, and re-calcalate the `ip_len' when full reassembly is complete
(see section 3.2, Fragmentation and Reassembly).

It does mean that although the `ip_len' is changed, the rest of the header,
including `ip_sum', is simply copied from the first fragment (FO==0).

This affects ICMP error generation.  In case where original (fragmented)
datagram for this host could not be delivered, the embedded copy of part
of the original datagram will have incorrect checksum, like in the case
when original (not exactly fragmented) datagram contained IP options.

The question is: should we recalculate the header checksum of the original
datagram in icmp_error()?


-- 
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-net" in the body of the message




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