EtherAppCli

Package: inet.applications.ethernet

EtherAppCli

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 generates EtherAppReq packets. It should be connected directly to EtherLLC or a Ieee802NicXXX module.

Used in compound modules

Name Type Description
EtherHost compound module

An example host with one Ethernet port and a traffic generator that generates request-reply traffic directly over Ethernet. This host model does not contain higher layer protocols (IP, TCP). By default it 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

startTime double this.sendInterval

time of sending the first request

stopTime double -1s

time of finishing sending, negative values mean forever

localSAP int 0xf0
remoteSAP int 0xf1
sendInterval double uniform(0s,1s)

interval between sending requests

reqLength int 100B

length of request packets

respLength int 1KiB

length of response packets

registerSAP bool false

whether to sent IEEE802CTRL_REGISTER_DSAP on startup

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 generates ~EtherAppReq packets. It should be connected
// directly to ~EtherLLC or a Ieee802NicXXX module.
//
simple EtherAppCli
{
    parameters:
        string destAddress = default("");  // destination MAC address, or module path name of destination station; empty means off
        double startTime @unit(s) = default(this.sendInterval);  // time of sending the first request
        double stopTime @unit(s) = default(-1s);  // time of finishing sending, negative values mean forever
        int localSAP = default(0xf0);
        int remoteSAP = default(0xf1);
        volatile double sendInterval @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
        bool registerSAP = default(false);   // whether to sent IEEE802CTRL_REGISTER_DSAP on startup
        @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/EtherAppCli.ned