BurstyPacketProducer

Package: inet.queueing.source

BurstyPacketProducer

compound module

This module mixes two different packet sources to generate bursty traffic.

normalProducer : ActivePacketSource

This module is an active packet source which pushes packets into the connected module.

Source:
normalProducer: ActivePacketSource {
    @display("p=100,100");
} burstProducer : ActivePacketSource

This module is an active packet source which pushes packets into the connected module.

Source:
burstProducer: ActivePacketSource {
    @display("p=300,100");
} scheduler : MarkovScheduler

This module implements a packet scheduler using a Markov process that has as many states as input...

Source:
scheduler: MarkovScheduler {
    @display("p=200,200");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the 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

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; 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

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; 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

scheduler.reverseOrder bool false
scheduler.clockModule string ""

relative path of a module that implements IClock; optional

scheduler.initialState int 0

the start 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

//
// This module 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;
}
File: src/inet/queueing/source/BurstyPacketProducer.ned