Package: inet.protocolelement.redundancy
StreamSplitter
simple moduleThis module duplicates incoming packets based on the stream they are part of. The stream is determined by the StreamReq tag that is attached to the packet. The number of outgoing packet is determined by the mapping parameter. Each outgoing packet will have an attached StreamReq with the tag name taken from the mapping parameter.
See also: StreamMerger
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
Name | Type | Description |
---|---|---|
PacketPusherBase | simple module |
This is a base module for various packet pusher modules. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
displayStringTextFormat | string | "processed %p pk (%l)" |
determines the text that is written on top of the submodule |
mapping | object | {} |
map from input stream names to array of output stream names, empty string means no stream |
Properties
Name | Value | Description |
---|---|---|
display | i=block/fork | |
class | StreamSplitter |
Gates
Name | Direction | Size | Description |
---|---|---|---|
in | input | ||
out | output |
Direct method calls (observed)
call to | function | info |
---|---|---|
StreamEncoder | inet::StreamEncoder::pushPacket | pushPacket |
Called methods (observed)
function | info | call from |
---|---|---|
inet::StreamSplitter::pushPacket | pushPacket | StreamIdentifier |
Pushed in messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
in | Packet | 0 | StreamIdentifier | DirectionTag, EncapsulationProtocolReq, MacAddressReq, PacketProtocolTag, SequenceNumberReq, StreamReq, DispatchProtocolInd?, DispatchProtocolReq?, DropEligibleReq?, InterfaceInd?, InterfaceReq?, MulticastReq?, NetworkProtocolInd?, PcpReq?, SocketReq?, TransportProtocolInd?, UserPriorityReq?, VlanReq? |
Push out messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
out | Packet | 0 | StreamEncoder | DirectionTag, EncapsulationProtocolReq, MacAddressReq, PacketProtocolTag, SequenceNumberReq, StreamReq, DispatchProtocolInd?, DispatchProtocolReq?, DropEligibleReq?, InterfaceInd?, InterfaceReq?, MulticastReq?, NetworkProtocolInd?, PcpReq?, SocketReq?, TransportProtocolInd?, UserPriorityReq?, VlanReq? |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
StreamReq | addTagIfAbsent, findTag |
Source code
// // This module duplicates incoming packets based on the stream they are part of. // The stream is determined by the StreamReq tag that is attached to the packet. // The number of outgoing packet is determined by the mapping parameter. Each // outgoing packet will have an attached StreamReq with the tag name taken from // the mapping parameter. // // @see ~StreamMerger // simple StreamSplitter extends PacketPusherBase like IPacketPusher { parameters: object mapping @mutable = default({}); // map from input stream names to array of output stream names, empty string means no stream @class(StreamSplitter); @display("i=block/fork"); }File: src/inet/protocolelement/redundancy/StreamSplitter.ned