PeerService

Package: inet.protocolelement.service

PeerService

compound module

(no description)

multiplexer : PacketMultiplexer

This module connects multiple packet producers to one packet consumer.

Source:
multiplexer: PacketMultiplexer {
    @display("p=150,100");
} defragmenter[numDefragmenter] : FragmentNumberHeaderBasedDefragmenter

Source:
defragmenter[numDefragmenter]: FragmentNumberHeaderBasedDefragmenter {
    @display("p=150,200,row,100");
} classifier : DynamicClassifier

Source:
classifier: DynamicClassifier {
    @display("p=150,300");
}

Usage diagram

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

Used in compound modules

Name Type Description
MacService compound module (no description)

Parameters

Name Type Default value Description
numDefragmenter int 0

Properties

Name Value Description
display i=block/routing

Gates

Name Direction Size Description
in input
out output

Unassigned submodule parameters

Name Type Default value Description
multiplexer.displayStringTextFormat string "passed %p pk (%l)"

determines the text that is written on top of the submodule

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

determines the text that is written on top of the submodule

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

determines the text that is written on top of the submodule

classifier.reverseOrder bool false
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

classifier.submoduleName string
classifier.moduleType string

Source code

module PeerService
{
    parameters:
        int numDefragmenter = default(0);
        defragmenter[*].deleteSelf = true;
        @display("i=block/routing");
    gates:
        input in;
        output out;
    submodules:
        multiplexer: PacketMultiplexer {
            @display("p=150,100");
        }
        defragmenter[numDefragmenter]: FragmentNumberHeaderBasedDefragmenter {
            @display("p=150,200,row,100");
        }
        classifier: DynamicClassifier {
            @display("p=150,300");
        }
    connections:
        in --> classifier.in;
        for i=0..numDefragmenter-1 {
            classifier.out++ --> multiplexer.in++;
        }
        multiplexer.out --> out;
}

File: src/inet/protocolelement/service/MacService.ned