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 Ieee80211Ctrl control info on the packets. It should be connected directly to EtherEncap or an Ieee802NicXXX module.

Used in compound modules

Name Type Description
EtherHost2 compound module

An example host with one Ethernet interface and an Ethernet traffic generator directly connected to it. This host model does not contain higher layer protocols (IP, TCP). By default is configured to use half-duplex MAC (CSMA/CD).

Parameters

Name Type Default value Description
destAddress string ""

destination MAC address, or module path name of destination station; empty means off

etherType int 0

etherType 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

Properties

Name Value Description
display i=block/app

Gates

Name Direction Size Description
in input
out output

Signals

Name Type Unit
sentPk cPacket
rcvdPk cPacket

Statistics

Name Title Source Record Unit Interpolation Mode
sentPk packets sent sentPk count, sum(packetBytes), vector(packetBytes) none
rcvdPk packets received rcvdPk count, sum(packetBytes), vector(packetBytes) none
endToEndDelay end-to-end delay messageAge(rcvdPk) histogram, vector s none

Source code

//
// A simple traffic generator for the Ethernet model and the 802.11 model,
// and generally for any L2 model that accepts Ieee80211Ctrl control info
// on the packets. It should be connected directly to ~EtherEncap or
// an Ieee802NicXXX module.
//
simple EtherTrafGen
{
    parameters:
        string destAddress = default("");  // destination MAC address, or module path name of destination station; empty means off
        int etherType = default(0);  // etherType 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
        @display("i=block/app");
        @signal[sentPk](type=cPacket);
        @signal[rcvdPk](type=cPacket);
        @statistic[rcvdPk](title="packets received"; source=rcvdPk; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[sentPk](title="packets sent"; source=sentPk; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[endToEndDelay](title="end-to-end delay"; source="messageAge(rcvdPk)"; unit=s; record=histogram,vector; interpolationmode=none);
    gates:
        input in @labels(Ieee802Ctrl/up);
        output out @labels(Ieee802Ctrl/down);
}

File: src/inet/applications/ethernet/EtherTrafGen.ned