EtherTrafGen

Package: inet.applications.ethernet

EtherTrafGen

simple module

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.

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)

msgkindctrltagsmsgnamecontext
omnetpp::cMessage100generateNextPacket
omnetpp::cMessage101generateNextPacket

Direct method calls (observed)

call tofunctioninfo
InterfaceTableinet::InterfaceTable::findInterfaceByNamefindInterfaceByName

Incoming messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0 (SocketStatusInd::SOCKET_I_DATA)Ieee8022LlcDispatchProtocolReq, Ieee802SapInd, InterfaceInd, MacAddressInd, PacketProtocolTag, SocketInd

Outgoing messages (observed)

gatemsgkindctrldestModuletags
outPacket0 (SocketCommandCode::SOCKET_C_DATA)Ieee8022LlcDispatchProtocolReq, Ieee802SapReq, InterfaceReq, MacAddressReq
outRequest2 (SocketCommandCode::SOCKET_C_OPEN)Ieee8022LlcSocketOpenCommandIeee8022LlcDispatchProtocolReq, SocketReq

Packet operations (observed)

chunkTypepacketAction
peekData
ByteCountChunkinsertAtBack

Shared Tagging operations (observed)

tagTypetagAction
DispatchProtocolReqaddTag, addTagIfAbsent
Ieee802SapReqaddTag
InterfaceReqaddTag
MacAddressReqaddTag
SocketReqaddTagIfAbsent

Region Tagging operations (observed)

tagTypetagAction
CreationTimeTagaddTag, 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