Package: inet.queueing.common
PacketDemultiplexer
simple moduleThis module connects multiple packet collectors to one packet provider. When a packet is pulled by one of the connected packet collectors, then the demultiplexer simply pulls a packet from the connected packet provider.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
| Name | Type | Description | 
|---|---|---|
| PacketProcessorBase | simple module | 
 This is a base module for various packet processing modules which maintains a few statistics.  | 
   
Parameters
| Name | Type | Default value | Description | 
|---|---|---|---|
| displayStringTextFormat | string | "passed %p pk (%l)" | 
 determines the text that is written on top of the submodule  | 
   
Properties
| Name | Value | Description | 
|---|---|---|
| display | i=block/fork | |
| class | PacketDemultiplexer | 
Gates
| Name | Direction | Size | Description | 
|---|---|---|---|
| in | input | ||
| out [ ] | output | 
Direct method calls (observed)
| call to | function | info | 
|---|---|---|
| ActivePacketSink | inet::queueing::ActivePacketSink::handleCanPullPacketChanged | handleCanPullPacketChanged | 
| PassivePacketSource | inet::queueing::PassivePacketSource::pullPacket | pullPacket | 
Called methods (observed)
| function | info | call from | 
|---|---|---|
| inet::queueing::PacketDemultiplexer::handleCanPullPacketChanged | handleCanPullPacketChanged | PassivePacketSource | 
| inet::queueing::PacketDemultiplexer::pullPacket | pullPacket | ActivePacketSink | 
Pull in messages (observed)
| gate | msg | kind | ctrl | srcModule | tags | 
|---|---|---|---|---|---|
| in | Packet | 0 | PassivePacketSource | DirectionTag, PacketProtocolTag | 
Pulled out messages (observed)
| gate | msg | kind | ctrl | destModule | tags | 
|---|---|---|---|---|---|
| out[] | Packet | 0 | ActivePacketSink | DirectionTag, PacketProtocolTag | 
Source code
// // This module connects multiple packet collectors to one packet provider. When // a packet is pulled by one of the connected packet collectors, then the demultiplexer // simply pulls a packet from the connected packet provider. // simple PacketDemultiplexer extends PacketProcessorBase like IActivePacketSink // TODO , IPassivePacketSource // out gate is vector { parameters: displayStringTextFormat = default("passed %p pk (%l)"); @class(PacketDemultiplexer); @display("i=block/fork"); gates: input in @labels(pull); output out[] @labels(pull); }File: src/inet/queueing/common/PacketDemultiplexer.ned