# Change History (nam)

### nam-1.0a11 released on Mon Apr 15 14:59:08 PDT 2002

- [buchheim] Mon April 15 2002
  Added workaround to parsing code in order prevent namgraph flags from triggering unnecessary warnings.
- [mehringe] Thu August 30 2001
  - Added ability to input Node movement information into the nam editor. This is useful for quickly creating wireless node movement paths. To use just set the time slider to the time at which you want the node to be at it's next destination and then drag the node to that destination.
  - Fixed a couple of small problems with wireless animation display.

- [mehringe] Fri July 6 2001
  - Added Loss Models and Queue Types to the nam editor.
  - Added Exponential, Pareto, and Telnet traffic sources.

### nam-1.0a10 released on Jun 6 14:17 PDT 2001

- [mehringe] Wed May 9 2001
  More nam editor updates, it is staring to look nice now.
  - Moved object properties to a popup window instead of a side pane.
  - Fixed save and save as dialog boxes and removed unecessary use of a temp file.
  - Fixed the color popup window to place the color value in the proper text box when double click upon.
  - Removed the unused stop, fast-forward, play, reverse buttons.
  - Disabled the edit menu commands until those are finished.
- [mehringe] Fri Mar 23 2001
I added saving and opening of nam editor ns scripts, added modification of different object properties, and added the time slider for setting start and stop times for traffic sources
- [mehringe] Wed Feb 7 17:20:15 PST 2001
  Major updates to the nam editor. Currently it only has a small subset of the total functionality but basic scripts can be created and run. More things will be filled in over the next couple of months.
- [mehringe] Thu Dec 14 16:45:48 PST 2000
  Rewrote parsing code to be table driven and more stable. Cleaned up nam trace file syntax to remove trace event language ambiguities but tried to keep backwards compatibility. Added files parser.h and parser.cc.
- [johnh] Tue Dec 12 10:36:34 PST 2000
  Updated config.guess to autoconf's current one.
- [difa] Fri Dec 08 17:32:34 PST 2000
  Modify nam_stream.cc so that nam can use non-blocking I/O to handle pipe input.

### nam-1.0a9 released on Mon Oct 16 21:01:42 PDT 2000

- [johnh]Fri Oct 6 20:28:20 PDT 2000
  Another few compile problems for redhat 7.0/gcc 2.96.
- [mehringe]Fri Oct 6 07:59:55 PDT 2000
  Nam now allows you to dynamically add nodes and links. You still have to define the node but you can do it at any time during the simulation. Before all nodes and link had to be defined at -t *.
- [johnh]Thu Aug 10 15:15:55 PDT 2000
  Nam now builds on redhat linux 7.0 with gcc 2.96 (and with other compilers than allow ANSI's xor keyword).
- [hyunah] Thu May 18 11:12:20 CDT 2000
  Added nam option and ns commands for nam validation test.
  - nam -z : to play nam as soon as it starts
  - $ns snapshot : to take a snapshot
  - $ns rewind-nam : to play back
  - $ns re-rewind-nam : to play forward after play back
  - $ns terminate-nam : to exit nam

- [hyunah] Sun Apr 9 8:18:54 PDT 2000
  nam validation test was added.

- [haoboy] Mon Apr 3 15:28:44 PDT 2000
  Fixed bug in wireless trace. Basically NetModel::layout_node{} did not pass parameters in the correct order. Now dlabel becomes the last parameter and it should work for all cases.

- [haoboy] Thu Mar 23 19:38:29 PST 2000
  - Currently autolayout does not work due to some mysterious reasons as I explain below. Everything happened between Feb 27 and March 1st, 2000. Specifically, it's due to changes in netmodel.cc v1.74 to v1.75, and tcl/netModel.cc v1.10 and v1.11. If the lines 174-178 in tcl/netModel.tcl does not contain $dlabel stuff, auto layout works fine. But when they are added, it's messed up even if the dlabel processing code in netmodel.cc is never called due to the default empty dlabel string. I suspected it was a memory problem but purify did not give anything. Therefore, I changed those lines in tcl/netModel.tcl to only add the $dlabel arguments when it's not empty. Thus done, auto layout now works for existing trace files. However, I still don't understand why it behaves this way. It smells suspicious of something wrong somewhere else, and it must be fixed before new code should be added.
  - Fixed the route entry stuff; now it works when node zooms or auto layout.
  - Fixed indentation in various places to the default 8.
  - Changed three class member variables to carry the underscore suffix so they conforms to coding convention and it's easy to distinguish between class member variables and other auto variables.
- [hyunah] Sun Mar 19 21:24:08 PST 2000
  * removing duplicate code (draw stuff for PSView). Using View instead.
  * nam editor
  - adding "runNs" command so that users don't need to type "ns xxx.nam" explicitly

- [hyunah] Tue Feb 29 15:41:27 PST 2000
  * nam editor
  - add agent information of reloading function

- [hyunah] Tue Feb 15 17:45:38 CST 2000
  * nam + nam editor
  - adding icon explaining box

- [kclan] Mon Feb 14 20:23:31 PST 2000
  adding interactive control for coloring packet flow on the fly

- [hyunah] Thu Feb 10 15:36:56 PST 2000
  * nam editor
  - adding Application option to AgentProperty such as starting/ending time

- [hyunah] Wed Feb 9 15:57:20 PST 2000
  * nam editor
  - modifying "link" for backward-compatibility.
  (making link either by click-&-drag or click-&-click)
  - adding tcl script for FullTcp destination agent

- [hyunah] Tue Feb 8 19:46:04 PST 2000
  * nam editor
  - adding AgentProperty to support Agent Options such as
  windowInit_, cwnd_ in TCP and packetSize_ in CBR.

- [kclan] Mon Feb 07 12:23:31 PST 2000
  adding interactive control to filter packet on the fly

- [hyunah] Mon Feb 7 14:43:43 PST 2000
  * nam editor
  - adding click_and_draggable link between nodes, and between agents
  - adding CBR connection
  - adding fid (0~4) to provide different color per flow
  - fixing bug to have consistent view between editor and normal nam window
  - supporting multiple TCP conenctions
  - inserting "open" command
  - fixing bugs related to "cut" function, node numbering, and attaching agent on nodes.

- [hyunah] Thu Jan 27 14:53:52 PST 2000
  Adding graphical interface on attaching agent in nam editor

- [kclan] Tue Jan 25 19:06:18 PST 2000
  Fix bugs in using hierarchical routing for wireless(using node id instread of node address for animation)

- [hyunah] Tue Jan 25 17:56:58 PST 2000
  Modifying an outline of nam editor

- [hyunah] Mon Jan 24 19:35:34 PST 2000
  Modifying nam editor view to accommodate the new function, which is replacing editview entry with toolbar.

### nam-1.0a8 Releaseed Tue Jan 10 15:10:05 2000

- [hyunah] Tue Jan 18 19:51:06 PST 2000
  Added agents to nam editor
  (works for one pair of TCP and TCPSink agents)

- [haoboy] Wed Dec 22 14:33:05 PST 1999
  Added node size scale up/down buttons in the zoom bar.

- [haoboy] Mon Dec 13 16:21:21 PST 1999
  Replace the edit view menu entry with a toolbar button so that topology editing can be turned on at any time without opening a new view.

- [haoboy] Thu Dec 9 14:38:02 PST 1999
  Fix the node (inner) label color so that it can be set to background color. Basically add new color parameter to Paint::text_gc() so we can allocate a font GC with a specific color.
  Remaining Problem: PSView still cannot handle this node label color correctly.

- [haoboy] Fri Dec 3 10:23:18 PST 1999
  Added support for large flow id and color ids.

- [kunchan] Thu Nov 16 17:00:37 PDT 1999
  Adding mechanism for visualization of packet flow in wireless simulation.

- [hyunah] Fri Oct 29 19:20:03 PDT 1999
  Several features of labels both on node and edge are added such as color and position.
  The examples of new commands are following
  $ns at 0.0 "$n(0) label-color yellow"
  $ns at 0.0 "$n(0) label-at NORTH"
  $ns at 0.0 "$ns duplex-link-op $n(0) $n(1) label cost=1"
  $ns at 0.0 "$ns duplex-link-op $n(0) $n(1) color green"
  $ns at 0.0 "$ns duplex-link-op $n(0) $n(1) label-at WEST"

- [haoboy] Thu Jun 17 17:02:37 PDT 1999
  Changed ns-developers in www.tcl to ns-users.

- [haoboy] Thu Apr 15 11:14:20 PDT 1999
  Re-instated options '-j' and '-r' to control the startup time and animation rate.

- [haoboy] Wed Apr 14 13:36:42 PDT 1999
  Changed tcldbg library initialization so that it works with tcldbg 1.7 through 1.9.

- [haoboy] Sat Apr 3 14:43:10 PST 1999
  Allow user to provide initialization file for every source file. However, the initialization that can be done in these files (i.e., provided by -f or -u options) is limited, because sourcing of these files is done inside a instproc{}. Currently, it is recommended that only operations to be included in these initialization files are to reset class variables; redefinition of existing OTcl methods in these files does not seem to work.
  One example of the initialization file is to define initial animation rate. This can be done by including the following line into a file, say, n1.tcl: `Animator set INIT_RATE_ 2ms`. Then run nam like this: `nam -u n1.tcl a.nam`

- [haoboy] Mon Mar 29 15:50:01 PST 1999
  After "reset" button is pressed, nam should redraw screen to reflect the changes in layout. Modified files: anetmodel.{cc,h}.

### nam-1.0a7 Released Mar 16 16:45:30 PST 1999

- [haoboy] Sat Mar 13 15:16:56 PST 1999
  Added startup option '-k ' to allow users to specify the initial port address to search from.
- [salehi]Fri Mar 12 12:40:10 PST 1999
  Configured with the new versions of Tcl, TK, OTcl, and TclCl.
- [haoboy] Wed Mar 10 19:17:59 PST 1999
  Fixed WIN32 incompatibilities in nam_stream.{cc,h}. Changed conf/makefile.win to allow generating debugging version under win32. Updated source file list in makefile.vc.
- [johnh]Fri Mar 5 15:03:03 PST 1999
  Make now complains if you need to run configure. (Based on Adam Costello's ns fix.)
- [haoboy]Tue Jan 12 12:43:44 PST 1999
  - Removed msgbox.tcl and tkfbox.tcl from tcl/. They belong to tk distribution and shouldn't be included here. Tclcl was modified to handle embedded XBM files inside tcl script; msgbox.tcl and tkfbox.tcl were embedded into tclcl.
  - Modified all codes related to timeslider so that if maxtime==mintime, the timeslider code will still work instead of producing a coredump.
- [Ya]Fri Dec 11 17:04:52 PST 1998
  An Editor is added to nam to allow the user to interactively edit the simulation topology in a WYSIWYG style. Current new features include:
  - Create simulation topology
  - Edit Object's properties in the topology Node: Color, Size, Label, Agents Link: Color, Bandwidth, Delay
  - Add/Delete node and link object Export the result to a tcl file (*.nstcl) which can be excuted under ns
  - Save as an editable nam file (*.enam)

- [Ya]Thurs Nov 12 17:04:52 PST 1998
  Autoconf support for zlib is added. self-adjusted timeslider works with zlib support.

- [johnh]Fri Nov 6 17:04:52 PST 1998
  Nam will now play compressed files (files ending in .Z or .gz, if nam is built with -DHAVE_ZLIB) and from pipes (use the filename ``-''). Autoconf support for zlib is still needed. Compressed files play very slowly backwards. Playing from a pipe buffers trace data in a file in /tmp.

### Nam 1.0a6 released

Oct 22 17:31 PDT 1998[Ya]

- Preliminary mobility support (under active development)
- Node lable support
- Support for simplex links
- Various bug fixes.

Released with ns-2.1b4 and ns-allinone-2.1b4

### Nam 1.0a5 released

Sep 2 17:31 PDT 1998[Ya]

- Namgraph for high-level drill-down analysis
- Nam console with multi-model support
- Layout editor
- LAN visualization support ( Need ns-2.1b4 to create tracefile for the feature. Ns-2.1b4 is not released yet at this moment )
- Compatible with Tcl/TK 8.0, Win32.
- Some new examples to demonstrate these new features including nam-1/ex/tcpsrm.nam, tcpecn.nam and lantest.nam.
- Various bug fixes.
- A win32 version is provided in reponse to heavy request from ns-users.

- [Ya] Aug 5 15:15 PDT 1998
  Ready for new Nam 1.0a5 release
  - LAN support
  - Namgraph for tcp and srm event graph
  - Layout editor
  - Multi-model support
- [Ya] Apr 22 20:15 PDT 1998
  - First cut for nam with analysis views(tcp).
- [haoboy] Tue Mar 31 09:29:53 PST 1998
  - Bug fix for Edge's bounding box. It should have two bounding boxes. One for calculating screen to world transform, the other to compute Edge::inside().
- [SM] Mar 30 20:15 PDT 1997
  - Make windows build work again.
- [haoboy] Thu Feb 26 16:33:59 PST 1998
  - Bug fix for Trace::settime(). Previously it falls into infinite loop when first forward to the end, then backward to the start for the trace file whose first 'real' events does not start at time 0.
  - Bug fix for BoxAgent's bound box. It should have its own update_bb().
- [LB] Thu Feb 26 16:00:44 PST 1998
  Added ability to skip over quiescent periods in the animation.
- [haoboy] Tue Feb 24 18:20:52 PST 1998
  - Change NetModel::scale_estimate() to use Edge::length() instead of Edge::delay(). Otherwise it has problem when using a pre-made layout.
  - Manage node marks with a linear list instead of Tcl's hash table. The latter results in random traverse order w.r.t. the input order.
  - Add Packet::CheckPoints() to limit the minimum length of packets. Otherwise some packets may disappear if too small (reported by Kannan).
- [haoboy]Mon Feb 23 18:20:41 PST 1998
  Now node marks can have 3 shapes: circle, square and hexagon.
- [haoboy]
  First cut of topology editor. Added various reconfigure methods to all Animation objects. Added selection mechanism to NetModel and AutoNetModel. The editor only works with auto layout because in fixed layout all edges are proportional to delay
  To use the editor, open an edit view using the menu button "Edit view" under "Edit". In the new edit view, clicking left button on a node will select it, then it can be moved by dragging it around. Rubber band is supported by clicking and dragging the left mouse button. Shift-click an object will add it to the current selection.
  Currently there is a cosmetic bug related to moving a selection around in the edit view, and many necessary editing features have not been added yet. Because this editor involves many other files, I decided to check it in when it's mainly working. Otherwise it'll be very hard to keep all these changes up-to-date.
- [haoboy]Wed Feb 18 20:48:02 PST 1998
  Bug fix: Init nymin_ nymax_ in AutoNetworkModel::placeEverything().
- [johnh]Wed Feb 18 14:26:23 PST 1998
  Added drag-scrolling support (mouse-2 in a window lets you drag it around).
- [EA] Thu Feb 12 20:54:59 PST 1998
  - Added reset button to auto-layout.
  - Added ex/mbone.nam - a map of the mbone done on 8/6/96.
- [haoboy] Fri Jan 30 13:36:25 PST 1998
  - Focus on the next annotation while using time slider.
  - nam_prelayout() and nam_layout() now skip all events which doesn't have `-t*` from the beginning of the trace file.
  - Install all Tk options with the real application name as class, so that peer functions appropriately. Affected: non-www fonts options in nam.tcl and Tk_GetOption() in paint.cc.
  - Initialize `views_` as NULL in netgraph.cc.
  - Problem: sim_annotation in nam.tcl cannot handle well multiple annotations happening at the same time.

### nam-1.0a4

Release with ns-2.1b2 Jan 21 1998 [haoboy].
Version 1.0a4 skipped because when 1.0a2 was released the directory name was mistaken by nam-1.0a3. To avoid the confusion, we skipped 1.0a3.

### nam-1.0a3

Release with ns-2.1b2 Jan 21 1998 [haoboy]

- [haoboy] Wed Jan 21 17:40:37 PST 1998
  - Added XWDFile.h because xwd.c doesn't compile with obsolete XWDFile.h of openwin in some old sunos 4.
  - Added link flags into Makefile.in so that it will recognize -static flag.
- [EA] Wed Jan 21 13:04:38 PST 1998
  - Fixed bug in reverse link angle calculation in nam.tcl.
  - Removed Tcl_Init from main.cc since this is not needed with TclCl and it causes nam to break if tcl is not installed.
- [haoboy]Tue Jan 13 15:31:34 PST 1998
  - Reinstate the peer functionality for two nam instances. Mainly changing [winfo name .] to [tk appname] and add new option "-N" to let user specify specific app name for every instance.
  - Add/delete annotations during animation. But they can not be saved into the trace files. Detailed description included in the man page.
  - Include tcl-debug support into main.cc. Changed library order in Makefile.in so that X libs are included last. Changed conf/configure.in.tcldebug to include paths for Dbg.h
- [johnh]Tue Dec 16 10:14:30 PST 1997
  Man page info for animation saving. (Also, see build.menus in nam.tcl for a list of desired enhancements.
- [johnh]Mon Dec 15 22:38:15 PST 1997
  An animation can now be saved into a series of files (namXXX.xwd) for post-processing into an mpeg or animated gif.
- [EA] Fri Nov 28 17:35:02 PST 1997
  - Fixed annotation listbox so that current annotation is always displayed at bottom. Ultimately, we want to highlight this with a "window" that stays centered on the current annotation. Get to this later.
- [TLT] Sat Nov 22 14:48:21 GMT-8:00 1997
  - [win32] edits to make it compile under win32 again
  - edits to remove some warnings
  - [win32] [bug fix] reverse scans wasn't working because in windows the default file mode is text and not binary. They are working now.
  - [win32] mods to compile with static tcltk
  - [temp bug fix] when views are destroyed offsreen_ are not freed, this caused subsequent draws onto a non-mapped window. For now, I freed the offsreen bitmap and set it to zero. The real fix should be to free up the view entirely.
- [EA] Sat Nov 22 13:08:58 PST 1997
  - Added tkUnixInit.c to override dynamic loading of tk scripts since we get them from tclcl.

### nam-1.0a2

Release with ns-2.1b1

- [EA] Sat Nov 15 15:54:10 PST 1997
  - Ported to tcl8.0. Added tkcompat.h for backward compat.
  - Generated new configure script for autodetecting of tcl/tk versions (John Heidemann's revision).
- [haoboy] Mon Nov 10 10:14:23 PST 1997
  - Fixed bugs in packet.{cc,h} caused by setting edge length != delay.
  - Updated scripts in ex/
  - Updated nam man page.
  - Fixed bugs in monitoring dropped packets
- [johnh]Tue Oct 28 17:00:05 PST 1997
  Re-autoconf'ed with configure.in.TclCL. Extra code from nam.tcl removed.
- [mjh] Wed Oct 8 1997

- Moved all view zoom and pan code from Tcl to view object to allow us to have multiple views.
- Fixed all code that assumes only a single view of the netmodel
- Implemented multiple views - currently in a separate window but might change this soon.

- [mjh] Sun Oct 5 1997

- Added code to display the current time in timeline graphs
- Support for bi-directional and loss timeline graphs added.
- Assorted minor bug fixes

- [mjh] Sat Oct 4 1997

- Separated netview into a general purpose view and a special purpose. netview.
- Added new classes to support producing graphs of various parameters.
- Integrated graphs into UI (click on a link to see them).
- Fixed minor bugs in netview zooming and X Event handling.
- Changed tracefile format to be more TCL-like to make it easier to handle events with text fields or embedded TCL.

[mjh] Thu Oct 2 1997

- activated John's view menu and added code to hide or show the monitors, annotations and autolayout panels

- [johnh]Wed Oct 1 19:34:40 PDT 1997
  Menubar and about dialog added.
- [haoboy] Wed Oct 1 19:20:53 pdt 1997
  Added annotation list box.
- [mjh] Wed Oct 1 1997

- fixed incorrect value of M_PI in sincos.h
- improved placement of agents so they don't overlap lines and don't often overlap each other if possible.

- [haoboy] Tue Oct 1 11:14:00 PDT 1997

- "Return" key is no longer associated with 'single-step'.
- Use right button to add monitor, instead of left button. Left button will be used later to move nodes or node groups.
- Implemented automatic graph layout.
- Add a control bar to adjust automatic layout parameters.
- Default configuration file is .nam.tcl in current directory. A sample .nam.tcl is included as ex/sample.nam.tcl, together with short explainations.
- Copied config.h, random.{cc,h}, rng.{cc,h} from ns-2.

- [mjh] Tue Sep 30 1997

- added zoom functionality to netview (mostly added in tcl, but could easily be moved to c++ later if we think it necessary)

- [mjh] Mon Sep 29 1997

- replaced old time slider with one based on a canvas to make it more obvious what does what (expecially when we add scrollbars for zooming)

- [johnh] Tue Sep 16 14:49:30 PDT 1997
ns_to_nam.tcl "h" support improved, examples directory added.
- [haoboy] Wed Sep 3 19:56:34 pdt 1997
Minor bug fixes. Now nodes can start with different colors and change color later on.
- [johnh]Wed Sep 3
Extended nam_angle to support arbitrary angles with ``180deg'' syntax. Patch from Vikram Visewswariah .
- [johnh] Fri Aug 15 10:44:22 PDT 1997
Updated configuration code to current ns-2 status (but not merged)
- [EA] Thu Aug 14 11:15:01 PDT 1997
Added session level annotation.
- [SM] Thu Aug 14 09:52:14 PDT 1997

- Removed "gen" directory and contents from repository since these files are automatically generated.
- Added Nam.suppressMonitors configuration resource which if set to ``true'' suppresses the display of the monitor subpanel in the user interface (to save screen real estate when not needed). The user should be able to insert and remove dynamically this panel from the GUI.
- Added a hook to source $HOME/.nam.tcl if it exists.
- Added "yesno" and "resource" helper procs.

- [SM] Sun Aug 10 15:11:27 PDT 1997

- First cut at port to win32 API (should work under both Windows 95 and NT). Seems to work okay except for an infinite loop that occurs fairly often when manipulating time in the backward direction.
- Added a number of workarounds for Visual C++. It treats classes and structures different for example and can produce link errors if a type is referred to both ways.
- Cleaned up code in netview.cc to use more Tkisms in place of Xisms. It previously compiled under windows but didn't work. Tk shielding made it work.

- [SM] Spring 1997

- Somewhere in here Mark Handley added a bunch of nice features and improved the file format.

- [SM] Fri Dec 27 1996

- Ported to our local autoconf environment; we now share configure.in.* files across all of our research software.

- [SM] Eliminated pt.h since wired-in packet types no longer used.
- [SM] Ported to MIT's Object Tcl framework and eliminate CommandTable class etc. Eliminated time_atof and bw_atof, whose functions are now handled in tcl.

### nam-0.5a

[Jacobson] Tue Sep 12 04:41:15 PDT 1995

- Re-do trace format yet again: all packet related records (h + - d) now have same format:
time src dst size attr type conv id
where src & dst are the immediate src & dst node names, size is the size in bytes, attr are drawing attributes (color # in lower 8 bits, bit 8 set if should be drawn hollow rather than filled), type is a 7 char 'type' string, conv is a 31 character 'conversation' identifier and id is an integer packet identifier.
- can now right click on anything (packet, queue item, drop) & get info about it.
- added 'ncolor' and 'ecolor' commands to set node & edge colors
- made 'v' command just execute it's text as a tcl expr as suggested by McCanne.

### nam-0.4a

[Orayani] Summer 1995

- add support for graphing, packet id's, and synchronized animations.

### nam-0.3a

[SM] Decemeber 1994

- Changed trace file input format. New format is identical to format output by ns.
- Eliminated pic-style language parses. Now topology and layout are created by user-defined tcl procedure (nam_config).
- Reworked layout traversal to operate on native objects instead of temporary ones.
- Changed node/edge object interface so that you first create them and later place and adjust their size.
- Changed links so that they explicitly know their bandwidth and can map a packet size into a transmission time (so we don't need trasmission times in the trace file anymore).
- Made many improvements to user interface.

### Origin

Although development of the LBNL Network Animator nam began in 1991, it was not widely released for many years because the project was consistently superceded by a number of our other research/development efforts. Steven McCanne wrote the original version of the nam in February 1991 during his year off from school (between undergraduate and graduate degrees) when he worked full-time as a staff scientist in the Network Research Group at the Lawrence Berkeley National Laboratory. This early version of nam was first prototyped in C using Tango, an environment for algorithm animation from Brown University. Shortly thereafter, McCanne ported nam to C++ and the Stanford Interviews graphics library. Within this C++/Interviews framework, the principal application design and architecture was experimented with, refined, and developed. In winter 1991, McCanne ported nam to Interviews-3.0, and improved the underlying design to support multiple views of a single animation. In fall 1993, McCanne ported nam to Tcl/Tk and further improved the software architecture and user interface. In winter 1994, McCanne once again re-visited the nam design, this time to improve its interaction with his network simulator ns (version 0.3a above). In summer 1995, Marylou Orayani enhanced nam with a number of features to carry our her U.C. Berkeley Master's project, which involved the automatic animation of real TCP/IP conversations and detailed case studies of a number of actual pathological traffic patterns (version 0.4a above). Throughout this time, Van Jacobson contibuted a number of improvements to the user inteface and trace file format and added new features.

This change history was not consistently maintained until winter 1996, when we first created the web-page form of this document.

[Return to ?]

- [haoboy]
  - "Return" key is no longer associated with 'single-step'.
  - Use right button to add monitor, instead of left button. Left button will be used later to move nodes or node groups.
  - Implemented automatic graph layout.
  - Add a control bar to adjust automatic layout parameters.
  - Default configuration file is .nam.tcl in current directory. A sample .nam.tcl is included as sample.nam.tcl.
  - Copied config.h, random.{cc,h}, rng.{cc,h} from ns-2.
  - [johnh] Tue Sep 16 14:49:30 PDT 1997
    ns_to_nam.tcl "h" support improved, examples directory added.
  - [haoboy] Wed Sep 3 19:56:34 pdt 1997
    Minor bug fixes. Now nodes can start with different colors and change color later on.
  - [johnh]Wed Sep 3
    Extended nam_angle to support arbitrary angles with ``180deg'' syntax. Patch from Vikram Visewswariah .
  - [johnh] Fri Aug 15 10:44:22 PDT 1997
    Updated configuration code to current ns-2 status (but not merged)
  - [EA] Thu Aug 14 11:15:01 PDT 1997
    Added session level annotation.
  - [SM] Thu Aug 14 09:52:14 PDT 1997
    - Removed "gen" directory and contents from repository since these files are automatically generated.
    - Added Nam.suppressMonitors configuration resource which if set to ``true'' suppresses the display of the monitor subpanel in the user interface (to save screen real estate when not needed). The user should be able to insert and remove dynamically this panel from the GUI.
    - Added a hook to source $HOME/.nam.tcl if it exists.
    - Added "yesno" and "resource" helper procs.
  - [SM] Sun Aug 10 15:11:27 PDT 1997
    - First cut at port to win32 API (should work under both Windows 95 and NT). Seems to work okay except for an infinite loop that occurs fairly often when manipulating time in the backward direction.
    - Added a number of workarounds for Visual C++. It treats classes and structures different for example and can produce link errors if a type is referred to both ways.
    - Cleaned up code in netview.cc to use more Tkisms in place of Xisms. It previously compiled under windows but didn't work. Tk shielding made it work.
  - [SM] Spring 1997
    - Somewhere in here Mark Handley added a bunch of nice features and improved the file format.
  - [SM] Fri Dec 27 1996
    - Ported to our local autoconf environment; we now share configure.in.* files across all of our research software.
  - [SM] Eliminated pt.h since wired-in packet types no longer used.
  - [SM] Ported to MIT's Object Tcl framework and eliminate CommandTable class etc. Eliminated time_atof and bw_atof, whose functions are now handled in tcl.

  ### nam-0.5a

  [Jacobson] Tue Sep 12 04:41:15 PDT 1995
  - Re-do trace format yet again: all packet related records (h + - d) now have same format:
    time src dst size attr type conv id
    where src & dst are the immediate src & dst node names, size is the size in bytes, attr are drawing attributes (color # in lower 8 bits, bit 8 set if should be drawn hollow rather than filled), type is a 7 char 'type' string, conv is a 31 character 'conversation' identifier and id is an integer packet identifier.
  - can now right click on anything (packet, queue item, drop) & get info about it.
  - added 'ncolor' and 'ecolor' commands to set node & edge colors
  - made 'v' command just execute it's text as a tcl expr as suggested by McCanne.

  ### nam-0.4a

  [Orayani] Summer 1995
  - add support for graphing, packet id's, and synchronized animations.

  ### nam-0.3a

  [SM] Decemeber 1994
  - Changed trace file input format. New format is identical to format output by ns.
  - Eliminated pic-style language parses. Now topology and layout are created by user-defined tcl procedure (nam_config).
  - Reworked layout traversal to operate on native objects instead of temporary ones.
  - Changed node/edge object interface so that you first create them and later place and adjust their size.
  - Changed links so that they explicitly know their bandwidth and can map a packet size into a transmission time (so we don't need trasmission times in the trace file anymore).
  - Made many improvements to user interface.

  ### Origin

  Although development of the LBNL Network Animator nam began in 1991, it was not widely released for many years because the project was consistently superceded by a number of our other research/development efforts. Steven McCanne wrote the original version of the nam in February 1991 during his year off from school (between undergraduate and graduate degrees) when he worked full-time as a staff scientist in the Network Research Group at the Lawrence Berkeley National Laboratory. This early version of nam was first prototyped in C using Tango, an environment for algorithm animation from Brown University. Shortly thereafter, McCanne ported nam to C++ and the Stanford Interviews graphics library. Within this C++/Interviews framework, the principal application design and architecture was experimented with, refined, and developed. In winter 1991, McCanne ported nam to Interviews-3.0, and improved the underlying design to support multiple views of a single animation. In fall 1993, McCanne ported nam to Tcl/Tk and further improved the software architecture and user interface. In winter 1994, McCanne once again re-visited the nam design, this time to improve its interaction with his network simulator ns (version 0.3a above). In summer 1995, Marylou Orayani enhanced nam with a number of features to carry our her U.C. Berkeley Master's project, which involved the automatic animation of real TCP/IP conversations and detailed case studies of a number of actual pathological traffic patterns (version 0.4a above). Throughout this time, Van Jacobson contibuted a number of improvements to the user inteface and trace file format and added new features.

  This change history was not consistently maintained until winter 1996, when we first created the web-page form of this document.

  [Return to ?]