cnet v2.0.5

simulation model

topology files
cmdline options
the API



cnet Changelog

Version 2.0 - February 2002

Version 1.7 - August 2001

  • The data-link frames of 2-node simulations may now be animated. A new EV_DRAWFRAME event provides the user's protocol code with the opportunity to specify how the each individual data-Link frame is to be drawn. The protocols themselves do not need to provide any special windowing/drawing code. Up to 6 fields of each frame may be drawn in colours specified in the standard header file <cnet.h>.
  • Event tracing now appears in a separate scrollable Tcl/Tk window under the main map window (rather than just to stderr). A separate file may also be specified via the new global attribute tracefile (specified in the topology file), to receive a full copy of the simulation's trace.
  • The link attributes of costperframe or costperbyte may now be drawn on each link on the topology map by setting the new Boolean attributes costperframe or costperbyte to true in the topology file. costperframe is shown in preference to costperbyte.
  • Added facility for protocol source and object files to be specified with full pathnames.
  • Physical Layer corruption now only modifies two bytes of a frame to guarantee detection by the provided checksum functions.
  • The Physical Layer may now to asked to corrupt frames by truncating them, by setting MAY_TRUNCATE_FRAMES in config.h.
  • A background image (GIF) may now be displayed on the toplogy map under Tcl/Tk by specifying the new bgimage attribute in the topology file.
  • Support added for the FreeBSD platform - thanks to Jordan Hubbard <> and Michael Haro <>
  • Support added for the NetBSD platform - thanks to Mark Davies, <>
  • Corrected a bug where any output to a node's window produced by an EV_DEBUG? event handler did not appear if using the -q comand-line option.
  • Each node's statistics' window is now only updated if that window if displayed.
  • The values of CnetTimer returned by CNET_start_timer(), are now an independent property of each node.
  • A number of internal global variables consolidated into the gattr structure.
  • Each node's name, in nodeinfo.nodename, is now stored in a fixed sized array of MAX_NODENAME_LEN (=32) bytes, rather than via a character pointer.
  • Improved documentation.

Version 1.6 - May 2000

  • The cnet functions CNET_set_cursor(), CNET_get_cursor(), CNET_clear_to_eoln(), and CNET_clear_to_eos() are no longer supported.
  • When tracing events, arbitrary addresses/variables may now be traced by name (instead of their hexadecimal addresses) by calling CNET_trace_name() at the top of an event's handler.
  • The link attributes of propagationdelay and bandwidth may no longer be changed at run-time via the windowing interface.
  • A new function, CNET_timer_data(), enables a protocol to retrieve a timer's user-data before the timer expires. This permits a protocol to retrive and deallocate dynamically allocated storage before it calls CNET_stop_timer().
  • No ``raw'' X-window API functions called. All windowing, mouse tracking, fonts etc, are provided by Tcl/Tk. No special support provided for monochrome-only displays.
  • All windowing for statistics, etc, ``pushed'' into the Tck/Tk code.
  • Support added for Tcl/Tk v8.0 and beyond.
  • A warning message is porduced if a provided topology file is not connected. Random topologies, requested via the -r nnodes command-line option, are now guaranteed to be connected.
  • Node icons are now located in a directory via the value of CNETPATH, rather than as statically-compiled XPM structures. XPM operating system support is no longer required.
  • Both recieve and interupt now recognized spelling errors.
  • Improved documentation.

Version 1.5 - April 1999

  • Support for Linux a.out format dropped (now only ELF format).
  • Support for Motif and XView windowing dropped (now only Tcl/Tk).
  • Improved documentation.

Version 1.4 - February 1997

Version 1.3 - July 1996

cnet was written and is maintained by Chris McDonald (