SctpClient

Package: inet.applications.sctpapp

simple module SctpClient

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

inet.applications.sctpapp.SctpClientSctpClientsimple

Inheritance diagram

Extends

Name

Type

Description

SimpleModule

simple module

Base module for all INET simple modules.

Parameters

Name

Type

Default value

Description

displayStringTextFormat

string

“{socketState}”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

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 the 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 the last message sent and abort

reconnectInterval

double

0s

If the 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

streamToReset

int

0

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

class

SctpClient

Gates

Name

Direction

Size

Description

socketIn

input

socketOut

output

Signals

Name

Type

Unit

Description

echoedPk

inet::Packet

packetReceived

inet::Packet

packetSent

inet::Packet

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

echoedPk

packets echoed

echoedPk

count,”sum(packetBytes)”,”vector(packetBytes)”

none

packetReceived

packets received

packetReceived

count,”sum(packetBytes)”,”vector(packetBytes)”

none

packetSent

packets sent

packetSent

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 extends SimpleModule like IApp
{
    parameters:
        @class(SctpClient);
        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 the 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 the last message sent and abort
        double reconnectInterval @unit(s) = default(0s);  // If the 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
        int streamToReset = default(0);
        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);
        displayStringTextFormat = default("{socketState}");
        @signal[packetSent](type=inet::Packet);
        @signal[packetReceived](type=inet::Packet);
        @signal[echoedPk](type=inet::Packet);
        @statistic[packetReceived](title="packets received"; source=packetReceived; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[packetSent](title="packets sent"; source=packetSent; 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 socketIn;
        output socketOut;
}

File: src/inet/applications/sctpapp/SctpClient.ned