SctpNatPeer¶
Package: inet.applications.sctpapp
simple module SctpNatPeer
Implements a peer application for SCTP NAT traversal. Supports both standard and rendezvous connection establishment methods to traverse NAT devices. Exchanges NAT traversal information with other peers and handles data transfer with configurable parameters. Supports multi-homing with multiple addresses.
Inheritance diagram¶
Extends¶
Name |
Type |
Description |
|---|---|---|
simple module |
Base module for all INET simple modules. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
displayStringTextFormat |
string |
“{statusStr}\nrcvd: {bytesRcvd} bytes\nsent: {bytesSent} bytes” |
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 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 |
outboundStreams |
int |
1 |
|
inboundStreams |
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 |
streamReset |
bool |
false |
|
streamRequestTime |
double |
0s |
|
streamResetType |
int |
5 |
NO_RESET=5, RESET_OUTGOING=6, RESET_INCOMING=7, RESET_BOTH=8, SSN_TSN=9 |
prValue |
double |
0 |
for PR-SCTP |
echoDelay |
double |
0s |
double stopTime @unit(s) = default(0s); |
delayFirstRead |
double |
0s |
|
numPacketsToSendPerClient |
int |
0 |
Number of requests sent per session |
numPacketsToReceivePerClient |
int |
1 |
|
ownName |
int |
0 |
|
peerName |
int |
0 |
|
rendezvous |
bool |
false |
|
multi |
bool |
false |
|
streamPriorities |
string |
“” |
Properties¶
Name |
Value |
Description |
|---|---|---|
class |
SctpNatPeer |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
socketIn |
input |
||
socketOut |
output |
Source code¶
//
// Implements a peer application for SCTP NAT traversal. Supports both standard
// and rendezvous connection establishment methods to traverse NAT devices.
// Exchanges NAT traversal information with other peers and handles data transfer
// with configurable parameters. Supports multi-homing with multiple addresses.
//
simple SctpNatPeer extends SimpleModule like IApp
{
parameters:
@class(SctpNatPeer);
displayStringTextFormat = default("{statusStr}\nrcvd: {bytesRcvd} bytes\nsent: {bytesSent} bytes");
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
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 the connection breaks, wait this much before trying to reconnect
int outboundStreams = default(1);
int inboundStreams = 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
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 prValue = default(0); //for PR-SCTP
//double stopTime @unit(s) = default(0s);
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 ownName = default(0);
int peerName = default(0);
bool rendezvous = default(false);
bool multi= default(false);
string streamPriorities = default("");
gates:
input socketIn;
output socketOut;
}