Package: inet.protocolelement.redundancy
StreamClassifier
simple moduleThis module classifies packets based on the stream they are part of. The stream is determined by a StreamReq or a StreamInd or both.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
| Name | Type | Description |
|---|---|---|
| PacketClassifierBase | simple module |
This is a 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 |
| reverseOrder | bool | false | |
| mode | string | "both" | |
| mapping | object | {} |
maps stream name to gate index |
| gateIndexOffset | int | 0 |
specify 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 |
|---|---|---|
| display | i=block/classifier | |
| class | StreamClassifier |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| in | input | ||
| out [ ] | output |
Signals
| Name | Type | Unit |
|---|---|---|
| packetPushed | inet::Packet |
Statistics
| Name | Title | Source | Record | Unit | Interpolation Mode |
|---|---|---|---|---|---|
| packetLengths | packet lengths | packetLength(packetPushed) | sum, histogram, vector | b | none |
| dataRate | data rate | throughput(packetPushed) | vector | bps | linear |
| packets | packets | packetPushed | count | pk |
Direct method calls (observed)
| call to | function | info |
|---|---|---|
| StreamIdentifier | inet::StreamIdentifier::handleCanPushPacketChanged | handleCanPushPacketChanged |
| PacketMultiplexer | inet::queueing::PacketMultiplexer::pushPacket | pushPacket |
| InteractiveGate | inet::queueing::InteractiveGate::pushPacket | pushPacket |
Called methods (observed)
| function | info | call from |
|---|---|---|
| inet::StreamClassifier::handleCanPushPacketChanged | handleCanPushPacketChanged | PacketMultiplexer, InteractiveGate |
| inet::StreamClassifier::pushPacket | pushPacket | StreamDecoder, StreamIdentifier |
Pushed in messages (observed)
| gate | msg | kind | ctrl | srcModule | tags |
|---|---|---|---|---|---|
| in | Packet | 0 | StreamDecoder | DirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, StreamInd, UserPriorityInd, VlanInd | |
| in | Packet | 0 | StreamIdentifier | DirectionTag, PacketProtocolTag, StreamReq |
Push out messages (observed)
| gate | msg | kind | ctrl | destModule | tags |
|---|---|---|---|---|---|
| out[] | Packet | 0 | PacketMultiplexer | DirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, StreamInd, UserPriorityInd, VlanInd | |
| out[] | Packet | 0 | InteractiveGate | DirectionTag, PacketProtocolTag, DispatchProtocolReq?, DropEligibleInd?, EncapsulationProtocolInd?, InterfaceInd?, MacAddressInd?, PcpInd?, StreamInd?, StreamReq?, UserPriorityInd?, VlanInd? |
Shared Tagging operations (observed)
| tagType | tagAction |
|---|---|
| EligibilityTimeTag | findTag |
| LabelsTag | findTag |
| StreamInd | findTag |
| StreamReq | findTag |
Source code
// // This module 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 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