Package: inet.applications.sctpapp
SctpPeer
simple moduleImplements a versatile SCTP application that can function as both client and server simultaneously. Supports sending and receiving data with configurable parameters including multi-streaming, PR-SCTP, and stream reset capabilities. Provides options for echo functionality, ordered/unordered delivery, and configurable think times between transmissions.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
| Name | Type | Description |
|---|---|---|
| SimpleModule | simple module |
Base module for all INET simple modules. |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| displayStringTextFormat | string | "" |
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 |
| echo | bool | false |
Echoes received packages when true |
| echoDelay | double | 0s | |
| delayFirstRead | double | 0s | |
| numPacketsToSendPerClient | int | 0 |
Number of requests sent per session |
| numPacketsToReceivePerClient | int | 1 | |
| 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 |
| ordered | bool | true | |
| outboundStreams | int | 1 | |
| inboundStreams | int | 17 | |
| 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 | |
| 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 | |
| streamPriorities | string | "" |
Properties
| Name | Value | Description |
|---|---|---|
| class | SctpPeer | |
| display | i=block/app |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| socketIn | input | ||
| socketOut | output |
Signals
| Name | Type | Unit | Description |
|---|---|---|---|
| packetReceived | inet::Packet | ||
| packetSent | inet::Packet | ||
| echoedPk | inet::Packet |
Statistics
| Name | Title | Source | Record | Unit | Interpolation Mode | Description |
|---|---|---|---|---|---|---|
| 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 |
Source code
// // Implements a versatile SCTP application that can function as both client and // server simultaneously. Supports sending and receiving data with configurable // parameters including multi-streaming, PR-SCTP, and stream reset capabilities. // Provides options for echo functionality, ordered/unordered delivery, and // configurable think times between transmissions. // simple SctpPeer extends SimpleModule like IApp { parameters: @class(SctpPeer); string localAddress = default(""); // Comma-separated list of addresses int localPort = default(0); // Port number to listen on bool echo = default(false); // Echoes received packages when true double echoDelay @unit(s) = default(0s); double delayFirstRead @unit(s) = default(0s); int numPacketsToSendPerClient = default(0); // Number of requests sent per session int numPacketsToReceivePerClient = default(1); 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 bool ordered = default(true); int outboundStreams = default(1); int inboundStreams = default(17); 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); 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 int numRequestsPerSession = default(1); // Number of requests sent per session int numPacketsToReceive = default(0); string streamPriorities = default(""); @display("i=block/app"); @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 @labels(SctpCommand/up); output socketOut @labels(SctpCommand/down); }File: src/inet/applications/sctpapp/SctpPeer.ned