IPacketSource

Package: inet.queueing.contract

IPacketSource

module interface

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

See also: IPassivePacketSource, IActivePacketSource

IPacketSource

Inheritance diagram

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

Implemented by

Name Type Description
ContentBasedFilter simple module

This module filters for packets matching the configured filter criteria. When the filter is pushed by a connected packet producer, it either pushes the packet to the connected packet consumer or drops it depending on the configured packet filter. Similarily, when the filter is popped by a connected packet collector, it pops packets from the connected packet provider until it finds one which matches the configured packet filter.

ContentBasedLabeler simple module

This module attaches various request labels to packets.

ContentBasedTagger simple module

This module attaches various request tags to packets.

PacketFilter simple module

This module filters for packets matching the configured filter criteria. When the filter is pushed by a connected packet producer, it either pushes the packet to the connected packet consumer or drops it depending on the configured packet filter. Similarily, when the filter is popped by a connected packet collector, it pops packets from the connected packet provider until it finds one which matches the configured packet filter.

PacketGate simple module

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

PacketLabeler simple module

This module attaches a LabelsTag to packets based on the configured filters. For each matching filter a new label is attached.

PacketTagger simple module

This module attaches various request tags to packets.

RateLimiter simple module

This module limit the datarate or the packetrate of a stream of packets based on the RateTag attached to the packets.

RateMeter simple module

This module attaches a RateTag to each packet specifying the datarate and packetrate of the received stream of packets. The algorithm takes older packets into account with an exponentially decreasing weight.

Known subclasses

Name Type Description
IPacketFilter module interface

This module interface is implemented by packet filter modules. A packet filter 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 popped from its output. Processed packets are either dropped, if they don't match the filter criteria, or they are passed through without any delay or reordering.

IPacketMarker module interface

This module interface is implemented by packet marker modules. A packet marker 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 popped from its output. When processing a packet, a marker attaches some information (such as a label) to the packet based on the data and meta data it contains. The packets are processed individually.

IPacketMeter module interface

This module interface is implemented by packet meter modules. A packet meter 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 popped from its output. When processing packets, a meter attaches some information (such as the packet rate) to the packets based on the data and meta data they contain. The packets are processed as part of a stream.

Properties

Name Value Description
display i=block/source

Source code

//
// This module interface is implemented by packet source modules which are both
// active and passive simultaneously.
//
// @see ~IPassivePacketSource, ~IActivePacketSource
//
moduleinterface IPacketSource
{
    parameters:
        @display("i=block/source");
    gates:
        output out @labels(push,pop);
}
File: src/inet/queueing/contract/IPacketSource.ned