Modifying ICMP to Support Multi-part Messages
This document redefines selected ICMPv4 messages to support multi- part operation. A multi-part ICMP message carries all of the information that ICMP messages carried previously, as well as additional information that applications may require. Multi-part messages are supported by an ICMP extension structure. The extension structure is situated at the end of the ICMP message. It includes an extension header followed by one or more extension objects. Each extension object contains an object header and object payload. All object headers share a common format. This document further redefines a subset of the above mentioned ICMP messages by specifying a length attribute. Many of the ICMP messages to which an extension structure can be appended include and "original datagram" field. The "original datagram" field contains the initial octets of the datagram to which the ICMP message is a response. Although the original datagram field is of variable length, the ICMP message does not include a field that specifies its length. Therefore, in order to facilitate message parsing, this draft allocates eight previously reserved bits to reflect the length of the "original datagram" field. The proposed modifications change the requirements for ICMPv4 compliance. The impact of these changes on compliant implementations is discussed, and new requirements for future implementations are presented.