Packet IPv6Datagram

File: src/inet/networklayer/ipv6/IPv6Datagram.msg

C++ definition

IPv6 datagram. RFC 2460 Section 3.

Header fields not explicitly modelled:

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.

Fields:

Name Type Description
srcAddress IPv6Address
destAddress IPv6Address
trafficClass unsigned char
diffServCodePoint int

maps to bits 0-5 of trafficClass

explicitCongestionNotification int

maps to bits 6-7 of trafficClass

flowLabel unsigned int
hopLimit short
transportProtocol int
extensionHeader IPv6ExtensionHeaderPtr[]

array of extension headers, subclassed from IPv6ExtensionHeader

Source code:

//
// IPv6 datagram. RFC 2460 Section 3.
//
// Header fields not explicitly modelled:
//    - version (=6): represented by the class name itself
//    - payload length: will be calculated from encapsulated message length
//      and extension headers' length
//
packet IPv6Datagram
{
    @customize(true);
    IPv6Address srcAddress;
    IPv6Address destAddress;
    unsigned char trafficClass;
    abstract int diffServCodePoint;  // maps to bits 0-5 of trafficClass
    abstract int explicitCongestionNotification;  // maps to bits 6-7 of trafficClass
    unsigned int flowLabel;
    short hopLimit = 0;
    int transportProtocol @enum(IPProtocolId);

    abstract IPv6ExtensionHeaderPtr extensionHeader[]; // array of extension headers, subclassed from ~IPv6ExtensionHeader
}