Package: inet.protocolelement.redundancy
StreamIdentifier
simple moduleIdentifies the stream of a packet using packet filter expressions. It can check for arbitrary packet data and assign an if a match was found then the stream is attached to the packet in the ~StreamReq tag.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Used in
| Name | Type | Description |
|---|---|---|
| PeekingUnderTheHoodShowcase | network | (no description) |
Extends
| Name | Type | Description |
|---|---|---|
| PacketFlowBase | simple module |
Base module for various packet flow modules. A packet flow module passes or streams all pushed or pulled packets after processing them from its input to its output. |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| displayStringTextFormat | string | "processed %p pk (%l)" |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
| hasSequenceNumbering | bool | true | |
| mapping | object | [] |
Array of objects, where each object specifies a stream name and a packetFilter, for example [{stream: "s0", packetFilter: "*"}, ...] |
Properties
| Name | Value | Description |
|---|---|---|
| class | StreamIdentifier | |
| display | i=block/blackboard |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| in | input | ||
| out | output |
Signals
| Name | Type | Unit | Description |
|---|---|---|---|
| packetPushedIn | inet::Packet | ||
| packetPulledIn | inet::Packet | ||
| packetPushedOut | inet::Packet | ||
| packetPulledOut | inet::Packet |
Statistics
| Name | Title | Source | Record | Unit | Interpolation Mode | Description |
|---|---|---|---|---|---|---|
| flowIncomingDataRate | flow specific incoming data rate | throughput(demuxFlow(merge(packetPushedIn, packetPulledIn))) | vector | bps | linear |
the statistical value is the flow specific data rate of the incoming packets |
| outgoingDataRate | outgoing data rate | throughput(merge(packetPushedOut, packetPulledOut)) | vector | bps | linear |
the statistical value is the data rate of the outgoing packets |
| incomingDataRate | incoming data rate | throughput(merge(packetPushedIn, packetPulledIn)) | vector | bps | linear |
the statistical value is the data rate of the incoming packets |
| outgoingPacketLengths | outgoing packet lengths | packetLength(merge(packetPushedOut, packetPulledOut)) | sum, histogram, vector | b | none |
the statistical value is the length of the outgoing packet |
| flowIncomingPacketLengths | flow specific incoming packet lengths | packetLength(demuxFlow(merge(packetPushedIn, packetPulledIn))) | sum, histogram, vector | b | none |
the statistical value is the flow specific length of the incoming packet |
| flowOutgoingDataRate | flow specific outgoing data rate | throughput(demuxFlow(merge(packetPushedOut, packetPulledOut))) | vector | bps | linear |
the statistical value is the flow specific data rate of the outgoing packets |
| incomingPacketLengths | incoming packet lengths | packetLength(merge(packetPushedIn, packetPulledIn)) | sum, histogram, vector | b | none |
the statistical value is the length of the incoming packet |
| flowOutgoingPacketLengths | flow specific outgoing packet lengths | packetLength(demuxFlow(merge(packetPushedOut, packetPulledOut))) | sum, histogram, vector | b | none |
the statistical value is the flow specific length of the outgoing packet |
| incomingPackets | incoming packets | merge(packetPushedIn, packetPulledIn) | count | pk |
the statistical value is the incoming packet |
|
| outgoingPackets | outgoing packets | merge(packetPushedOut, packetPulledOut) | count | pk |
the statistical value is the outgoing packet |
Source code
// // Identifies the stream of a packet using packet filter expressions. // It can check for arbitrary packet data and assign an if a match was found then // the stream is attached to the packet in the ~StreamReq tag. // simple StreamIdentifier extends PacketFlowBase like IPacketFlow { parameters: bool hasSequenceNumbering = default(true); object mapping @mutable = default([]); // Array of objects, where each object specifies a stream name and a packetFilter, for example [{stream: "s0", packetFilter: "*"}, ...] @class(StreamIdentifier); @display("i=block/blackboard"); }File: src/inet/protocolelement/redundancy/StreamIdentifier.ned