ICMP TYPE NUMBERS The Internet Control Message Protocol (ICMP) has many messages that are identified by a "type" field. Type Name Reference ---- ------------------------- --------- 0 Echo Reply [RFC792] 1 Unassigned [JBP] 2 Unassigned [JBP] 3 Destination Unreachable [RFC792] 4 Source Quench [RFC792] 5 Redirect [RFC792] 6 Alternate Host Address [JBP] 7 Unassigned [JBP] 8 Echo [RFC792] 9 Router Advertisement [RFC1256] 10 Router Selection [RFC1256] 11 Time Exceeded [RFC792] 12 Parameter Problem [RFC792] 13 Timestamp [RFC792] 14 Timestamp Reply [RFC792] 15 Information Request [RFC792] 16 Information Reply [RFC792] 17 Address Mask Request [RFC950] 18 Address Mask Reply [RFC950] 19 Reserved (for Security) [Solo] 20-29 Reserved (for Robustness Experiment) [ZSu] 30 Traceroute [RFC1393] 31 Datagram Conversion Error [RFC1475] 32 Mobile Host Redirect [David Johnson] 33 IPv6 Where-Are-You [Bill Simpson] 34 IPv6 I-Am-Here [Bill Simpson] 35 Mobile Registration Request [Bill Simpson] 36 Mobile Registration Reply [Bill Simpson] 37 Domain Name Request [Simpson] 38 Domain Name Reply [Simpson] 39 SKIP [Markson] 40 Photuris [Simpson] 41-255 Reserved [JBP] Many of these ICMP types have a "code" field. Here we list the types again with their assigned code fields. Type Name Reference ---- ------------------------- --------- 0 Echo Reply [RFC792] Codes 0 No Code 1 Unassigned [JBP] 2 Unassigned [JBP] 3 Destination Unreachable [RFC792] Codes 0 Net Unreachable 1 Host Unreachable 2 Protocol Unreachable 3 Port Unreachable 4 Fragmentation Needed and Don't Fragment was Set 5 Source Route Failed 6 Destination Network Unknown 7 Destination Host Unknown 8 Source Host Isolated 9 Communication with Destination Network is Administratively Prohibited 10 Communication with Destination Host is Administratively Prohibited 11 Destination Network Unreachable for Type of Service 12 Destination Host Unreachable for Type of Service 4 Source Quench [RFC792] Codes 0 No Code 5 Redirect [RFC792] Codes 0 Redirect Datagram for the Network (or subnet) 1 Redirect Datagram for the Host 2 Redirect Datagram for the Type of Service and Network 3 Redirect Datagram for the Type of Service and Host 6 Alternate Host Address [JBP] Codes 0 Alternate Address for Host 7 Unassigned [JBP] 8 Echo [RFC792] Codes 0 No Code 9 Router Advertisement [RFC1256] Codes 0 No Code 10 Router Selection [RFC1256] Codes 0 No Code 11 Time Exceeded [RFC792] Codes 0 Time to Live exceeded in Transit 1 Fragment Reassembly Time Exceeded 12 Parameter Problem [RFC792] Codes 0 Pointer indicates the error 1 Missing a Required Option [RFC1108] 2 Bad Length 13 Timestamp [RFC792] Codes 0 No Code 14 Timestamp Reply [RFC792] Codes 0 No Code 15 Information Request [RFC792] Codes 0 No Code 16 Information Reply [RFC792] Codes 0 No Code 17 Address Mask Request [RFC950] Codes 0 No Code 18 Address Mask Reply [RFC950] Codes 0 No Code 19 Reserved (for Security) [Solo] 20-29 Reserved (for Robustness Experiment) [ZSu] 30 Traceroute [RFC1393] 31 Datagram Conversion Error [RFC1475] 32 Mobile Host Redirect [David Johnson] 33 IPv6 Where-Are-You [Bill Simpson] 34 IPv6 I-Am-Here [Bill Simpson] 35 Mobile Registration Request [Bill Simpson] 36 Mobile Registration Reply [Bill Simpson] =================================================================== 39 SKIP [Markson] From: markson@osmosys.incog.com (Tom Markson) Subject: Re: ICMP # request To: iana@ISI.EDU Date: Fri, 8 Sep 1995 15:08:41 -0700 (PDT) We would like to request an ICMP message for use with the SKIP protocol. The SKIP protocol is used to provide keying material for other protocols such as AH and ESP. The SKIP protocol has been described in the protocol request for SKIP. The purpose of the ICMP message we are requesting is to provide error response for the SKIP protocol. For instance: A sender sends a SKIP packet to the receiver specifying "IDEA" as the packet encryption algorithm, but the receiver does not support "IDEA". The receiver sends the ICMP message back indicating that the algorithm is unsupported. The message would contain the algorithms it does support and other information. This enables hosts to communicate without out of band communication of algorithms. Here is the SKIP Discovery ICMP message: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE=SKIP_ICMP| CODE | CHECKSUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | nKij | nKp | nmac | ncomp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | System Time (in seconds since Jan 1 1900) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | n update Frequency | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Expected n | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Kij Algorithms (0-255), 1 byte each +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Kp Algorithms (0-255), 1 byte each +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAC Algorithms (0-255), 1 byte each +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Compression Algorithms (0-255), 1 byte each +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ CODE should be interpreted as a bit field in the following way: +-+-+-+-+-+-+-+-+ |I|P|M|C|N|res | +-+-+-+-+-+-+-+-+ I is set if the Kij algorithm in the SKIP packet is unsupported. P is set if the Kp algorithm in the SKIP packet is unsupported. M is set if the MAC algorithm in the SKIP packet is unsupported. C is set if the compression algorithm in the SKIP packet is unsupported. N is set if an invalid n counter was sent in the packet bits 0-2 are reserved and should be set to 0. The first field, time, is set to the system's concept of current time in seconds since 0h Jan 1, 1900. This is identical to the Integer portion of the NTP timestamp. The field "N update Frequency" is set with the value representing the number of seconds between incrememts of the n counter. For example, if the n counter is updated once a minute, this field would contain 60. The nKij, nKp, nmac and ncomp fields should be filled in with the number of Kij, Kp, MAC and Compression algorithms the system supports, respectively. The Kij, Kp, MAC and Compression algorithms fields should be filled in sequentially with the one byte identifiers for each of the algorithms that the system supports. The algorithms should be an ordered list with the most desirable algorithms first and the least desireable last. For instance, if the system supports 5 kij algorithms, nkij would be set to 5 and the kij Algorithms field would be 5 bytes long (one byte for each algorithm supported). Please feel free to get in touch with me if you have any questions. --tom =================================================================== 40 Photuris Code 0 Reserved 1 unknown security parameters index 2 valid security parameters, but authentication failed 3 valid security parameters, but decryption failed =================================================================== REFERENCES [RFC792] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792, USC/Information Sciences Institute, September 1981. [RFC950] Mogul, J., and J. Postel, "Internet Standard Subnetting Procedure", STD 5, RFC 950, Stanford, USC/Information Sciences Institute, August 1985. [RFC1108] Kent, S., "U.S. Department of Defense Security Options for the Internet Protocol", RFC 1108, November 1991. [RFC1256] Deering, S., Editor, "ICMP Router Discovery Messages", RFC 1256, Xerox PARC, September 1991. [RFC1393] Malkin, G., "Traceroute Using an IP Option", RFC 1393, Xylogics, Inc., January 1993. [RFC1475] Ullmann, R., "TP/IX: The Next Internet", RFC 1475, Process Software Corporation, June 1993. PEOPLE [JBP] Jon Postel, <postel@isi.edu>, September 1995. [David Johnson] [Markson] Tom Markson, <markson@osmosys.incog.com>, September 1995. [Simpson] Bill Simpson, <Bill.Simpson@um.cc.umich.edu>, October 1995. [Solo] [ZSu] Zaw-Sing Su <ZSu@TSCA.ISTC.SRI.COM> []