StreamClassifier¶
Package: inet.protocolelement.redundancy
simple module StreamClassifier
Classifies packets based on the stream they are part of. The stream
is determined by a StreamReq or a StreamInd or both.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
compound 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. |
|
compound 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 of the connections between the submodules based on the |
|
compound 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 |
|---|---|---|
simple module |
Base module for various packet classifier modules. Derived modules must implement a single packet classifier function which determines the index of the output gate for the next pushed packet. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
displayStringTextFormat |
string |
“classified %p pk (%l)” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
reverseOrder |
bool |
false |
|
mode |
string |
“both” |
|
mapping |
object |
{} |
Maps stream name to gate index |
gateIndexOffset |
int |
0 |
Specify the value to be added to the mapping output gate index |
defaultGateIndex |
int |
0 |
Default gate index if no matching streams are found |
Properties¶
Name |
Value |
Description |
|---|---|---|
class |
StreamClassifier |
|
display |
i=block/classifier |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
in |
input |
||
out [ ] |
output |
Signals¶
Name |
Type |
Unit |
Description |
|---|---|---|---|
packetPushed |
Statistics¶
Name |
Title |
Source |
Record |
Unit |
Interpolation Mode |
Description |
|---|---|---|---|---|---|---|
dataRate |
data rate |
throughput(packetPushed) |
vector |
bps |
linear |
the statistical value is the data rate of the classified packets |
packetLengths |
packet lengths |
packetLength(packetPushed) |
sum,histogram,vector |
b |
none |
the statistical value is the length of the classified packet |
packets |
packets |
packetPushed |
count |
pk |
the statistical value is the classified packet |
Source code¶
//
// Classifies packets based on the stream they are part of. The stream
// is determined by a `StreamReq` or a `StreamInd` or both.
//
simple StreamClassifier extends PacketClassifierBase like IPacketClassifier
{
parameters:
string mode @enum("req", "ind", "both") = default("both");
object mapping = default({}); // Maps stream name to gate index
int gateIndexOffset = default(0); // Specify the value to be added to the mapping output gate index
int defaultGateIndex = default(0); // Default gate index if no matching streams are found
@class(StreamClassifier);
}
File: src/inet/protocolelement/redundancy/StreamClassifier.ned