SctpClient

Package: inet.applications.sctpapp

SctpClient

simple module

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

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 0s

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

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

Gates

Name Direction Size Description
socketIn input
socketOut output

Signals

Name Type Unit
packetReceived inet::Packet
packetSent inet::Packet
echoedPk inet::Packet

Statistics

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

Scheduled messages (observed)

msgkindctrltagsmsgnamecontext
omnetpp::cMessage0CliAppTimer
omnetpp::cMessage1CliAppTimer
omnetpp::cMessage5StopTimer

Direct method calls (observed)

call tofunctioninfo
MessageDispatcherinet::MessageDispatcher::arrivedarrived
InterfaceTableinet::InterfaceTable::findInterfaceByNamefindInterfaceByName

Incoming messages (observed)

gatemsgkindctrlsrcModuletags
socketInIndication12 (SctpStatusInd::SCTP_I_SEND_MSG)SctpSctpCommandReq, SocketInd
socketInIndication21 (SctpStatusInd::SCTP_I_SENDSOCKETOPTIONS)SctpSctpCommandReq, SocketInd
socketInIndication3 (SctpStatusInd::SCTP_I_ESTABLISHED)SctpSctpConnectReq, SocketInd
socketInIndication5 (SctpStatusInd::SCTP_I_CLOSED)SctpSctpCommandReq, SocketInd

Outgoing messages (observed)

gatemsgkindctrldestModuletags
socketOutPacket3 (SctpCommandCode::SCTP_C_SEND)SctpDispatchProtocolReq, SctpSendReq, SocketReq
socketOutRequest1 (SctpCommandCode::SCTP_C_ASSOCIATE)SctpDispatchProtocolReq, SctpOpenReq, SocketReq
socketOutRequest13 (SctpCommandCode::SCTP_C_QUEUE_MSGS_LIMIT)SctpDispatchProtocolReq, SctpInfoReq, SocketReq
socketOutRequest14 (SctpCommandCode::SCTP_C_SHUTDOWN)SctpDispatchProtocolReq, SctpCommandReq, SocketReq
socketOutRequest22 (SctpCommandCode::SCTP_C_GETSOCKETOPTIONS)SctpDispatchProtocolReq, SctpSendReq, SocketReq
socketOutRequest5 (SctpCommandCode::SCTP_C_CLOSE)SctpDispatchProtocolReq, SctpCommandReq, SocketReq
socketOutRequest6 (SctpCommandCode::SCTP_C_ABORT)SctpDispatchProtocolReq, SctpCommandReq, SocketReq

Packet operations (observed)

chunkTypepacketAction
BytesChunkinsertAtBack

Shared Tagging operations (observed)

tagTypetagAction
DispatchProtocolReqaddTagIfAbsent
SctpCommandReqaddTag
SctpConnectReqgetTag
SctpInfoReqaddTag
SctpOpenReqaddTag
SctpSendReqaddTag, findTagForUpdate
SocketIndgetTag
SocketReqaddTagIfAbsent

Region Tagging operations (observed)

tagTypetagAction
CreationTimeTagaddTag

Tagging operations (observed)

tagTypetagAction
inet::Ipv4InterfaceDatafindTag
inet::Ipv6InterfaceDatafindTag

Source code

//
// Client app for SCTP-based request-reply protocols.
// Handles a single session (and SCTP connection) at a time.
//
simple SctpClient like IApp
{
    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(0s);  // 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
        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);
        @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