IPacketGate

Package: inet.queueing.contract

IPacketGate

module interface

This module interface is implemented by packet gate. A packet gate connects one input to one output. It can operate in both active and passive mode. Packets can be pushed into its input or packets can be pulled from its output.

Inheritance diagram

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

Implemented by

Name Type Description
CreditBasedGate simple module

This module is a packet gate that operates based on the number of credits it contains. The gate is open if the number of credits is greater than the configured transmit credit limit, it is closed otherwise. The module attaches a CreditGateTag to all packets that pass through. The attached tag allows the gate module to determine if a packet belongs to it when the packet is eventually transmitted.

EligibilityTimeGate simple module

This module is a packet gate that operates based on the EligibilityTimeTag attached to the next packet waiting to be pulled through. The gate is closed if the eligibility time is greater than the current simulation time, it is open otherwise.

Ieee8021qAsynchronousShaper compound module

This module implements the IEEE 802.1Q asynchronous shaper.

Ieee8021qCreditBasedGate simple module

This module is a packet gate that can be used to implement the IEEE 802.1q credit based shaper algorithm in combination with a packet queue.

Ieee8021qCreditBasedShaper compound module

This module implements the IEEE 802.1Q credit-based shaper.

InteractiveGate simple module

This packet gate module allows or forbids packets to pass through depending on whether the gate is open or closed as specified by the parameter. The gate can also be controlled by the user by manually changing the open parameter from the graphical user interface while the simulation is paused.

OmittedPacketGate compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

PacketGate simple module

This module allows or forbids packets to pass through depending on whether the gate is open or closed.

PeriodicGate simple module

This module allows or forbids packets to pass through depending on whether the gate is open or closed. The gate is open and closed according to the list of change times periodically.

Used in compound modules

Name Type Description
DualIeee8021qFilter compound module

This module combines two meters and their corresponding filters per path. This is primarily useful for combining a token bucket based metering with an asynchronous packet shaper. Note that the asynchronous packet shaper also has parts in the network interface queue module.

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.

Ieee8021qFilter compound module

This module implements the IEEE 802.1Q per-stream filtering and policing. The relationship between streams, gates and meters is not one-to-one. The number of streams, gates and meters can be different and the module will take care about the connections between the submodules based on the streamFilterTable parameter.

Ieee8021qTimeAwareShaper compound module

This module implements the IEEE 802.1Q time aware 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.

SimpleIeee8021qFilter compound module

This module implements a simplified version of the IEEE 802.1Q per-stream filtering and policing. Each filtered stream has its own path where metering and filtering happens independently of any other stream.

Extends

Name Type Description
IPacketSink module interface

This module interface is implemented by packet sink modules which are both passive and active simultaneously.

IPacketSource module interface

This module interface is implemented by packet source modules which are both active and passive simultaneously.

Properties

Name Value Description
display i=block/star
omittedTypename OmittedPacketGate

Source code

//
// This module interface is implemented by packet gate. A packet gate connects
// one input to one output. It can operate in both active and passive mode.
// Packets can be pushed into its input or packets can be pulled from its
// output.
//
moduleinterface IPacketGate extends IPacketSink, IPacketSource
{
    parameters:
        @omittedTypename(OmittedPacketGate);
        @display("i=block/star");
}
File: src/inet/queueing/contract/IPacketGate.ned