ns: Change History


ns-2.35 Released on Nov 4, 2011


ns-2.34 Released on June 17, 2009


ns-2.33 Released on March 31, 2008


ns-2.32 Released on Sep 3, 2007


ns-2.31 Released on Mar 10, 2007


ns-2.30 Released on Sept 26, 2006


ns-2.29 Released on Oct 19, 2005


ns-2.28 Released on Feb 3, 2005


ns-2.1b7a[OLD]/ns-2.23a[NEW] released on Mon Oct 16 21:01:42 PDT 2000


ns-2.1b7[OLD]/ns-2.23[NEW] released on Mon Oct 16 21:01:42 PDT 2000

  1. 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.
  2. 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.
  3. 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
    1. 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.
    2. Added dependency of tcl/mobility/dsdv.tcl into Makefile.in
    3. Moved tcl/lib/rtProtoLS.tcl into tcl/rtglib, where all routing protocols stay.
    4. 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
    1. 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.
    2. 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{}.
    3. 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.
    4. 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
    1. 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.

    2. 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.

    3. 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.

    4. 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.

    5. 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.
    6. 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.
    7. Removed dmalloc 3.* support because their headers do not carry version information.
    8. 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:

  • [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
  • [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
  • [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 [email protected] and patches from Cheng Tak Cheung [email protected]

  • [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, [email protected].

  • [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]

    Release of ns-2.1b6[OLD]/ns-2.22[NEW] on Tue Jan 18 14:58 PST 2000


    Release of ns-2.1b5[OLD]/ns-2.21[NEW] on Tue Mar 16 16:50:50 PST 1999

    1. tcl/mcast/detailedDM.tcl
    2. tcl/pim
    3. tcl/lan/ns-lan.tcl
    4. 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, [email protected].

  • [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
  • [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

    Release of ns-2.1b4[OLD]/ns-2.20[NEW]on Fri Oct 23 09:57:55 PDT 1998


    Release of ns-2.1b3[OLD]/ns-2.19[NEW] on Sat July 11 15:15:00 PDT 1998


    Release of ns-2.1b2[OLD]/ns-2.18[NEW] on Tue Jan 29 15:36:16 PST 1998

    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
            ../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
  • [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
  • [hari] Tue Nov 18 17:22:12 PST 1997
  • Files: errmodel.{cc,h}, ns-errmodel.tcl, ns-lan.tcl, ns-default.tcl, ns-lib.tcl, snoop.tcl, (removed) ns-ber.tcl

    ns-2.1b1[OLD]/ns-2.17[NEW] November 11, 1997

    Release to incorporate tracing features for nam-1.0a2. This release is CVS tagged with NS_2_1B1

    ns-2.0[OLD]/ns-2.16[NEW] Sep 10, 1997

    Release for the SIGCOMM tutorial.
            $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
  • [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}

    ns-2.0b17[OLD]/ns-2.15[NEW] Fri, 25 Jul 1997 22:50:34 -0700

    Release for the ns retreat. This release is CVS-tagged with ``NS_2_0B17''.

    1. 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().
    2. Fixed annoying compiler warnings when used with -Wall in gcc.

  • 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
  • [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
  • [PH] Thu May 22 13:33:56 PDT 1997
  • [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:
            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
  • [PH] Tue May 13 15:30:00 PDT 1997
  • [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:

    1. A new test-suite driver, called ktest-all is in the bin directory. The invocation
    2.         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.

    3. 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.
    4. 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.
    5. 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.
    6. 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:
    7.         % 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
  • [KF] Wed Apr 23 22:00:21 PDT 1997
  • [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.)

    ns-2.0a16[OLD]/ns-2.14[NEW] Fri Mar 28 00:56:48 PST 1997


    ns-2.0a15[OLD]/ns-2.13[NEW]Tue Mar 25 14:56:39 PST 1997


    ns-2.0a14[OLD]/ns-2.12[NEW]Tue Mar 25 14:00:35 PST 1997

    Snapshot for alpha testers.
            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.

  • ns-2.0a13[OLD]/ns-2.11[NEW]Fri Mar 21 09:08:05 PST 1997

    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

    ns-2.0a12[OLD]/ns-2.10[NEW]Sat Feb 22 22:09:51 PST 1997

    Snapshot to VINT collaborators and CS268 students.

    ns-2.0a11[OLD]/ns-2.9[NEW]Thu Feb 13 11:28:35 PST 1997

    Snapshot to VINT collaborators and CS268 students.

    ns-2.0a10[OLD]/ns-2.8[NEW]Mon Feb 3 13:14:48 PST 1997

    Snapshot to VINT collaborators and CS268 students.

    ns-2.0a9[OLD]/ns-2.7[NEW]Thu Jan 30 21:11:34 PST 1997

    Snapshot to VINT collaborators and CS268 students.

    ns-2.0a8[OLD].ns-2.6[new]Mon Jan 27 19:26:17 PST 1997

    Snapshot to VINT collaborators and CS268 students.

    ns-2.0a7[OLD]/ns-2.5[NEW]Mon Jan 27 18:09:02 PST 1997

    Snapshot to VINT collaborators and CS268 students.

    ns-2.0a6[OLD]/ns-2.4[NEW]Tue Dec 31 18:55:39 PST 1996

    Snapshot to VINT collaborators.

    ns-2.0a4[OLD]/ns-2.3[NEW]Sun Nov 10 11:06:46 PST 1996

    Snapshot to VINT collaborators.

    ns-2.0a3[OLD]/ns-2.2[NEW]Sun Nov 10 11:06:46 PST 1996

    Snapshot to VINT collaborators.

    ns-2.0a2[OLD]/ns-2.1[NEW]Thu Nov 7 1996

    Snapshot to VINT collaborators.

    ns-2.0a1[OLD]/ns-2.0[NEW]Wed Nov 6 13:57:31 PST 1996

    Pre-release to VINT collaborators.

    v1.0 Tue Jul 23 11:27:17 PDT 1996


    v1.0b4 Mon May 6 22:22:31 PDT 1996


    v1.0b3 Mon Apr 29 19:10:33 PDT 1996


    v1.0b2 Fri Mar 29 16:40:25 PST 1996


    v1.0b1 Sun Mar 3 1996


    v1.0a17 Thu Dec 27 1995


    v1.0a16 Tue Dec 12 19:05:56 PST 1995


    v1.0a15 Tue Dec 12 17:52:32 PST 1995


    v1.0a14 Fri Dec 1 10:35:30 PST 1995


    v1.0a13 Wed Nov 22 15:14:50 PST 1995


    v1.0a12 Sun Nov 5 21:19


    v1.0a11 Sun Nov 5 21:19


    v1.0a10 Fri Oct 27 17:44:39 PDT 1995


    v1.0a10 Fri Oct 27 17:44:39 PDT 1995


    v1.0a9 Wed Oct 11 16:58:00 PDT 1995


    v1.0a8 Fri Sep 29 15:11:04 PDT 1995


    v1.0a7 Wed Sep 27 19:55:23 PDT 1995


    v1.0a6 Sep 21 09:24 PDT 1995


    v1.0a4


    v1.0a1 Mon Jul 31 16:05:08 PDT 1995