IPacketBuffer

Package: inet.queueing.contract

IPacketBuffer

module interface

This module interface is implemented by packet buffer modules. A packet buffer is often used by packet queues to store packets in a limited shared resource. Packets can be added to and removed from a packet buffer. When the buffer becomes overloaded, one or more packets are dropped according to the configured dropping strategy. For each dropped packet, the packet owner is notified in order to update its internal state.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Implemented by

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.

PriorityBuffer simple module

This buffer drops packets among the connected packet queues based on their module id.

Used in compound modules

Name Type Description
GatingPriorityQueue compound module

This module implements a priority queue with multiple inner queues each having its own periodic gate for packet selection and an optional shared memory buffer.

Ieee8021qTimeAwareShaper compound module

This module implements the IEEE 802.1Q time aware shaper.

PriorityQueue compound module

This module implements a priority queue with multiple inner queues and an optional shared memory buffer.

Properties

Name Value Description
display i=block/buffer

Source code

//
// This module interface is implemented by packet buffer modules. A packet
// buffer is often used by packet queues to store packets in a limited shared
// resource. Packets can be added to and removed from a packet buffer. When the
// buffer becomes overloaded, one or more packets are dropped according to the
// configured dropping strategy. For each dropped packet, the packet owner is
// notified in order to update its internal state.
//
moduleinterface IPacketBuffer
{
    parameters:
        @display("i=block/buffer");
}
File: src/inet/queueing/contract/IPacketBuffer.ned