PacketDemultiplexer

Package: inet.queueing.common

PacketDemultiplexer

simple module

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.

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 tofunctioninfo
ActivePacketSinkinet::queueing::ActivePacketSink::handleCanPullPacketChangedhandleCanPullPacketChanged
PassivePacketSourceinet::queueing::PassivePacketSource::pullPacketpullPacket

Called methods (observed)

functioninfocall from
inet::queueing::PacketDemultiplexer::handleCanPullPacketChangedhandleCanPullPacketChangedPassivePacketSource
inet::queueing::PacketDemultiplexer::pullPacketpullPacketActivePacketSink

Pull in messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0PassivePacketSourceDirectionTag, PacketProtocolTag

Pulled out messages (observed)

gatemsgkindctrldestModuletags
out[]Packet0ActivePacketSinkDirectionTag, 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