Package: inet.applications.ethernet
EtherTrafGen
simple moduleA simple traffic generator for the Ethernet model and the 802.11 model, and generally for any L2 model that accepts Ieee802SapReq tag on packets. It should be connected directly to Ieee8022Llc module.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
destAddress | string | "" |
destination MAC address, or module path name of destination station; empty means off |
interface | string |
outgoing interface |
|
interfaceTableModule | string | ||
ssap | int | -1 |
llc ssap to set on outgoing packets |
dsap | int | -1 |
llc dsap to set on outgoing packets |
startTime | double | this.sendInterval |
time of sending the first packet |
stopTime | double | -1s |
time of finishing sending, negative values mean forever |
sendInterval | double |
interval between sending bursts |
|
numPacketsPerBurst | int | 1 |
number of packets to send per burst (packets within a burst are sent at the same simulation time) |
packetLength | int |
length of packets to send |
|
stopOperationExtraTime | double | -1s |
extra time after lifecycle stop operation finished |
stopOperationTimeout | double | 2s |
timeout value for lifecycle stop operation |
Properties
Name | Value | Description |
---|---|---|
lifecycleSupport | ||
display | i=block/app |
Gates
Name | Direction | Size | Description |
---|---|---|---|
in | input | ||
out | output |
Signals
Name | Type | Unit |
---|---|---|
packetReceived | inet::Packet | |
packetSent | inet::Packet |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode |
---|---|---|---|---|---|
packetReceived | packets received | packetReceived | count, sum(packetBytes), vector(packetBytes) | none | |
packetSent | packets sent | packetSent | count, sum(packetBytes), vector(packetBytes) | none | |
endToEndDelay | end-to-end delay | dataAge(packetReceived) | histogram, vector | s | none |
Scheduled messages (observed)
msg | kind | ctrl | tags | msgname | context |
---|---|---|---|---|---|
omnetpp::cMessage | 100 | generateNextPacket | |||
omnetpp::cMessage | 101 | generateNextPacket |
Direct method calls (observed)
call to | function | info |
---|---|---|
InterfaceTable | inet::InterfaceTable::findInterfaceByName | findInterfaceByName |
Incoming messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
in | Packet | 0 (SocketStatusInd::SOCKET_I_DATA) | Ieee8022Llc | DispatchProtocolReq, Ieee802SapInd, InterfaceInd, MacAddressInd, PacketProtocolTag, SocketInd |
Outgoing messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
out | Packet | 0 (SocketCommandCode::SOCKET_C_DATA) | Ieee8022Llc | DispatchProtocolReq, Ieee802SapReq, InterfaceReq, MacAddressReq | |
out | Request | 2 (SocketCommandCode::SOCKET_C_OPEN) | Ieee8022LlcSocketOpenCommand | Ieee8022Llc | DispatchProtocolReq, SocketReq |
Packet operations (observed)
chunkType | packetAction |
---|---|
peekData | |
ByteCountChunk | insertAtBack |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
DispatchProtocolReq | addTag, addTagIfAbsent |
Ieee802SapReq | addTag |
InterfaceReq | addTag |
MacAddressReq | addTag |
SocketReq | addTagIfAbsent |
Region Tagging operations (observed)
tagType | tagAction |
---|---|
CreationTimeTag | addTag, getAllTags |
Source code
// // A simple traffic generator for the Ethernet model and the 802.11 model, and // generally for any L2 model that accepts ~Ieee802SapReq tag on packets. It // should be connected directly to ~Ieee8022Llc module. // simple EtherTrafGen { parameters: string destAddress = default(""); // destination MAC address, or module path name of destination station; empty means off string interface; // outgoing interface string interfaceTableModule; int ssap = default(-1); // llc ssap to set on outgoing packets int dsap = default(-1); // llc dsap to set on outgoing packets double startTime @unit(s) = default(this.sendInterval); // time of sending the first packet double stopTime @unit(s) = default(-1s); // time of finishing sending, negative values mean forever volatile double sendInterval @unit(s); // interval between sending bursts volatile int numPacketsPerBurst = default(1); // number of packets to send per burst (packets within a burst are sent at the same simulation time) volatile int packetLength @unit(B); // length of packets to send @lifecycleSupport; double stopOperationExtraTime @unit(s) = default(-1s); // extra time after lifecycle stop operation finished double stopOperationTimeout @unit(s) = default(2s); // timeout value for lifecycle stop operation @display("i=block/app"); @signal[packetSent](type=inet::Packet); @signal[packetReceived](type=inet::Packet); @statistic[packetReceived](title="packets received"; source=packetReceived; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none); @statistic[packetSent](title="packets sent"; source=packetSent; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none); @statistic[endToEndDelay](title="end-to-end delay"; source="dataAge(packetReceived)"; unit=s; record=histogram,vector; interpolationmode=none); gates: input in @labels(Ieee802Ctrl/up) @messageKinds(inet::SocketStatusInd); output out @labels(Ieee802Ctrl/down) @messageKinds(inet::SocketCommandCode); }File: src/inet/applications/ethernet/EtherTrafGen.ned