Subject: ICMP Errors returning > 8 bytes of data..
To: None <tech-net@netbsd.org>
From: Darren Reed <darrenr@reed.wattle.id.au>
List: tech-net
Date: 06/03/2000 19:52:32
I have become aware of at least one other OS implementing returning of
more than 8 bytes in ICMP error replies, which according to RFC1122 is
allowed.  This seemed cool enough to me that I thought why not add it
to NetBSD.  I have made some changes to icmp_error() to support this.
I've also added a control for this in sysctl - icmp.returndatabytes.
In the patch I've made, it's range is limited to [8,512].  The lower
limit is obvious, the upper limit is (perhaps a bit large) there to
help ensure that the packet will never exceed 576 bytes in size.  In
practice, I would expect returning more than even 48 to be excessive
in most cases.  I've set the default to 8 (least surprise).  The diffs
can be found at:

http://coombs.anu.edu.au/~avalon/icmp.diff

Comments welcome.

Cheers,
Darren

From RFC 1122, page 38, 3.2.2:
...
         Every ICMP error message includes the Internet header and at
         least the first 8 data octets of the datagram that triggered
         the error; more than 8 octets MAY be sent; this header and data
         MUST be unchanged from the received datagram.
...