IPacketClassifier

Package: inet.queueing.contract

IPacketClassifier

module interface

This module interface is implemented by packet classifier modules. A packet classifier is a passive module which has one passive input and multiple active outputs. Packets pushed into the passive input are passed through to one of the active outputs without any delay and reordering.

IPacketClassifier

Inheritance diagram

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

Implemented by

Name Type Description
ContentBasedClassifier simple module

This module connects one packet producer to multiple packet consumers. It can be pushed with packets from the connected packet producer. When this happens, the classifier pushes the packet to one of its connected packet consumers based on the configured packet filters. The first matching expression determines the index of the output gate.

EtherFrameClassifier simple module

Classifier that forwards Ethernet PAUSE frames to the pauseOut gate, and other frames to the defaultOut gate.

LabelClassifier simple module

This module classifies packets based on the attached labels in a LabelsTag.

MarkovClassifier simple module

This module implements a packet classifier using a Markov process that has as many states as output gates the classifier has. The output gate for a given packet is determined by the current state of the Markov process.

PacketClassifier simple module

This module connects one packet producer to multiple packet consumers. It can be pushed with packets from the connected packet producer. When this happens, the classifier pushes the packet to one of its connected packet consumers based on the configured packet classifier function. The packet classifier function takes a packet and returns an integer which in turn is used for determining the output gate.

PriorityClassifier simple module

This classifier pushes packets into the first non-full among its connected packet consumers.

UserPriorityClassifier simple module

This module classifies packets based on the attached UserPriority tag.

WrrClassifier simple module

This module implements weighted round-robin classifier.

Used in compound modules

Name Type Description
EtherQosQueue compound module

Queue module that gives the PAUSE frames a higher priority, and can be parametrized with an IPacketQueue for serving the data frames.

EtherQosRedQueue compound module

Queue module that gives the PAUSE frames a higher priority, and using Random Early Detection algorithm on data frames, and can be parametrized with an IPacketQueue for serving the data frames.

PriorityQueue compound module

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

RequestConsumer compound module

This module processes incoming packets one by one in the order they arrive. First it classifies a packet according to the configured classifier function, then it generates tokens for the selected category in the configured response producer.

TelnetServerConnection compound module

This module contains a configurable pre-composed telnet traffic source and traffic sink as part of a telnet server application.

Extends

Name Type Description
IPassivePacketSink module interface

This module interface must be implemented by passive packet sink modules. A passive packet sink, also called a consumer, has one input that must be connected to an active packet source module. The connected active packet source is expected to push packets into the passive packet sink over time.

Properties

Name Value Description
display i=block/classifier

Source code

//
// This module interface is implemented by packet classifier modules. A packet
// classifier is a passive module which has one passive input and multiple
// active outputs. Packets pushed into the passive input are passed through to
// one of the active outputs without any delay and reordering.
//
moduleinterface IPacketClassifier extends IPassivePacketSink
{
    parameters:
        @display("i=block/classifier");
    gates:
        output out[] @labels(push);
}
File: src/inet/queueing/contract/IPacketClassifier.ned