Simple Module SCTPClient

Package: inet.applications.sctpapp
File: src/inet/applications/sctpapp/SCTPClient.ned

C++ definition

Client app for SCTP-based request-reply protocols. Handles a single session (and SCTP connection) at a time.

SCTPClient

Usage diagram:

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

Inheritance diagram:

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

Parameters:

Name Type Default value Description
localAddress string ""

comma separated list of addresses

localPort int 0

port number to listen on

connectAddress string

server address (may be symbolic)

connectPort int

port number to connect to

startTime double 1s

time first session begins

numRequestsPerSession int 1

number of requests sent per session

numPacketsToReceive int 0
requestLength int 1452

length of a request (bytes)

thinkTime double 0s

time gap between requests

waitToClose double 0s

time to wait between last message sent and abort

reconnectInterval double 0

if connection breaks, waits this much before trying to reconnect

inboundStreams int 17
outboundStreams int 1
echo bool false

echoes received packages when true

ordered bool true
queueSize int 0
prMethod int 0

0=NONE, 1=PR_TTL, 2=PR_RTX, 3=PR_PRIO, 4=PR_STRRST

prValue double 0

for PR-SCTP

streamReset bool false
streamRequestTime double 0s
streamResetType int 5

NO_RESET=5, RESET_OUTGOING=6, RESET_INCOMING=7, RESET_BOTH=8, SSN_TSN=9

streamAnswer bool false
stopTime double -1s

time of finishing sending, negative values mean forever

primaryTime double 0s
newPrimary string ""
streamRequestLengths string ""
streamRequestRatio string ""
streamPriorities string ""
finishEndsSimulation bool false

Properties:

Name Value Description

Gates:

Name Direction Size Description
sctpIn input
sctpOut output

Signals:

Name Type Unit
sentPk SCTPSimpleMessage
rcvdPk cPacket
echoedPk SCTPSimpleMessage

Statistics:

Name Title Source Record Unit Interpolation Mode
sentPk packets sent sentPk count, sum(packetBytes), vector(packetBytes) none
rcvdPk packets received rcvdPk count, sum(packetBytes), vector(packetBytes) none
echoedPk packets echoed echoedPk count, sum(packetBytes), vector(packetBytes) none

Source code:

//
// Client app for SCTP-based request-reply protocols.
// Handles a single session (and SCTP connection) at a time.
//
simple SCTPClient like ISCTPApp
{
    parameters:
        string localAddress = default(""); // comma separated list of addresses
        int localPort = default(0); // port number to listen on
        string connectAddress;  // server address (may be symbolic)
        int connectPort; // port number to connect to
        double startTime @unit(s) = default(1s); // time first session begins
        volatile int numRequestsPerSession = default(1);  // number of requests sent per session
        int numPacketsToReceive = default(0);
        int requestLength = default(1452); // length of a request (bytes)
        double thinkTime @unit(s) = default(0s); // time gap between requests
        double waitToClose @unit(s) = default(0s); //time to wait between last message sent and abort
        double reconnectInterval @unit(s) = default(0);  // if connection breaks, waits this much before trying to reconnect
        int inboundStreams = default(17);
        int outboundStreams = default(1);
        bool echo = default(false);  // echoes received packages when true
        bool ordered = default(true);
        int queueSize = default(0);
        int prMethod = default(0);  //0=NONE, 1=PR_TTL, 2=PR_RTX, 3=PR_PRIO, 4=PR_STRRST
        double prValue = default(0); //for PR-SCTP
        bool streamReset = default(false);
        double streamRequestTime @unit(s) = default(0s);
        int streamResetType = default(5);  //NO_RESET=5, RESET_OUTGOING=6, RESET_INCOMING=7, RESET_BOTH=8, SSN_TSN=9
        bool streamAnswer = default(false);
        double stopTime @unit(s) = default(-1s);  // time of finishing sending, negative values mean forever
        double primaryTime @unit(s) = default(0s);
        string newPrimary = default("");
        string streamRequestLengths = default("");
        string streamRequestRatio = default("");
        string streamPriorities = default("");
        bool finishEndsSimulation = default(false);
        @signal[sentPk](type=SCTPSimpleMessage);
        @signal[rcvdPk](type=cPacket);
        @signal[echoedPk](type=SCTPSimpleMessage);
        @statistic[rcvdPk](title="packets received"; source=rcvdPk; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[sentPk](title="packets sent"; source=sentPk; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[echoedPk](title="packets echoed"; source=echoedPk; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);

    gates:
        input sctpIn;
        output sctpOut;
}