File: Network/IPv4/IPDatagram.msg
Represents an IP datagram.
Uses the following cMessage fields:
Additional length fields defined in this class are in bytes (totalLength()=length()/8 and header_length), or 8 bytes (fragment_offset).
Only only one of the option fields can exist at a time.
The following diagram shows part of the inheritance hierarchy. Unresolved types are missing from the diagram. Click here to see the full picture.
Name | Value | Description |
---|---|---|
omitGetVerb | true |
Name | Type | Description |
---|---|---|
version | short | |
headerLength | short | |
srcAddress | IPAddress | |
destAddress | IPAddress | |
transportProtocol | int | |
timeToLive | short | |
identification | int | |
moreFragments | bool | |
dontFragment | bool | |
fragmentOffset | int | |
diffServCodePoint | unsigned char | |
optionCode | int | |
recordRoute | IPRecordRouteOption | |
timestampOption | IPTimestampOption | |
sourceRoutingOption | IPSourceRoutingOption | optionCode determines if strict or loose source routing |
message IPDatagram { properties: omitGetVerb = true; fields: short version = 4; short headerLength = IP_HEADER_BYTES; IPAddress srcAddress; IPAddress destAddress; int transportProtocol enum(IPProtocolId) = IP_PROT_NONE; short timeToLive; int identification; bool moreFragments; bool dontFragment; int fragmentOffset; unsigned char diffServCodePoint; int optionCode enum(IPOption) = IPOPTION_NO_OPTION; //# FIXME modify header length when options are present IPRecordRouteOption recordRoute; IPTimestampOption timestampOption; IPSourceRoutingOption sourceRoutingOption; // optionCode determines if strict or loose source routing };