Connected: An Internet Encyclopedia
ICMP Parameters

Up: Connected: An Internet Encyclopedia
Up: Requests For Comments

ICMP Parameters

ICMP Parameters


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>


[]


Connected: An Internet Encyclopedia
ICMP Parameters