ICMPv6 messages may be classified as error messages and information messages. ICMPv6 messages are transported by IPv6 packets in which the IPv6 Next Header value for ICMPv6 is set to the value 58. The ICMPv6 message consists of a header and the protocol payload. The header contains only three fields: type, code, and checksum. type specifies the type of the message. Values in the range from 0 to 127 indicate an error message, while values in the range from 128 to 255 indicate an information message. The code field value depends on the message type and provides an additional level of message granularity. The checksum field provides a minimal level of integrityverification for the ICMP message.
Types
Control messages are identified by the value in the type field. The code field gives additional context information for the message. Some messages serve the same purpose as the correspondingly named ICMP message types. Note that the table above is not comprehensive. The current complete list of assigned ICMPv6 types can be found at this link: .
Checksum
ICMPv6 provides a minimal level of message integrity verification by the inclusion of a 16-bit checksum in its header. The checksum is calculated starting with a pseudo-header of IPv6 header fields according to the IPv6 standard, which consists of the source and destination addresses, the packet length and the next header field, the latter of which is set to the value 58. Following this pseudo header, the checksum is continued with the ICMPv6 message. The checksum computation is performed according to Internet protocolstandards using 16-bit ones' complement summation, followed by a final ones' complement of the checksum itself and inserting it into the checksum field. Note that this differs from the way it is calculated for IPv4 in ICMP, but is similar to the calculation done in TCP.
Message processing
When an ICMPv6 node receives a packet, it must undertake actions that depend on the type of message. The ICMPv6 protocol must limit the number of error messages sent to the same destination to avoid network overloading. For example, if a node continues to forward erroneous packets, ICMP will signal the error to the first packet and then do so periodically, with a fixed minimum period or with a fixed network maximum load. An ICMP error message must never be sent in response to another ICMP error message.