ns: Change History
- [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.
ns-2.0a4
Sun Nov 10 11:06:46 PST 1996
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).
ns-2.0a3
Sun Nov 10 11:06:46 PST 1996
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.
ns-2.0a1
Wed Nov 6 13:57:31 PST 1996
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.