BurstyPacketProducer¶
Package: inet.queueing.source
compound module BurstyPacketProducer
Mixes two different packet sources to generate bursty traffic.
Usage diagram¶
Inheritance diagram¶
Properties¶
Name |
Value |
Description |
|---|---|---|
display |
i=block/source |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
out |
output |
Unassigned submodule parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
normalProducer.displayStringTextFormat |
string |
“created %p pk (%l)” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
normalProducer.packetNameFormat |
string |
“%a-%c” |
See directives in module documentation |
normalProducer.packetRepresentation |
string |
“byteCount” |
Determines the chunk of the packet data |
normalProducer.packetProtocol |
string |
“unknown” |
|
normalProducer.packetLength |
int |
||
normalProducer.packetData |
int |
-1 |
|
normalProducer.attachCreationTimeTag |
bool |
true |
|
normalProducer.attachIdentityTag |
bool |
true |
|
normalProducer.attachDirectionTag |
bool |
true |
|
normalProducer.clockModule |
string |
“” |
Relative path of a module that implements IClock(1,:ref:2 <neddoc-msg-inet-iclock>); optional |
normalProducer.initialProductionOffset |
double |
-1s |
Initial duration before which packets are not produced. When negative, then produce packet in initialize() |
normalProducer.productionInterval |
double |
Elapsed time between subsequent packets pushed to the connected packet consumer |
|
normalProducer.scheduleForAbsoluteTime |
bool |
true |
When a clock is used, “relative” means that setting the clock will not affect the simulation time of the event |
burstProducer.displayStringTextFormat |
string |
“created %p pk (%l)” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
burstProducer.packetNameFormat |
string |
“%a-%c” |
See directives in module documentation |
burstProducer.packetRepresentation |
string |
“byteCount” |
Determines the chunk of the packet data |
burstProducer.packetProtocol |
string |
“unknown” |
|
burstProducer.packetLength |
int |
||
burstProducer.packetData |
int |
-1 |
|
burstProducer.attachCreationTimeTag |
bool |
true |
|
burstProducer.attachIdentityTag |
bool |
true |
|
burstProducer.attachDirectionTag |
bool |
true |
|
burstProducer.clockModule |
string |
“” |
Relative path of a module that implements IClock(1,:ref:2 <neddoc-msg-inet-iclock>); optional |
burstProducer.initialProductionOffset |
double |
-1s |
Initial duration before which packets are not produced. When negative, then produce packet in initialize() |
burstProducer.productionInterval |
double |
Elapsed time between subsequent packets pushed to the connected packet consumer |
|
burstProducer.scheduleForAbsoluteTime |
bool |
true |
When a clock is used, “relative” means that setting the clock will not affect the simulation time of the event |
scheduler.displayStringTextFormat |
string |
“classified %p pk (%l)\ncurrent state: %s” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
scheduler.reverseOrder |
bool |
false |
|
scheduler.clockModule |
string |
“” |
Relative path to a module that implements IClock(1,:ref:2 <neddoc-msg-inet-iclock>); optional |
scheduler.initialState |
int |
0 |
The starting state of the Markov process |
scheduler.transitionProbabilities |
string |
The transition matrix (N x N) of the Markov process, specified as a list of probabilities |
|
scheduler.waitIntervals |
string |
The amount of time the Markov process stays in a given state, a list of intervals (N) indexed by the state |
Source code¶
//
// Mixes two different packet sources to generate bursty traffic.
//
module BurstyPacketProducer like IActivePacketSource
{
parameters:
@display("i=block/source");
gates:
output out;
submodules:
normalProducer: ActivePacketSource {
@display("p=100,100");
}
burstProducer: ActivePacketSource {
@display("p=300,100");
}
scheduler: MarkovScheduler {
@display("p=200,200");
}
connections allowunconnected:
normalProducer.out --> scheduler.in++;
burstProducer.out --> scheduler.in++;
scheduler.out --> out;
}