TelnetClientTraffic

Package: inet.tutorials.queueing

TelnetClientTraffic

compound module

(no description)

characterProducer : like IActivePacketSource

ActivePacketSource: An active packet source which pushes packets into the connected module.

IActivePacketSource: Interface for active packet source modules.

Source:
characterProducer: <default("ActivePacketSource")> like IActivePacketSource {
    parameters:
        packetLength = 1B;
        packetData = intuniform(97, 122); // lower case ASCII characters
        productionInterval = uniform(0.1s, 0.2s); // typing speed between 5 and 10 characters per secon... enterProducer : like IActivePacketSource

ActivePacketSource: An active packet source which pushes packets into the connected module.

IActivePacketSource: Interface for active packet source modules.

Source:
enterProducer: <default("ActivePacketSource")> like IActivePacketSource {
    parameters:
        packetLength = 1B;
        packetData = 13; // enter character
        productionInterval = 0.1s;
        @display("p=300,100");
} emptyProducer : like IActivePacketSource

EmptyPacketSource: An active/passive empty packet source.

IActivePacketSource: Interface for active packet source modules.

Source:
emptyProducer: <default("EmptyPacketSource")> like IActivePacketSource {
    parameters:
        @display("p=500,100");
} scheduler : like IPacketScheduler

MarkovScheduler: Implements a packet scheduler using a Markov process that has as many states as input gates the...

IPacketScheduler: Interface for packet scheduler modules.

Source:
scheduler: <default("MarkovScheduler")> like IPacketScheduler {
    parameters:
        transitionProbabilities = "0 1 0 0 0 1 1 0 0"; // character -> enter -> wait -> character
        waitIntervals = "uniform(0,3) 0 uniform(10,30)";
        @display("p=300,200");
} consumer : like IPassivePacketSink

PassivePacketSink: A passive packet sink which is pushed with packets by the connected packet producer.

IPassivePacketSink: Interface for passive packet sink modules.

Source:
consumer: <default("PassivePacketSink")> like IPassivePacketSink {
    parameters:
        @display("p=100,200");
}

Usage diagram

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

Used in

Name Type Description
TelnetTutorialStep network (no description)

Properties

Name Value Description
display i=block/app

Gates

Name Direction Size Description
in input
out output

Source code

module TelnetClientTraffic
{
    parameters:
        @display("i=block/app");
    gates:
        input in;
        output out;
    submodules:
        characterProducer: <default("ActivePacketSource")> like IActivePacketSource {
            parameters:
                packetLength = 1B;
                packetData = intuniform(97, 122); // lower case ASCII characters
                productionInterval = uniform(0.1s, 0.2s); // typing speed between 5 and 10 characters per second
                @display("p=100,100");
        }
        enterProducer: <default("ActivePacketSource")> like IActivePacketSource {
            parameters:
                packetLength = 1B;
                packetData = 13; // enter character
                productionInterval = 0.1s;
                @display("p=300,100");
        }
        emptyProducer: <default("EmptyPacketSource")> like IActivePacketSource {
            parameters:
                @display("p=500,100");
        }
        scheduler: <default("MarkovScheduler")> like IPacketScheduler {
            parameters:
                transitionProbabilities = "0 1 0 0 0 1 1 0 0"; // character -> enter -> wait -> character
                waitIntervals = "uniform(0,3) 0 uniform(10,30)";
                @display("p=300,200");
        }
        consumer: <default("PassivePacketSink")> like IPassivePacketSink {
            parameters:
                @display("p=100,200");
        }
    connections:
        characterProducer.out --> scheduler.in++;
        enterProducer.out --> scheduler.in++;
        emptyProducer.out --> scheduler.in++;
        scheduler.out --> { @display("m=s"); } --> out;
        in --> { @display("m=s"); } --> consumer.in;
}

//-------------------------------------------------


File: tutorials/queueing/QueueingTutorial.ned