nam Change Log

# Change History (nam)

### nam-1.0a7 [PENDING RELEASE DATE]

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