Package: inet.applications.generic
IPvXTrafGen
simple moduleSends IP or IPv6 datagrams to the given address at the given sendInterval. The sendInterval can be a constant or a random value (e.g. exponential(1)). If the destAddresses parameter contains more than one address, one of them is randomly for each packet. An address may be given in the dotted decimal notation (or, for IPv6, in the usual notation with colons), or with the module name. (The L3AddressResolver class is used to resolve the address.) To disable the model, set destAddresses to "".
The peer can be IPvXTrafSink or another IPvXTrafGen (it handles received packets exactly like IPvXTrafSink).
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
startTime | double | 1s |
time of sending the first packet |
stopTime | double | -1s |
time of finishing sending, negative values mean forever |
sendInterval | double | 10ms |
may be a random value, e.g. exponential(1) |
numPackets | int | -1 |
max number of packets to generate, -1 means forever |
protocol | int |
value for IPv4ControlInfo / IPv6ControlInfo protocol field |
|
packetLength | int |
packet length in bytes |
|
destAddresses | string | "" |
list of destination addresses, separated by spaces |
Properties
Name | Value | Description |
---|---|---|
display | i=block/source |
Gates
Name | Direction | Size | Description |
---|---|---|---|
ipIn | input | ||
ipOut | 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
// // Sends IP or IPv6 datagrams to the given address at the given sendInterval. // The sendInterval can be a constant or a random value (e.g. exponential(1)). // If the destAddresses parameter contains more than one address, one // of them is randomly for each packet. An address may be given in the // dotted decimal notation (or, for IPv6, in the usual notation with colons), // or with the module name. (The L3AddressResolver class is used to resolve // the address.) To disable the model, set destAddresses to "". // // The peer can be ~IPvXTrafSink or another ~IPvXTrafGen (it handles received packets // exactly like ~IPvXTrafSink). // simple IPvXTrafGen like IIPvXTrafficGenerator { parameters: double startTime @unit("s") = default(1s); // 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") = default(10ms); // may be a random value, e.g. exponential(1) int numPackets = default(-1); // max number of packets to generate, -1 means forever int protocol; // value for ~IPv4ControlInfo / ~IPv6ControlInfo protocol field volatile int packetLength @unit("B"); // packet length in bytes string destAddresses = default(""); // list of destination addresses, separated by spaces @display("i=block/source"); @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 ipIn @labels(IPv4ControlInfo/up,IPv6ControlInfo/up); output ipOut @labels(IPv4ControlInfo/down,IPv6ControlInfo/down); }File: src/inet/applications/generic/IPvXTrafGen.ned