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>