IPacketBuffer

Package: inet.queueing.contract

module interface IPacketBuffer

Interface for 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.

Usage diagram

Inheritance diagram

Implemented by

Name

Type

Description

PacketBuffer

simple 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

Ieee8021qTimeAwareShaper

compound module

Implements the IEEE 802.1Q time aware shaper.

GatingPriorityQueue

compound module

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

PriorityQueue

compound 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

//
// Interface for 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