A FCFS router queues and forwards packets in the order in which they arrive. Each output port of the router has a queue associated with it. These queues are of limited size, and packets routed to an output port while its queue is full are dropped by the router.
The following arguments can be used with the router:
buf=<integer>
Sets the number of buffers in the router's queue. The router will be able to queue up to this number of messages; any additional messages will be dropped. The default is 0, so this parameter must be specified.
shorttrace=<integer>[:<integer>]
Specifies the lowest level of trace detail, mainly information about losses. The integer arguments specify the quantity of resources dedicated to saving the trace information. The first integer argument specifies the size, in trace entries (about 8 bytes each), of the circular buffer used to hold trace information in memory. If the optional :<integer> portion of the argument is not specified, this number also represents the maximum size of the trace file. Thus, an argument of 10000 specifies a buffer size of 10,000 entries, and the trace file will contain no more than this number of entries. If the second integer argument is given, it specifies the maximum number of memory buffers that the disk file may contain. When this argument is specified, then once the circular buffer is full, the buffer is dumped to the trace file before its traces are overwritten. Thus, 10000:3 specifies a buffer size of 10,000 entries and a trace file of up to 30,000 entries. Be aware that the trace file also operates as a circular buffer, and if more than the maximum number of trace entries are generated, the earliest will be overwritten. In general, it is recommended that the file be bigger than the internal trace buffer.
pktTrace=<integer>[:<integer>]
Specifies a medium level of trace detail, mainly information is saved for each packet routed (e.g., packet length, IP addresses, TCP ports). See shorttrace for information on the meaning of the integer arguments. Also see pktTracePortIn and pktTracePortOut.
trace=<integer>[:<integer>]
Specifes the highest level of trace detail. This option traces everything a router does, and is used mostly for debugging. Since trace implies all of the tracing of pktTrace, the options used to identify interfaces to be traced with pktTrace (e.g., pktTracePortIn) can also be specified with trace. See shorttrace for information on the integer arguments.
pktTracePortIn=<IP address>
If pktTrace is specified, save trace information for packets arriving on the router interface specified by <IP address>. If you wish to trace multiple ports, include multiple
pktTracePortIn options, one for each port.
pktTracePortOut=<IP address>
If pktTrace is specified, save trace information for packets leaving by the router interface specified by <IP address>. If you wish to trace multiple ports, include multiple
pktTracePortOut options, one for each port.
traceIn=<IP address>
In conjunction with any trace function (e.g., shorttrace,
pktTrace, or trace), traces the average number of bytes/second arriving on the specified interface. If you wish to trace multiple ports, include multiple traceIn options, one for each port.
traceOut=<IP address>
In conjunction with any trace function (i.e., shorttrace,
pktTrace, or trace), traces the average number of bytes/second sent on the specified interface. If you wish to trace multiple ports, include multiple traceOut options, one for each port.
traceInOut=<IP address>
In conjunction with any trace function (i.e., shorttrace,
pktTrace, or trace), traces the average number of bytes/second arriving on any interface, but directed to the specified interface. Note that this number may be higher than the traceOut for the same interface, since more packets may be arriving than the bandwidth of the outgoing link can accommodate. If you wish to trace multiple ports, include multiple traceInOut options, one for each port.
pktTraceBeginTime=<real>[unit] pktTraceEndTime=<real>[unit]
Denote an interval during which to save packet traces. Frequently, packet traces are not of interest until traffic connections have stabilized, so the interval can exclude the first few seconds of a simulation. The optional unit can be s (seconds),
ms (milliseconds), or us (microseconds). The default is milliseconds.
timeInc=<integer>[unit]
Specifies a time period used by some of the trace functions. Functions traceIn, traceInOut, traceOut, and traceQueue compute an average and a minimum/maximum over this time period, at the end of which a trace entry is saved and a new interval begun. The default value is 100ms. The optional unit can be us (microseconds), ms (milliseconds), or s (seconds). The default unit is microseconds. Multiple timeInc options can be specified per line, and the ordering of arguments is important. When a timeInc is encountered, all appropriate trace functions following this timeInc will use its time period, until another timeInc occurs. This allows a different tracing granularity to be used for separate network interfaces.
traceQueue=<IP address>
In conjunction with any trace function (i.e., shorttrace,
pktTrace, or trace), traces the minimum, maximum, and average number of packets queued to be sent on the specified interface. If you wish to trace multiple ports, include multiple traceQueue options, one for each port.
traceQueueLen=<IP address>
In conjunction with any trace function (i.e., shorttrace,
pktTrace, or trace), this option traces the minimum, maximum, and average number of bytes queued to be sent on the specified interface. This option works like traceQueue, except that the number of bytes in the queue are traced, rather than the number of packets.