PacketShaper

Package: inet.queueing.shaper

PacketShaper

compound module

This module combines a packet queue and a packet gate into a packet shaper module. The queue stores the packets sorted according to its ordering and the gate decides when the first packet can be pulled from the queue.

queue : like IPacketQueue

PacketQueue: This module implements a widely configurable packet queue, which is suitable among others, to be...

IPacketQueue: This module interface is implemented by packet queue modules.

Source:
queue: <default("PacketQueue")> like IPacketQueue {
    @display("p=100,150");
} gate : like IPacketGate

IPacketGate: This module interface is implemented by packet gate.

Source:
gate: <default("")> like IPacketGate {
    @display("p=300,150");
}

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.

Known subclasses

Name Type Description
AsynchronousShaper compound module

This module implements an asynchronous shaper. The queue sorts packets based on the transmission eligibility time (EligibilityTimeTag) attached to each packet. The gate prevents packets to be transmitter earlier than the attached transmission eligibility time.

CreditBasedShaper compound module

This module implements a credit based shaper using a gate submodule to manage the number of credits.

TimeAwareShaper compound module

This module implements a time-aware shaper using a gate submodule that opens and closes according to a time-based schedule.

Properties

Name Value Description
display i=block/bucket

Gates

Name Direction Size Description
in input
out output

Source code

//
// This module combines a packet queue and a packet gate into a packet shaper
// module. The queue stores the packets sorted according to its ordering and
// the gate decides when the first packet can be pulled from the queue.
//
module PacketShaper like IPacketShaper
{
    parameters:
        @display("i=block/bucket");
    gates:
        input in;
        output out;
    submodules:
        queue: <default("PacketQueue")> like IPacketQueue {
            @display("p=100,150");
        }
        gate: <default("")> like IPacketGate {
            @display("p=300,150");
        }
    connections:
        in --> queue.in;
        queue.out --> gate.in;
        gate.out --> out;
}
File: src/inet/queueing/shaper/PacketShaper.ned