Package: inet.queueing.buffer
PriorityBuffer
simple moduleThis buffer drops packets among the connected packet queues based on their module id.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
Name | Type | Description |
---|---|---|
PacketBuffer | simple module |
This module provides packet storage for sharing and optimizing storage space between multiple packet queues. When a packet buffer becomes overloaded, the packet dropping strategy can drop any number of packets from any number of connected packet queues. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
displayStringTextFormat | string | "contains %p pk (%l)\nadded %a removed %r dropped %d" |
determines the text that is written on top of the submodule |
packetCapacity | int | 100 |
maximum number of packets in the queue, no limit by default |
dataCapacity | int | -1b |
maximum total length of packets in the queue, no limit by default |
dropperClass | string | "inet::queueing::PacketWithHighestOwnerModuleIdDropper" |
determines which packets are dropped when the buffer is overloaded, packets are not dropped by default; the parameter must be the name of a C++ class which implements the IPacketDropperFunction C++ interface and is registered via Register_Class |
Properties
Name | Value | Description |
---|---|---|
display | i=block/buffer | |
class | PacketBuffer |
Gates
Name | Direction | Size | Description |
---|---|---|---|
in | input | ||
out | output |
Signals
Name | Type | Unit |
---|---|---|
packetRemoved | inet::Packet | |
packetDropped | inet::Packet | |
packetAdded | inet::Packet |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode |
---|---|---|---|---|---|
droppedPacketsQueueOverflow | dropped packets: queue overflow | packetDropReasonIsQueueOverflow(packetDropped) | count | pk | none |
addedPackets | added packets | packetAdded | count | pk | |
removedPackets | removed packets | packetRemoved | count | pk | |
removedPacketLengths | removed packet lengths | packetLength(packetRemoved) | sum, vector | pk | none |
bufferLength | buffer length | warmup(count(packetAdded) - count(packetRemoved) - count(packetDropped)) | last, max, timeavg, vector | pk | sample-hold |
droppedPacketLengthsQueueOverflow | dropped packet lengths: queue overflow | packetLength(packetDropReasonIsQueueOverflow(packetDropped)) | sum, vector | b | none |
addedPacketLengths | added packet lengths | packetLength(packetAdded) | sum, vector | b | none |
bufferBitLength | buffer bit length | warmup(sum(packetLength(packetAdded)) - sum(packetLength(packetRemoved)) - sum(packetLength(packetDropped))) | last, max, timeavg, vector | b | sample-hold |
Direct method calls (observed)
call to | function | info |
---|---|---|
PacketQueue | inet::queueing::PacketQueue::handlePacketRemoved | handlePacketRemoved |
Called methods (observed)
function | info | call from |
---|---|---|
inet::queueing::PacketBuffer::addPacket | addPacket | PacketQueue |
inet::queueing::PacketBuffer::removePacket | removePacket | PacketQueue |
Source code
// // This buffer drops packets among the connected packet queues based on their // module id. // simple PriorityBuffer extends PacketBuffer { parameters: packetCapacity = default(100); dropperClass = default("inet::queueing::PacketWithHighestOwnerModuleIdDropper"); }File: src/inet/queueing/buffer/PriorityBuffer.ned