Package: inet.applications.ethernet
EtherAppClient
simple moduleA simple traffic generator for the Ethernet model and the 802.11 model, and generally for any L2 model that accepts Ieee802SapReq tags on the packets. It generates packets containing EtherAppReq chunks. It should be connected directly to Ieee8022Llc.
Used in compound modules
Name | Type | Description |
---|---|---|
EthernetHost | 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 |
---|---|---|---|
interfaceTableModule | string | ||
destAddress | string | "" |
destination MAC address, or module path name of destination station; empty means off |
interface | string | "" |
outgoing interface name; empty accepted only when the destAddress is empty |
startTime | double | this.sendInterval |
time of sending the first request |
stopTime | double | -1s |
time of finishing sending, negative values mean forever |
localSAP | int | 0xf0 |
local service access point |
remoteSAP | int | 0xf1 |
remote service access point |
sendInterval | double | uniform(0s,1s) |
interval between sending requests |
reqLength | int | 100B |
length of request packets |
respLength | int | 1KiB |
length of response packets |
stopOperationExtraTime | double | -1s |
extra time after lifecycle stop operation finished |
stopOperationTimeout | double | 2s |
timeout value for lifecycle stop operation |
Properties
Name | Value | Description |
---|---|---|
lifecycleSupport | ||
display | i=block/app |
Gates
Name | Direction | Size | Description |
---|---|---|---|
in | input | ||
out | output |
Signals
Name | Type | Unit |
---|---|---|
packetReceived | inet::Packet | |
packetSent | inet::Packet |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode |
---|---|---|---|---|---|
packetReceived | packets received | packetReceived | count, sum(packetBytes), vector(packetBytes) | none | |
packetSent | packets sent | packetSent | count, sum(packetBytes), vector(packetBytes) | none | |
endToEndDelay | end-to-end delay | dataAge(packetReceived) | histogram, vector | s | none |
Scheduled messages (observed)
msg | kind | ctrl | tags | msgname | context |
---|---|---|---|---|---|
omnetpp::cMessage | 100 | generateNextPacket | |||
omnetpp::cMessage | 101 | generateNextPacket |
Direct method calls (observed)
call to | function | info |
---|---|---|
MessageDispatcher | inet::MessageDispatcher::arrived | arrived |
InterfaceTable | inet::InterfaceTable::findInterfaceByName | findInterfaceByName |
Incoming messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
in | Packet | 0 (SocketStatusInd::SOCKET_I_DATA) | Ieee8022Llc | Ieee802SapInd, InterfaceInd, MacAddressInd, SocketInd, DirectionTag?, EncapsulationProtocolInd? |
Outgoing messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
out | Packet | 0 (SocketCommandCode::SOCKET_C_DATA) | Ieee80211LlcLpd | DispatchProtocolReq, Ieee802SapReq, InterfaceReq, MacAddressReq, SocketReq | |
out | Packet | 0 (SocketCommandCode::SOCKET_C_DATA) | Ieee8022Llc | DispatchProtocolReq, Ieee802SapReq, InterfaceReq, MacAddressReq, SocketReq | |
out | Request | 2 (SocketCommandCode::SOCKET_C_OPEN) | Ieee8022LlcSocketOpenCommand | Ieee80211LlcLpd | DispatchProtocolReq, Ieee802SapReq, InterfaceReq, SocketReq |
out | Request | 2 (SocketCommandCode::SOCKET_C_OPEN) | Ieee8022LlcSocketOpenCommand | Ieee8022Llc | DispatchProtocolReq, Ieee802SapReq, InterfaceReq, SocketReq |
Packet operations (observed)
chunkType | packetAction |
---|---|
peekData | |
EtherAppReq | insertAtBack |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
DispatchProtocolReq | addTagIfAbsent |
Ieee802SapReq | addTag, addTagIfAbsent |
InterfaceReq | addTagIfAbsent |
MacAddressReq | addTag |
SocketInd | findTag |
SocketReq | addTagIfAbsent |
Region Tagging operations (observed)
tagType | tagAction |
---|---|
CreationTimeTag | addTag, getAllTags |
Source code
// // A simple traffic generator for the Ethernet model and the 802.11 model, // and generally for any L2 model that accepts ~Ieee802SapReq tags on the // packets. It generates packets containing ~EtherAppReq chunks. It should // be connected directly to ~Ieee8022Llc. // simple EtherAppClient { parameters: string interfaceTableModule; string destAddress = default(""); // destination MAC address, or module path name of destination station; empty means off string interface = default(""); // outgoing interface name; empty accepted only when the destAddress is empty 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); // local service access point int remoteSAP = default(0xf1); // remote service access point 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 @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/EtherAppClient.ned