Package: inet.applications.ethernet
EtherAppCli
simple moduleA 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