Package: inet.applications.sctpapp
SctpClient
simple moduleClient 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)
msg | kind | ctrl | tags | msgname | context |
---|---|---|---|---|---|
omnetpp::cMessage | 0 | CliAppTimer | |||
omnetpp::cMessage | 1 | CliAppTimer | |||
omnetpp::cMessage | 5 | StopTimer |
Direct method calls (observed)
call to | function | info |
---|---|---|
MessageDispatcher | inet::MessageDispatcher::arrived | arrived |
InterfaceTable | inet::InterfaceTable::findInterfaceByName | findInterfaceByName |
Incoming messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
socketIn | Indication | 12 (SctpStatusInd::SCTP_I_SEND_MSG) | Sctp | SctpCommandReq, SocketInd | |
socketIn | Indication | 21 (SctpStatusInd::SCTP_I_SENDSOCKETOPTIONS) | Sctp | SctpCommandReq, SocketInd | |
socketIn | Indication | 3 (SctpStatusInd::SCTP_I_ESTABLISHED) | Sctp | SctpConnectReq, SocketInd | |
socketIn | Indication | 5 (SctpStatusInd::SCTP_I_CLOSED) | Sctp | SctpCommandReq, SocketInd |
Outgoing messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
socketOut | Packet | 3 (SctpCommandCode::SCTP_C_SEND) | Sctp | DispatchProtocolReq, SctpSendReq, SocketReq | |
socketOut | Request | 1 (SctpCommandCode::SCTP_C_ASSOCIATE) | Sctp | DispatchProtocolReq, SctpOpenReq, SocketReq | |
socketOut | Request | 13 (SctpCommandCode::SCTP_C_QUEUE_MSGS_LIMIT) | Sctp | DispatchProtocolReq, SctpInfoReq, SocketReq | |
socketOut | Request | 14 (SctpCommandCode::SCTP_C_SHUTDOWN) | Sctp | DispatchProtocolReq, SctpCommandReq, SocketReq | |
socketOut | Request | 22 (SctpCommandCode::SCTP_C_GETSOCKETOPTIONS) | Sctp | DispatchProtocolReq, SctpSendReq, SocketReq | |
socketOut | Request | 5 (SctpCommandCode::SCTP_C_CLOSE) | Sctp | DispatchProtocolReq, SctpCommandReq, SocketReq | |
socketOut | Request | 6 (SctpCommandCode::SCTP_C_ABORT) | Sctp | DispatchProtocolReq, SctpCommandReq, SocketReq |
Packet operations (observed)
chunkType | packetAction |
---|---|
BytesChunk | insertAtBack |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
DispatchProtocolReq | addTagIfAbsent |
SctpCommandReq | addTag |
SctpConnectReq | getTag |
SctpInfoReq | addTag |
SctpOpenReq | addTag |
SctpSendReq | addTag, findTagForUpdate |
SocketInd | getTag |
SocketReq | addTagIfAbsent |
Region Tagging operations (observed)
tagType | tagAction |
---|---|
CreationTimeTag | addTag |
Tagging operations (observed)
tagType | tagAction |
---|---|
inet::Ipv4InterfaceData | findTag |
inet::Ipv6InterfaceData | findTag |
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