NED File src/inet/applications/sctpapp/SCTPNatPeer.ned
Name |
Type |
Description |
SCTPNatPeer
|
simple module
|
(no description)
|
Source code:
package inet.applications.sctpapp;
// Copyright (C) 2008 Irene Ruengeler
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
//
// Accepts any number of incoming TCP connections, and sends back the
// messages that arrive on them, The lengths of the messages are
// multiplied by echoFactor before sending them back (echoFactor=1 will
// result in sending back the same message unmodified.) The reply can also be
// delayed by a constant time (echoDelay parameter).
//
// When TCPEchoApp receives data packets from TCP (and such, when they can be
// echoed) depends on the sendQueue/receiveQueue setting of TCPMain.
// With TCPVirtualBytesSendQueue/RcvQueue, TCP passes up data to us
// as soon as a segment arrives, so it can be echoed immediately.
// With TCPMsgBasedSendQueue/RcvQueue, our local TCP reproduces the same
// messages that the sender app passed down to its TCP -- so if the sender
// app sent a single 100 MB message, it will be echoed only when all
// 100 megabytes have arrived.
//
import inet.applications.contract.ISCTPApp;
simple SCTPNatPeer like ISCTPApp
{
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
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 connection breaks, waits 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 sctpIn;
output sctpOut;
}