Preventing a Queue from Becoming Empty¶
The QueueFiller module creates packets whenever a connected queue becomes empty. One use of this module is to generate continuous traffic on a network interface.
In this example network, an active packet sink (ActivePacketSink) periodically pops packets from a queue (PacketQueue). Whenever the queue becomes empty, a queue filler module (QueueFiller) pushes a packet into it.


network QueueFillerTutorialStep
{
@display("bgb=600,200");
submodules:
filler: QueueFiller {
@display("p=100,100");
tokenGenerator.queueModule = "queue";
}
queue: PacketQueue {
@display("p=300,100");
}
collector: ActivePacketSink {
@display("p=500,100");
}
connections allowunconnected:
filler.out --> queue.in;
queue.out --> collector.in;
}
[Config QueueFiller]
network = QueueFillerTutorialStep
sim-time-limit = 10s
*.filler.provider.packetLength = 1B
*.collector.collectionInterval = 1s