PacketCloner

Package: inet.queueing.common

PacketCloner

simple module

This module connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. When this happens, a separate copy of the packet is pushed to each output gate.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Used in compound modules

Name Type Description
PacketHistory compound module

This module connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. It keeps a copy of the last N packets pushed into its input. The packets are available in the runtime user interface (Qtenv) for inspection.

TelnetServerConnection compound module

This module contains a configurable pre-composed telnet traffic source and traffic sink as part of a telnet server application.

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 "processed %p pk (%l)"

determines the text that is written on top of the submodule

Properties

Name Value Description
display i=block/star
class PacketCloner

Gates

Name Direction Size Description
in input
out [ ] output

Direct method calls (observed)

call tofunctioninfo
PacketClassifierinet::queueing::PacketClassifier::pushPacketpushPacket
PacketMultiplexerinet::queueing::PacketMultiplexer::pushPacketpushPacket
MarkovSchedulerinet::queueing::MarkovScheduler::handleCanPushPacketChangedhandleCanPushPacketChanged
PassivePacketSinkinet::queueing::PassivePacketSink::pushPacketpushPacket
ActivePacketSourceinet::queueing::ActivePacketSource::handleCanPushPacketChangedhandleCanPushPacketChanged

Called methods (observed)

functioninfocall from
inet::queueing::PacketCloner::handleCanPushPacketChangedhandleCanPushPacketChangedPacketClassifier, PacketMultiplexer, PassivePacketSink
inet::queueing::PacketCloner::pushPacketpushPacketMarkovScheduler, ActivePacketSource

Pushed in messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0MarkovSchedulerDirectionTag, PacketProtocolTag
inPacket0ActivePacketSourceDirectionTag, PacketProtocolTag

Push out messages (observed)

gatemsgkindctrldestModuletags
out[]Packet0PacketClassifierDirectionTag, PacketProtocolTag
out[]Packet0PacketMultiplexerDirectionTag, PacketProtocolTag
out[]Packet0PassivePacketSinkDirectionTag, PacketProtocolTag

Source code

//
// This module connects one packet producer to one packet consumer. It can be
// pushed with packets from the connected packet producer. When this happens,
// a separate copy of the packet is pushed to each output gate.
//
simple PacketCloner extends PacketProcessorBase like IPassivePacketSink // IActivePacketSource // TODO out gate is vector
{
    parameters:
        @class(PacketCloner);
        @display("i=block/star");
    gates:
        input in @labels(push);
        output out[] @labels(push);
}
File: src/inet/queueing/common/PacketCloner.ned