ReceiverHost

Package: inet.tutorials.protocol

ReceiverHost

compound module

(no description)

PassivePacketSink PassivePacketSink PassivePacketSink ContentBasedClassifier DynamicDefragmenter FcsHeaderChecker PacketReceiver

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Used in

Name Type Description
Network90 network (no description)

Properties

Name Value Description
networkNode
display i=device/pc

Gates

Name Direction Size Description
g input

Unassigned submodule parameters

Name Type Default value Description
sinkA.displayStringTextFormat string "received %p pk (%l)"

determines the text that is written on top of the submodule

sinkA.clockModule string ""

relative path of a module that implements IClock(1,2); optional

sinkA.consumptionInterval double 0s

elapsed time between subsequent packets allowed to be pushed by the connected packet producer, 0 means any number of packets can be pushed at the same simulation time

sinkA.scheduleForAbsoluteTime bool true

when a clock is used relative means that setting the clock will not affect the simulation time of the event

sinkB.displayStringTextFormat string "received %p pk (%l)"

determines the text that is written on top of the submodule

sinkB.clockModule string ""

relative path of a module that implements IClock(1,2); optional

sinkB.consumptionInterval double 0s

elapsed time between subsequent packets allowed to be pushed by the connected packet producer, 0 means any number of packets can be pushed at the same simulation time

sinkB.scheduleForAbsoluteTime bool true

when a clock is used relative means that setting the clock will not affect the simulation time of the event

sinkC.displayStringTextFormat string "received %p pk (%l)"

determines the text that is written on top of the submodule

sinkC.clockModule string ""

relative path of a module that implements IClock(1,2); optional

sinkC.consumptionInterval double 0s

elapsed time between subsequent packets allowed to be pushed by the connected packet producer, 0 means any number of packets can be pushed at the same simulation time

sinkC.scheduleForAbsoluteTime bool true

when a clock is used relative means that setting the clock will not affect the simulation time of the event

classifier.displayStringTextFormat string "classified %p pk (%l)"

determines the text that is written on top of the submodule

classifier.reverseOrder bool false
classifier.defaultGateIndex int 0

default gate index if no matching labels are found

classifier.packetFilters object

array of packet filter expressions

defragmenter.multiplexer.displayStringTextFormat string "passed %p pk (%l)"

determines the text that is written on top of the submodule

defragmenter.multiplexer.forwardServiceRegistration bool true
defragmenter.multiplexer.forwardProtocolRegistration bool true
defragmenter.defragmenter.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

defragmenter.defragmenter.deleteSelf bool false
defragmenter.defragmenter.headerPosition string "front"
defragmenter.classifier.displayStringTextFormat string "classified %p pk (%l)"

determines the text that is written on top of the submodule

defragmenter.classifier.reverseOrder bool false
defragmenter.classifier.classifierClass string

determines the output queue of packets, the parameter must be the name of a C++ class which implements the IPacketClassifierFunction interface and is registered via Register_Class

defragmenter.classifier.submoduleName string
defragmenter.classifier.moduleType string
fcsChecker.displayStringTextFormat string "dropped %d/%p pk (%k/%l)"

determines the text that is written on top of the submodule

fcsChecker.backpressure bool false
fcsChecker.headerPosition string "back"
receiver.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

receiver.datarate double

Source code

module ReceiverHost
{
    parameters:
        @networkNode;
        @display("i=device/pc");
    gates:
        input g;
    submodules:
        sinkA: PassivePacketSink {
            @display("p=100,100");
        }
        sinkB: PassivePacketSink {
            @display("p=200,100");
        }
        sinkC: PassivePacketSink {
            @display("p=300,100");
        }
        classifier: ContentBasedClassifier {
            @display("p=200,200");
        }
        defragmenter: DynamicDefragmenter {
            @display("p=200,300");
        }
        fcsChecker: FcsHeaderChecker {
            @display("p=200,400");
        }
        receiver: PacketReceiver {
            @display("p=200,500");
        }
    connections:
        g --> receiver.in;
        receiver.out --> fcsChecker.in;
        fcsChecker.out --> defragmenter.in;
        defragmenter.out --> classifier.in;
        classifier.out++ --> sinkA.in;
        classifier.out++ --> sinkB.in;
        classifier.out++ --> sinkC.in;
}

File: tutorials/protocol/Network90.ned