ICMPv4 is defined in RFC792 with additional material in RFC950, RFC1108, RFC1256, RFC1393, RFC1475, RFC1700, RFC1788, RFC1812 and RFC2521.
The definitive list is at http://www.iana.org/assignments/icmp-parameters
ICMP packets have a Type Field and a Code Field. The combination of these gives the significance of the packet.
| Type | Code | Cisco IOS Description | RFC and desc. if clearer! |
|---|---|---|---|
| 0 | echo-reply | 792 | |
| 3 | unreachable | 792 destination unreachable | |
| 3 | 0 | net-unreachable | 792 |
| 3 | 1 | host-unreachable | 792 |
| 3 | 2 | protocol-unreachable | 792 |
| 3 | 3 | port-unreachable | 792 |
| 3 | 4 | packet-too-big | 792 frag. needed and DF set, 1191 |
| 3 | 5 | source-route-failed | 792 |
| 3 | 6 | network-unknown | 1122, 1700 |
| 3 | 7 | host-unknown | 1122, 1700 |
| 3 | 8 | host-isolated | 1108, 1122, 1700 src host isolated (obsolete) |
| 3 | 9 | dod-net-prohibited | 1108, 1122, 1700 admin prohibited net |
| 3 | 10 | dod-host-prohibited | 1108, 1122, 1700 admin prohibited host |
| 3 | 11 | net-tos-unreachable | 1122, 1700 |
| 3 | 12 | host-tos-unreachable | 1122, 1700 |
| 3 | 13 | administratively-prohibited | 1812 |
| 3 | 14 | host-precedence-unreachable | 1812 host precedence violation |
| 3 | 15 | precedence-unreachable | 1812 precedence cutoff in effect |
| 4 | source-quench | 792 (1812 a router should not originate and must rate limit) | |
| 5 | redirect | 792 | |
| 5 | 0 | net-redirect | 792 |
| 5 | 1 | host-redirect | 792 |
| 5 | 2 | net-tos-redirect | 792 |
| 5 | 3 | host-tos-redirect | 792 |
| 6 | alternate-address | 1700 alternate host addr | |
| 8 | echo request | 792 | |
| 9 | router-advertisement | 1256 | |
| 9 | 0 | normal router ad | 1256 router ad normal router |
| 9 | 16 | does not route common traffic | 2002 router-ad mobile-IP-only router |
| 10 | router-solicitation | 1256 router selection | |
| 10 | 0 | router-solicitation | 1256 router selection normal router |
| 10 | 16 | 2002 router-solicitation mobile IP-only router | |
| 11 | time-exceeded | 792 | |
| 11 | 0 | ttl exceeded | 792 |
| 11 | 1 | fragment reassembly timeout | 792 |
| 12 | parameter-problem | 792 | |
| 12 | 0 | general-parameter-problem | 792 (ptr to problem octet) |
| 12 | 1 | option-missing | 1108, 1122 |
| 12 | 2 | no-room-for-option | 1108 bad length |
| 13 | timestamp-request | 792 timestamp | |
| 14 | timestamp-reply | 792 | |
| 15 | information-request | 792 (1812 a router should not originate or respond) (obsolete) | |
| 16 | information-reply | 792 (1812 a router should not originate or respond) (obsolete) | |
| 17 | mask-request | 950 | |
| 18 | mask-reply | 950 | |
| 19 | 1700 Reserved for security | ||
| 2x | 1700 Reserved for robustness | ||
| 30 | traceroute | - | |
| 30 | 0 | 1393 outbound forwarded ok | |
| 30 | 1 | 1393 no route for outbound: discarded | |
| 31 | 1475 datagram conversion error | ||
| 32 | 1700 mobile host re-direct | ||
| 33 | 1700 IPv6 where-are-you | ||
| 34 | 1700 IPv6 i-am-here | ||
| 35 | 1700 mobile registration request | ||
| 36 | 1700 mobile registration reply | ||
| 37 | 1788 domain name request | ||
| 38 | 1788 domain name reply | ||
| 39 | SKIP | ||
| 40 | 2521 Photuris | ||
| 40 | 0 | Bad SPI | 2521 Photuris |
| 40 | 1 | Authentication failed | 2521 Photuris |
| 40 | 2 | Decompression failed | 2521 Photuris |
| 40 | 3 | Decryption failed | 2521 Photuris |
| 40 | 4 | Need authentication | 2521 Photuris |
| 40 | 5 | Need authorization | 2521 Photuris |
1,2, and 7 are unassigned, all other unspecified values are reserved (rfc1700).
ICMP echo-request (ping) is the standard tool for first-level check of IP host reachability. From a Cisco router a ping may report one of several results:
| ! | Normal response |
| * | Timeout |
| A | ICMP Administratively Prohibited usually access-list refused |
| H | ICMP Host Unreachable |
| I | Interrupted |
| N | ICMP Net Unreachable |
| P | ICMP Unknown Protocol |
| Q | ICMP Source Quench |
| T | Timeout |
| U | ICMP Unreachable Port |
| ? | Other |
ICMPv6 is defined in rfc2463 with additional material in rfc2461, rfc2710, rfc3122.
ICMP packets have a Type Field and a Code Field. The combination of these gives the significance of the packet.
| Type | Code | Description | RFC and desc. if clearer! |
|---|---|---|---|
| 1 | destination unreachable | 2463 | |
| 1 | 0 | no route to destination | 2463 |
| 1 | 1 | administratively prohibited | 2463 |
| 1 | 2 | beyond scope of src address | 2463 |
| 1 | 3 | address unreachable | 2463 |
| 1 | 4 | port unreachable | 2463 |
| 2 | 0 | packet too big | 2463 |
| 3 | time exceeded | 2463 | |
| 3 | 0 | hop limit exceeded in transit | 2463 |
| 3 | 1 | fragment reassembly time exceeded | 2463 |
| 4 | parameter problem | 2463 | |
| 4 | 0 | erroneous header field | 2463 |
| 4 | 1 | unrecognized next header | 2463 |
| 4 | 2 | unrecognized option | 2463 |
| 128 | 0 | echo request (Ping) | 2463 |
| 129 | 0 | echo reply (Ping) | 2463 |
| 130 | 0 | multicast listener query | 2710 |
| 131 | 0 | multicast listener report | 2710 |
| 132 | 0 | multicast listener done | 2710 |
| 133 | 0 | router solicitation | 2461 |
| 134 | 0 | router advertisement | 2461 |
| 135 | 0 | neighbour solicitation | 2461 |
| 136 | 0 | neighbour advertisement | 2461 |
| 137 | 0 | redirect | 2461 |
| 141 | 0 | inverse heighbour solicitation | 3122 |
| 142 | 0 | inverse neighbour advertisement | 3122 |