SCTP supports several configuration variables which are TCL bindable. Each of the variables described in this subsection is both a class variable and an instance variable. Changing the class variable changes the default value for all agents that are created subsequently. Changing the instance variable of a particular agent only affects the values used by that agent. For example,
Agent/SCTP set pathMaxRetrans_ 5 # Changes the class variable; $sctp set pathMaxRetrans_ 5 # Changes pathMaxRetrans_ for the $sctp object only;
The default parameters for each SCTP agent are:
Agent/SCTP set debugMask_ 0 # 32-bit mask for modular toggle debugging control (see explanation); Agent/SCTP set debugFileIndex_ -1 # specifies debugging output file (see explanation); Agent/SCTP set associationMaxRetrans_ 10# RFC2960's Association.Max.Retrans; Agent/SCTP set pathMaxRetrans_ 5 # RFC2960's Path.Max.Retrans; Agent/SCTP set changePrimaryThresh_ -1 # change primary if error count exeeds thresh (default infinite); Agent/SCTP set maxInitRetransmits_ 8 # RFC2960's Max.Init.Retransmits; Agent/SCTP set oneHeartbeatTimer_ 1 # toggle HB timer for each dest vs one for all dests; Agent/SCTP set heartbeatInterval_ 30 # RFC2960's HB.interval in seconds; Agent/SCTP set mtu_ 1500 # MTU in bytes including IP header; Agent/SCTP set initialRwnd_ 65536 # initial receiver window in bytes (set on receiver side); Agent/SCTP set initialSsthresh_ 65536 # initial ssthresh value in bytes; Agent/SCTP set initialCwnd_ 2 # initial cwnd in multiple of (MTU - SCTP/IP headers); Agent/SCTP set initialRto_ 3.0 # default initial RTO = 3 secs; Agent/SCTP set minRto_ 1.0 # default min RTO = 1 sec; Agent/SCTP set maxRto_ 60.0 # default max RTO = 60 secs; Agent/SCTP set fastRtxTrigger_ 4 # 4 missing reports trigger fast rtx; Agent/SCTP set numOutStreams_ 1 # number of outgoing streams; Agent/SCTP set numUnrelStreams_ 0 # number of partially reliable streams (all grouped starting at stream 0); Agent/SCTP set reliability_ 0 # k-rtx value of all partially reliable streams; Agent/SCTP set unordered_ 0 # toggle all chunks are ordered/unordered; Agent/SCTP set ipHeaderSize_ 20 # IP header size; Agent/SCTP set dataChunkSize_ 1468 # includes data chunk header and restricted to 4 byte boundaries; Agent/SCTP set useDelayedSacks_ 1 # toggle on/off delayed sack algorithm (set on receiver side); Agent/SCTP set sackDelay_ 0.200 # rfc2960 recommends 200 ms; Agent/SCTP set useMaxBurst_ 1 # toggle on/off max burst; Agent/SCTP set rtxToAlt_ 1 # rtxs to which dest? 0 = same, 1 = alt, 2 = fast rtx to same + timeouts to alt; Agent/SCTP set dormantAction_ 0 # 0 = change dest, 1 = use primary, 2 = use last dest before dormant; Agent/SCTP set routeCalcDelay_ 0 # time to calculate a route (see explanation); Agent/SCTP set routeCacheLifetime_ 1.2 # how long a route remains cached (see explanation); Agent/SCTP set trace_all_ 0 # toggle on/off print all variables on a trace event;
The debugMask_ parameter is a 32-bit mask to turn on/off debugging for particular functions. See ~ns/sctp/sctpDebug.h for the mappings of the bitmask. A -1 may be used to clear all bits, and 0 is used to turn off all debugging. If debug_ (the standard ns debug flag) is set to 1, then all the bits in debugMask_ are set. Note: ns must be compiled with -DDEBUG for this option to work.
The debugFileIndex_ parameter is an integer to specify the file used for debugging output by an SCTP agent. Each instance of an SCTP agent can independently output debugging info to a separate file. For example, the data sender can log debugging output to one file, while the receiver logs to another file. If debugFileIndex_ is set to 0, the file used will be named debug.SctpAgent.0. If -1 is used, the debug output is sent to stderr. To avoid confusion, two SCTP agents should not send debug output to the same file. The default is -1. Note: ns must be compiled with -DDEBUG for this option to work.
The configuration parameters that deal with ordering and reliability options may be overridden by an SCTP-aware application (see Section 36.4).
The routeCalcDelay_ and routeCacheLifetime_ parameters are only used to optionally simulate overheads of reactive routing protocols in MANETs without actually simulating a MANET. (Do not use this feature if you are actually simulating a MANET!) The default setting for routeCalcDelay_ is 0 seconds, which means that this feature is turned off. The default setting for routeCacheLifetime_ is 1.2 seconds (ignored if this feature is turned off), which is purposely set slightly larger than the default min RTO to avoid a ``cache miss'' after a single timeout event.
Tom Henderson 2011-11-05