[Prev] [TOC] [Chapters]
28 Appendix J: Eventlog File Format
This appendix documents the format of the eventlog file. Eventlog
files are written by the simulation (when enabled). Everything
that happens during the simulation is recorded into the file,
[With certain granularity of course, and subject to
filters that were active during simulation]
so the file can later be used to reproduce the history of the
simulation on a sequence chart, or in some other form.
The file is a line-oriented text file. Blank lines and lines beginning
with "#" (comments) will be ignored. Other lines begin with an
entry identifier like E for Event or
BS for BeginSend, followed by attribute-identifier
and value pairs. One exception is debug output
(recorded from EV<<... statements), which are represented
by lines that begin with a hyphen, and continue with the actual text.
The grammar of the eventlog file is the following:
<file> ::= <line>*
<line> ::= <empty-line> | <user-log-message> | <event-log-entry>
<empty-line> ::= CR LF
<user-log-message> ::= - SPACE <text> CR LF
<event-log-entry> ::= <event-log-entry-type> SPACE <parameters> CR LF
<event-log-entry-type> ::= SB | SE | BU | MB | ME | MC | MD | MR | GC | GD |
CC | CD | CS | MS | CE | BS | ES | SD | SH | DM | E
<parameters> ::= (<parameter>)*
<parameter> ::= <name> SPACE <value>
<name> ::= <text>
<value> ::= <boolean> | <integer> | <text> | <quoted-text>
The eventlog file must also fulfill the following requirements:
- simulation events are in increasing event number and simulation time order
Here is a fragment of an existing eventlog file as an example:
E # 14 t 1.018454036455 m 8 ce 9 msg 6
BS id 6 tid 6 c cMessage n send/endTx pe 14
ES t 4.840247053855
MS id 8 d t=TRANSMIT,,#808000;i=device/pc_s
MS id 8 d t=,,#808000;i=device/pc_s
E # 15 t 1.025727827674 m 2 ce 13 msg 25
- another frame arrived while receiving -- collision!
CE id 0 pe 12
BS id 0 tid 0 c cMessage n end-reception pe 15
ES t 1.12489449434
BU id 2 txt "Collision! (3 frames)"
DM id 25 pe 15
28.1 Supported Entry Types and Their Attributes
The following entries and attributes are supported in the eventlog file:
SB (SimulationBegin): mandatory first line of an eventlog file
- v (version, int): OMNeT++ version, e.g. 0x401 (=1025) is release 4.1
- rid (runId, string): identifies the simulation run
- b (keyframeBlockSize, int): the distance between keyframes in event numbers
SE (SimulationEnd): optional last line of an eventlog file
- e (isError, bool): specifies if the simulation terminated due to an error
- c (resultCode, int): the error code in case of an error, otherwise the normal result code
- m (message, string): human readable description
BU (Bubble): display a bubble message
- id (moduleId, int): id of the module which printed the bubble message
- txt (text, string): displayed message text
MB (ModuleMethodBegin): beginning of a call to another module
- sm (fromModuleId, int): id of the caller module
- tm (toModuleId, int): id of the module being called
- m (method, string): C++ method name
ME (ModuleMethodEnd): end of a call to another module
MC (ModuleCreated): creating a module
- id (moduleId, int): id of the new module
- c (moduleClassName, string): C++ class name of the module
- t (nedTypeName, string): fully qualified NED type name
- pid (parentModuleId, int): id of the parent module
- n (fullName, string): full dotted hierarchical module name
- cm (compoundModule, bool): whether module is a simple or compound module
MD (ModuleDeleted): deleting a module
- id (moduleId, int): id of the module being deleted
GC (GateCreated): gate created
- m (moduleId, int): module in which the gate was created
- g (gateId, int): id of the new gate
- n (name, string): gate name
- i (index, int): gate index if vector, -1 otherwise
- o (isOutput, bool): whether the gate is input or output
GD (GateDeleted): gate deleted
- m (moduleId, int): module in which the gate was created
- g (gateId, int): id of the deleted gate
CC (ConnectionCreated): creating a connection
- sm (sourceModuleId, int): id of the source module identifying the connection
- sg (sourceGateId, int): id of the gate at the source module identifying the connection
- dm (destModuleId, int): id of the destination module
- dg (destGateId, int): id of the gate at the destination module
CD (ConnectionDeleted): deleting a connection
- sm (sourceModuleId, int): id of the source module identifying the connection
- sg (sourceGateId, int): id of the gate at the source module identifying the connection
CS (ConnectionDisplayStringChanged): a connection display string change
- sm (sourceModuleId, int): id of the source module identifying the connection
- sg (sourceGateId, int): id of the gate at the source module identifying the connection
- d (displayString, string): the new display string
MS (ModuleDisplayStringChanged): a module display string change
- id (moduleId, int): id of the module
- d (displayString, string): the new display string
E (Event): an event that is processing a message
- # (eventNumber, eventnumber_t): unique event number
- t (simulationTime, simtime_t): simulation time when the event occurred
- m (moduleId, int): id of the processing module
- ce (causeEventNumber, eventnumber_t): event number from which the message being processed was sent, or -1 if the message was sent from initialize
- msg (messageId, long): lifetime-unique id of the message being processed
- f (fingerprints, string): current simulation fingerprints
KF (Keyframe):
- p (previousKeyframeFileOffset, int64_t): file offset of the previous keyframe entry
- c (consequenceLookaheadLimits, string): consequence lookahead data
- s (simulationStateEntries, string): simulation state data
abstract (Message): base class for entries referring to a message
- id (messageId, long): lifetime-unique id of the message
- tid (messageTreeId, long): id of the message inherited by dup
- eid (messageEncapsulationId, long): id of the message inherited by encapsulation
- etid (messageEncapsulationTreeId, long): id of the message inherited by both dup and encapsulation
- c (messageClassName, string): C++ class name of the message
- n (messageName, string): message name
- k (messageKind, short): message kind
- p (messagePriority, short): message priority
- l (messageLength, int64_t): message length in bits
- er (hasBitError, bool): true indicates that the message has bit errors
- d (detail, string): detailed information of message content when recording message data is turned on
- pe (previousEventNumber, eventnumber_t): event number from which the message being cloned was sent, or -1 if the message was sent from initialize
CE (CancelEvent): canceling an event caused by a self message
BS (BeginSend): beginning to send a message
ES (EndSend): prediction of the arrival of a message
- t (arrivalTime, simtime_t): when the message will arrive to its destination module
- is (isReceptionStart, bool): true indicates the message arrives with the first bit
SD (SendDirect): sending a message directly to a destination gate
- sm (senderModuleId, int): id of the source module from which the message is being sent
- dm (destModuleId, int): id of the destination module to which the message is being sent
- dg (destGateId, int): id of the gate at the destination module to which the message is being sent
- pd (propagationDelay, simtime_t): propagation delay as the message is propagated through the connection
- td (transmissionDelay, simtime_t): transmission duration as the whole message is sent from the source gate
SH (SendHop): sending a message through a connection identified by its source module and gate id
- sm (senderModuleId, int): id of the source module from which the message is being sent
- sg (senderGateId, int): id of the gate at the source module from which the message is being sent
- pd (propagationDelay, simtime_t): propagation delay as the message is propagated through the connection
- td (transmissionDelay, simtime_t): transmission duration as the whole message is sent from the source gate
- del (discard, bool): whether the channel has discarded the message
CM (CreateMessage): creating a message
CL (CloneMessage): cloning a message either via the copy constructor or dup
- cid (cloneId, long): lifetime-unique id of the clone
DM (DeleteMessage): deleting a message
[Prev] [TOC] [Chapters]