v2.0.3 - small change to the scheduling of Ethernet segments -
thanks to Klaus Doerrscheidt <kdoerrscheidt@web.de> for this.
v2.0.2 - small event scheduler problem corrected.
Support for 10Mbps Ethernet segments has been added;
physical links are now each of the new type
CnetLinkType.
Network Interface Cards (NICs) connect nodes to Ethernet segments;
the new datatype CnetNicaddr
provides support for each NIC's hardware address.
The address may be set with the new function
CNET_set_nicaddr,
and the new functions
CNET_parse_nicaddr and
CNET_format_nicaddr
convert between character strings and the CnetNicaddr datatype.
NICs may be set into promiscuous mode with the new function
CNET_set_promiscuous.
64-bit integers are now used to store all times (now in microseconds)
and large statistics.
A new datatype, CnetInt64,
and a number of arithmetic, conversion, and I/O routines are defined
in the new header file
<cnet64bits.h>.
The new header file is included by the standard header file
<cnet.h>.
The values of nodeinfo.messagerate,
nodeinfo.time_in_usec, and
linkinfo[i].propagationdelay
are now of type CnetInt64.
The 2nd argument of
CNET_start_timer()
is now of type CnetInt64 and requests a time in microseconds,
not milliseconds.
Three new constants,
HAVE_LONG_LONG, SIZEOF_INT, and SIZEOF_LONG
must now be specified in the config.h file.
Tcl/Tk scripts corrected to capture WM_DELETE_WINDOW messages for all
top-level windows.
Corrected the values displayed on each node's Tcl/Tk radiobuttons
used to modify the node's attributes at run-time.
Output via stdio functions (to Tcl/Tk windows) simplified and improved
so that scrollbars do not ``jump back'' to bottom of the window
on every output.
All statistics are now ``flushed'' via a single Tcl/Tk periodic event,
rather than via cnet's main scheduler.
Statistics windows are now only updated if they have changed values.
Improved documentation.
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
attributetracefile (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 attributescostperframe 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 bgimageattribute in the topology file.
Support added for the FreeBSD platform -
thanks to Jordan Hubbard <jkh@freebsd.org>
and Michael Haro <mharo@area51.fremont.ca.us>
Support added for the NetBSD platform -
thanks to Mark Davies, <mark@mcs.vuw.ac.nz>
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).