EtherTrafGen

Package: inet.applications.ethernet

simple module EtherTrafGen

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.

inet.applications.ethernet.EtherTrafGenEtherTrafGensimple

Inheritance diagram

Extends

Name

Type

Description

SimpleModule

simple module

Base module for all INET simple modules.

Parameters

Name

Type

Default value

Description

displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

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

class

EtherTrafGen

display

i=block/app

lifecycleSupport

Gates

Name

Direction

Size

Description

in

input

out

output

Signals

Name

Type

Unit

Description

packetReceived

inet::Packet

packetSent

inet::Packet

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

endToEndDelay

end-to-end delay

dataAge(packetReceived)

histogram,vector

s

none

packetReceived

packets received

packetReceived

count,”sum(packetBytes)”,”vector(packetBytes)”

none

packetSent

packets sent

packetSent

count,”sum(packetBytes)”,”vector(packetBytes)”

none

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 extends SimpleModule
{
    parameters:
        @class(EtherTrafGen);
        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