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 IPv4, IPv6 protocol field, accepts only between 143 and 254 |
|
packetLength | int |
packet length in bytes |
|
destAddresses | string | "" |
list of destination addresses, separated by spaces |
Properties
Name | Value | Description |
---|---|---|
lifecycleSupport | ||
display | i=block/source |
Gates
Name | Direction | Size | Description |
---|---|---|---|
ipIn | input | ||
ipOut | 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 | sendTimer | |||
omnetpp::cMessage | 101 | sendTimer |
Direct method calls (observed)
call to | function | info |
---|---|---|
MessageDispatcher | inet::MessageDispatcher::arrived | arrived |
MessageDispatcher | inet::MessageDispatcher::handleRegisterProtocol | handleRegisterProtocol |
Outgoing messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
ipOut | Packet | 0 | Ipv4 | DispatchProtocolReq, L3AddressReq, PacketProtocolTag |
Packet operations (observed)
chunkType | packetAction |
---|---|
ByteCountChunk | insertAtBack |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
DispatchProtocolReq | addTag |
L3AddressReq | addTag, findTag |
PacketProtocolTag | addTag |
Region Tagging operations (observed)
tagType | tagAction |
---|---|
CreationTimeTag | addTag |
Tagging operations (observed)
tagType | tagAction |
---|---|
inet::Ipv4InterfaceData | findTag |
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 IPv4, IPv6 protocol field, accepts only between 143 and 254 volatile int packetLength @unit(B); // packet length in bytes string destAddresses = default(""); // list of destination addresses, separated by spaces @lifecycleSupport; @display("i=block/source"); @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 ipIn @labels(Ipv4ControlInfo/up,Ipv6ControlInfo/up); output ipOut @labels(Ipv4ControlInfo/down,Ipv6ControlInfo/down); }File: src/inet/applications/generic/IpvxTrafGen.ned