Icmpv6Header

Icmpv6Header

class

Represents an ICMPv6 packet.

Notes: 1. number of octets excluding the error datagram that is usually appended in optInfo, i.e. the Type|CODE|CHECKSUM|UNUSED/POINTER/MTU/OTHER as defined in RFC2463 2. Any ICMP type with MSB set, i.e. >=128 is an Informational ICMP message

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Extends

Name Type Description
FieldsChunk class (no description)

Known subclasses

Name Type Description
Icmpv6DestUnreachableMsg class

Notes: 1. As defined in RFC2463: Section 3

Icmpv6EchoReplyMsg class

Icmpv6 Echo Reply packet. Data is attached through encapsulation (see Icmpv6.cc)

Icmpv6EchoRequestMsg class

ICMPv6 Echo Request packet (RFC2463: Section 4). Data is attached through encapsulation (see Icmpv6.cc)

Icmpv6PacketTooBigMsg class (no description)
Icmpv6ParamProblemMsg class (no description)
Icmpv6TimeExceededMsg class (no description)
Ipv6NdMessage class

Neighbour Discovery for Ipv6. RFC 2461

Fields

Name Type Description
chunkLength b
type Icmpv6Type

1 byte

chksum int

int code; // 1 byte //TODO: this should be specific to different ICMP types.

crcMode CrcMode

4 bytes 'type' specific values

mutable bool
complete bool
correct bool
properlyRepresented bool
rawBin string[]
rawHex string[]
tags RegionTagSet::cObjectRegionTag[]

Source code

//
// Represents an ICMPv6 packet.
//
// Notes:
//    1. number of octets excluding the error datagram that is usually appended
//       in optInfo, i.e. the Type|CODE|CHECKSUM|UNUSED/POINTER/MTU/OTHER
//       as defined in RFC2463
//    2. Any ICMP type with MSB set, i.e. >=128 is an Informational ICMP message
//
class Icmpv6Header extends FieldsChunk
{
    chunkLength = ICMPv6_HEADER_BYTES;
    Icmpv6Type type;     // 1 byte
    //int code; // 1 byte //TODO: this should be specific to different ICMP types.
    int chksum = 0;     // 2 bytes
    CrcMode crcMode = CRC_MODE_UNDEFINED;
    // 4 bytes 'type' specific values
}

File: src/inet/networklayer/icmpv6/Icmpv6Header.msg