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.

inet.applications.sctpapp.SctpNatPeerSctpNatPeersimple

Inheritance diagram

Extends

Name

Type

Description

SimpleModule

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;
}

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