Simple Module EthernetApplication

Package: inet.applications.ethernet
File: src/inet/applications/ethernet/EthernetApplication.ned

C++ definition

****************************************************** @file EthernetApplication.cc @brief Simple traffic generator. It generates Etherapp requests and responses. Based in EtherAppCli and EtherAppSrv.

Author: Juan Luis Garrote Molinero

Version: 1.0

Date: Feb 2011

******************************************************/

EthernetApplication

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Parameters:

Name Type Default value Description
destAddress string ""

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

startTime double this.waitTime

time to send the first request

waitTime double uniform(0s,1s)

interval between sending requests

reqLength int 100B

length of request packets

respLength int 1KiB

length of response packets

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:

//******************************************************
// @file EthernetApplication.cc
// @brief Simple traffic generator.
// It generates Etherapp requests and responses. Based in EtherAppCli and EtherAppSrv.
//
// @author Juan Luis Garrote Molinero
// @version 1.0
// @date Feb 2011
//
//
//******************************************************/
simple EthernetApplication
{
    parameters:
        string destAddress = default("");  // destination MAC address, or module path name of destination station; empty means off
        double startTime @unit("s") = default(this.waitTime);  // time to send the first request
        volatile double waitTime @unit("s") = default(uniform(0s,1s));  // interval between sending requests
        volatile int reqLength @unit(B) = default(100B);  // length of request packets
        volatile int respLength @unit(B) = default(1KiB);  // length of response packets
        @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);
        @display("i=block/app");
    gates:
        input in @labels(Ieee802Ctrl/up);
        output out @labels(Ieee802Ctrl/down);
}