IPacketClassifier¶
Package: inet.queueing.contract
module interface IPacketClassifier
Interface for 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 or reordering.
Inheritance diagram¶
Implemented by¶
Name |
Type |
Description |
|---|---|---|
simple module |
Classifier that forwards Ethernet PAUSE frames to the |
|
simple module |
Classifies packets based on the attached PCP value [0, 7]. The PCP is determined by a |
|
compound module |
Classifies packets based on the attached PCP value [0, 7]. The PCP is determined by a |
|
simple module |
Classifies packets based on the stream they are part of. The stream is determined by a |
|
simple module |
Connects one packet producer to multiple packet consumers. It can be populated with packets from the connected packet producer. When this occurs, 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. |
|
simple module |
This packet classifier module classifies packets using two token buckets. Each packet is classified depending on which token bucket is the first one that contains the required number of tokens for the packet. |
|
simple module |
(no description) |
|
simple module |
Classifies packets based on the attached labels in a LabelsTag. |
|
simple 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. |
|
simple module |
Classifies packets into the first bucket that contains the required number of tokens. The packet is forwarded to the output gate that corresponds to the selected bucket. |
|
simple 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. |
|
simple module |
This classifier pushes packets into the first non-full among its connected packet consumers. |
|
simple module |
This packet classifier module classifies packets using two token buckets. Each packet is classified depending on which token bucket is the first one that contains the required number of tokens for the packet. |
|
simple module |
This packet classifier module classifies packets using one token bucket. Each packet is classified depending on whether the token bucket contains the required number of tokens for the packet. |
|
simple module |
Classifies packets to the first output gate if the bucket contains enough number of tokens for the packet passing through, otherwise the second output gate is used. The amount of required tokens is equal to the packet length in bits and is subtracted from the number of stored tokens. New tokens are generated with the provided constant rate and they may also be added by other modules. |
|
simple module |
Classifies packets based on the attached ~UserPriority tag. |
|
simple module |
Implements a weighted round-robin classifier. |
Extends¶
Name |
Type |
Description |
|---|---|---|
module interface |
Interface for 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¶
//
// Interface for 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 or reordering.
//
moduleinterface IPacketClassifier extends IPassivePacketSink
{
parameters:
@display("i=block/classifier");
gates:
output out[] @labels(push);
}