ns: Change History
ns-2.28 [PENDING RELEASE]
ns-2.27
Released on Mon Jan 12 13:59:17 PST 2004
- [Padma Haldar]
Tue Dec 23 09:37:01 PST 2003
Changed list-based improvement to allow changing of channels. Previously only a single (static) list of nodes maintained. Now list of nodes maintained for each channel. Maybe extended for mobilenodes with multiple netif (talking to multiple channels) once the multiple netif support is in place.
- [Padma Haldar]
Wed Dec 17 13:57:44 PST 2003
Added validation test-suite for RNG in ns.
- [Padma Haldar]
Mon Dec 15 15:31:59 PST 2003
Added modified version of setdest from U. of Michigan. Also added an argument to setdest API that defines the version of setdest being used.
- [Xuan Chen]
Thu Nov 27 15:33:28 PST 2003
Change the name of dumbPolicy to nullPolicy for consistency with diffserv
documentations (suggested by Alexander Sayenko).
- [Padma Haldar]
Tue Nov 18 16:33:49 PST 2003
Added list-based improvement to ns-2. Code contributed by Valerie Naoumuv (naoumov@inf.ethz.ch). The improvement involves maintaining a doubly-linked list to organise mobilenodes based on their X-coordinates. When sending a packet only those neighbor nodes are considered who are within a circle corresponding to the carrier-sense threshold energy level, below which a node cannot hear the packet. Improvement on original version where all nodes in topology is considered. considerable gain in run-time performance- goes down by about 4 to 20 times, depending on the size of the topology. The larger the topology and greater the no of nodes, greater the improvement seen with the list-based implementation. Pl see relevant papaer "simulation of large adhoc networks", appeared at MSWiM'03, san diego, USA for details.
- [Padma Haldar]
Tue Oct 21 10:17:45 PDT 2003
Added script that takes event/color pairs and colors pkts in nam output files in order to highlight nam events.
- [Xuan Chen]
Sat Oct 11 23:39:02 PDT 2003
Modified ns to build with tcl/tk8.4 and new otcl/tclcl (release pending).
- changed to use const char* (instead of char *) to get the
returned value of tcl.result();
- used tcl.result(const char*) directly in emulate/net-ip.cc (see
source code for details).
- [Padma Haldar]
Mon Oct 6 16:54:58 PDT 2003
Diffusion documentation added to ns-manual.
- [Padma Haldar]
Diffusion changes made includes
(1)Added tcl example scripts for 2 phase-pull, push, 1 phase-pull and gear (with push and 2pp) scenarios.
For gear and other node-position dependent routing in diffusion, need to have a callback to update node positions. since the routing filter (like gear) is init'ed before node positions are assigned gear doesn't get the correct node positions, hence the callback is required. callback would also be reqd to support node movements in diffusion in future.
For now start gear filters (in tcl scripts) after node positions are assigned to nodes. This will go away once callbacks are implemented.
(2)Added fix suggested by Andreas Koepke for overflow problem in lib/main/tools.cc
- [Xuan Chen]
Sat Oct 4 14:59:08 PDT 2003
Added worm model to support simulations of Internet worm attacks.
This model supports different abstract levels in simulations.
It simulates a detailed sub-network at packet level, and the rest of the
Internet with an analytical model (SIR). It supports two worm scanning
behaviors: random and local-preferred.
This worm model is implemented as an application. It uses message-passing
support to send scan packets.
- [Xuan Chen]
Sat Oct 4 10:44:59 PDT 2003
Added event tracing function for simple-mac and 802.11.
It was contributed by Sushmita to
support wireless animations.
- [Xuan Chen]
Sat Oct 4 9:34:19 PDT 2003
Added directory for nam animations under ns/tcl/edu. Each subdirecotry
contains on animation, including short description, simulation script,
trace file, and nam trace.
These animations are ready to use in classroom.
The current three animations are contributed by
Sushmita as the outcome of her
directed research project.
- [Aditi Kapoor]
Tue Sep 22 5:40:41 PDT 2003.
Integrated support for infrastructure mode in 802.11 MAC. The code was was written by Mike Moreton
- [Padma Haldar]
Tue Sep 9 15:40:41 PDT 2003
Fixed bug (reported by Fred Stann) in diffusion3 that caused overflow while reading time ( > 2147 sec).
- [Sally Floyd]
Tue Sept 9 2003
New module Delayer for introducing delay variation and channel allocation
delay. This is useful for modeling the effects of wireless links.
Validation tests in "./test-all-links".
Code contributed by Andrei Gurtov.
- [Padma Haldar]
Wed Aug 20 15:52:01 PDT 2003
Ported SCTP into ns-2. It was actually ported into ns-2.26 by Armando L. Caro Jr. and his group at PEL, Univ of delaware. The implementation includes a test-suite-sctp and doc for sctp (see chapter on SCTP in ns-manual).
- [Padma Haldar]
Tue Aug 5 16:27:32 PDT 2003
Added APIs for diffusion filters to node-config command. See tcl/ex/diffusion3 for examples. Also changed UIDs in common pkt hdr. It now reflects pkt_num_ as in diffusion message hdr.
- [Sally Floyd]
Tue Jul 29 2003
Adding ts_resetRTO_ to TCP to control whether or not a timestamp-enabled
sender unbacks a backed-off RTO after making a valid RTT measurement
from an acknowledged, retransmitted packet. Validation tests
are in "./test-all-tcpOptions" in "tcl/test":
"./test-all-tcpOptions timeouts_sack2" (with ts_resetRTO_ true)
"./test-all-tcpOptions timeouts_sack3" (with ts_resetRTO_ false).
The suggestion and initial code for this change are from Andrei Gurtov.
Also adding exitFastRetrans_ to TCP, to fix a problem with clean exits
from Fast Recovery. Set to false for the old buggy behavior, or set
to true for the new good behavior. The default is true.
"./test-all-tcpOptions timeouts_reno_noexitFR"
shows the old behavior, and:
"./test-all-tcpOptions timeouts_reno"
shows the fixed new behavior. The problem was that data was sent
in response to dup acks even after Fast Recovery was over. From a
bug report by Andrei Gurtov.
- [johnh]
Fri Jul 25 17:50:55 PDT 2003
Improved portability for C++ namespaces
(required for gcc-3.2 where the standard C++ libraries like iostream
are in namespace stl only).
- [Padma Haldar]
Wed Jul 23 15:24:13 PDT 2003
Added trace support for smac. The "mactype" info stored in simulator is used to trace data as well as mac pkts (smac or 802.11).
- [Padma Haldar]
Tue Jul 15 14:48:53 PDT 2003
Ported diffusion3.2.0 into ns. A lot of changes: all applications re-categorized under gear, ping and rmst. Filters have a separate dir. gradient now replaced with one-and two-phase-pull-filter under filter_core.
- [Sally Floyd]
Mon May 6 2003
Changed the defaults for Agent/TCP/Newreno's newreno_changes1_ and
partial_window_deflation_ to "1", to reflect RFC 2582.
- [Sally Floyd]
Thu Mar 27 2003
Adding avoidReordering_ to DelayLink, set to true to avoid reordering
when changing link bandwidth or delay. The code was contributed by
Andrei Gurtov, and the validation test is in ./test-all-links
in the directory tcl/test. The default is for avoidReordering_ to
be false, for no change in past behavior.
ns-2.1b10[OLD VERSION NO]/ns-2.26[NEW VERSION NO]
Released on Wed Feb 26 11:40:51 PST 2003
- [Padma Haldar]
Wed Feb 26 11:40:51 PST 2003
New Version numbering with this release [from Johnh]
As of this release we are changing the ns and nam version numbering
scheme from 2.1b10 (major.minor alpha/beta increment) to simply 2.26
(major.minor). Unlike typical software that goes through well defined
cycles of alpha/beta development towards a release, different parts of
ns are at different levels of maturity. For example, the TCP code is
quite mature, while the newest S-MAC code is still at an alpha stage.
Thus, the distinctions in the old numbering scheme were not useful.
We call the new release 2.26 because it's the 26th release in the ns-2
series. Our hope is that this version will be less confusing than the
alternatives, and a clear shift in the version numbering scheme.
Similarly, the current nam release is nam-1.9.
- [Padma Haldar]
Fri Feb 21 09:46:54 PST 2003
Fixed a bug in 802.11 that results in premature re-setting of the short retry counter. This results in higher number of retries for a failed transmission in mac than the allowable limit.
- [Tim Buchheim]
Fri Feb 14 17:03:06 PST 2003
- Emulation now builds on Darwin (Mac OS X) but it is still untested.
- Wired nodes with coordinates set will have their coordinates written to the nam trace file.
- Wireless broadcast packets in a nam trace now use new nam options for enhanced animation.
- [Xuan Chen]
Sun Feb 2 10:07:35 PST 2003
Integrated JoBS, which is a queuing discipline that
provides quality-of-service (QoS) to traffic aggregates (i.e., traffic classes).
JoBS is contributed by Nicolas Christin.
- [Xuan Chen]
Sat Feb 1 10:07:35 PST 2003
Fixed various small bugs to make sure test suites pass on sygwin with
the help form Nicolas Christin.
- [Padma Haldar]
Thu Jan 30 16:06:34 PST 2003
Fixed a synchronisation bug in smac that resulted in 2 neighbor nodes not hearing each other as one sleeps when other is awake. Now all nodes wait for SYNCPERIOD and then try to send out a sync pkt. Any node that receives a sync pkt for the firsttime resets its schedule to match that of its neighbor. Essentially all nodes follow the same schedule.
- [Sally Floyd]
Fri Jan 24 2003
Added a validation test suite, test-all-quickstart, for Srikanth
Sundarrajan's port of QuickStart to NS. Also ported Srikanth's
QuickStart code from TCP/Newreno/QS (in tcp-qs.cc) into the one-way
TCP modules (tcp.cc, tcp-newreno.cc tcp-reno.cc tcp-sack1.cc).
QuickStart is an experimental proposal to allow end nodes to
ask permission from routers for high initial sending rates.
- [Padma Haldar]
Wed Jan 22 16:40:16 PST 2003
Most macros used in smac parameterised and converted to variables; Only tunable mac parameters were left untouched as these would be used by users to finetune smac performance.
- [Sally Floyd]
Thu Jan 16 2003
Adding a patch to drop-tail to check if the queue would have
overflowed *before* adding a packet to the queue, and to drop the
packet in this case without adding it to the queue. This improves
the efficiency of the code for simulations with large queues. Code
contributed by Tom Kelly.
- [Sally Floyd]
Tue Jan 14 2003
Added additions to the scoreboard so that Sack TCP can run more
efficiently with large windows. With this change, Sack TCP uses
the Reassembly Queue based scoreboard.
This involved the addition of scoreboard-rq.cc, adding two new
procedures in rq.cc, and a one-line change in tcp-sack1.cc to use
the new scoreboard.
Code contributed by Tom Kelly.
(The small GetNextUnacked() routine in scoreboard-rq.cc was added by
Sally, and this
log entry was added one day late...)
- [Sally Floyd]
Mon Dec 30 2002
Fixed a bug for the "QOption_" option with Sack TCP,
for responding to a quiescent period. By default, this
option is off.
- [Sally Floyd]
Sun Dec 29 2002
Added partial_ack_, for better performance for Sack TCP with
partial acks during Fast Recovery. For validation, see
"./test-all-tcpVariants multiple_partial_ack_sack" and
"./test-all-tcpVariants multiple_sack" in the directory tcl/test.
Adding GetNextUnacked() to scoreboard.cc for use by Sack TCP in responding
to partial ACKs.
- [Srikanth Sundarrajan]
Thu Dec 19 03:54:40 PST 2002
- Implementation for
TCP Quick Start
(Work in progress)
- The following files were modified/added
- classifier/classifier-qs.{cc.h}, qs/hdr_qs.{cc,h}, tcp/tcp-qs.cc
- qs/qsagent.{cc,h}, queue/queue.{cc,h}, routing/rtmodule.{cc,h}
- tcl/lib/{ns-qsnode,ns-default,ns-lib}.tcl
- [Sally Floyd]
Wed Dec 18 21:24:43 PST 2002
Added oldCode_ for TFRC, for those who want to use the old code that
does not give good behavior with data-limited applications.
For the new code, added "datalimited_" to identify a data-limited
application, so that TFRC can send a packet immediately when new data
becomes available from the application. The old code always waited
for the next send timer to expire.
Also, when a timer expires saying that no status report has been
received from the receiver, the old code always halved the allowed
sending rate. The new code only halves the allowed sending rate
when a packet had been sent within the most recent two round-trip
times, or when the current rate was greater than four pkts per RTT.
Thus, in the new code, then the timer expires because no packets
had been sent by the sender, the allowed sending rate is not reduced
below two packets per RTT.
The validation test for these changes is "./test-all-quiescent"
in the directory tcl/test.
- [Sally Floyd]
Tue Dec 17 09:27:13 PST 2002
Made a change to the TFRC receiver to add robustness in the presence of
reordering, in conformance with the TFRC specification.
Added numPkts_ to Agent/TFRCSink, to set the number of non-sequential
data packets before a missing packet is counted as a loss.
The default for numPkts_ is set to 3.
The previous TFRC code was equivalent to setting numPkts_ to 1.
- [Yuri Pryadkin]
Mon Dec 2 12:51:52 PST 2002
- Updated simultaneous events test suite to cycle through all known
schedulers. This test suite now does not use the template as well as any
reference input and validates itself. Modified files:
tcl/test/{test-all-simultaneous,test-suite-simultaneous.tcl}.
Removed: tcl/test/test-output-simultaneous.
- Map scheduler cleanup:
- Use std::set instead of std::map
- Removed deque-code as unused/inefficient
- Removed hint iterator (supposed to make insertions faster, but
did not)
- Formatting changes.
Modified files: common/scheduler-map.cc
- Small changes to the splay scheduler. Modified files:
common/splay-scheduler.cc.
- [Padma Haldar]
Tue Nov 26 15:11:41 PST 2002
Checkd in diffusion3.1.3 -sync'ed with Fabio's 3.1.3 version
- [Padma Haldar]
Tue Nov 26 10:37:04 PST 2002
Checking in warning for SMAC and adding smac test-suite to daily-validation.
NOTE FOR SMAC: The SMAC implementation in ns-2 is a first-cut and work in progress. I'm sure we could improve the performance by fine-tuning the parameters in future, especially the process of sync'ing with neighboring nodes about sleep schedules.
The warning about SMAC using sleep-wakeup cycles is about starting apps only after nodes sync which is about 40sec with the current default values (duty-cycle of 10%).
- [Padma Haldar]
Wed Nov 6 16:19:36 PST 2002
Added a second round of changes for SMAC.SMAC now supports sleep/wakeup cycle which can be turned on using syncFlag_ instead of having to recompile earlier. Added sync tests in the smac test-suite.
- [Kun-chan Lan]
Thu Oct 24 11:45:11 PDT 2002
Support of pipeline and generation of multiple traffic models in RAMP
- [Sally Floyd]
Sun Oct 20 20:31:45 PDT 2002
Added numdupacksFrac_ and numdupacks() to tcp.h, to specify a larger
value of numdupacks, when desired, when the congestion window is large.
The validation test is "./test-all-sack sack_dupacks" and
"./test-all-sack sack_dupacks1" in tcl/test.
- [Di-Fa Chang]
Wed Oct 9 16:50:16 PDT 2002
Make ns built under gcc 3.x. (minor C++ syntax changes)
- [Padma Haldar]
Wed Oct 9 14:01:58 PDT 2002
Checking in smac, this time with SYNC (sleep/wakeup) cycles.
[johnh] Wed Sep 25 13:37:26 PDT 2002
Changed set-animation-rate to use nam's set_rate_ext
command rather than set_rate.
- [Alefiya Hussain]
Mon Sep 23 04:13:13 PDT 2002
Emulation performance improvement: Added support for dispacting multiple
packets at once from bpf filter into nse. This reduces packet drops
in the kernel and tranfers the onus of deciding which packets to drop to
nse. Patch submitted by: Shashi Guruprasad.
- [Padma Haldar]
Thu Sep 19 09:45:55 PDT 2002
Contributed by Anant Utgikar that supports gratuitous replies to be sent as per IETF aodv draft spec. files changed aodv.cc and aodv_packet.h
- [Srikanth Sundarrajan]
Mon Sep 17 19:25:15 PDT 2002
- Enabled standard event tracing for SRM. File: tcl/mcast/srm.tcl, mcast/srm.cc
- Integerated LMS to NS. Author - [Dr. Christos Papadopoulos]
- mcast/classifier-lms.cc, mcast/lms-agent.cc, mcast/lms-receiver.cc, mcast/lms.h
- mcast/lms-sender.cc, mcast/lms-agent.cc, mcast/rcvbuf.{cc, h}
- queue/errmodel.{cc, h}, routing/rtmodule.{cc, h}, common/packet.h
- tcl/lib/ns-default.tcl, tcl/lib/ns-lib.tcl, tcl/mcast/ns-lms.tcl
- Fixed event tracing in PGM, nam trace write disabled. Files: pgm/pgm-agent.cc, pgm/pgm-receiver.cc, pgm/pgm-sender.cc
- [Sally Floyd]
Mon Sep 16 20:52:25 PDT 2002
Added keepSeqnoStats_ to the QueueMonitor to keep records of the
seqno in TCP data packets on that link. This is illustrated
in "./test-all-simple stats3" in the directory "tcl/test". A comment
in test-suite-simple.tcl also gives instructions for plotting this
and the RTTs on a graph.
- [Padma Haldar]
Mon Sep 16 10:54:07 PDT 2002
This round of changes for diffusion includes:
- sync'ing with pre-release version 3.1.2. Sync'ing with the final release version is pending subject to the release itself.
- event-queue re-sturctured. added timers-manager abstraction. ns diffusion now supports remove-timer() and findevent() functions.
- suppression of duplicate data in the network that results due to rapidly subscribing/unsubscribing apps.
- [Sally Floyd]
Sun Sep 15 22:43:01 PDT 2002
Added last_rtt_ to the TCP header to contain the most recent RTT
measurement, in ms, from the TCP sender. This is for statistics only.
Also added keepRTTstats_ to the QueueMonitor to keep records of the
RTT measurements in TCP data packets on that link. This is illustrated
in "./test-all-simple stats3" in the directory "tcl/test".
- [Alefiya Hussain]
Tue Aug 19 17:41:00 PDT 2002
- Fixed memory leaks in emulation code
- Removed check for duplicate packets. This check can be implemented using
correct bpf filter as pointed out by Shashi Guruprasad.
- [Srikanth Sundarrajan]
Tue Aug 6 20:41:00 PDT 2002
- Fixed session delay parameter copy problem in srm. File: tcl/mcast/srm.tcl
- Fixed marking problem in BST. File: tcl/mcast/BST.tcl
- Added Event Tracing to PGM. Files: pgm/pgm-agent.cc, pgm/pgm-receiver.cc, pgm/pgm-sender.cc
- [Yuri Pryadkin]
Thu Aug 1 18:33:24 PDT 2002
Bugfixes in RealTimeScheduler:
- Cancelled events may have been dispatched.
- FIFO property for same time sim events was broken.
Additionally:
- Added blocking wait if there is nothing to do
- clock_ is always synchronized with the RT clock before
dispatching events.
- Now RealTimeScheduler is derived from CalendarScheduler for better
performance.
- Other cosmetic changes.
Thanks to Shashi Guruprasad for helping test/debug various patches.
Files: common/{scheduler.{h,cc},scheduler-map.cc,splay-scheduler.cc}
- [Yuri Pryadkin]
Tue Jul 23 14:30:05 PDT 2002
Tuned up CalendarScheduler::newwidth() using the tcp bottleneck
benchmark. Files: common/scheduler.{h,cc}
- [Yuri Pryadkin]
Thu Jul 18 16:02:39 PDT 2002
Small cleanup of splay scheduler. Small cleanup of calendar scheduler
(common/scheduler.{h,cc}): removed clock_ as part of the internal
state, so it can be freely modified in derived classes
e.g. RT-scheduler. Also removed resize_enabled_ checks, as they seem
to be useless. RT scheduler can be derived from Calendar now.
- [Yuri Pryadkin]
Tue Jul 16 15:29:58 PDT 2002
Added new scheduler Scheduler/Splay (common/splay-scheduler.cc).
Although it's not yet tuned up, it promises pretty good performance
and less memory usage than Calendar or Heap.
- [Yuri Pryadkin]
Mon Jul 8 19:20:24 PDT 2002
Changes to the calendar scheduler (scheduler.{cc,h}):
- No limitation on the bucket width (use of `fmod()', which is POSIX).
- No round-off error accumulation because a new method for
checking year-wraps is used.
- Different algorithm for calculating bucket width by sampling
that deals with butch-enqueues and aims and minimizing the
longest bucket queue.
- A bug fix that was there before and somehow didn't show (?)
- Double-linked list for events that gives us O(1) performance for
event cancellation. This comes at a price of one more pointer
per event.
- [haldar]
Thu Jul 18 19:35:53 PDT 2002
As a part of doing bug-fix for dsr (port from CMU) that was resulting in a large number of TTL drops due to pkt looping also added a priority-queue class. This version of priQ called CMUPriQueue maintains separate queues for different priority classes (like rtg, real-time, arp and normal) whereas the ns version has the same queue while providing priority to different control/arp pkts.
- [haldar]
Tue Jul 2 14:42:08 PDT 2002
1. random-id for core-diffusion agent is changed to match node-id in ns.
2. added functionality to dump statistical info at stop-time by core diff agent.
3. moved ptr to mobilenode into library (diffappagent). now all applications (like gear etc) aneed to access this handle to mobilenode in library to get moblenode specific info (like node position, node-id etc)
- [Kun-chan Lan]
Fri June 28 2002
Adding support of FullTcp and variable packet size for RAMP
The major changes include:
1. Adding a callback function in FullTcp code, which allows
the sender to signal receiver that it has sent out all the data
in the buffer
2. Request and response data now is sent in bytes (previously it
is sent in packet)
3. When creating session, a CDF of segment size is used to enable
variable packet size for different TCP connections in the simulation
4. empweb now by default uses FullTcp (flags in empweb.tcl
are provided to switch back to use old TCP)
There are some original FullTcp bugs that I have not
figured out how to solve yet, will look into it later.
1. Even FullTcp allows sending data in both directions, it
assumes data only sends in one direction and ack sends
in the other. Hence you will see in the trace
file that some ACKs which are actually DATAs (you can tell
by the packet size)
2. the sequence number will mess up when both sides
are sending data using a single FullTcp connection
- [Xuan Chen]
Fri Jul 12 11:33:05 PDT 2002
Add a simple web server model into web traffic.
Users can choose to include server delay into their simulation.
Currently, two server scheduling policies are supported:
first-come-first-serve and shortest-task-first.
For detailed information, please refer to
ns/tcl/test/test-suite-webtraf.tcl.
- [Yuri Pryadkin]
Fri Jun 14 15:59:49 PDT 2002
Moved ref_counter_ from common header to the Packet class itself;
added the refcopy() function. Updated mac-802.3.cc to use the new
iface to the ref. counter, plus support ref-copying + broadcasting.
Fixed-up sessionhelper.cc to use the new interface to the counter,
which simplified the code; changed indentation.
- [Yuri Pryadkin]
Thu Jun 13 17:25:47 PDT 2002
Fixed a memory leak in mac802.3, small debugging cleanup, plus another
small change to allow it work together with Channel/NoDup. Added
Channel/NoDup to channel.cc; Channel::recv is now virtual.
- [Padma Haldar]
Thu Jun 6 15:44:17 PDT 2002
Added Fred Stann's fix to macc-802.11 that now allows random slot selection in the contention window everytime a data brdcast pkt or an RTS is sent out to the network.
- [Padma Haldar]
Thu May 30 10:41:31 PDT 2002
Removed compilation problem seen when STL is disables. Removed all PGM and NIXVECTOR ifdefs from entire code as these were already ifdef'ed by HAVE_STL macro, since both pgm and nix-vector code uses STL extensively. Now pgm/nix object files get always linked. STL_OBJ now holds diffusion files only since we share these files with SCADDS and thus cannot use ns-specific delimiters.
- [Padma Haldar]
Wed May 29 15:00:03 PDT 2002
Added GEAR into diffusion. added tcl wrappers for gear.
- [Padma Haldar]
Tue May 14 14:01:21 PDT 2002
Added map scheduler that uses STL map and dequeue collections to implement a scheduler in ns. Code contributed by George Riley, Georgia tech. see common/scheduler-map.cc for details.
- [Padma Haldar]
Tue May 7 10:39:21 PDT 2002
Added patches for bug fix in queue from George Riley. Files changed are:
queue.cc, drop-tail.cc, semantic-packetqueue.cc & semantic-packetqueue.h
Packet-queue now returns the last tail, everytime a new pkt in enqueued;
- [Padma Haldar]
Mon May 6 14:48:54 PDT 2002
Merged another round of changes of diffusion (3.1.0) into ns. Dir locations have changed, naming convention changed; push added etc.
- [Sally Floyd]
Tue Apr 30 10:25:20 PDT 2002.
Added configurable parameter "mark_p_" to Queue/RED to control the
decision of whether a selected packet is to be marked or dropped. When
p < mark_p, the selected packet is marked if ECN is being used.
When p > mark_p, the selected packet is dropped instead of marked, whether
or not ECN is being used. By default, mark_p_ is set to 0.1, and with
this setting, the behavior of the validation tests is unchanged.
[Tim Buchheim]
Wed Jul 3 18:00:00 PDT 2002
Many fixes to allow compilation on Windows
[Tim Buchheim]
Wed Jul 3 18:00:00 PDT 2002
Fixes for compiling on FreeBSD, Solaris, SUSE Linux
[Padma Haldar]
Tue Jun 4 16:22:13 PDT 2002
Made changes to allow non-STL builds of ns. All STL specific tcl code has been moved under respective files and they get sourced (or not) from ns-lib.tcl as opposed to from the Makefile as before.
[johnh]
Wed May 22 11:51:40 PDT 2002
Added autoconf detection of STL namespace (ported from lavaps :-).
- [Padma Haldar]
Wed Apr 10 13:27:37 PDT 2002
Bug fix and optimisation for calendar schduler; contributed by Yuri Pryadkin.
1. If the new calculated width of bucket is 0 (happens when multiple events are all scheduled at the same time), use the old calculated width.
2. when max_/nw is greater than unsigned long defined for the system, calculate new width by multiplying a factor that leaves some space for future events.
- [Debojyoti Dutta]
Added an approximate analytical simulator module to NS2. With this package,
one can quickly simulate the steady state of a network comprising of long
and short lived TCP flows with DropTail and RED queueing. To incorporate
this module, I have added small amounts of code in several functions that
can be turned on by a single Simulator useasim_ flag.
- [Padma Haldar]
Applied Benyuan Liu's patch which makes Snoop work again. Example scripts available under ~ns/tcl/ex/snoop. Actually this was added long time back, around oct, 2001. Adding to CHANGES.html now.
- [Padma Haldar]
Wed Mar 13 16:44:22 PST 2002
several bug fixes.
1. incoming_ parameter included in class packet by CMU modifications were used to determine the direction of pkt flow in lower layers of the stack (mac, LL). Later this was replaced by direction_ in hdr_cmn. See packet.h for details about direction_. changes were made to replace incoming_ with direction_.
2. Comments added to older version of diffusion examples tcl/ex/{diffusion-rate-run.tcl, diffusion-prob-run.tcl} pointing to th newer diffusion implemented under ~ns/diffusion3 and example scripts available under tcl/ex/diffusion3/.
3. tora bug fixes include removing incoming flag. also replacing
src() & dst() with saddr() and daddr() resp.
- [Padma Haldar]
Wed Mar 13 16:44:22 PST 2002
Bug fixes and changes made to mac-802.11. A special thanks to Gavin Holland for providing patches and support for the port.
Changes consis of the following bug fixes for the mac-802.11:
1. The new IEEEmac-802.11 -1999 std defines a separate PLCP (Physical
Layer Convergence Protocol) layer and a corr. PLCP hdr and preamble
(used for sync'ing between nodes etc); This PLCP is reqd to be tx'ed at a fixed rate of 1Mbps. Our older mac model lacked this feature.
2. The new std also states that all nodes in a network MUST use a data
rate from a set of what is called the Basic data set, for tx'ing their
control pkts (CTS, RTS and ACK). and they MAY choose a different data rate for tx'ing data pkts. This feature has been added.
3. There are some other bug fixes. one is the length of time the mac needs to wait before tx'ing a data pkt, which depends on whether
CTS/RTS reservation is used or not etc. and it is something like
difs RTS sifs CTS sifs DATA sifs ACK
difs DATA sifs ACK
4. Pkt hdsr now have an additional field that have the txtime for that pkt.
5. The energy calculation at wireless-phy is modified to reflect these changes.
- [Padma Haldar]
Wed Mar 13 16:44:22 PST 2002
Newer updated version of dsr contributed by the cmu group, and specifically by Yih-Chun Hu, into ns. This port adds newer versions of routecaches, mobicache and simplecache. also maintains flowstates in the nodes.
- [Sally Floyd]
Fri Mar 8 2002
Changed the default for the Agent/TCP variable "tcpTick_" from 0.1
to 0.01 seconds, to more accurately reflect current reality.
This variable controls the granularity for TCP's measurements of
round-trip times, and affects the value of TCP's retransmit timer.
- [Sally Floyd]
Fri Mar 8 2002
Adding a variable "rfc2988_" for TCP to enable code that makes
TCP's retransmit timers RFC2988-compliant, by clamping minrto_ before
applying t_backoff_.
The default is for "rfc2988_" to be true.
The code is from Tom Kelly.
The validation test is in "./test-all-tcp dialup" and
"./test-all-tcp dialup1".
- [Sally Floyd]
Fri Mar 8 2002
Added bug-fixes to the retransmit timer backoff in two-way TCP.
The backoff of the retransmit timer was not working correctly
when the timestamp option was enabled (it was backing off when
it didn't need to). A bug in the backoff also was fixed for ECN with
small windows. Bug-fixes contributed by Tom Kelly.
(Two-way TCP is still not completely validated, with some of the
incomplete validation tests in "./test-all-broken".)
- [Padma Haldar]
Mon Feb 25 12:26:08 PST 2002
another round of diffusion changes got checked in.
* got rid of packing/unpacking of diffusion msgs. msgs are now directly converted into ns packets instead of the earlier version of diffpkts.
* got rid of locks
- [Kun-chan Lan]
Tue Feb 12 12:41:35 PST 2002
Added HTTP1.1 persistent connection feature to empweb module.
- [Padma Haldar]
Wed Jan 30 16:15:32 PST 2002
Ported newer version of aodv (version 6 of aodv draft). Contributed to ns-2 by Elizabeth M. Belding-Royer and created originally by Mahesh Marina and Samir Das at University of Cincinnati.
- [Padma Haldar]
Fri Jan 25 12:02:13 PST 2002
Made changes to how flat and hier classifier allocates memory to increase the rtg tables. instead of doubling, the tables are set to n where n is the total no of nodes in topology. However, since % memory used by classifiers seem to be only 0.5-1% of the total memory, the impact on memory savings were not significant.
- [Xuan Chen]
Thu Jan 24 22:30:33 PST 2002
Fixed bugs with the wired-cum-wireless sample script and test suite. The original scripts did not input the right number of wireless nodes (interfaces) to the god, as a result warning messages are printed during the simulations.
The fix is contributed by Joerg Diederich.
- [Xuan Chen]
Wed Jan 23 23:30:33 PST 2002
Integrated Smoothed Round Robin scheduler into ns. For details on SRR,
refer to "SRR: An O(1) Time Complexity Scheduler for Flows in Multi-Service
Packet Networks", Chuanxiong Guo, sigcomm'01.
- [Alefiya Hussain]
Sat Jan 5 07:57:29 PST 2002
Added dmalloc support for TclpAlloc debugging
- [Alefiya Hussain]
Sat Jan 5 07:47:20 PST 2002
Added a perl script to allow inet to ns topology conversion
- [Sally Floyd]
Mon Jan 2 2002
Added "queue_in_bytes_" to Queue/DropTail, so that the DropTail
queue can be in units either of packets or of bytes. The validation
test is in "./test-all-simple tahoe1Bytes" in tcl/lib.
- [Jong-Suk Ahn] Tue Jan 2 2002
Expanded the error option of node-config command from errProc to two options such
as IncomingErrProc and OutgoinigErrProc. Previously, aritifcial errors could be added
to packets only from outgoing stacks of senders, causing all packets to suffer the same
degree of propagation errors. The addition of IncomingErrProc allows each receiver to
receive packets corrupted differently based on their separation from the sender.
Other than changing the name of options for corrupting packets, the usgae of these two
options are the same as the previous errProc in that the option value is the procedure
name creating a new error module that is inserted into the wireless stack. For the usage,
see test-suite-wireless-lan-newnode-err.tcl.
- [Padma Haldar]
Thu Dec 20 12:00:02 PST 2001
First cut for ns's top level directory organisation was made. This round of changes called for creating sub-dirs only at the top level and left the existing subdirs unchanged/unmoved.
List of new dirs created were : adc, apps, classifier, common, links, mac, mcast, queue, routing, satellite tcp, tools, trace etc
- [Sally Floyd]
Mon Dec 3 2001
Added a patch from Tom Kelly for ECN in FullTCP:
An ECN SYN packet has ECE and CWR set; an ECN SYN-ACK packet has ECE set
and CWR not set; TCP ACKs do not have ECT set; and
on receiving an ACK with ECE set a receiver does not open the
congestion window.
The validation test is in test-all-ecn-full in tcl/test.
- [Sally Floyd]
Mon Dec 3 2001
Corrected one-way TCP so that when "syn_" is used, the first
40-byte packet consists of header bytes, with no data bytes used.
[Kun-chan Lan]Mon Dec 3 7:43:48 PST 2001
First cut codes for empftp.{cc.h,tcl}, which are now part of empweb module
Features: Modeling FTP traffic based on empirical CDF for the
following parameters:
- User arrival
- Number of files tranmission per User session
- file interarrival time
- file size
- TCP window size
- Server selection
empftp is based on empweb
- [Tim Buchheim]
Fri Nov 30 2001
Added a patch from Michele C. Weigle to replace the existing random number generator (an implementation of LCG16807) with a much better one (MRG32k3a, by Pierre L'Ecuyer). The output of scripts using random numbers will change!
- [Sally Floyd]
Wed Nov 28 2001
Changed the default for "useHeaders_" in Agent/TCP to true.
Also changed the default for "singledup_" in Agent/TCP to 1,
to enable Limited Transmit, allowing the sending of a single
new packet in response to a single duplicate acknowledgement.
- [floyd]
Tue Nov 27 13:34:43 PST 2001
Added an option "useHeaders_" to one-way TCP that takes into
account the TCP/IP header size in bytes when computing the size of
the packet to be transmitted on the wire. The current default
is for this to be false, but at some point the default will be
changed.
The validation test is "./test-all-simple statsHeaders" in tcl/test.
- [floyd]
Thu Nov 8 12:15:49 PST 2001
Added code from Wael Noureddine to deal robustly with outstanding
packets from the previous incarnation of a connection after a reset
(since there is no FIN_WAIT protection in one-way TCP). This involves
adding a lastreset_ variable at the sender and sink that records
the time of the last reset. Any ACKs/packets with timestamps that are
older than this time would be discarded at the sender/sink.
The validation tests are in ./test-all-tcpReset.
- [Padma Haldar]Wed Nov 7 09:52:45 PST 2001
Ported first-cut of Directed Diffusion (developed by SCADDS, USC/ISI) into ns.
All files related to diffusion can be found under ~ns/diffusion3.
All ns specific files can be found at ~ns /diffusion3/ns.
An example script can be found at ~ns/tcl/ex/simple-diffusion.tcl and it tests a simple 3 node topology where (1) all 3 nodes can hear each other and a source and sink apps pair is setup on two of the nodes. (2) where node0 and node2 donot hear eachother and communicated thru the third node1. src and skn apps reside on node 0 and node2.
**Note templates are used extensively and hence this code maynot be run in systems having compilers that donot support STL.
-
[Tom Henderson]
Mon Nov 5 22:10:16 PDT 2001
Support for wired/satellite integration (see satellite chapter of
ns documentation). New example script: tcl/ex/sat-wired.tcl
-
[Tom Henderson]
Thur Oct 11 07:15:31 PDT 2001
Added support for tracing satellite aloha collisions, and enhanced the
example test script.
-
[Kun-chan Lan] Wed Oct 10 23:50:46 PST 2001
First cut of ModelGen is added. ModelGen is a tool that
rapidly generates traffic model from raw trace for simulation and
traffic analysis. ModelGen contains a set of C/Perl/Tcl programs. It
takes a tcpdump file as input and outputs a set of CDF
(Cumulative Distribution Function) files that model the user-level
statistics and network characteristics including RTT and bottleneck
bandwidth. Currently it only supports Web and FTP traffic.
-
[John Mehringer] Thu Nov
2 13:51:28 PST 2000
- [Alefiya Hussain]
Thur Sept 20 11:50:56 PDT 2001
Applied patch by Ruud Schramp to port ns emulation code to run on Linux
Added configure scripts to test for pcap and appropriate TCP headers
Allowed compilation of nse if tests are postive
-
[johnh] Fri Aug 3 15:55:36 PDT 2001
more error checking in Scheduler::schedule, linux floating point fix from Tom Kelly
exit
- [Tom Henderson]
Mon Jul 30 19:22:31 PDT 2001
Updated satellite code to conform to "$ns node-config" node
configuration syntax used by wireless nodes.
- [floyd]
Fri Jul 20 13:30:36 PDT 2001
Adding a procedure to Queue/RED for the automatic setting of
minthresh, invoked when the input file specifies minthresh=0. The
procedure sets minthresh to the maximum of 5 packets, and the number
of packets corresponding to 5 ms of queueing delay.
- [Padma Haldar]Wed Jul 18 10:40:09 PDT 2001
Added debugged version of bayFullTcp into ns. Also extended test-suite-test-reno for bayfulltcp.
- [kfall]
Tue Jul 17 11:04:07 PDT 2001
Major restructuring of Full TCP, including moving
the ReassemblyQueue data structure to its own files. This
affects Makefile.in, rq.{cc,h}, tcp-full.{cc,h}.
Also, disable SACK in Full TCP for now. Will be re-working this
next. More minor, but it is now also possible to disable
the header prediction code. Regression tests unaffected.
- [floyd]
Fri Jul 6 16:23:09 PDT 2001
Adding a procedure to Queue/RED for automatically setting
q_w and maxthresh when the default values are 0.0 and 0 respectively.
The code for setting q_w is from Ramki Gummadi.
I have not yet changed the default values in the NS distribution,
but I will do this shortly.
- [Padma Haldar]Thu Jul 5 21:20:26 US/Pacific 2001
Added PGM code contributed by Ryan Barnett (rbarnett@usc.edu) into ns. Pragmatic General Multicast (PGM) is a reliable multicast protocol designed at Cisco. PGM differs from other protocols in that it uses router assistance. The code was contributed by Ryan Barnett and implements a large subset of the PGM specification.
- [floyd]
Fri Jun 29 15:07:55 PDT 2001
Adding code for REM and Gibbens/Kelly (GK) active queue management.
The GK code is from Srisankar Kunniyur,
with minor changes from Jitendra Padhye.
The REM code is from Sanjeewa Athuraliya and Victor Li, with a merging
of two files into one from Jitendra Padhye.
The validation tests are from Jitendra Padhye, and are
"./test-all-gk" and "./test-all-rem" in "tcl/test".
The REM code still needs a final check from the code authors.
- [floyd]
Tue Jun 26 13:22:02 PDT 2001
Adding code for the Vq virtual queue, a version of active queue
management.
The code is from Srisankar Kunniyur, with fixes and validation from
Jitendra Padhye.
The validation test is "./test-all-vq" in "tcl/test".
- [floyd]
Fri Jun 15 18:24:24 PDT 2001
Adding code for the PI controller, a version of active queue
management.
The code is from Jitendra Padhye, based on the PI controller proposed
by Hollot et. al., in the paper ``On Designing Improved Controllers
for AQM Routers Supporting TCP Flows'', in Infocom 2001.
The validation test in "./test-all-pi" in "tcl/test".
The file "tcl/ex/picoeff.m" is a Matlab script for generating
PI parameters.
- [floyd]
Thu Jun 14 17:19:43 PDT 2001
Added parameter "adaptive_" for adaptively adjusting max_p, to keep
the average queue size between minthresh and maxthresh.
The validation test and example is "./test-all-adaptive-red"
in "tcl/test".
-
[weiye] Thu Jun 14 15:20:55
PDT 2001
Added the visibility-based shadowing propagation model, shadowing-vis.{h,
cc}. It uses a bitmap to represent the environment of the wireless network.
Two shadowing models are used for either line-of-sight or obstructed transmission.
The example script wireless-shadowing-vis-test.tcl and the bitmap environment.pnm
can be found at ns-2/tcl/ex/.
-
[floyd] Tue Jun 12 16:55:03
PDT 2001
Added a parameter summarystats_ to Queue/RED to report the true average
queue size since the beginning of the simulation. The validation test and
example is in ``./test-all-simple stats2'' in ``tcl/tests''.
[Kun-chan Lan]Mon Jun 11 19:42:22 PDT 2001
First cut codes for module empweb. The files added include ~ns-2/empweb/empeb.cc, ~ns-2/empweb.h and ~ns-2/tcl/webcache/empweb.tcl
Features: Modeling Web traffic based on empirical CDF for the
following parameters:
- User arrival
- Number of Pages per User session
- Page interarrival time
- Page size
- Number of Object per Page
- Object interarrival time
- Object size
- Request size
- TCP window size
- Usage of Persistent and non-persistent connection
- Server selection
empweb is based on previous Polly/Haobo's web model (i.e. webtraf.{cc.h})
[floyd] Sat Jun 9 13:44:00
PDT 2001
Added options to ErrorModel for delaying packets. The validation test
and example is ``./test-all-links delayPacket'' in ``tcl/test''.
-
[Alefiya Hussain] Wed May
30 16:20:46 PDT 2001
Bug fix in Mac 802.3 Collision trace code. Added separate drop head
for mac layer. Now collision are reported in trace file as 'c' If there
are 17 collisions for a packet, it indicates that it is dropped due to
extensive collisions
-
[floyd] Sun May 27 22:56:14
PDT 2001
Made several small changes to two-way TCP, in tcp-full.cc.
Made a small change so that a timeout after an ECN, for the same window
of data, does not result in another reduction in the congestion window.
Made a small fix so that "overhead_" works correctly with FullTcp,
to add a random overhead to the packet sending time.
Added the ability to specify packetSize and have segsize derived from
that, and vice versa.
Created the Tcl procedure create-connection-listen for creating two-way
TCP connections.
Added three new validation tests for two-way TCP, test-all-ecn-full,
test-all-simple-full, and test-all-tcp-init-win-full. There are several
validation tests commented out because they don't yet work correctly. One
example is sack4 in test-all-tcp-init-win-full. There are also many validation
tests for one-way TCP that have not yet been ported to two-way TCP.
-
[floyd] Sun May 27 13:38:04
PDT 2001
Changed some defaults for TCP and RED, over the last few weeks.
Added minrto_ to TCP, with a minimum RTO, with a default of 1 second.
Added the variable timerfix_, with default set to true, to update the TCP
RTO timer *after* the RTT is updated, instead of before.
Changed the defaults for the Agent/TCP variables syn_ and delay_growth_
to true, and changed the default for Agent/TCP/windowInit_ to 2, so that
the first packet is 40 bytes, like a SYN packet, and the initial window
of two packets starts after the ACK for the first packet has been received.
Changed the default for Queue/RED/gentle_ to true, so that the dropping
probability increases gradually as the average queue size exceeds maxthresh.
-
[Chalermek Intanagonwiwat]
Fri May 25 02:42:21 PDT 2001
Small bug fixes in diffusion. Get rid of a random number that is generated
from a pointer. Start() should be virtual.
-
[Padma Haldar] Tue May 22 09:58:13
PDT 2001
Ported Rishi Bhargava's source-routing code into ns. Most files under
~ns/src_rtg/. Example script tcl/ex/src_test.tcl & tcl/test/test-suite-source-routing.tcl
-
[Padma Haldar] Mon May 21 12:11:42
PDT 2001
First cut for event-tracing support added - support added for Tcp only.
Shall be extended to cover all tcp test-suites in future. also support
to be added for agents other than tcp.
-
[Alefiya Hussain] Tue May
15 5:30:45 PDT 2001
Bug Fix in BayTcp code to prevent packets being sent to absent application
agent.
-
[Ankur Sheth] Tue May 15 2:00:45
PDT 2001
Added emulation code for passing TCP/UDP traffic through ns. TTL values
are updated in live network packets to reflect ns hops. Example script
provided in ~ns/emulate/thrutcp.tcl along with configuration instructions.
-
[Alefiya Hussain] Tue May
15 2:00:45 PDT 2001
Added emulation support to allow ns BayFullTCP agent to interact with
real world TCP application. Active and passive connections are supported.
Example script provided in ~ns/emulate/tcpemu.tcl along with configuration
instructions.
-
[Padma Haldar] Thu Apr 5 15:50:46
PDT 2001
Ported Kathy Nichole's version of full-tcp into ns (calling it BayTcp).
files are under ~ns/baytcp dir. ex script ~ns/tcl/ex/redlight.tcl first
cut and yet to be thoroughly tested for all corners and bugs.
-
[Jong-Suk Ahn] Thu Mar 15 12:00:00
PST 2001
Expanded node-config command to add error models into a protocol stack
of wireless nodes. For the usage, see test-suite-wireless-lan-newnode-err.tcl.
Furthermore, an experimental bit-error model and a simple FEC module are
added in errmodel.cc and fec.cc
-
[Padma Haldar] Tue Mar 6 12:32:23
PST 2001
Added bind function for binding TclObjects in tclcl. Files modified:
tclcl.h, Tcl.cc. See rtmodule.cc & ns-rtmodule.tcl for example.
-
[Padma Haldar] Fri Mar 2 10:59:12
PST 2001
Nix-Vector Routing contributed to ns from George F.Riley, Georgia Tech,
was integrated into ns source code.
List of files added/modified:
-
Makefile.in
-
addition of new directory ~ns/nix:
-
classifier-nix{.cc,.h}
-
hdr_nv{.cc,.h}
-
nixnode{.cc,.h}
-
nixroute.cc
-
nixvector{.cc,.h}
-
tcl/lib/ns-rtmodule.tcl
-
tcl/lib/ns-lib.tcl
-
tcl/lib/ns-packet.tcl
-
tcl/test/test-all-nixvec
-
tcl/test/test-suite-nixvec.tcl
-
tcl/test/test-output-nixvec/{NixVec.Z,NoNixVec.Z,quite.Z}
Contact info of contributor: George Riley(riley@cc.gatech.edu)
-
[Padma Haldar] Thu Mar 1 10:27:46
PST 2001
Error checking added for out of range address for ascii-to-interger
conversions in addr2str routine.
-
[Padma Haldar] Thu Feb 22 11:10:01
PST 2001
The following modifications made to the routing code in NS: 1. In order
to increase run-time efficiency, we moved iteration-heavy parts of routing
from OTcl to C++. The classifier-population has been moved to C++ which
have resulted in run-time efficiency increase of more 50%. 2. Simulator
is now a split object. It manitains a list of node both in OTCl and C++.
will try to reduce it down to a single list: routing-modification partII.
3. Every node now maintains a pointer to the head of routing module chain.
so incase of a routing add/update, the info flows from head of the chain
to the other modules connected in the chain. same model should be there
in Otcl which will replace the routing module list maintained by each node.
--to-do-for-partII. 4. Population of classifiers now done by routing modules
entirely in C++. 5. A new ParentNode class added that acts as parent class
for different kinds of nodes like Node, LanNode, AbsLanNode, BroadcastNode
etc. 6. Wireless routing modules to be added in future --PartII.
-
Yuri Mon Feb 19 12:31:47 PST 2001
Fixed the "packet RX while in IFS" bug in 802.3, that could lead to
packet duplication.
-
[Ya Xu] Wed Feb 7 01:24:56 PST 2001
Add GAF algorithm (for AODV and DSR) into ns
Validation test suite is added too.
A bug regarding multicast address in AODV code has been fixed
[floyd] Thu Jan 18 19:34:44
PST 2001
Added ECN to TFRC, the equation-based congestion control module.
[Tom Henderson] Fri Jan 12 09:45:00
PST 2000
Bug fix in satellite repeater code (ns-sat.tcl)-- interface queue limit
was not changeable. Reported by Haroldo Zattar.
[Alefiya Hussain]
Implemented an abstract LAN, in which CSMA/CD mechanism is replaced
by a DropTail queue.
Validation tests provided in ~ns/tcl/test/test-suite-lan.tcl
[Alefiya Hussain]
Added support for collision (MAC level) traces on the IEEE 802.3 LAN
Traces are indicated by a 'c' in the trace file. These traces can be
generated using a trace option in make-lan command.
Validation tests provided in ~ns/tcl/test/test-suite-lan.tcl
[floyd] Tue Dec 19 14:48:32
PST 2000
Added DelAckSink::reset() to TCP sinks, to prevent a core dump when
a TCP connection is reset but the delay timer for delayed acks does not
get reset also. Bug report and fix from Joseph Ishac. Validation test in
"test-all-tcpReset".
[Xuan Chen]Wed Dec 13 21:08:35
PST 2000
Added patch from Eric Weigle for
TCP vegas.
[johnh] Tue Dec 12 10:36:34
PST 2000
Updated config.guess to autoconf's current one.
[Xuan Chen] Mon Nov
27 20:22:49 PST 2000
-
Reorganized the policy related code in diffserv module, make different
policies as seperate classes. Users can add their own policy easily.
-
Create a new class PolicyClassifier to keep states for different policies
and flows.
[ratul] Fri
Nov 17 14:00:00 PST 2000
-
Added RED-PD code to ns. RED-PD intorduces a pre-filter in front of a RED
queue to drop selected flows preferentially.
-
Added RED-PD simulation scripts containing the identification engine to
ns distribution at ~ns/tcl/red-pd.
-
Added a preliminary version of Pushback code to ns. Pushback is used to
detect and control high bandwidth aggregates.
-
Added a simple list structure in node.cc to help a Node keep a list of
neighbors. A similar list structure is present in mobile node I think,
wonder if that can be brought down to base node.
[haoboy] Mon Nov
13 10:04:34 PST 2000
Updated lib/dmalloc_support.cc for 4.7.1/4.8.0 (actually done long
time ago, but log it now.)
[John Mehringer] Thu Nov
2 13:51:28 PST 2000
Added patch from Eric Weigle for
scheduler to use 64 bit integers when available.
[Xuan Chen] Wed Nov
1 13:51:28 PST 2000
Integrated diffserv module contributed from Nortel. The source files
are located at ns-2/diffserv; there are also some example scripts (ds-cbr-*.tcl)
under ns-2/tcl/ex/diffserv.
[PH] Fri Oct 20
14:18:48 CEST 2000
Two bug fixes related to massive web traffic simulations:
-
memory leak fix in tcl/http/htto-mod.tcl for those still using the old
web traffic generator code
-
bug fix in ReassemblyQueue::add(), full-tcp.cc, according to Li Fan's report
on 10 Feb 2000
-
[johnh] Thu Nov 9 10:53:42
PST 2000
ns-2.1b7a released by Haobo Yu, Ya Xu, and John Heidemann. This release
is exactly what was in ns-2.1b7 with these bug fixes/enhancements:
-
a bug in gen-map is fixed
-
a heap scheduler memory leak is fixed
-
nse should now build on FreeBSD and Linux
-
the allinone release should build cleanly on Solaris machines
-
allinone information about modifying PATH and LD_LIBRARY_PATH is now clarified
-
[yaxu] Mon Oct 16 21:01:42
PDT 2000
ns 2.1b7 released
-
[weiye] Fri Oct 13
11:51:06 PDT 2000
(1) Added a new chapter in ns Manual: radio propagation models.
(2) Changed a separate program ~ns/indep-utils/propagation/threshold.cc
for compute receiving threshold for a specified communication range for
all available propagation models in ns.
-
[kclan]Mon Oct 2 20:00:00 PDT
2000
Creation of Real Audio traffic model:
-
create source file realaudio.cc
-
create example script ramodel.tcl in ~ns/tcl/ex/realaudio
-
create testsuite for realaudio model in ~ns/tcl/test/test-output-realaudio
-
[johnh] Fri Oct 6 11:43:29
PDT 2000
Changes from eval to evalc wherever eval'ing constant strings with
embedded subcommands (with []). This construct crashes tcl-8.3 (that modifies
strings) when used with compilers that don't properly match against eval(const
char*) (like apparently egcs-2.91.66).
-
[weiye] Mon Oct
9 16:39:46 PDT 2000
Test suite for the shadowing propagation model is added.
-
[weiye] Mon Oct
2 13:39:46 PDT 2000
Modifications of the propagation models: (1) The Friis free space model
is added in propagation.{h, cc}. Users can directly use it in their simulations.
(2) Thanks to Leonard Miller's suggestion, we modified the equations in
the two-ray ground model. The system loss L is taken out from the calculation
of the cross-over distance, and it is added in the calculation of the received
power.
-
[haoboy]Thu Sep 14 11:01:49
PDT 2000
Partially completely node restructuring:
-
A node can be considered as a collection of classifiers and routing modules.
An important function that Node should provide is how to interface classifiers
to routing modules. There are two aspects to this: (1) what is the organization
of these classifiers, and (2) when there is a routing change, which classifiers
should be notified and how.
-
Hierarchical routing, manual routing, virtual classifier, MPLS have been
converted to the new scheme.
-
Multicast code is partially converted, in that the hookup of switch_ is
done via RtModule/Mcast, however, existing mcast code is not changed to
be wrapped entired in this module; it is still in the forms of a bunch
of Simulator and Node instprocs.
-
Mobile node and satellite node are not converted. Mobile code in itself
needs to be cleaned up. For instance, MobileNode partially duplicates the
functionality of MIP, however it does not entirely replace old Node/MIPBS
and Node/MIPMH. The conversion of these two modules to the new scheme also
requires changing their c++ code, which is not trivial.
Other changes include:
-
Move AddrParams class to a singleton split object class. Most of its parameters
are now stored in c++ space.
-
Created a wrapper hierarchical classifier to present a single classifier
interface to node configuration. This allows us to avoid those gazillions
of if [Simulator set EnableHierRt_] ... that were all over the
place.
-
[haoboy]Tue Sep 12 20:01:53
PDT 2000
Added 'lsort -dictionary' to DV routing code so its results will not
change as the shadow object names of nodes change due to addition of new
objects. This paves the way to modular node configuration as some new node
routing modules would be added during the construction of each node. Also
changed is [array names] code in web cache, a lsort -dictionary will enhance
its validation stability.
BTW I think SplitObjectCompare in tclcl/tcl-object.tcl is obsolete
now since 'lsort -dictionary' does the same job but it's built in hence
should be faster than an outside command.
-
[haoboy]Thu Aug 31 13:34:25
PDT 2000
-
Added procedures into ns-packet.tcl to help customizing packet headers
in simulation. (Packet header chapter in ns manual has been updated; please
read it for more information.) This may lead to big savings in packet-intensive
applications. For instance, currently all protocol headers add up to about
2KB per packet, but including only the common header, IP header and TCP
header takes only about 100 bytes. This may mean a lot of savings for,
say, large-scale web traffic simulation. But I've not tested it.
-
Get rid of all off_[hdr]_ stuff from all source files. Now ns-packet.tcl
does not create these offset variables at all. This saves two bounded variables
per NsObject.
-
Move static packet header declaration from encap.h to encap.cc. A variable
_instantiation_ should not reside in a header file.
-
[haoboy] Thu Aug
31 12:55:49 PDT 2000
-
Node cleanup: move all energy-related variables and methods in the base
Node into EnergyModel. Note that node_on_ may be moved back later, but
for now its handler is closely tied to wireless routing.
-
Added dependency of tcl/mobility/dsdv.tcl into Makefile.in
-
Moved tcl/lib/rtProtoLS.tcl into tcl/rtglib, where all routing protocols
stay.
-
Added a line about link state into unicast.tex, and labeled link state
and MPLS as undocumented.
-
[haoboy] Tue Aug
29 17:03:43 PDT 2000
Node cleanup: (1) moved nam tracing hookup to the base Node, so we
do not need to keep namtraceAllFile_ in Node, which duplicates that in
Simulator, nor do we need to keep a namDefined_ flag. (2) Removed and commented
out unused otcl instprocs in Node which are masked (through inheritance)
by those in MobileNode.
-
[haoboy] Thu Aug
24 14:25:08 PDT 2000
-
Added MPLS package originally written by Gaeil
Ahn. It was modified to reduce the amount of otcl calls, and moved
to use node-config instead of creating a new Node subclass. However, there
is still a long way to go when a new routing module can be introduced into
a Node without interfering with other routing modules. Please see TODO.html
for more information.
-
Fixed bugs in assert{} usage: what follows must be quotes instead of braces,
the latter does not perform substitution and variables in the expression
won't be visible inside assert{}.
-
Cosmetic changes in ns-node.tcl and ns-route.tcl. Commented out unused
code, including Simulator::compute-routes-mobilenodes{}, Node::*TcpSession{}.
Commented code resides at the end of its corresponding file.
-
Changed tcl/test/test-all-template1 to use case instead of if(s) to redirect
stdout to temp.rands.
-
[floyd]Sun Aug 20 22:17:11
PDT 2000
A change to setting the pipe_ variable in Sack TCP when entering in
Fast Recovery for the non-ECN case, to make the performance the same as
the ECN case. Motivated by a suggestion from Mark Allman. Set oldCode_
to true to use the old code. Validated in "./test-all-tcp underutilized_100ms_control_Sack".
-
[haoboy] Thu Aug
17 22:16:32 PDT 2000
-
Autoconf support for checking compatibility of compiler's STL support.
Basically it tries to see if template inheritance is supported, which some
earlier gcc does not seem so.
Currently this is used only for the link state routing protocol module,
which uses STL extensively. However, this mechanism can be easily extended
to enhance the modularity of ns, in the sense that the user may actively
choose which module to compile into her/his ns binary, thus save memory/disk
space/initialization time/etc.
IMPORTANT: validate is now moved to validate.in, because link
state module may or may not be present depending on availability of STL.
-
Removed numerous ... set off_*_ 0 in tcl/*/*.tcl. Although off_[hdr]_
is an obsolete way to access packet headers, it is still used in much existing
code. These offsets MUST be set through the code in tcl/lib/ns-packet.tcl.
Explicitly setting it to 0 will result in accessing packet header in the
wrong place. However, this is a very treachrous bug, because ns packet
header is 'sparse' in that much of the space is not used in a simulation.
Therefore, most of the time this bug will not lead to segmentation fault
or incorrect functionality. Usually it only results in mysterious segmentation
faults in completely irrerelevant places.
The most significant bug related to this problem is off_arp_
and off_sr_. The former results in the crash of wireless3
test in WLtutorial test suite. The latter results in incorrect
output of CMUTrace in dsr-related tests in wireless-lan,
wireless-lan-newnode,
and wireless-tdma test suites.
-
Merged all the delay_parse, time_parse, bw_parse
in tcl/*/*.tcl. There exists at least 3 versions of these codes with slightly
different implementations. Now they all converge to John's time_parse
and bw_parse in tcl/lib/ns-lib.tcl.
-
test-output-wireless-lan/dsr.Z was truncated at the end because test-suite-wireless-lan.tcl
(and -lan-newnode.tcl) did not flush the trace file before rewriting it.
-
Removed dmalloc 3.* support because their headers do not carry version
information.
-
Removed unused iostream.h in various files.
-
[haoboy] Wed Aug
16 16:59:15 PDT 2000
Moved list.h to lib/bsd-list.h to prepare for STL support, since list.h
conflicts with STL's list.h
-
[johnh] Tue Aug 1 15:30:30
PDT 2000
Patches to allow ns to build with tcl-8.3 (still must specify --with-tcl-version=8.3
and --with-tk-version=8.3 in the configure). Validation tests VC and monitor
still fail (segfault in tcl code)---this is work in progress.
-
[floyd]Sun Aug 13 09:48:15
PDT 2000
Added code (on July 18) for correctly tracing early packet drops from
RED when flow monitors are attached. Code from Ratul Mahajan.
-
[floyd]Sun Aug 13 09:48:15
PDT 2000
Added the following options to the one-way TCP, over the last few weeks:
-
Added noFastRetransmit_ for Tahoe TCP without Fast Retransmit. Validated
in "./test-all-testReno". (July 8)
-
Added fixes to the scoreboard and TCP/Sack1 code, fixes contributed by
Ethan Blanton. The scoreboard did not properly advance the left edge of
the SACK window during Fast Recovery *unless* the processed packet contained
a SACK block. (July 9)
-
Added code contributed by Ethan Blanton, so that the Sack1 TCP sender checks
if duplicate acknowledgements acknowledge the receipt of new data, for
the one-way Sack1 TCP. Validated in "test-all-ecn ecn_noBugfix_sack". (July
22)
-
Added precisionReduce_ for non-integer reductions of the TCP congestion
window. Code contributed with Deepak Bansal. This is for use with TCP with
non-standard values for the window increase and decrease parameters, and
is validated in "./test-all-aimd". (August 7)
-
Added "k_parameter_" and "l_parameter_" for binomial congestion control,
used with wnd_option_ == 6. Code contributed by Deepak Bansal. Validated
in "./test-all-aimd". (August 9)
-
Removing all uses of the defined constant NUMDUPACKS, replacing it with
the use of the added variable numdupacks_ instead. Code from Ethan Blanton.
Validated in "./test-all-tcpOptions". (August 12)
-
[johnh] Tue Aug 1 15:30:30
PDT 2000
Nam section of the documentation started with details about how to
make animated gifs.
-
[haoboy]Wed Jul 26 18:11:09
PDT 2000
-
Added link state routing code contributed by Mingzhou
Sun.
-
Remove conditional directive NAM_TRACE.
-
Added further explaination to Classifier::no-slot{} error messages in tcl/lib/ns-lib.tcl
-
[haoboy]Tue Jul 25 14:59:09
PDT 2000
PLM code contributed by Arnaud Legout at EURECOM.
-
[xuanc] Sat Jul 22 16:58:54
PDT 2000
(1)New API (channel) added to node-config in ns-lib.tcl to support
multiple interfaces for wireless node. A demo tcl script also included.
(2)The URLs in README and CHANGES.html are fixed.
-
[weiye] Fri Jul 21
13:20:59 PDT 2000
(1)A new radio propagation model, the shadowing model, is added. It
uses the path-loss model to predict mean received signal power for certain
T/R distance. Then a random variable, called log-normal shadowing, is added
to the mean value. Different parameters of the path-loss exponent and the
shadowing deviation represent different propagation environments. This
statistical model is applicable to both outdoor and indoor. (2) A bug fixed
in wireless-phy.cc. The bug disabled setting values of bound variables
from Tcl.
-
[intanago] Mon
Jul 10 7:31:37 PDT 2000
(1) Checked in directed diffusion, flooding, and omnicient multicast
modules including codes, test suits, scenarios, and examples. (2) Added
more supports on idle energy consumption. (3) Fixed some bugs of energy
consumption in transmission and reception.
-
[floyd] Sun Jul 9 09:38:26
PDT 2000
Added "first_reset_" to red.{h,cc} so that "queue-in-bytes_" works
correctly for RED when reset() is called multiple times. Bug report from
Wen Shushan. The option "queue-in-bytes_" had been working correctly in
the validation test in "./test-all-red red_twowaybytes", but in other scripts
REDQueue::reset() can be called twice, and in this case "queue-in-bytes_"
had not been working correctly.
-
[floyd] Fri Jul 7 17:02:16
PDT 2000
Added the TCP Rate-Halving code to NS. This is contributed code from
Matt Mathis, Jeff Semke, Jamshid Mahdavi, and Kevin Lahey, from the web
page ``http://www.psc.edu/networking/ftp/papers/draft-ratehalving.txt''.
This is partially validated in the validation test "./test-all-tcpVariants",
for example in "./test-all-tcpVariants/fourdrops_sackRH".
-
[floyd] Mon Jun 26
20:07:50 PDT 2000
First pass at adding RIO code to NS. This RIO code is from Yun Wang,
based on the code used by Wenjia Fang, and was ported to ns-2.1b6 by J.
Scott.
-
[tomh] Tue Jun
21 17:44:10 PDT 2000
Changes to support Lloyd
Wood's improved perl scripts for the satellite code.
-
[Kun-chan Lan] Tue Jun 21 11:12:54
PDT 2000
Fix to full-tcp reassembly from Matt Sanders and George Riley of Georgia
Tech.
-
[xuanc] Mon Jun 12 17:13:45
PDT 2000
A single hop, preamble based TDMA mac layer (Mac/Tdma) was added. It
can be used in wireless / sensor net simulations in the place of 802.11
mac layer.
-
[johnh] Thu Jun 1 13:55:39
PDT 2000
Code added from William Metzenthen's floating point library (at http://www.linuxsupportline.com/~billm/faq.html)
to make ns run with 56-bit FP precision on Linux. (All test suites should
now pass there.)
-
[floyd] Sat May 27
16:59:07 PDT 2000
Added new validation test "./test-all-links" to illustrate dynamically
changing link delay and bandwidth.
-
[floyd] Mon May 15
22:58:15 PDT 2000
Added bug-fixes to tcp.cc for the case with ECN when cwnd < 1. The
first fix is not to reset the retransmit timer when a new ack arrives and
cwnd < 1. The second fix is, when the retransmit timer expires and cwnd
< 1, to reset cwnd to 1. The first bug was reported by Yin Zhang. I
also added four new ECN validation tests to test these bugfixes, ./test-all-ecn
ecn_secondpkt1Ecn_tahoe, ecn_smallwin1Ecn_tahoe, ecn_smallwin2Ecn_tahoe,
and ecn_smallwin3Ecn_tahoe.
-
[floyd] Fri May 12
16:26:02 PDT 2000
Added bug fix for the initial slow-start in TFRC, and changed the default
value for Agent/TFRC/InitRate_ for greater compatibility with TCP. Also
added two new validation tests, manyDrops and twoDrops, to test-all-friendly
to validate the bug fix. Fix from Jitendra Padhye.
-
[floyd] Fri Apr 14
21:01:25 PDT 2000
Added RFC2581_immediate_ack_ for TCP Delayed-Ack sinks, to generate
ACKs immediately for data that fills a gap in the sequence space. This
gives RFC2581-compliance for delayed ack receivers. Bug report from Changhee
Joo, with fix from Changhee Joo and Lloyd Wood.
-
[floyd] Mon Apr 10
16:55:44 PDT 2000
Smaller initial rate for Agent/TFRC, to correct overly-aggressive behavior
with very low bandwidth paths. Fix from Jitendra Padhye.
-
[haoboy] Fri Mar 24 11:36:59
PST 2000
-
NsObject::debug(), a generic way to write verbose debug messages.
-
Richard Mortier's fix
for TcpFull::gensack().
-
[Ya] Thu Mar 9 17:07:08
PST 2000
(1) New energy model to support idle time energy dissipation (2) BECA
and AFECA algorithms used in the paper "Adaptive Energy-Conserving Routing
protocols for multihop ad hoc wireless network", submitted to mobicom2000
(3) Pending commit: examples and validation test suite.
-
[PH] Mon Feb 14 17:48:06
CET 2000
Bug fix for DV (Dynamic Distance Vector) Routing
Update test output for example3 (using DV) in test-suite-greis.tcl
Bug report and fix from Guo Liang guol@cs.bu.edu and patches from Cheng
Tak Cheung tccheng@csis.hku.hk
-
[floyd] Fri Jan 14
16:16:15 PST 2000
Bug fix for rare, inappropriate cancelling of the TCP retransmit timer.
Bug report and fix from Mark Allman, mallman@grc.nasa.gov.
-
[kclan] Fri Jan 9 20:00:15
PST 2000
Add an API to support visualization of energy depletion of wireless
node in nam .
SYNTAX: $ns_ energy-color-change [level1] [level2]
-
[salehi] Mon Mar 15
17:10:30 PST 1999
The following files/directories were removed since they are either
superseded by other test or no longer supported:
-
tcl/mcast/detailedDM.tcl
-
tcl/pim
-
tcl/lan/ns-lan.tcl
-
tcl/lan/ns-mlink.tcl
-
[haoboy] Sun Mar 14
13:08:12 PST 1999
Changed process.{h,cc} to ns-process.{h,cc}, so as to avoid name conflicts
on some OS (e.g. WIN32). Removed indep-utils/cmu-trace/setdest/Makefile.
-
[haoboy] Fri Mar 12
19:48:42 PST 1999
Various cosmetic changes to make it compile on windoze, patches courtesy
of Christian Joensson.
-
[yaxu] Thu March 9 15:20:00
PDT 1999
Re-implement wiredLAN(802.3) by porting cmu's 802.3 module, and make
wiredLAN work again. Highlights:
(1) All 802.3 features including contention detection
are implemented in mac layer. (Old wiredLAN uses
channel to detect contention)
(2) Channel broadcasts packets to every nodes attached to
the wiredLAN except the sender. It is up to mac layer
to decide whether it receives or drops the packet
according to the destination mac address of the packet.
(In old wiredLAN, channel does unicast by default)
(3) WiredLAN uses the same structure as wireless LAN (from
bottom up, channel, phy, mac, ifq, ll, arp). These modules
have the same function definition.
(4) csma.cc is fully replaced by mac-802_3.cc
(5) The reference output of wiredlan test suite have been
changed
(6) The nam packet flow of wiredlan test suite does not
exactly reflect the packet sequences under ll. It is
due to (a) no trace object is inserted below ll; (b) nam
is not in the good position so far to animate LAN behavior
below ll. We put it into TODO list.
[haoboy] Mon Mar 8 21:11:47
PST 1999
Changed default HTTP invalidation packet size, so that both unicast
and multicast invalidations have the same base size. Also changed the type
of unicast (TCP) invalidation packet types from tcp/ack to httpInval. Updated
affected test suite outputs (those related to multicast invalidations).
[haoboy] Fri Mar 5 18:09:31
PST 1999
Previous ErrorModel won't work with ECN turned on if it is situated
after the QUEUE module. It's because ECN doesn't drop the packet, but an
event is scheduled to resume the handler from inside the ErrorModel instead
of from DelayLink. Added a check to avoid this. This will only affect scripts
using SimpleLink::insert-linkloss{} or Simulator::link-lossmodel{}.
[floyd] Fri Mar
5 10:47:07 PST 1999
Modified tcp-sink.cc and tcp-sink.h to fix an ECN bug for TCP with
delayed-ack sinks. In particular, the ECN field was not being handled correctly
for a packet for which the acknowledgement was being delayed. The bug report
and bug fix are both from Mark Allman, mallman@grc.nasa.gov.
[haoboy] Wed Mar 3 18:16:53
PST 1999
Added a separate set of error model insertion procedures. Updated SRM's
test suite output (the previous one does not contain packet drop events).
Changed the name of AppConnector to Process, and make it a subclass of
TclObject. Make Application a subclass of Process. Added three new send()
methods to Agent so that it supports sending user-level data.
[haoboy] Tue Mar 2 12:37:37
PST 1999
Add a fix to generate nam traces correctly for packets dropped by error
models.
[johnh] Fri Feb 26 14:37:31
PST 1999
Applied a memory leak fix to sessin-rtp.cc, fix contributed from Lidia
Yamamoto, Christoph Haenle, and Randa.
[haoboy] Tue Feb 23
17:46:08 PST 1999
Added a directory indep-utils/ which contains my proxy trace converteres
and CMU's mobile scenario generator. Replaced the big scenario files under
tcl/mobility with smaller files. If necessary, big scenarios can be generated
using the CMU generator.
[YP] Fri Feb 19 18:04:57 PST
1999
Modified implementation of PacketQueue. Method tail()
now returns the last packet in the queue; meaning of PacketQueue::tail_
is also changed.
[YP] Wed Feb 17 19:10:00 PST
1999
Added enumeration for packet types instead of sequence of #defines.
New class p_info binds numeric packet types with their string
values.
[haoboy] Mon Feb 8 14:29:43
PST 1999
Add a unique type int64_t for 64-bit integers. Now it doesn't check
for quad_t or "long long" in different platforms. Requires new tclcl.
[YX] Thu Feb 4 15:20:00 PDT
1999
Add mobileIP support (porting from Sun) with an example called miptest.tcl
[YP] Thu Jan 28 15:20:00 PDT
1999
Changed Calendar and Heap schedulers not to re-order simultaneous events.
All three schedulers now produce the same result. Added a simple test test-suite-simultaneous
for checking ordering of simultaneous events. Commented out "use-scheduler"
lines from all test suites which had it so that they all use Calendar as
default. Re-generated failing test-outputs.
[haoboy] Tue Jan 26
10:18:47 PST 1999
-
Improvements for webcache: (1) support non-cacheable pages; (2) allow cache
push to be either selective push or always push, adjustable from a tcl
command; (3) new ways to compute staleness time for pages (lower bound
RTT/2)
-
Added a type 'int' for many register var declarations.
-
Added 64-bit integer support for FreeBSD (quad_t) and Solaris 2.x (long
long). A ns-specific tcl function ns-add64 is provided to add/substract
these 64-bit integers.
[johnh] Thu Jan 21 18:07:18
PST 1999
Changed autoconf handling of perl, added support in tcl to keep track
of the good perl we find and use it in the test suites.
The proper way to invoke a perl program from within ns is { global PERL;
exec $PERL path/to/script.pl args; }. For examples in context, see test-suite-tcp.tcl.
[YP] Thu Jan 21 15:53:07 PDT
1999
Changed ns configure to support tcldebug v1.9. Upgraded NS and NAM
config.guess and config.sub.
[haldar] Mon Jan 4 14:20:34
PST 1999
Committed changes to integrate the lower layer stacks for cmu and ns
code versions. Changes made : LL, Mac & Channel interfaces and functionalities
changed. added PHY layer; Mac/csma/cd not supported currently.
[PH] Thu Dec 24
14:55:09 PST 1998
Moved reference count related code in scheduler.{cc,h} to sessionhelper.cc
[haoboy] Wed Dec 16
13:33:16 PST 1998 Bug fix for web cache code, mainly: (1) disconnect{}
between servers and caches; (2) sending 0 bytes in TcpApp Added support
for trace (web server/proxy log) driven web simulation. Added tests to
include that part. Added a simple introductory script tcl/ex/simple-webcache-trace.tcl.
Updated other outputs of webcache test suite after bug fixes.
[PH] Wed Dec 16
12:59:46 PST 1998
Integrated recent change on StarBurst
MFTP code from Christoph Haenle.
Tue Dec 15 09:23:55 PST 1998
Added support for Mobile networking in current version of ns; Mostly
cmu's version of mobility implementation -- integrated into ns.
[johnh] Thu Dec 3 14:56:47
PST 1998
Re-arranged some of the mftp/StarBurst code.
[PH] Thu Nov 12
15:40:35 PST 1998
added mix-mode, algorithmic routing, and virtual classifier test suite
changed McastMonitor structure
[PH] Thu Nov 5 18:37:59
PST 1998
added mix-mode (first-cut)
example scripts at tcl/ex/newmcast/mix-mode*.tcl
-
[YP] Tue Oct 15 13:11:39 PDT
1998
Modified and cleaned LAN architecture: tcl/lan/vlan.tcl
-
[PH] Wed Oct 14
13:24:46 PDT 1998
added virtual classifier; example: tcl/ex/virtual-classifier.tcl
-
[haldar] Wed Oct 7 15:35:01
PDT 1998
Added counter for routing table size for each node. support for rtg
table size to be used as label for nam visualizations.
-
[PH] Mon Oct 5 16:43:03
PDT 1998
Added algorithmic routing support for detailed simulator: example script:
tcl/ex/newmcast/detailed-algo.tcl
Added Multi-field filter, expanded from single field filter, Filter/Field
-
[haldar] Mon Sep 28
12:29:21 PDT 1998
Bug fix that now allows hierarchical routing to be used for single
level of hierarchy.
-
[PH] Mon Sep 21
13:53:48 PDT 1998
Added algorithmic routing (API: $ns rtproto Algorithmic): a space consumption
O(n) routing mechanism, currently working with SessionSim only
Added Pareto distribution the second kind (aka. Lomax distribution)
into the random distribution collection
-
[johnh] Mon Sep 14 20:51:55
PDT 1998
Re-autoconf'ed; several version numbers bumped (suggested by Lloyd
Wood).
-
[PH] Thu Sep 10
15:45:01 PDT 1998
changed session test suite output to avoid namtrace-all
re-enabled session suite in the validation test
-
[johnh] Mon Aug 31 15:26:17
PDT 1998
Re-autoconf'ed. Getrusage/sbrk are now detected in autoconf.
-
[SF] Sat Aug 29
16:50:06 PDT 1998
Included validation test for NewReno: test-all-newreno. This includes
a new option, newreno_changes1_, that forces a slow-start when many packets
are dropped from a window of data.
-
[VNP] Sat
Aug 22 11:59:47 PDT 1998
-
tcp-asym-sink.cc: call to acker_->update() in recv() had incorrectly
been ifdef'd out by someone. Restored the call.
-
mac.cc, ll.cc: replaced call to offset() with one to bind_offset()
-
chost.{cc,h}, tcp-session.cc: added disableIntLossRecov_ to selectively
disable integrated loss recovery.
-
[TH] Fri Aug 14 13:30:00
PDT 1998
Removed CBR_Agent; use Application/Traffic/CBR over Agent/UDP now.
Packet type for trace file is now settable from application. Source changes:
agent.h, app.h, cbr_traffic.cc, errmodel.cc, expoo.cc, ivs.cc, packet.h,
pareto.cc, rtp.cc, sa.cc,sa.h,scheduler.cc, telnet.cc, telnet.h, trace.cc,
traffictrace.cc, trafgen.cc, udp.h, udp.cc, tcl/lib/ns-default.tcl, tcl/lib/ns-intserv.tcl,
tcl/lib/ns-source.tcl. Removed cbr.h and cbr.cc.
-
[johnh] Tue Aug 11 13:04:40
PDT 1998
Portability fixes for HPUX from Ketil Danielsen Ketil.Danielsen@hiMolde.no.
-
[haldar] Tue Aug 11 11:31:33
PDT 1998 Included validation test-suites for hierarchical routing:
test-suite-hier-routing.tcl- runs 4 tests hier-simple, -cmcast, -deDM and
-session.
-
[haldar] Thu Aug 6 11:39:02
PDT 1998 Added scenario-generation library (~ns/tcl/scen-generation/
scen-lib) containing 3 congestion control scenario test cases (ref: Mark
Handley's RM congestion control schemes).
-
[johnh] Tue Aug 4 17:00:54
PDT 1998
Re-wrote mem-trace.h to isolate the unportable code. Portions commented
out for Windows platform based on feedback from John
Vicente.
-
[haldar] Wed Jul 29 17:20:08
PDT 1998 Created a holder for all traffic models and added many_tcp
traffic model (~ns/tcl/lib/ns-trafficgen.tcl) as a part of ns/lib
-
[LB] Tue Jul 28 16:41:29
PDT 1998 Added a validation test for the admission control algorithms
and related intserv functionality.
-
[LB] Thu Jul 23 15:50:14
PDT 1998 With Haobo Yu, fixed a bug in the Calendar Scheduler which
only appeared to be a problem with very long running simulations.
-
[haldar] Fri Jul 17 14:21:25
PDT 1998 Added topology semantics for agent distribution to scenario-generator
- allows placement of agents on designated src and dest stub/locations
for transit-stub topologies. Added hierarchical addressing support to topology
generator.
-
[PH] Mon Jul 13 18:23:53
PDT 1998
added hierarchical routing support for session sim
example: tcl/ex/newmcast/session-hier.tcl
-
[XY] July 11 15:15:00 PDT
1998
ns-2.1b3 Release.
-
[PH] Fri Jul 10
17:54:49 PDT 1998
added session simulator validation test
tcl/test/test-all-session
-
[johnh] Thu Jul 9 14:02:19
PDT 1998
tclclassinstvars turned on by default.
-
[KVa] Thu Jul 9 11:33:28
PDT 1998
-
Changed Connector instproc-like: dynamic to be isDynamic. This permits
running the topology dynamics code in compatibility mode.
-
[SF] Thu Jul 9
11:30:54 PDT 1998
With Kevin Fall, added validation tests for Tahoe, Reno, NewReno, and
SACK TCP to tcl/test/test-all-tcpVariants.
-
[TH] Tue Jul 7
15:50:00 PKT 1998
Added generic CBR traffic generator that can run on top of UDP agent.
Added new API methods to existing CBR_Agent. New file: cbr_traffic.cc
-
[johnh] Mon Jul 6 13:44:12
PDT 1998
./test-all (and related files) moved to tcl/test/test-all-simple.
-
[johnh] Mon Jun 29 16:55:51
PDT 1998
Manual routing test suite added; many_tcp fixed (due to chane in classifier-hash.cc)
-
[TH, GN] Fri Jun
26 18:30:00 PKT 1998
Revised API between Agents and Applications. Added new base class Application
for all Sources and Traffic Generators. Added generic agent callback functions
to base class Application. Added generic "socket-like" functions to base
class Agent.
-
[AH] Wed Jun 17
19:00:00 PKT 1998
-
Checked in the routing generator and the agent generator components of
the scneario generator, at tcl/ex/{route,agent}-gen.tcl. For use, source
these files and type 'routing -h' or 'agents -h' for more help. The agent
generator currently supports TCP and SRM types (and their variants, attached
sources, sinks and traffic models), in addition to a random distribution
of the start/end times of tcp sessions and join/start times of SRM members/sources.
-
Modified the topology generator to add API that returns the number of nodes
in a topology.
-
An example script that uses the scenario generator is under tcl/ex/agent-gen-script.tcl.
-
[kfall] Mon Jun
15 17:58:06 PDT 1998
-
change error module so that if markecn_ is turned out, you do not also
drop the packet if drop_ is set
-
changes to full-tcp (and support in bin directory), adding tracing of the
congestion action bit which is now on all the time, even if ecn is not
turned on
-
changes to full-tcp so that the slow-start due to long send idle periods
aren't triggered if you are sending just acks
-
Tahoe and NewReno support for full-tcp (a few days back)
-
[johnh] Wed Jun 10 17:58:06
PDT 1998
-
enabled MEMDEBUG_SIMULATIONS by default (in config.h)
-
added support for delayed binding (see tclcl's CHANGES for details) This
is only enabled if you configure --enable-tclcl-classinstvar. (Only added
support in Agent and NsObject.)
-
Fixed compiler warnings in cbq.cc, errmodel.cc, queue.h (meet gcc 2.7.2.3).
Queue.h was an actual bug!
-
re-autoconf'ed
-
added memory tracing to many_tcp.tcl
-
[johnh] Wed May 27 11:46:01
PDT 1998
tcl/ex/many_tcp.tcl demonstrates large numbers of TCP flows using Manual
routing. Run it with the -? option to see a description of its options
and limitations.
-
[floyd] Wed May
27 17:28:46 PDT 1998
Added test-all-ecn to validate. I also added a "-a" option to bin/raw2xg
for displaying the ECN flags.
-
[kfall] Wed May
27 13:57:31 PDT 1998
Bug-fix to tcp.cc to allow for doing "advance" to a number below curseq_.
Bug-fix to List ErrorModel to fix up handling of "droplist" strings that
contain extraneous spaces and white space.
-
[johnh] Wed May 27 11:46:01
PDT 1998
-
"make tcl/lib/TAGS" now generates {o,}tcl tags.
-
tcl-expand.tcl now includes tags about what the files are
-
Simulator::node now generates nodes indirectly through Simulator::node_factory_
-
Node::mk-default-classifier is new node-specific code to create its classifiers
-
Manual routing is now possible (new Agent/rtProto/Manual, ManualRtNode)
-
DestHashClassifier exists
-
Classifiers can now be resized
-
more error checking added to classifier's installNext
-
[AH] Sat May 23
22:24:00 PDT 1998
-
Checked in first cut of the topology generator part of the scenario generator
package. It currently supports random and transit stub topologies generated
by the GATech ITM generator. Check tcl/ex/topo-gen.tcl.
-
Checked in a topology viewer script, to enable viewing generated topologies
before running the simulations, in tcl/ex/topo-view.tcl.
-
An example script for using the checked code is in tcl/ex/topo-gen-script.tcl,
and the readme file is tcl/ex/topo-gen.txt.
-
[johnh] Fri May 22 11:17:00
PDT 1998
-
Agent/TCP advance/advanceby/done commands are now documented in the man
page.
-
Hierarchical routing renames: Simulator instproc {hier-,}node, HierNode
instproc {hier-,}enable-mcast
-
Classifier instproc dump
-
SessionSim {bw,delay}_parse moved to Simulator
-
Simulator instproc nodes-to-link and Simulator instproc nodes-to-link?
provide an abstract way to get link_($n1id:$n2id)
-
[floyd] Wed May
20 17:37:59 PDT 1998
Changes to one-way tcp implementations so that the TCP receiver sends
the ECN-Echo packet to the TCP sender on multiple ACK packets. This approach
is described in "http://www-nrg.ee.lbl.gov/floyd/ECN-TCP.txt". The change
includes a new flag in the packet header, "cong_action_", a.k.a. Congestion
Action, for the TCP sender to notify the TCP receiver that it has responded
to congestion.
-
[aswan] Mon May
18 15:31:45 PDT 1998
Reworked RLM implementation. A single implementation is now shared
between mash and ns. A subclass handles ns-specific RLM operation. See
the documentation for the MMG class in otcldoc for further details.
-
[kfall] Wed May
13 19:02:31 PDT 1998
Many changes to FullTcp, including fixes to timestamps, re- structuring
of dupack actions, fix an off-by-1 problem for window deflation. Also,
changes for ECN [not yet fully tested] and addition of 5 new tests to test-suite-full.tcl.
-
[floyd] Wed May
13 18:35:31 PDT 1998
Changes to tcp-newreno.cc to make corrections in the interactions between
Fast Retransmit and ECN. I also added a new validation test, "test-all-tcpVariants",
to the ns "validate" test. It tests Tahoe, Reno, NewReno, and Sack TCP
with one, two, three, and four packet drops. The validation test for ECN,
"test-all-ecn", is still in progress.
-
[floyd] Mon May
11 19:05:50 PDT 1998
Changes to tcp.cc, tcp-reno.cc, tcp-sack1.cc, and tcp.h, to make small
corrections in the interactions between Fast Retransmit and ECN, to avoid
some unnecessary reductions of the congestion window. The ECN validation
test "test-all-ecn" now documents the correct functioning of the Tahoe,
Reno, and Sack1 ECN code. In addition, the Fast Retransmit code has been
restructured, for readability. This is joint work with Kevin Fall.
-
[kfall] Wed May
6 18:52:37 PDT 1998
Changes to tcp.cc for ECN. ErrorModule now has "default" function which
says what to do with packets that shouldn't be handled specially. Classifiers
now have "findslot" fn which tells the slot# an object is in. Periodic
Error Model now has 'burstlen' parameter that provides for bursty periodic
losses, rather than just 1 pkt loss per period.
-
[LB] Mon May 4 11:22:02
PDT 1998 Added nam trace functionality to admission control modules.
-
[haldar] Wed Apr 29 10:25:45
PDT 1998
-
Revised the addressing format for ns as follows: Added API's for allocating
bits to address fields. Default value being 8 bits for port (2^8 agents)
and 7 bits for node address (2^7 nodes in a topology and 1 bit for mcast.
The API allows to set address for multilevel hierarchy (for hierarchical
routing), and expand the port bits to allow higher number of agents in
a node. For details see ~ns/tcl/lib/ns-address.tcl
-
Added support for hierarchical routing.Currently hierarchical routing supports
upto 3 levels of hierarchy. The gt-itm to hierarchical converter - sgb2hierns,
is available from topology generation webpage for ns. Example scripts for
hierarchical routing are available in ~ns/ex/hier-rtg-10.tcl and hier-rtg-100.tcl
-
[SB] Tue Apr 28 14:30:08
PDT 1998 Added some patches so that ns-compiles with gcc version 2.8.1
-
[floyd] Fri Apr
24 21:36:47 PDT 1998 Modified the tcp-init-win validation test, and
added tcp-init-win to validate.
-
[SB] Fri Apr 24 17:29:46
PDT 1998 Added support for 2 kinds of delay-adaptive receivers
-
[johnh] Tue Apr 21 09:58:22
PDT 1998
README is now up-to-date, html directory gotten rid of (it was quite
old).
-
[kfall] Thu Apr
20 19:40:37 PDT 1998
Re-arrange some of Sally's changes to the various tcp's in support
of initial window investigations. Update to tcl/rtmechanisms/rtm_reclass
so you don't have to specify a topo in order to specify enable/disable.
-
[floyd] Wed Apr
20 1998
Added TCP variables "syn_", "windowInitOption_", and "tcpip_base_hdr_size_"
for experimenting with the proposal for modified TCP initial windows in
the internet-draft on "Increasing TCP's Initial Window".
-
[johnh] Thu Apr 16 10:45:37
PDT 1998
Configure now finds tcl/tk on Debian Linux (patch submitted by Jeffrey
Austen <jausten@tntech.edu>).
-
[SB] Mon Apr 13 10:52:51
PDT 1998 tcl/lib/ns-random.tcl : Added support to generate a normal distribution.
-
[AH] Fri Apr 10 18:40:20
PST 1998
-
Added support for trace driven packet loss. Modified errmodel.h,cc to support
TraceErrorModel and MrouteErrorModel.
-
Added support for exhaustive selective packet loss over lans. Modified
tcl/mcast/ns-mlink.tcl and tcl/mcast/ex/newmcast/loss.tcl,types.awk.
-
Added an example of selective loss over lan test suite. Added tcl/ex/newmcast/pim-loss.tcl,pim-no-loss.tcl.
-
[AMC] Wed Mar 25 20:23:42
GMT 1998
-
tcl/lib/ns-random.tcl: Bug fix, and exponential now takes optional argument
mu.
-
config.h: int8_t would break under Solaris 2.6 (it's still a mess)
-
Makefile.in: Now tells you if you need to re-run configure.
-
[SB] Wed Mar 18 12:03:35
PST 1998
Added token bucket filter support
-
[PH] Fri Feb 25 7:13:54 PST
1998
Fixed minor bugs in sessionhelper.cc
Added Packet Reference Count for SessionSim (more than 50% memory save
for sim with large amount of trees, widely spanned trees, and high source
rate.
-
[SB] Fri Feb 20 12:13:58
PST 1998
Added support for RLM
-
[hari] Mon Feb
16 12:41:50 PST 1998
-
Lots of additions and mods for snoop version 2 and Explicit Loss Notifications
(ELN).
-
Empirical wireless error models from real traces.
-
Restructured wireless link layer stuff.
-
Various changes for Win32 (actually checked in a few days ago (in 2.1b3)
but unfortunately forgot to check in CHANGES.html then)
-
[VNP] Wed
Feb 11 19:55:34 PST 1998
-
Can invoke "configure" with --libdir=DIR to add to the library search path
(changed Makefile.in).
-
Bunch of changes to {tcp-session,chost,tcp-int).{cc,h}, including the combination
of fast start and TCP sessions.
-
[SB] Mon Feb 9 13:00:14
PST 1998
Added support for measurement based admission control for controlled
load service.
Release to make ns compatible with tcl/tk8.0p2 and to incorporate changes
in nam-1.0a4 (version 1.0a3 was skipped). This release is CVS tagged with
NS_2_1B2
-
[padma] Tue Jan 29
15:33:49 PST 1998
ns-2.1b2 release.
-
[padma] Tue Jan 29
15:33:49 PST 1998
The mcast test suite removed from the validation tests for now, to
proceed with the ns release; mcast tests seem to be failing due to change
in the order of the outputs in trace files while the output values by themselves
are valid.
-
[johnh] Wed Jan 28 16:06:49
PST 1998
Configure now looks for tclsh (hopefully fixing the ``Simulator not
found'' bugs which were due to empty gen/ns_tcl.cc files).
-
[KVa] Wed Jan 28 14:05:09
PST 1998
Typo in srm-adaptive.tcl:121, Agent/SRM/Adaptive::recompute-request-params{}
pointed out by "Roger \"WOJA\" Kermode"
<woja@media.mit.edu>
-
[johnh] Tue Jan 27 10:47:24
PST 1998
There were two ``default'' random number streams, one in Random and
one in RNG. They're now unified. Test suites updated accordingly.
-
[SR] Mon Jan 26 16:46:57
PST 1998
-
Added srm-topo.cc,h in main directory for large-scale simulations of the
SRM timer algorithm
-
Also added example tcl scripts tcl/session/scaling-*.tcl.
-
[TLT] Fri Jan 23 11:26:01
PST 1998 Fixes some problems with otcl namespaces in tcl 8.
-
proc class defined in ns-compat.tcl not found in global scope. This is
because a procedure defined within an otcl instproc (or proc) becomes a
procedure in ::otcl and NOT ::. The fix is to define the procedure as proc
::class.
-
info proc SplitObjectCompare not found. The info command finds only procedures
in the *current* namespace. I added a second check for ::SplitObjectCompare
before bailing out.
-
[KF] Wed Jan 22
23:20:58 PST 1998
Fix up test-suite-full.tcl to deal with quiet option. Check in test
output for test-all-full.
-
[KF] Wed Jan 21
22:20:58 PST 1998
Change to tcp to record time in rtt_ts for rtt_update calls when not
using actual timestamps. A number of changes to tcp-full to make the simul-close
test work (esp. handling of fins and retransmitted fins).
-
[johnh] and [visweswa]Wed
Jan 21 14:37:07 PST 1998
tcp-rbp was being too conservative in transmission after pacing ends.
Also, the rbp test suite failed to honor QUIET (although it worked for
the softer quiet). RBP saved tests updated.
-
[johnh] Wed Jan 21 14:16:12
PST 1998
test-suite-vegas-v1.tcl now supports a quiet option; rbp and vegas-v1
re-added to the validate script.
-
[johnh] Fri Jan 9 13:51:57
PST 1998
RBP test suite updated.
-
[KF] Tue Jan 5
18:02:59 PST 1998
Move emulation related files into emulate subdirectory, fix Makefile.in
Also, mention full-tcp fixes (over last n weeks) here
-
[KVa] Tue Dec 30 16:55:59
PST 1997
-
SRM base class...more functions are now virtual to support cleaner extensions.
Files affected: ~ns/srm.{cc,h}
-
TTLchecker can be made to decrement ticks other than 1. Also, options to
make it shut up about ttl exceeded.
Files affected: ~ns/ttl.cc
-
Classifier adjacents return format is now reversed. The key is now the
slot, the value is the object in that slot.
Files affected: ~ns/tcl/lib/ns-lib.tcl
NB:This breaks the multipath routing capability available in
dynamic unicast routing. I think I fixed it but I haven't tested it out
yet. If you are using this, drop me a line.
Files affected: ~ns/tcl/lib/ns-node.tcl
-
Some pretty printing procs, f-time and f-node (*gag*)
Files affected: ~ns/tcl/lib/ns-trace.tcl
-
The rtglib routines now use their own random number generator sequence.
Files affected: ~ns/tcl/rtglib/route-proto.tcl, ~ns/tcl/rtglib/dynamics.tcl.
-
The Tcl level random number generator procedures use the defaultRNG directly.
Fiels affected: ~ns/tcl/lib/ns-random.tcl.
-
[johnh] Tue Dec 30 12:44:23
PST 1997
CBR changes (finish method) reinstalled (they were accidently removed).
-
[VNP] Thu
Dec 25 13:23:35 PST 1997
-
Added the "corrected" timestamp echo algorithm mentioned in TCP/IP Illustrated,
Vol. 2, page 870. This algorithm is enabled only if ts_echo_bugfix_ is
true (it is disabled by default).
-
Files modified: tcp-sink.{cc,h}, tcp-asym-sink.cc tcl/lib/ns-default.tcl
-
[VNP] Wed
Dec 24 16:59:44 PST 1997
-
Added tcp-session.{cc,h} (which implement TcpSessionAgent).
-
Restructured IntTcpAgent to be a bare-bones TCP that only implements an
ordered data stream abstraction. Congestion control and loss detection/recovery
are done by TcpSessionAgent with the help of CorresHost.
-
Added some test files for tcp-fs, tcp-asym, tcp-asym-fs and tcp-int to
tcl/ex/tcp-fs. These still need to be cleaned up.
-
[johnh] Fri Dec 19 16:14:20
PST 1997
A rate-based pacing test suite.
-
[SB]Fri Dec 19 12:09:25 PST
1997
-
Changed ns-node.tcl and classifier.cc so that the classifier slot-table
can be reused
-
Added default shift/mask in tcl/lib/ns-default.tcl and config.h which would
make it easier to configure a simulation with a different kind of addressing.
-
Added ns at-now functionality in ns-lib.tcl
-
Added a code line to fill up ch->timestamp in the function allocpkt in
agent.cc
-
Changed declaration of gettimeofday in rng.cc to make it work on Solaris
-
Added warning messages in timer-handler.cc before abort() in functions
cancel and sched
-
[SM]Sun Aug 10 15:11:27
PDT 1997
-
Added doc-hdr.html for otcldoc. This html stub is included at the top of
index.html from the otcldoc output. We still need to create a Makefile
rule for running otcldoc, but in the meantime you can run it manually as
follows:
../tclcl/otcldoc -h doc-hdr.html tcl/*/*.tcl tcl/*/*/*.tcl
Fixed up some of the formatting in this change history.
[EA] Fri Nov 28 19:13:31
PST 1997
-
Fixed up scuba demos to work with new nam.
-
Fixed bug in namsupp where queues weren't being outputed.
[johnh] Sun Dec 7 16:44:39
PST 1997
A first cut at the Vegas test suite. Tests are very similar to ns-1.4
(after recv_newack_helper breakage was repaired), but are not quite identical
(probably because of retransmit timer changes).
[johnh] Fri Dec 5 17:41:15
PST 1997
CBR advance and advanceby commands and the done method added and documented.
Their usage is analogous to Tcp's.
Also session-rtp.tcl's bw_parse now handles more cases like tclcl's
atof_bw and added a time_parse.
[VNP] Wed
Nov 26 21:57:26 PST 1997
-
Added a new member function REDQueue::pickPacketForECN() which is called
when the RED algorithm decides to send an ECN notification. By default,
this function picks the incoming packet.
-
SemanticREDQueue calls the pickPacketForECN() function defined in SemanticPacketQueue,
which picks a packet uniformly at random.
-
Replaced the check $type == "RED" in ns-lib.tcl with one that just looks
for the string "RED" in $type. This is to accomodate derived classes of
REDQueue such as SemanticREDQueue.
[hari] Tue Nov
18 17:22:12 PST 1997
-
Multi-state error models and restructuring of OTcl support code in tcl/ex/ns-errmodel.tcl
(ns-ber.tcl now obsolete).
-
Some changes to LAN support code; in particular added code to have different
types of LL protocols on the same LAN.
Files: errmodel.{cc,h}, ns-errmodel.tcl, ns-lan.tcl, ns-default.tcl, ns-lib.tcl,
snoop.tcl, (removed) ns-ber.tcl
Release to incorporate tracing features for nam-1.0a2. This release is
CVS tagged with NS_2_1B1
-
[SK] Tue Nov 11 18:29:44
PST 1997
validate now runs only v2 tests. There's a new script validate-v1 to
run v1 tests.
-
[KVa] Tue Nov 11 12:40:44
PST 1997
Minor updates:
-
Fix Simulator constructor to invoke parent constructor last,
Also invoke use-scheduler instead of creating one directly,
-
Fix use-scheduler to be more careful about instance variables,
-
Add scheme for SRM agents to send log-scaled session messages based on
groupsize, rather than fixed periodic messages,
Use by setting ``Agent/SRM set sessionFunction_ "SRM/session/log-scaled"''
-
[kfall] Mon Nov
10 16:54:52 PST 1997
Update to ns-lib to have an intf to allocating and attaching flow monitors.
Add this to the red test suite so that it may now re- produce what it did
for ns1.
Finish the v2 CBQ test suite. Validated output is still lacking.
-
[johnh] Mon Nov 10 15:54:54
PST 1997
Configuration for tcl/tk changed to search for tcl/tk-8.0 and fall-back
on 7.6/4.2. The builder is responsible to make sure that the same tcl/tk
is used to build otcl, tclcl, and ns. If you have both versions and want
to force the old one, configure --with-tcl-ver=7.6 and --with-tk-ver=4.2
(or --with-tcl=/full/path/to/tcl7.6 etc.).
-
[hari] Wed Nov
5 20:44:32 PST 1997
-
Massive changes to error model structures and error generation to make
it work correctly. Three kinds of error models -- packet-based, byte-based,
and time-based. Support code is in ns-ber.tcl (some common error models).
Files: errmodel.cc, errmodel.h
-
Mods to snoop protocol incl. very preliminary first cut at congestion vs.
corruption losses. Updated example script in tcl/ex/snoop.tcl (also uses
util.tcl in the same directory).
-
[SK] Wed Nov 5 19:07:12
PST 1997
Major bug fixes made to detailedDM multicast routing protocol implementation.
Added example scripts and documentation. Files affected: tcl/mcast/{detailedDM.tcl,
timer.tcl} Files added: tcl/ex/newmcast/{detailedDM1.tcl, detailedDM1-nam.tcl,
detailedDM2.tcl, detailedDM2-nam.tcl}
-
[johnh] Wed Nov 5 19:03:00
PST 1997
Validate changed to detect and report failed tests.
-
[johnh] Wed Nov 5 18:29:13
PST 1997
Agent/TCP set restart_bugfix_ is back to true by default (but not in
v1-mode). ./test-all::telnet and ./test-all-red::red_twowaybytes: both
changed (very slightly) and were updated.
-
[PH] Mon Nov 3 15:59:56 PST
1997
Checked in the codes to improve SessionSim scalibility and to enable
multiple loss modules per tree. Files changed: sessionhelper.cc, tcl/session/session.tcl,
tcl/ex/newmcast/session3.tcl
-
[SK] Wed Oct 29 23:22:24
PST 1997
Checked in new multicast code that adapts to network dynamics and supports
LAN topologies Files added: tcl/mcast/{detailedDM.tcl, timer.tcl} (Copied
tcl/ex/timer.tcl to tcl/mcast/timer.tcl)
-
[johnh] Tue Oct 28 15:04:32
PST 1997
Some test suite work:
-
validate: a new program in the top directory which runs all known test
suites.
-
bin/fix_flow_id: sets flow-id to source/dest, or min of the two. The program
raw2xg graphs trace output, optionally putting different flows into ``bands''
(when invoked with -s 0.01 -m 90). It wasn't clear what the definition
of a ``flow'' was: was it the flow-id or the source? Kannan changed raw2xg
to use flow-id (the Right Thing---that's why we have flow-id, isn't it?).
This program (fix_flow_id) is the glue needed to map source or destination
into flow id for those scripts that prefer banding based on sources.
-
test-suite-tcp.tcl was fixed to use fix_flow_id, making it work (it had
been broken since 22-Oct-97).
-
[johnh] Mon Oct 27 18:52:25
PST 1997
Agent/TCP set restart_bugfix_ => false (temporarily).
-
[hari] Sat Oct
25 23:24:56 PDT 1997
Several changes, including some bug fixes:
-
Added a drop-from-front packet-drop policy to the RED and DropTail queue
classes. DropTail now has 2 kinds of dropping policies (drop-tail, of course;
and drop-front_) and RED has 3 (drop-tail_, which is the default; drop-rand_;
and drop-front_).
Files: drop-tail.{cc,h}, red.{cc,h}
-
TCP updates RTT from an ack only if no_ts_ flags is NOT set in packet header
(it's usually not set, unless there's an ack reconstructor en route, see
below). Also added TCP trace format control from Tcl, and derived TCP classes
can define their own trace function.
Files: tcp.{cc,h}
-
Added ack-recons.{cc,h} as a TCP ack reconstructor object (first cut).
Sits on other end of constrained reverse link and intersperses (reconstructs)
acks to the TCP source. Typically used in conjunction with schemes like
ack filtering for asymmet ric networks.
Files: ack-recons.{cc,h}, tcl/lib/ns-queue.tcl
-
Tracing tcp-asym-specific variables; controlling parameters from Tcl, fix
for ACC to work with ECN. Added new test script with many changes from
the previous version.
Files: tcp-asym.cc, tcp-asym-sink.cc, tcl/ex/asym/asym.tcl, tcl/ex/asym/util.tcl
-
Modified output of telnet test to warn about irreproducibility. Modified
test suite to reflect config changes of RED gateways.
Files: test-all, test-suite.tcl
-
Some bug fixes and other changes in Mac/Multihop code.
Files: mac-multihop.{cc,h}, tcl/lan/ns-mac.tcl
-
Semantic packet queues: various bug fixes, memory leak fixes, mods for
ack reconstructors, random drops, other configurational changes (control
from Tcl).
Files: semantic-packetqueue.{cc,h}, queue.cc
-
[KVa] Thu Oct 23 13:09:11
PDT 1997
SRM fixes, from Christoph Haenle <christoph@starburst.com> and Haobo
Yu <haoboy@isi.edu>.
-
[johnh] Wed Oct 22 21:20:57
PDT 1997
Some ns TcpAgent changes:
-
restart_bugfix_ is on by default (and turned off in ns-compat)
-
finish_ command is been replaced by the done method (which is now documented
in the man page) This saves 100 bytes of memory per TCP object.
-
there are now macros T_{RTT,SRTT,RTTVAR}_BITS which symbolically say how
these fixed point values are represented (if someone thinks C++ constants
would be better, I'd love to see them changed) (I only checked tcp.cc for
these magic numbers.)
-
[johnh] Wed Oct 22 21:18:33
PDT 1997
tcp-rbp bug fixes for Agent/TCP/Reno/RBP: prevent bursting after pacing,
properly compute pacing interval. New rbp_demo.tcl.
-
[KVa] Wed Oct 22 13:58:15
PDT 1997
Minor cleanup following the crash.
-
[KF] Mon Oct 20
19:56:51 PDT 1997
-
The tcp-full.cc is updated to incorporate some of (but not yet all of)
the changes from Kathie Nichols/Van.
-
the test-suite-full.tcl uses misc.tcl and topologies.tcl
-
test-suite-full.tcl also uses 2 new tcl programs:
bin/tcpfull-summarize.tcl
bin/cplot.tcl
The first file grinds on {for now} full tcp traces and produces generic
output files containing traces of segments, acks w data, pure acks, and
drops.
The cplot.tcl file is more generic, and takes a set of pairs of plot_file_names/labels,
plus a type of graphics program, and a title. It produces graphics using
either gnuplot or xgraph, where this decision is based on the assignment
of the "NSOUT" envariable.
So, if you say "setenv NSOUT xgraph" and run test-all-full (or do some
other invocation of ./ns test-suite-full.tcl xxx), you will get xgraph
windows. If you set NSOUT to gnuplot, you will get x11 gnuplots in front
of you. Eventually I will extend this to produce postscript for inclusion
in documents; as it was sort of put together with extensibility in mind.
-
[SK] Sun Oct 19 23:56:51
PDT 1997
Checked in multicast validation tests. Files added: test-all-mcast,
test-all-template-mcast, test-suite-mcast.tcl, test-output-mcast/{CtrMcast1.Z,
DM1.Z, DM2.Z, DM3.Z, DM4.Z}
-
[johnh] Sat Oct 18 20:28:37
PDT 1997
Random number seed starts at 1; RBP now uses srtt rather than rtt;
configure now checks for perl.
-
[SF] Sat Oct 18
14:39:35 PDT 1997
-
Made a bugfix so that maxburst now works correctly with SACK1 TCP.
-
Automatic validation tests in tcl/test now include the following: test-all-red,
test-all-sack, test-all-schedule, test-all-tcp, test-all-red-v1, test-all-cbq-v1,
test-all-sack-v1, and test-all-v1.
-
[KF] Fri Oct 17
11:29:10 PDT 1997
First cut at changing the fullTCP test suite over to the "simplified"
version (using tcl/test/misc.tcl).
-
[SF] Fri Oct 10
19:29:10 PDT 1997
A few more small changes to code for retransmit timers. Added new configuration
variables for setting initial values for retransmit timers. (The CVS log
for these changes and other changes made after Oct. 2 was wiped out in
the disk crash of Oct. 10.)
-
[SF] Wed Oct 8
21:16:36 PDT 1997
-
Added tracing of number of transmitted and retransmitted packets to TCP,
and added a new variable for window initialization after a timeout, for
research on TCP window initialization, both based on code contributed by
Kathie Nichols and Van Jacobson.
-
With Kevin Fall, made the following changes to TCP's retransmit timers:
The default is now that average roundtrip times are recomputed once a window,
not once every packet; changed initial values of retransmit timers; brought
the functionality more in line with that of actual implementations.
-
[PH] Wed Oct 8 17:22:44 PDT
1997
Added simple queue and ttl checker modules for SessionSim
-
[SF] Mon Oct 6
13:48:10 PDT 1997
Bug fix for ns-compatibility mode for CBQ. Code contributed by Greg
Minshall, minshall@acm.org.
-
[mjh] Fri Oct 3
12:59:37 EDT 1997
Changed nam tracefile code to generate more Tcl-like format
-
[johnh] Thu Oct 2 13:46:29
PDT 1997
Default scheduler changed to List in backwards compatibilty mode.
-
[SF] Wed Oct 1
14:41:13 PDT 1997
Changed the default RED behavior when queue is full from random-drop
to drop-tail.
-
[SF] Mon Sep 29
16:51:33 PDT 1997
Added an ECN-Capable flag to the packet header (ecn_capable_), and
modified tcp.cc and red.cc to set and check it.
-
[PH] Fri Sep 19 15:19:08 PDT 1997
-
modified SRM example scripts, tcl/ex/srm-*.tcl, to use error model instead
of rtmodel.
-
added equivalent SRM example scripts using session level simulator. tcl/ex/srm-*-session.tcl
-
made changes to errmodel.cc to add specific error model for the SRM scripts.
-
made changes to tcl/session/session.tcl so it parses link bandwidth and
delay in various units.
-
(previously done)fixed a bug between rtmodel and DM multicast.
-
(previously done)fixed API in the multicast example scripts.
Release for the SIGCOMM tutorial.
-
[haoboy] Thu Sep
11 18:35:24 PDT 1997
Support for Mark's new nam trace file format. All events except routing
are supported. It requires updates of Tcl.cc, which is already checked
in. The document of new trace file format is here.
An example script is at tcl/ex/nam-example.tcl
Also minor changes to nam-1 to make down link more visible.
-
[johnh] and [haoboy]
Wed Sep 10 22:51:33 PDT 1997
2.0 release.
-
[KVa] Tue Sep 9 23:48:19 PDT
1997
Moved drophead_ to the base simplelink class. Added $link ttl-drop-trace,
linkfail-drop-trace, and transit-drop-trace. usage is as:
$link ttl-drop-trace [FilePointer]
If FilePointer is not specified, it defaults to using the drophead_
Also made ttl.cc, delay.cc and dynalink.cc use drop-targets uniformly
[VNP] Wed
Sep 10 00:58:35 PDT 1997
tcp-newreno.cc: moved the code in recv() that handles the case of partial
new acks into a separate function called partialnewack_helper(). This allows
derived classes, such as tcp-fs, to do redefine this function to do additional
processing upon receiving a partial new ack. Files affected are tcp-newreno.cc,
tcp-fs.cc and tcp.h.
[KVa] Tue Sep 9 23:48:19 PDT
1997
Minor updates to rtglib, moved things into rightful places. cleanedup
the binaries.
[johnh] Mon Sep 8 14:54:58
PDT 1997
Changed default scheduler from List to Calendar. Many test suites changed
in minor ways due to different scheduling of packets with identical timestamps.
Test outputs updated: bug, delayed, no_bug, phase, phase1, reno2, reno3,
reno5, renoA, stats, tahoe3, tahoe4, telnet, timers.
[johnh] Mon Sep 8 14:06:47
PDT 1997
Changed default random number generator to internal rng (rather than
external srand/random). Updated test-output/{telnet,reno4,reno4a,phase2}.
Random number generation should now be consistent on all platforms.
[PH] Mon Sep 8 12:45:09 PDT 1997
Check in the entire automatic loss dependency insertion module. See
tcl/ex/newmcast/session3.tcl for an example. Files changed: tcl/session/session.tcl,
errmodel.cc, tcl/ex/newmast/session3.tcl
[johnh] Mon Sep 8 11:16:53
PDT 1997
Updated test-output/{phase1,reno2,reno3,reno5,timers} wrt Kevin's timeout
change from Monday, August 25.
[PH] Fri Sep 5 21:21:11 PDT 1997
-
Ported Scalable Session Messages(SRM-SSM) codes from Puneet
Sharam
-
Also ported selective error models for SRM-SSM test scripts. Files changed:
errmodel.[cc,h]
-
Added helper functions to trace memory consumption in stack and heap area.
Users need to compile ns with -DMEMDEBUG_SIMULATIONS in Makefine DEFINE
field. Example script:tcl/ex/newmcast/cmcast-50.tcl Files added: mem-trace.h.
Files changed: tclAppInit.cc scheduler.cc ns-lib.tcl
-
Fixed a minor dense mode multicast bug
-
Changed duplex-link-of-interfaces in tcl/ex/newmcast scripts to duplex-link
[johnh] Fri Sep 5 13:25:45
PDT 1997
Converted --with-Tcl to --with-TclCL (incompatible change wtih 2.0b17).
[hari] Thu Aug
28 11:43:13 PDT 1997
Mainly 2 bug fixes:
1. Accounting of ack_count in filteracks
2. Big memory leak because packets weren't being freed correctly in
filter.
Files affected: semantic-packetqueue.{cc,h}
-
[VNP] Mon
Aug 25 20:52:30 PDT 1997
-
Added tcp-fs.cc: TCP enhanced with "fast start" to enable a connection
to quickly resume after an idle period. A more detailed description can
be found in the source file itself.
-
Added semantic-red.cc: a version of RED that allows certain operations
(at present, pickPacketToDrop()) to be dependent on higher-layer semantics.
-
tcp{,-fack}.cc: Added a new case ("3") to the switch in closecwnd() that
resets cwnd_ to 1 but leaves ssthresh_ unchanged. This is invoked by the
TCP timeout code if there is no outstanding data and if restart_bugfix_
is set.
-
tcp.cc: If we are just coming out from an idle period, rtx timer is forced
to be set again in output().
-
tcp(,-reno,-newreno}.cc: moved code that handles non-rtx timeout events
into a new function timeout_nonrtx(). This enables derived classes to make
additions or modifications to the handling of non-rtx timeouts without
being forced to duplicate the rtx timeout code.
-
tcp-fack.cc: fack_ is updated in oldack() as well.
-
[Kevin Fall] Mon Aug
25 13:27:11 PDT 1997
Change timeout initialization in tcp.cc:rtt_timeout(). Old code: ((srtt>>3)+rttvar)*tick
new code ((srtt>>3)+rttvar+1)*tick Fix contributed by Kathie Nichols w/Van.
-
[hari] Sun Aug 24 18:10:50
PDT 1997
TCP with integrated congestion control and loss recovery. This helps
to perform congestion control and loss recovery between communicating hosts
on a per-host, rather than per-connection, basis. This is
beneficial for Web-like workloads and in other situations where multiple,
logically different TCP transfers may be in progress between two hosts
simultaneously. With IntTcpAgent, these logically different connections
would share the same cwnd, srtt, etc. for better congestion control; in
addition, data-driven loss recovery is improved as well. Support for "proxy"
hosts, acting on behalf of many users, is also included.
Files: tcp-int.{cc ,h} : Integrated TCP agent.
chost.{cc,h} : Per-host congestion control and loss recovery. The relevant
TCP control block variables are maintained on w.r.t. each "Corresponding
Host".
nilist.{cc,h} : Generic linked list routines.
-
[johnh] Tue Aug 19 15:27:11
PDT 1997
Initialization bugs in Vegas fixed. Code contributed by Lars
Eggert.
-
[johnh] Tue Aug 19 13:26:32
PDT 1997
configure.in.Tcl -> configure.in.TclCL
-
[johnh] and [LB]
Fri Aug 15 16:18:39 PDT 1997
New random number generator (rng.{cc,h}). Code to use the RNG is in
Random.{cc,h} but currently ifdef'ed out.
-
[EA] Thu Aug 14 11:19:36
PDT 1997
Added 'flash_annotate t d m' helper function that flashes a session
level message m in the nam window starting at time t for duration d.
-
[TH] Wed Aug 13 17:20:00
PDT 1997
Unified the way that timers are implemented in ns, by using the abstract
timer base class defined in timer-handler.h. This simplifies the Agent
base class by removing the timer methods there. Files affected: agent.h,
agent.cc, tcp.h, tcp.cc, tcp-sink.h, tcp-sink.cc, tcp-sack1.cc, tcp-asym.cc,
tcp-asym-sink.cc, tcp-fack.cc, tcp-vegas.cc, tcp-full.h, tcp-full.cc, cbr.h,
cbr.cc, udp.h, udp.cc, rtcp.cc, rtp.cc.
-
[johnh] Tue Aug 12 10:30:26
PDT 1997
class Samples now has a newpoint tcl command (code contributed by Ted
Faber)
-
[johnh] Tue Aug 12 16:19:51
PDT 1997
Links now have a (documented!) trace-callback option to trace to a
callback function.
-
[KF]Mon Aug 11 14:00:27
PDT 1997
-
Fixed (yet another) problem with sack/tcp-sink where the # of sack blocks
initialized properly. (reported by Venkat Padmanabhan).
-
Changed CBQ so that maxidle_ can be automatically determined, as in ns-1
-
Fixed buffer overflow bug in flow monitor, caused by using tcl.resultf("%s",
ptr) instead of tcl.result(ptr), where ptr points to a big string.
-
[SM]Sun Aug 10 15:11:27
PDT 1997
-
Fixed up PacketManager initialization code (in ns/lib/ns-packet.tcl) so
that modules that define packet header classes can be safely ommitted from
the build. Previously, an error would occur if the corresponding class
didn't exist. This new structure catches the case where the tcl code is
out of date with respect to a packet header defined in C++. As a result,
two new bugs were found and fixed: the ``aSRM'' and ``Tap'' packet header
classes previously did not have the appropriate initialization code in
ns-packet.tcl.
-
[AH] Sun Aug 10 02:05:12 PDT 1997
-
Major changes and fixes to the pim-sm code in tcl/pim; pim-init.tcl added
trace functions, pim-messagers.tcl tracing for protocol actions, pim-mrt.tcl
updates, pim-recvr/sender.tcl support for asserts and prune-overrides (for
LAN operation), pim-vifs.tcl added joining source-group pairs for source-specific
trees (leave fix, also).
-
Added a first test-suite for pim-sm in tcl/ex/newmcast/pim-test-suite-1.tcl.
This covers 6 basic scenarios for the pim protocol behavior to stress pim.
[note: pim1.tcl does not work due to the way CBR source allocates packets,
and interaction with pim encapsulation].
-
Added functions for clearing mcast forwarding caches in classifier-mcast.cc.
-
Major change to tcl/mcast/McastProto.tcl to support well-known-groups for
local multicast on LANs. Also changes to ns-mcast.tcl for various fixes
and source-group-joins.
-
[SM] Sat Aug
09 11:49:33 PDT 1997
-
First cut at port to win32 API (should work under both Windows 95 and NT).
-
This version still limps ... the new Windows makefile (makefile.vc) needs
much more work.
-
This rev requires the latest TclCL (new name for libTcl) since several
changes were required by the fact that Windows file names are case insensitive.
-
[PH] Thu Aug 7 19:53:17 PDT 1997
-
Added delay models for session level packet distribution. Files added:
delaymodel.[cc,h]
-
Modified structure of 'virtual links'. Loss and delay modules can be inserted
flexibly. Example script to insert loss module: tcl/ex/newmcast/session3.tcl.
-
Added helper functions to monitor packets in transit. Example script: tcl/ex/newmcast/pktintran.tcl
-
[TH] Thu Aug 7 12:47:34
PDT 1997
Redid tcp-full.cc timers to conform to the C++ timers defined in timer-handler.cc.
-
[PH] Mon Aug 4 17:59:32 PDT 1997
-
Added session level packet distribution(1st pass). Files added: sessionhelper.cc,
tcl/session/session.tcl, and example scripts tcl/ex/newmcast/session*.tcl.
-
Modified tcl/ex/mcast.tcl and tcl/ex/newmcast/*.tcl example scripts to
be consistent with the current API.
-
[KF] Thu Jul 31 12:09:34
PDT 1997
-
add a max bound on the TCP rto (maxrto_), default is 64 sec (like bsd)
-
modifications to the compat library to allow constructs of the form "set
ns_foo(bar) 3" to change global defaults.
-
add a (hacky) way to support the ns-1 style of creating cbq classes (i.e.
"[new class]") which OTcl really doesn't like much.
-
increase wrk_ array in the flow monitor and check bounds on it
-
[KF] Tue Jul 29 15:56:34
PDT 1997
Fixed bug in TCP Sack sink which made the initialization of max_sack_blocks
unpredictable (changed tcp-sink.{cc,h}). Also, removed redundant default
for this variable in ns-default.tcl.
-
[LB] Tue Jul 29 14:31:34
PDT 1997
ported ability to limit the amount of data sent by a CBR source (maxpkts_)
from ns-1 to ns-2. Files changed: cbr.cc, cbr.h.
Release for the ns retreat. This release is CVS-tagged with ``NS_2_0B17''.
-
[johnh] and [KF]
Fri Jul 25 17:29:12 PDT 1997
ns-compat now catches access to old default variables (like ns_tcp(window)).
This approach is a stop-gap, eventually we could map the old reads/writes
to the new variables if we think we must.
-
[johnh] Fri Jul 25 17:00:00
PDT 1997
Configure now checks for libTcl-1.0b2.
-
[SK] Fri Jul 25 12:49:36 PDT
1997
Made modifications to remove MultiSim and MultiNode. Files affected:
ns-lib.tcl, ns-node.tcl, ns-mcast.tcl, CtrMcast.tcl
-
[SF] Fri Jul
25 11:18:16 PDT 1997
-
Changed tcp-sack1.cc to correctly use the receiver's advertised window
during Fast Recovery.
-
[VNP] Fri
Jul 25 02:32:43 PDT 1997
-
Added semantic-packetqueue.{cc,h}: a derived class of PacketQueue that
understands higher-layer (e.g., TCP) semantics. To enable the creation
and configuration of a PacketQueue/Semantic object in Tcl, PacketQueue
is now derived from TclObject.
-
tcp*.{cc,h}: Got rid of the return-by-reference functions for the traced
member variables of TcpAgent.
-
[LB] Thu Jul 24 16:02:27
PDT 1997
Ported telnet source from ns-1 to ns-2. new files: telnet.{cc,h}. Changed
files: tcp.{cc,h}, ns-agent.tcl, ns-source.tcl, ns-default.tcl
-
[VNP] Thu
Jul 24 02:08:31 PDT 1997
-
tcp.{cc,h}: Got rid of the old-style tracing and replaced it with Giao's
TracedVar stuff. It is no longer necessary to use the return-by-reference
functions to refer to the traced variables (e.g., cwnd() instead of cwnd_),
but this will still work for now.
-
[VNP] Tue
Jul 22 02:13:12 PDT 1997
-
tcp.cc: finish() is called whenever there is no unacknowledged data
-
tcp{,-reno,-newreno,-fack}.cc:
-
rtx timer is NOT backed off at the time of fast retransmission
-
during fast recovery mode, we compare new ack with recover_ only if recover_cause_==1
-
tcp-fack.h: separate file for definition of FackTcpAgent to enable derived
classes
-
tcp-nonfifo.cc: added support for priority drop
-
red.cc: moved code that picks drop victim into pickPacketToDrop(). This
allows derived classes to use a different algorithm for this.
-
queue-monitor.{cc,h}: option to exactly trace queue length (rather than
just sample it)
-
[KVa] Thu Jul 17 08:16:16
PDT 1997
- srm.cc/srmAgent::recv() did not free packets appropriately, causing
wastage of memory for large simulations. (Noted by Puneet)
- streamlined bin/raw2gp to attempt to unify the raw2* programs.
-
[KVa] Tue Jul 15 14:44:19
PDT 1997
Minor bug fixes in rtglib, and raw2xg.
-
[TH] Mon Jul 14
15:05:09 PDT 1997
Ported fulltcp.cc, fulltcp.h, and test-suite-fulltcp.tcl. New files:
tcp-full.cc, tcp-full.h, and tcl/test/test-suite-full.tcl. Changed files:
trace.h, trace.cc, tcp.h, ns-compat.tcl, ns-default.tcl, ns-source.tcl.
-
[KVa] Fri Jul 11 09:53:33
PDT 1997
Major Updates: SRM
-
Adaptive Timers as described in [Floyd
etal. sigcomm '95]
Files Affected: tcl/mcast/srm-adaptive.tcl (new), srm.cc, srm.h,
tcl/ex/srm-adapt-req.tcl (new), tcl/ex/srm-adapt-rep.tcl (new)
-
Cleanup of the tracing in srm.tcl
-
Added tcl/mcast/srm-nam.tcl, so that, if sourced, will separate SRM packets
based on the type of packet. Data messages will have flowId_ 0, session,
request and repair messages have flow ids 40, 41, and 42 respectively.
The start number is specified by the global variable, ctrlFid_.
-
Cleanup of the example scripts in tcl/ex. See tcl/mcast/srm.txt for details.
-
[KVa] Fri Jul 11 09:53:33
PDT 1997
Minor mods
-
Hooks for DelayLink object to have a drop-target. Currently no OTcl support
yet. Should be there when I get around to it... someday... maybe...
Files Affected: delay.cc, delay.h
-
Cleanup compile time errors in scheduler.cc, scheduler.h.
-
The default static routing now takes a cost parameter; it is now possible
to do asymetric paths by configuring link costs appropriately.
Files Affected: route.cc, tcl/lib/ns-lib.tcl
-
Bug fixes to proc gen-map() in tcl/lib/ns-trace.tcl.
-
Fix multicast-rtglib interaction API.
Files Affected: tcl/mcast/McastProto.tcl, tcl/mcast/ns-mcast.tcl, tcl/mcast/dynamicDM.tcl,
tcl/rtglib/route-proto.tcl.
-
Bug fix to proc all-connectors() in rtglib. Routine did not instance the
appropriate variable. Hence, links did not drop packets in flight when
a link fails (hey, this may be a feature... :-)
Files Affected: tcl/rtglib/dynamics.tcl.
-
Created a *hacky* loss module to fake periodic loss of packets.
(maybe I can sneak it in if I use real small print, and hope no one notices...).
-
[johnh] Wed Jul 9 15:16:42
PDT 1997
RBP updates, including Agent/TCP/Reno/RBP.
-
[LB] Thu Jul 3 12:37:09
PDT 1997
Created RandomVariable class, a pure virtual class for random variables,
and derived classes for Uniform, Constant, Pareto, Exponential and HyperExponential
distributions. New files: ranvar.{h,cc}, tcl/ex/ranvar.{tcl,txt}. Changed
files: ns-random.tcl, ns-default.tcl.
-
[KF] Wed Jul 2 20:37:33
PDT 1997
Add the "flowmon" module and update supporting scripts in tcl/rtmechanisms.
This module is able to keep per-flow state. A flow is defined by creating
a classifier (typically of the classifier-hash variety) and giving it to
the flowmon. Examples are to be found in the rtmechanisms directory. Files
affected:
-
flowmon.cc -> new functionality
-
tcl/lib/ns-default.tcl -> defaults for Flow and Flowmon
-
tcl/lib/ns-queue.tcl -> rework the way CBQ handles drops
-
tcl/lib/ns-lib.tcl -> add hack to allow specification of a classifier object
with a CBQ or CBQ/WRR queue type when creating a "simplex-link"
-
Makefile.in -> include flowmon.o
-
FILES -> add flowmon.cc + rtm stuff
-
[PH] Fri Jun 27 20:13:23
PDT 1997
-
Added a general mcast control message agent(a 1st pass) to make tracing
easier: prune.[h, cc]
-
Fixed minor bugs in dynamicDM and pimDM
-
[PH] Wed Jun 25 18:19:07
PDT 1997
-
Added dynamic DVMRP and PIM-DM multicast: tcl/mcast/[dynamic, pim]DM.tcl
-
Cleaned up mulicast API(1st pass): tcl/ex/newmcast/mcast[1,2].tcl
-
[SK] Mon Jun 23 13:19:15 PDT
1997
Added man page for ns-2.
-
[johnh] Thu Jun 19 20:03:35
PDT 1997
tcp-rbp and friends added. Rate-based pacing is an experimental addition
to TCP to address the slow-start restart problem. See <http://www.isi.edu/lsam/publications/rate_based_pacing/index.html>for
details.
-
[johnh] Thu Jun 19 20:00:51
PDT 1997
raw2xg updated with more features (better usage and -qs:m: options).
-
[johnh] Thu Jun 19 20:00:28
PDT 1997
agent-timer.{h,cc} implements timers for agents with classes (rather
than pending_[] and timer_[]).
-
[GN] Thursday, Jun
19 16:03:23 PDT 1997
Minor enhancement to scheduler to make debugging easier by using the
uid_ field of each event: positive uid_: inside the scheduling queue negative
uid_: NOT in the scheduling queue
-
[johnh] Mon Jun 16 17:18:46
PDT 1997
Added TCP Vegas (ported from Ted Kuo's implementation for ns-v1). Changed
TcpAgent::send to TcpAgent::send_much.
-
[EA] Mon Jun 16
11:15:45 PDT 1997
Added simple simulation-level annotation (ns-trace.tcl, trace.cc).
-
[GN] Friday, Jun 13
19:03:23 PDT 1997
Daedalus Research Group
extensions by: Giao Nguyen,
Hari
Balakrishnan, Venkata
Padmanabhan.
-
LAN and wireless networks:
-
Link-layer protocols:
simple stop-and-wait protocol
TCP-aware snoop protocol
-
Scheduling algorithms at LAN interface queues
-
MAC protocols:
CSMA/CD (10 Mbps Ethernet)
CSMA/CA (WaveLAN)
IEEE 802.11
Metricom's Ricochet MAC
-
Shared channel with wireless error models
-
TCP router enhancements for asymmetric networks
-
Tracing of TCP variables
-
[johnh] Fri Jun 13 18:06:33
PDT 1997
Added slow_start_restart option to TcpAgent.
-
[EA] Fri Jun 13
17:18:13 PDT 1997
Added SCUBA protocol module in tcl/rtp. Added some demos in ex/scuba.
-
[KF] Thu Jun 12
12:32:31 PDT 1997
Small change to conf/config.head.in to look for socket() rather than
poll() when searching for the -lsocket library. Also a new version of the
configure script based on this.
-
[SM] Wed Jun
11 11:49:28 PDT 1997
Bug fixes to emulation rig. Previous version didn't properly account
for the fact that external events (i.e., packet arrivals) could come before
the next future event. Now, the scheduler sets a tcl timer to advance time
(instead of waiting in a null select) and the tap-agent sync's simulation
time to real time when an external packet arrives.
-
[PH] Wed Jun 11 09:34:33 PDT
1997
Changed centralized mcast test files to use MultiNode expandaddr option,
provided by Lee Breslau. It
solves the limitation that MultiSim only allow 128 unicast nodes. Also,
made minor changes to reduce memory used in simulations File changed: tcl/ex/newmcast/cmcast-[50,100,150,200,250].tcl.
-
[PH] Mon Jun 9 15:59:01 PDT
1997
Bug fix: Changed CtrMcastComp:compute-branch() to work in source =
RP case for RPT. File changed: tcl/ctr-mcast/CtrMcastComp.tcl.
-
[TH] Mon Jun 9 15:00:34
PDT 1997
Bug fix: Changed Newreno::recv() static variables acked, new_ssthresh,
ack2, ack3, and basertt to be class member variables. File changed: tcp-newreno.cc.
-
[LB] Sun Jun 8 14:09:16
PDT 1997
Provided a fix so that more than 127 nodes can exist in a simulation
that uses both unicast and multicast transport. Also added a proc to allocate
unique multicast addresses. File changed: tcl/mcast/ns-mcast.tcl
-
[TH] Fri Jun 6 17:30:16
PDT 1997
Ported tcp-fack.cc from ns-1 to ns-2. File added: tcp-fack.cc.
-
[KVa] Thu Jun 5 09:24:50
PDT 1997
ktest-all will stored compress files in test-output-raw, to save space.
minor mods to srm test suite, documentation in srm.txt.
minor bug fixes in srm.
-
[KVa] Tue Jun 3 14:08:45
PDT 1997
Major mods SRM for ns
Currently, some of the fixed timer functions have been implemented.
The adaptive functions, as well as local recovery mechanisms will be coming
along soon.
An earlier almost entirely C++-based version (ported from the ns-1
implementation) is also checked in, tagged, and overwritten. It can be
accessed by vint members should they want to take a look at it later.
Files affected: new files: srm.cc, srm.h, srm-state.h, tcl/mcast/srm.tcl,
tcl/mcast/srm-debug.tcl, tcl/mcast/srm-debug++.tcl, tcl/ex/simple-srm.tcl,
tcl/ex/srm2.tcl, tcl/ex/srm_star.tcl, tcl/ex/simple-srm-nam.tcl, tcl/ex/srm2-nam.tcl,
tcl/ex/srm_star-nam.tcl. Also modified: Makefile.in, trace.h, tcl/lib/ns-packet.tcl.
-
[KVa] Tue Jun 3 14:08:45
PDT 1997
Bug fixes in rtglib:
-
dynamics.tcl: rtModel/Manual did not work. Fixed, and tested. This code
is now used in tcl/ex/srm2.tcl and tcl/ex/srm_star.tcl to create ``interesting''
single packet drops.
-
route-proto, RouteLogic::lookup would return OIDs when dynamic routing
is enabled, which breaks the multicast. (It now breaks when equal cost
multipath routing is used, which needs to be fixed, to make multicast happy).
-
The new interfaces code defines additional instance variables to point
to nodes. Link dynamics wants to reset most everything (except nodes).
Resetting nodes can do bad thigns to agents.
-
[KVa] Tue Jun 3 14:08:45
PDT 1997
minor fixes:
-
In C++, Stoustrup [sic] recommands that array storage should be freed as
"delete[] variable", instead of simply "delete variable".
Changes made to AtHandler::handle(), Scheduler::command(), and RouteLogic::compute_routes().
-
Fixed annoying compiler warnings when used with -Wall in gcc.
-
"member initializers for <member1> and <member2> will be re-ordered
to march declaration order." warnings fixed in packet.h, classifier-hash.cc,
trace.cc, and queue-monitor.h.
-
"control reaches end of non-void function" fixed in Replicator::classify(Packet*)
and QueueMonitor::command(int, const char*const*)
-
"suggest parentheses around assignment used as truth value" fixed in delay.h
-
configure.in.head should not set -O2 if the .devel file is present. Furthermore,
as Johnh noted, -O2 is only relevant for gcc, so we really should fix this
better.
-
RouteLogic now only works in the context of a Simulator. Fix route-test
to instantiate a dummy Simulator.
-
Test Suites Modified misc.tcl and topologies.tcl to add hooks for a multicast
test suite.
ns-trace.tcl:gen-map did not show enough information within a node,
for example inside a MultiNode.
-
Changed simplex-link, duplex-link to directly generate interfaces when
told. Use by
Simulator set NumberInterfaces_ 1
-
[johnh] Thu May 30 1997
Added support for dmalloc for memory debugging. Configure using --with-dmalloc.
-
[johnh] Thu May 27 1997
Revised configure scripts to eliminiate code duplication.
-
[TH] Tues May 27 19:00:00
PDT 1997
-
Renamed test-suite-v2.tcl and test-all-v2 to test-suite.tcl and test-all,
respectively. These files were also aligned with Kannan's tests in the
tcl/test directory.
-
Moved existing test-suite.tcl to tcl/test, renaming it as test-suite-v1.tcl.
Moved existing test-all to tcl/test/test-all-v1.
-
Moved test-suite-cbq.tcl, test-suite-red.tcl, and test-suite-sack.tcl to
tcl/test and appended them with "-v1" suffix. Made similar moves for test-all-cbq,
test-all-red, test-sack, and test-all-sack.
-
[TH] Tues May 27 16:45:00
PDT 1997
Fixed bug in tcp-newreno.cc which was causing TcpAgent::recv to be
called instead of NewRenoTcpAgent::recv. This bug has been present since
the initial revision of ns-2.
-
[LB] Fri May 23 15:46:16
PDT 1997
Fixed a bug in CalendarScheduler::cancel() that corrupted the calendar
data structure and caused the simulator to crash. Also improved the efficiency
of that function. File changed: scheduler.cc
-
[PH] Thu May 22
18:03:36 PDT 1997
-
Added larger scale test files. tcl/ex/newmcast/cmcast-[100,150,200,250].tcl,
tcl/ex/newmcast/cmcast-big.txt
-
[PH] Thu May 22
13:33:56 PDT 1997
-
Moved agents that handles IP mcast packet encapsulation and decapsulation
to C++.
-
Added a centralized mcast example that uses only source specific trees.
tcl/ex/newmcast/cmcast-spt.tcl
-
Added prune propagation for dense mode mcast. Patch provided by Isidor
Kouvelas and Lorenzo Vicisano
(actually this change was committed two days ago)
-
Files added: ctrMcast.cc, ctrMcast.h, tcl/ex/newmcast/cmcast-spt.tcl
-
Files changed:tcl/ctr-mcast/CtrMcast.tcl, tcl/ctr-mcast/CtrMcastComp.tcl,
tcl/lib/ns-packet.tcl, trace.h tcl/mcast/ns-mcast.tcl, tcl/mcast/DM.tcl,
Makefile.in, FILES, CHANGES.html tcl/ex/newmcast/*.tcl
-
[TH] Wed May 21 18:57:00
PDT 1997
Ported bug fixes from ns-1 for tcp.cc, tcp-newreno.cc, tcp-reno.cc.
This also affected ns-default.tcl
Added reset functions to Acker and TcpSink in tcp-sink.cc so that tcp
sinks can be reset and reused in a simulation (Sack sinks also are covered)
-
[LB] Wed May 21 17:02:52
PDT 1997
Added variable length portion to Packet class to handle non-fixed length
stuff (e.g., data). Changed files: packet.h, agent.h, agent.cc
-
[KVa] Tue May 13 23:37:08
PDT 1997
Added equal cost multi-path routing. Usage is shown in two examples
in tcl/ex/simple-eqp.tcl and simple-eqp1.tcl.
As a side effect, added the instproc-like, installNext to
classifier.cc, to install a TclObject in the next available slot. All,
added instprocs install, clear, and installNext to track slots filled.
These are then used by the instproc adjacents, to return information about
adjacent TclObjects in the slot.
Files affected: classifier-mpath.cc (new), tcl/ex/simple-eqp.tcl
(new), tcl/ex/simple-eqp1.tcl (new), tcp/ex/simple-eqp-nam.tcl
(new), tcl/ex/simple-eqp1-nam.tcl (new), tcl/rtglib/route-proto.tcl.
-
[KVa] Tue May 13 23:37:08
PDT 1997
Trace manipulation tools:
-
raw2xg and raw2gp take the -a option, to trace acks as well, if trace information
about them is present.
-
getrc will extract trace information about a single node or link. Usage
is
getrc [-o output file] [-b] -s node1 [-d node2] [trace file...]
Typically, all traffic from node1 is extracted. If -b is specified, then
all information to node1 is extracted as well. If both node1 and node2
are specified, then all traffic on the link between node1 and node2 is
extracted. Specifying the -b option will extract traffic in both directions
on that link.
See also tcl/test/README for a relatively more comprehensive writeup.
[KVa] Tue May 13 23:37:08
PDT 1997
Cleaned up heap.h and dynalink.cc to elide compiler warnings seen with
-Wall.
[KVa] Tue May 13 23:37:08
PDT 1997
The route dynamics code si cleaned up. Route Models are only setup
just prior to initiating routing. This eliminiates some unwanted side effects
when initiating tracing on links that are dynamic.
Files affected: tcl/lib/ns-lib.tcl, tcl/lib/ns-link.tcl, tcl/rtglib/dynamics.tcl.
[KVa] Fri May 16 00:48:14
PDT 1997
New route model for one shot route dynamics. It should now be possible
to say
$ns_ rtmodel-at $time $op $node1 [$node2]
to take $node1 (or the link $node1-$node2) up (or down, as specified by
$op) at a particular time. It is done by creating a one-shot route model,
rtModel/Manual. (It is currently untested, though no problems are anticipated
by this author...hah!)
[SM] Tue May
13 17:44:34 PDT 1997
-
Made changes to the scheduler (added RealTimeScheduler) to support
real-time simulation for emulated network envinroments. This real-time
extension works just like the normal scheduler but events are delayed until
real-time catches up. In particular, the scheduler "now" method returns
the current simulated time rather than the current real time so any simulation
CPU overhead is not reflected in event timing calculations.
-
Added objects to interface to external networks. net.h, net.cc, and net-ip.cc
modules came from mash/mbone tools.
-
Added hook in ns-lib.tcl to create tap header only if real-time scheduler
is specified. This avoids unnecessary waste of memory when not using tap
agents. We assume that taps and real-time schedulers are used in tandem
but haven't added any code to verify this.
[PH] Tue May 13
15:30:00 PDT 1997
-
Seperated multicast protocol functionalities from MultiNode. Moved original
multicast code tcl/lib/ns-mcast.tcl to tcl/mcast/*.tcl.
-
Added multi-access link module (tcl/lan/) and interface support (tcl/interface/
and net-interface.cc).
-
Added detailed PIM code (tcl/pim in progress). The above are codes ported
from Ahmed A-G Helmy's development
on top of ns-2.0a3.
-
Added centralized multicast tree computation modules (tcl/ctr-mcast).
[LB] Fri May 2 15:09:32
PDT 1997
Updated the tcl script demonstrating the use of traffic generation
modules. It now includes a simple nam demo. Changed files: tg.tcl, tg.txt.
New files: tg-nam.tcl
[SM] Fri May
2 12:09:53 PDT 1997
Updated FILES. Also, set up a nighly cron job to snapshot the current
cvs snapshot into a publicly accessible "ns-current" release.
[KVa] Mon Apr 28 09:08:26
PDT 1997
Moved up? and down? to base Class Link,
instead of being in the derived Class SimpleLink. The procedures
work for simple p2p links. Other types of media such as LANs that must
provide similar features may have to redefine them appropriately.
[KVa] Mon Apr 28 09:08:26
PDT 1997
Leveraged of the v2 test suites to construct routing test suites. The
list of mods are:
-
A new test-suite driver, called ktest-all is in the bin directory. The
invocation
ktest-all [<suite> [<test> [<topology>]]]
executes:
ns tcl/test/test-suite-<suite>.tcl <test> <topology>
If no test is specified, it runs all the tests in that suite. If no topology
is specified, it runs the specified test against all topologies defined
in the topologies file.
-
Any single test-suite file is now in three parts: (1) tcl/test/topologies.tcl
contains a library of topologies, and variants for netowrk dynamics. Currently
four topologies are defined. (2) tcl/test/misc.tcl contains the basic housekeeping
routines, such as openTrace, finish etc. (3) Individual tests are in tcl/test/test-suite-<suite>.tcl
files.
-
The procedure finish in tcl/test/misc.tcl no longer directly invokes
xgraph. Instead, it simply writes out out.tr, closes all trace files, and
exists.
-
ktest-all will invoke xgraph if the DISPLAY environment is defined; otherwise,
it will save the out.tr file as is in test-output-raw for later comparison;
in the latter case, it will also use gnuplot to generate a postscript file
that is placed in the ps-files directory.
-
The bin directory also contains raw2xg and raw2gp, two programs to convert
trace files into output for xgraph or gnuplot. Convenient ways of invoking
either are:
% raw2xg out.tr , xgraph -bb -tk -nl -m -x time -y packets
% raw2gp out.tr > out.gp ; gnuplot
load "out.gp"
...other gnuplot commands ...
exit
%
There will be additional cleanup as I work on the test-suites some more.
Comments and suggestions are welcome.
[KVa] Mon Apr 28 09:08:26
PDT 1997
Makefile (and Makefile.in) for ns.dyn does not include tclAppInit.o.
[KVa] Wed Apr 23 16:50:15
PDT 1997
SACK crashes when it is not in fast recovery mode, and receives acks
out of order. For now, we just ignore such acks.
[KVa] Wed Apr 23 16:50:15
PDT 1997
tcl/ex/simple-*.tcl examples should close output files before further
processing in order to ensure that all data gets properly flushed.
In addition, added tracing route dynamics events to stdout.
Files affected: tcl/ex/simple-dyn.tcl, tcl/ex/simple-rtg.tcl, tcl/ex/simple-heap.tcl,
[KVa] Wed Apr 23 16:50:15
PDT 1997
Bugs in rtglib. delay.cc, delay.h did not calculate packet transmission
time correctly.
Routing code had bugs in how routes were calculated, and route updates
distributed.
Files affected: delay.cc, delay.h, tcl/rtglib/route-proto.tcl, tcl/rtglib/dynamics.tcl
[KVa] Mon Apr 14 12:06:35
PDT 1997
abort(), when called, breaks of the trace abruptly. Trap the
call with cpp hacks, invoke [[Simulator instance] flush-trace] and then
abort.
Files affected: Makefile.in, tclAppInit.cc, tkAppInit.cc
[KVa] Thu Apr 10 16:21:25
PDT 1997
Added functions to dump the simulation objects that comprise the topology,
as an aid to debugging. Use by specifying
[Simulator instance] gen-map
to see the dump on stderr.
Files affected: tcl/lib/ns-trace.tcl
[LB] Fri Apr 25 14:26:12
PDT 1997
-
Added traffic generation modules to implement on/off sources with exponentially
and pareto distributed on and off times, and a traffic generation module
that is driven by a trace file. New files: trafgen.h, pareto.cc, expoo.cc,
traffictrace.cc, traffictrace.h, udp.cc, udp.h.
-
To support the pareto on/off source, added the function Random::pareto()
to random.h.
[KF] Wed Apr 23
22:00:21 PDT 1997
-
CBQ is now part of the simulator
Generally works.
-
ALL default queue sizes are now 50 [per ns-1 defaults]
-
QueueMonitors now know the difference between
drops, arrivals, and departures and can monitor these
-
new class called 'Samples' which collects samples
points of something and can provide a mean and variance of the points
(see integrator.cc)
-
Queues can be flow controlled
by forcing them to be blocked or unblocked as needed. Also it's possible
to make it so that when they send a packet they become blocked rather than
unblocked.
-
common packet header
contains a timestamp field; this is used to compute queueing delay for
individual packets at queues
-
classifier-hash
a classifier to identify 'flows' ... still in development, but presently
used by cbq
-
bug fixes/mintor changes to red.cc, test-suite-red.tcl
-
test-suite.tcl updated to ns-1 version (stats test minor change)
[SB]Thu Apr
17 17:57:53 PDT 1997
Fixed tcp-simple.cc and random.cc so that test-suites work for solaris
as well.
[TH] Wed Apr 9
16:24:25 PDT 1997
Fixed busy-wait condition in tcp-sack1.cc that resulted from incorrectly
setting the overhead parameter.
[KVa] Tue Apr 8 16:33:49
PDT 1997
Added Distance Vector dynamic routing to ns; As a side effect,
created the C++ random functions in tcl/lib/ns-random.tcl.
At some point, a test-suite-routed.tcl will be provided to show examples
of routing.
Files affected: rtProtoDV.cc (new), rtProtoDV.h (new),
trace.h, tcl/lib/ns-lib.tcl, tcl/lib/ns-random.tcl (new), tcl/rtglib/route-proto.tcl.
[KVa] Tue Apr 8 16:33:49
PDT 1997
Created a AgentClass, dervied from TclClass. Removed NullAgentClass,
and moved Agent/Null into tcl/lib/ns-agent.tcl
Files affected: agent.cc, Makefile.in, tcl/lib/ns-lib.tcl, tcl/lib/ns-agent.tcl
(new).
[KVa] Tue Apr 8 16:33:49
PDT 1997
Added TCL debugger capabilities to ns.
To use, reconfigure ns with tcl-debug
5.20. In your script, add `debug 1' at the location you want to start
debugging.
More details about the Tcl debugger are in Don
Libes' paper.
Files affected: tclAppInit.cc, configure.in, tcl/lib/ns-lib.tcl, conf/configure.in.tcldebug
(new).
[KVa] Tue Apr 8 16:33:49
PDT 1997
Moved class Delay/Link to class DelayLink.
Files affected: delay.cc, tcl/ex/fq-cbr.tcl, tcl/ex/fq.tcl, tcl/lib/ns-default.tcl,
tcl/lib/ns-link.tcl.
[SB]Mon Mar
31 17:46:04 PST 1997
Added deficit round robin scheduling (drr.cc)
[SM] Fri Mar
28 20:45:40 PST 1997
Update
[TH]'s scoreboard
changes with respect to this afternoon's packet format changes.
[SM] Fri Mar
28 20:32:24 PST 1997
First cut at integration of nam into ns code base. Basically just ported
the pieces verbatim so that nam can now be run as a script interpreted
by nsx. In this crude initial version, you can run "../nsx srm-demo-nam.tcl
-name nam" from the nam directory.
[TH] Fri Mar 28
18:45:00 PST 1997
Brought scoreboard.cc and scoreboard.h up to date with the latest versions
that were in ns-1 (9/96 PSC version: UpdateScoreBoard, CheckSndNxt, MarkRetran
modified for fack). Now most of test-suite-sack test cases work correctly.
[SM] Fri Mar
28 17:33:43 PST 1997
A number of additional changes to the packet format. Eliminated the
"Header" classes altogether. Now we have a simple template header-class
template that just defines the header size. Most of the packet-manager
functionality moved into ns-packet.tcl. Factored the flags field out of
ip6 into a separate hdr_flags struct. Eliminated old commented-out code
in a number of places. Created a "common" header (hdr_cmn) and moved the
size field from the ip header to the new common header. Also put the uid
here. Changed hdr_ipv6 to hdr_ip for consistency.
[KF] Fri Mar 28
13:36:58 PST 1997
Updates to make RED gateways work. Includes mods to red.cc and RED's
default parameter names, some additions to the compat library, and a change
so that when the simulator begins all queues have a "reset" method called
(previously, only nodes and agents had this done to them, but RED and probably
some other queue types need to be reset to compute functions of their Otcl-linked
variables before the sim starts).
[TH] Fri Mar 28
12:50:02 PST 1997
Added test-suite-v2.tcl to the repository (port of "test-suite.tcl").
Added two new instprocs to ns-lib.tcl which help to set up tcp connections.
Moved the "Agent instproc dst-port" from ns-compat.tcl to ns-lib.tcl since
it can also be used in ns-2.
[SM] Fri Mar
28 12:23:58 PST 1997
Another cut at packet format reorg. Eliminated the need for static
variables. Moved the accessor methods from the "Header" classes into the
"hdr" structs. This rearrangement allowed us to alter a minimal amount
of code in each module that ref'd a packet header (i.e., only needed to
change the pointer type of the variable that pointed at the packet header.)
-
[SM] Thu Mar
27 23:49:57 PST 1997
Added some new modules in tcl/ex for CS268 homework 3.
-
[SM] Thu Mar
27 23:49:57 PST 1997
Put back seqno's in cbr agents.
-
[SM] Thu Mar
27 17:19:42 PST 1997
Added a simple fair queuing module that uses flow id's (aka classes)
to differentiate flows. Added an example script: tcl/ex/fq.tcl. Some of
the code in fq.tcl should migrate into the built-in library.
-
[SM] Thu Mar
27 00:11:31 PST 1997
Added a make rule for "nsx", which is just like ns but is a wish interpreter
instead of a tclsh. Retired ns_tclsh.cc and replaced with tclAppInit.cc
and tkAppInit.cc. Also added -ldl for bsdi-3.
-
[EA] Wed Mar 26
22:49:30 PST 1997
Fixed up Session/RTP to work with latest version. Added a rate_change()
method to RTPAgent to allow correct behavior when changing transmission
rates. See code in rtp.cc for details.
-
[KF] Wed Mar 26
17:11:17 PST 1997
Replace test-suite.tcl with test-suite.tcl from ns-1.
-
[KVa] Wed Mar 26 15:24:24
PST 1997
The test suites break with the dynamics, because they want to acquire
an instance of the Simulator. However, the test-suites operate in compatibility
mode, and hence only create an instance of OldSim, a subclass of Simulator.
So, wrote a `Simulator instance' procedure that returns the current instance
of the simulator.
Files affected: tcl/lib/ns-lib.tcl, tcl/lib/ns-trace.tcl, tcl/rtglib/dynamics.tcl,
tcl/rtglib/route-proto.tcl
-
[SM] Added trace.h
to FILES.
Snapshot for alpha testers.
-
[KVa] Tue Mar 25 09:16:33
PST 1997
Fix auto configuration so that libotcl.a is found when the directory
is explicitly specified using --with-otcl.
Files affected: conf/configure.in.otcl, configure
-
[KVa] Tue Mar 25 09:16:33
PST 1997
Change Tracing so that trace elements can be created and used entirely
via OTcl if the tracing is unrelated to packet activity.
See rtModel::init, rtModel::trace, and rtModel::log-dynamic in tcl/rtglib/dynamics.tcl
for how to use.
Files affected: Makefile.in, trace.cc, tcl/lib/ns-lib.tcl, tcl/lib/ns-trace.tcl
(new)
-
[KVa] Tue Mar 25 09:16:33
PST 1997
Add dynamics to links and nodes so that portions of the topology can
be made to fail and recover. The failure and recovery can be controlled
through distributions.
Usage:
set ns [new Simulator]
$ns rtmodel <Distribution> {<up-time> <down-time>} <node1> [<node2>]
A distribution (Distribution) can be specified either to a single node
(node1) or to a single link (between node1 and node2). The up-time (down-time)
is a parameter for the distribution to specify how long the specified node/link
will be up (down) before changing state to being down (up).
Files affected: Makefile.in, connector.cc, delay.cc, dynalink.cc (new),
queue.cc, queue.h, tcl/lib/ns-lib.tcl, tcl/lib/ns-node.tcl, tcl/rtglib/dynamics.tcl
(new), tcl/ex/simple-dyn.tcl (new), tcl/ex/dynamic-nam.tcl(new),
tcl/nam-demo/nstonam.awk.
[KVa] Tue Mar 25 09:16:33
PST 1997
Add dynamic routing to deal with topology changes (work in progress).
Currently, the basic all-pairs-spf routing has been modified to fit a more
uniform API. Also complete is a session-level routing, (i.e., the
all-pairs-spf static routing used to precompute routes prior to starting
the simulation, and run everytime the topology changes).
Usage:
set ns [new Simulator]
$ns run [Static|Session]
Note: Additional more detailed configuration hooks will soon become available,
as well as other routing protocols.
Files affected: Makefile.in, tcl/lib/ns-lib.tcl, tcl/rtglib/route-proto.tcl
(new), tcl/ex/simple-rtg.tcl (new).
[SM] Added heap.h
to FILES.
Snapshot for alpha testers.
set ns [new Simulator]
$ns use-scheduler Calendar
[SM] Tue Mar
18 15:32:01 PST 1997
Added a simple, completely contrived script to generate SRM-like sample
paths to illustrate SRM in EECS colloquium (see tcl/ex/srm-demo.tcl).
[SM] Tue Mar
18 15:32:01 PST 1997
Fixed bug in Packet::copy. "*p = *this" was bogus because bits are
now allocated in a separate buffer and this was smashing the current packet's
bits buffer to point to the old one, which was both leaking memory and
causing unwanted sharing of private buffers.
[SM] First cut
at agent detaching code. Suggested by Emile
Sahouria.
[SM] Fixed bug
pointed out by Emile
Sahouria, Giao Nguyen,
and Tom Henderson, where
node port demuxer was created in wrong place. Moved this code from compute-routes
to Node::attach (i.e., should install locate route to port demuxer first
time the demuxer is created, not when compute-routes is run, becase in
latter case port demuxer might not yet exist).
[KF] Arrange for dynamic
linking to be the default instead of static. Static linking is performed
if '.devel' exists in the build directory.
[SM] Fix up tcl/ex/simple.tcl
for v2.
[SM] Set flow-id
in tcp ack agent just as we used to set the class-id.
[SM] Arrange for
tcl variable "class_" to be bound to flow-id field so that scripts impacted
by Kevin's recent packet header changes continue to work.
[SM] Added a new
TCPSimple that does minimal Go-back-N (no slow-start, no fast restransmit,
etc) for a CS268 homework.
[KF] Change to ns-source.tcl
to incorporate Source/FTP "produce" function, needed by some of the ns-1
conformance tests. Added "agent" instproc to node to return the agent with
the specified port ID. Fixed up some typedef and other type conflicts in
packet.h and with respect to srandom() and gettimeofday() on suns.
[KF] Support for new
packet format. Fix bug relating to header double-word alignment, happens
on suns.
[KVa] Add support for
heap schedulers. Use as:
set ns [new Simulator]
$ns use-scheduler Heap
Snapshot to VINT collaborators
and CS268 students.
-
[SM] Bug fix from
Mark
Handley. Reno tcp agent had wrong prototype for recv method and thus
was not overriding the default virtual.
-
[SM] Added
several
changes from Curtis Villamizar,
including a simple stochastic fair queuing module and a simple change to
the tcp agent to emulate persistent connections.
-
[SM] Regenerated
configure using Kevin Fall's
latest fixes to our conf module.
-
[SM] Changed drop-trace
method to drop-target. This should only affect the internal APIs and shouldn't
break any scripts.
-
[SM] Bumped size
of max message in packet structure to 80 bytes. This limit eventually must
be removed.
-
[SM] Eliminated
C++ statically defined default drop-target and changed link building code
to point a queue's drop-target to a null-agent.
-
[SM] Added first
cut for queue-size monitoring agents (add integrator.cc). Cleaned up approach
for splicing objects into Link pipeline. Added ttl field to packets and
TTLChecker object to update ttl and throw out ttl-expired packets (and
ttl.cc).
-
[SM] Fixed long-standing
bug in static routing code; problem found by, and fix supplied by, Andrew
Swan. Went undetected for so long because bug occurs only for simplex
links.
Snapshot to VINT collaborators
and CS268 students.
-
[SM] Fixed bug
in ftp source compat code introduced by last rev. Prevented test suite
from running.
Snapshot to VINT collaborators
and CS268 students.
-
[SM] Made a number
of small changes to help out with homework
1 for CS268.
-
[SM] Fixed missing-return
bug introduced in last rev. Thanks to WeeSan
Lee.
-
[SM] Changed
Agent/Message
callback name from handle to recv.
Snapshot to VINT collaborators
and CS268 students.
-
[SM] Fixed inconsistent
declaration of random() and problem with binding of "maxSackBlocks_". Reported
by WeeSan Lee.
-
[SM] Restructured
the way agents are reset. Moved from node "attach time" to simulation "run
time". Otherwise, state variables that change between attach and run-time
aren't consistent with the reset operation. This fix prompted by Tom
Henderson, who noticed that delayed-ACK TCP output was inconsistent
with that of ns-1.
Snapshot to VINT collaborators
and CS268 students.
-
[SM] Omitted connector.cc
and connector.h from distribution; now added. Reported by
WeeSan
Lee.
Snapshot to VINT collaborators
and CS268 students.
-
[SM] Added
Dante
De Lucia's generic, reusable logging module. (See log.cc.) But have
not compiled it in yet because of xmalloc references.
-
[SM] Fixed bugs
in compat code that prevented SACK code from being properly configured.
Reported by Tom Henderson.
-
[SM] Changed instance
variable naming conventions to append underscore to all names, e.g., Agent::dst
is now Agent::dst_.
-
[SM] Changed class
naming conventions to use consistent mixed case, e.g., Agent/TCP instead
of agent/tcp.
-
[SM] Eliminated
Node class since splitting NsObject and Node into no longer makes any sense.
Also, "Node" was a bad name because it implies something about topology
and at this level it is toplogically independent.
Snapshot to VINT collaborators.
-
[EA] Fixed up RTCP
Timer bug. Added srctab and srcids to RTP Sessions.
-
[EA] Added very first
rough draft of NamSimulator that produces a nam_config for automatic layout.
-
[EA] Added RTP Session
class along with RTP and RTCP agents.
Snapshot to VINT collaborators.
-
[SM] Removed re-parenting
hooks from ns-lib.tcl since TclClass now automatically makes all
the classes in a class path name.
-
[SM] Ported partially
completed ivs module from ns-1.
-
[SM] Fix from
Ahmed
A-G Helmy to omit unecessary code in MultiNode::init.
-
[SM] Coalesce
multiple sources into a single graft message to avoid dropped grafts with
a large number of messages would otherwise blast into the first hop and
overflow the queue (grafts are not yet sent reliably).
Snapshot to VINT collaborators.
-
[SM] Implemented
simple RPF style flood and prune multicast (see tcl/lib/ns-mcast.tcl).
Multicast routing object is build from a number of classifier objects (e.g.,
the primary classifier routes the packet either to a multicast or to a
unicast classifier based on the multicast bit in the in the destination
address). Multicast routes are computed statically from unicast routes.
Prune timers are not yet implemented and grafts are currently sent unreliably.
-
[SM] Created
Node
and Link classes to clean up Simulator class and allow these
objects to be more easily abstracted into composite object. E.g., a multicast-node
is composed of a number of sub-objects.
-
[SM] Use re-parenting
trick across a lot more classes in ns-lib.tcl. Created source
base class for source/ftp, source/telnet, etc.
-
[SM] Modified
tcp-sink module to avoid virtual multiple inheritance (this causes too
many problems with non-compliant C++ compilers). Created Acker and Sacker
classes that are instanced in the sink classes.
-
[SM] Type-cast
bug fixes from Ahmed A-G Helmy.
Snapshot to VINT collaborators.
-
[SM] First cut
at multicast router from fine-grained objects.
-
[SM] Add missing
files to FILES.
-
[SM] Implemented
replicator
and classifier/mcast objects as first step toward supporting multicast
routers and broadcast LANs.
-
[SM] Clean up
class interface. Created Simulator OTcl class as uniform API for
manipulating simulator. Moved almost all of the ns-1 backward compatability
code into a new class called OldSim.
Pre-release to VINT collaborators.
-
[SM] Major architectural
changes. Object are now finer grained. We have developed a more cleanly
defined Tcl API so that developers can change the back-end while more easily
maintaining backward compatibility. The simulator is now based entirely
MIT's Object Tcl.
The TclClass C++ base class replaces the old Matcher class. An OTcl class
is created in C++ by statically declaring a derived subclass of TclClass.
OTcl makes it easy to extend a class with new methods either on the C++
side or the Tcl side.
v1.0 Tue Jul 23 11:27:17 PDT 1996
-
Added a hook to dump a stack trace and exit when a background error is
encounter (i.e., an error in a proc scheduled with ns-at). This makes it
MUCH easier to debug simulator scripts that have syntax erros and what
not in scheduled tcl stubs.
-
Removed sack-tcp.cc from distribution. This leaves tcp-sack1.cc as the
only SACK TCP implementation distributed with ns.
-
Put back hook to source "~/.ns.tcl" since people rely on this. Fix provided
by John Wroclawski.
v1.0b4 Mon May 6 22:22:31 PDT 1996
-
Corrected fix to TCP's window decrease algorithm in v1.0b2. Now, after
a Reno Fast Retransmit, the window decreases to min(cwnd_, wnd_)/2, not
to cwnd_/2 (before v1.0b2) or to min(cwnd_ + dupwnd_, wnd_)/2 (as in v1.0b2,3).
-
Corrected calculation of congestion window for NewReno TCP for the case
when multiple packets are dropped from a single window of data.
-
Fixed bug in tcp-sink.cc that allowed an infinite loop under some circumstances
when the number of outstanding packets in TCP was exactly MWS-1. Also added
a note to the man page about MWS and other constants in ns. Thanks to Bernhard
Suter for the bug report and fix.
-
In TCP, changed the constant TCP_TICK to the variable tcp_tick_, with the
default set in ns_default.tcl.
v1.0b3 Mon Apr 29 19:10:33 PDT 1996
-
Ported to Tcl v7.5. Changed trace objects to use new Tcl_Channel abstraction
(for O/S indepedence). ns will NOT compile with earlier versions
of Tcl.
-
Added the parameter "maxcwnd", for the maximum congestion window, and corrected
the use of "window", the receiver's advertised window, in the reno and
sack implementations of TCP.
-
Changed some of the *.tcl scripts to take into account the corrected use
of the receiver's advertised window, and to use "maxcwnd".
v1.0b2 Fri Mar 29 16:40:25 PST 1996
-
Changed interpreter to not source ".ns.tcl" since tcl no longer uses the
tcl_RcFileName C variable.
-
Fixed a couple more SunPro C++ compiler problems. Patcjes from Michael
Pearce.
-
Corrected TCP's window decrease algorithm from "cwnd_ /= 2;" to "cwnd_
= window() / 2;". Thanks to Thomas
Ziegler for the bug report.
v1.0b1 Sun Mar 3 1996
-
Fixed bug in tcp.cc that caused the retransmit timeout backoff behavior
never to reset. Thanks to Jamshid Mahdavi
for reporting both the bug and the fix.
-
Fixed bug in tcplib telnet module. Random number generator was being seeded
on each call (from the system clock) rather than once at start-up. Replaced
calls to random number routines with calls to Random::uniform. Thanks to
Werner
Vogels for reporting this bug.
-
Added local explicit-join notification for experimentation with RLM.
-
Added a "message" agent that allows abibtrary message packets to be sent
and received using tcl.
-
Moved type-specific packet fields into a "body" union. Eliminated "reason"
field (rather than move it to tcp body) since we should have just used
the "flags" field to begin with.
-
Added tracing functionality to loss-monitor agents (e.g., so we can compute
sliding window loss statistics using an external tool).
-
Changed ns-now to use 17 digits of precision. Otherwise, truncation could
cause certain algorithms (e.g., RLM) to try to schedule events into the
past.
-
Added "random" attribute to cbr sources to cause them to generate a Poisson
rather than fixed-rate packet stream.
-
Fixed bug in RED initialization that could cause (almost-) infinite loop
at start up.
-
Incorporated patches from Michael
Pearce to compile with SunPro C++ v3.0.1.
-
Fixed bug that caused memory corruption when using class ID's larger than
10.
v1.0a17 Thu Dec 27 1995
-
Finished port of "tcp-sack1" and "sack1-tcp-sink", a second format for
selective acks.
-
Added "bursty" source for tcp connections.
-
Added new loss policies for drop-tail links, "lossy-uniform" and "lossy-det".
[Kevin Fall].
-
Added more test files to the distribution: test-all-cbq, test-all-red,
test-all-sack, and test-sack, in addition to test-all.
v1.0a16 Tue Dec 12 19:05:56 PST 1995
-
Added source code for sack-tcp.cc.
v1.0a15 Tue Dec 12 17:52:32 PST 1995
-
First cut at adding code for "tcp-sack1" and "sack1-tcp-sink", from Matt
Mathis (mathis@zippy.psc.edu) and Jamshid Mahdavi (mahdavi@psc.edu).
-
Changed format of window and RTT reports sent from tcp.cc to the trace
file.
-
Added "maxpkts" for ftp and telnet sources.
v1.0a14 Fri Dec 1 10:35:30 PST 1995
-
Finished port of TCP with selective acks, along with SACK acceptance tests
in "test-sack".
-
Added a modified version of Reno TCP, tcp-newreno.cc, for research purposes.
-
Have not yet added tcp-sack or tcp-newreno to the man page.
v1.0a13 Wed Nov 22 15:14:50 PST 1995
-
Finished port of cbq code from tcpsim (with contributions from Michael
Speer), and added cbq simulator tests.
-
Added unique ID to each event in scheduler queue and added hook to lookup
an event by using this ID.
-
Added hook for deleting at callbacks.
-
Fixed bugs in multicast delivery where agent could modify routing desstructors
during the callback.
-
First cut at port of TCP with selective acks.
v1.0a12 Sun Nov 5 21:19
-
Added config.h and loss-monitor.cc to FILES so they get included in tar.
v1.0a11 Sun Nov 5 21:19
-
Added loss-monitor agent, which is the same as a null-sink but calls a
tcl proc whenever there is a gap in the received sequence space. Will expand
functionality as necessary for MMG experiments.
-
Integrated more mature tcl/c++ architecture from vic/vat. This has a major
impact on the way ns objects are created and deleted, but we maintain backward
compatibility with previous versions. The "ns" command is no longer implemented
in C++, but rather as a library function (in ns_default.tcl) that provides
glue between the old commands and the new "new/delete" interface.
-
First cut at port of cbq code from tcpsim.
v1.0a10 Fri Oct 27 17:44:39 PDT 1995
-
Added "flush" method to trace objects so that output can be flushed before
exiting.
-
Added link-level src/dst fields to Packet class so node can tell which
"interface" a packet arrived on.
-
Added support for dense-mode PIM style flooding with prune/graft machinery.
v1.0a10 Fri Oct 27 17:44:39 PDT 1995
-
Fixed test-suite.tcl so that old awk works. Problem reported by Kannan
Varadhan.
-
Fixed Makefile.in to use V_LIB_TCL, as intended. Fix supplied by Kannan
Varadhan.
v1.0a9 Wed Oct 11 16:58:00 PDT 1995
-
Fixed solaris compilation problems.
-
Changed configure to use "-mv8 -msupersparc" only for gcc.
v1.0a8 Fri Sep 29 15:11:04 PDT 1995
-
Fixed more for-stmt scope bugs.
-
Fixed compilation problems with Sun and DEC compilers. Problem reported
by Thierry Turletti.
v1.0a7 Wed Sep 27 19:55:23 PDT 1995
-
First public (alpha) release.
-
Included man page to FILES so it goes in tar.
-
Updated README.
v1.0a6 Sep 21 09:24 PDT 1995
-
Added "bug-fix" hook to tcp reno.
-
Ported to tcl-7.4.
-
Include Matt Mathis' test-all script.
-
Changed "for" statement conventions to adhere to the proposed
ANSI
standard change which re-defines the lexical scope semantics of the
initializer statement. In order to be compatible with both the old and
new semantics, we have changed all instances of
-
for (int i = ... ) ...
-
use(i);
to
-
int i;
-
for (i = ... ) ...
-
use(i);
v1.0a4
-
Fixed bug in xgraph output: new version of xgraph doesn't understand FileorDev
because it now uses the PRINTER environment variable. Bug fix from Matt
Mathis (mathis@psc.edu).
-
Added a 'test-all' sh script to distribution, which runs whole suite of
regression tests and compares them against a reference output. Thanks to
Matt Mathis (mathis@psc.edu).
-
Don't include tk.h from Tcl.cc.
v1.0a1 Mon Jul 31 16:05:08 PDT 1995
-
Changed all references to random() to use Random class so we can easily
change our pseudo-random number generator.
-
Added convention to object names so we can derive their type from their
name.
-
Changed nodes to be first class objects like rest of objects.
-
Changed trace syntax to use tcl files rather than it's own open/close.
For example,
-
set f1 [open out.hop w]
-
$trace attach $f1
-
Changed '-' and 'd' trace records to have same format as '+' and 'h' trace
records.
-
Incoporate vic's "matcher" abstraction into agent and link models.
-
Major hacking to port tcpsim to tcl framework.