marko [Sun, 13 Nov 2005 12:53:30 +0000 (12:53 +0000)]
Do not draw arrows on plain links, since arrows are really needed only on
pseudo links. Maybe this could increase the speed of (re)drawing plain
links, maybe not...
marko [Sun, 6 Nov 2005 10:28:19 +0000 (10:28 +0000)]
Implement a generic proc splitLink { link node_type } for splitting a link
in two. The proc creates two nodes of type $node_type and replaces the
current $link with two new ones, connecting existing link endpoints to the
newly created nodes.
Implement a "move to another canvas" operation on selected nodes.
Speedup the loadCfg proc by a factor of two by replacing iterative removal
of existing nodes / links with an atomic clearing of *_list globals. This
particularly speeds up the undo / redo operations which rely on loadCfg.
TODO: merging of cross-canvas links when moving existing nodes from one
canvas to another. NB this means currently moving "pseudo" nodes over
cross-canvas boundaries is not yet handled properly and will yield
undefined / unexpected results.
marko [Mon, 24 Oct 2005 12:06:36 +0000 (12:06 +0000)]
Deprecate / remove the "delete" icon. Deleting nodes / links can now be
performed through the right-button-menu; alternatively, selected nodes
can be deleted using the keyboard shortcut (delete key).
NOTE: this and previous patch have slightly broken the "undo" functionality,
we will deal with this later when cross-canvas linking code will be
completed.
marko [Sun, 23 Oct 2005 23:26:11 +0000 (23:26 +0000)]
Introduce a popup-menu bound to the right mouse button, currently used to
spawn a shell, start ethereal etc. Creating a link to another node using
this menu is currently a no-op.
Deprecates the old binding model for spawining a shell and starting
ethereal to the right mouse button.
View / Show IP Addresses is now replaced with "IPv4 Addresses" and "IPv6 addresssees". Variable showIfIPaddrs refers to IPv4 addresses, and new variable showIfIPv6addrs refers to IPv6 addresses.
marko [Thu, 8 Sep 2005 13:02:44 +0000 (13:02 +0000)]
Implement a simple genetic algorithm for automatic rearpositioining of
nodes. The new function is activated from the "tools" menu, and remains
in effect until a cusor is clicked on blank space in the canvas, or
"execute" mode is engaged. It is possible to reposition either all nodes
or only the currently selected ones.
marko [Wed, 7 Sep 2005 15:36:39 +0000 (15:36 +0000)]
Correctly handle autogeneration of MAC addresses for up to 100000
interfaces. We had a bug where we would generate bogus MAC addresses
after 99-th interface would be instantiated.
marko [Sun, 14 Aug 2005 15:35:09 +0000 (15:35 +0000)]
Fix the MAC address autogenerator which was not resetting after repeated
instantiation of topologies, which could lead to overflows of the last
byte of the autogenerated MAC addresses.
marko [Wed, 10 Aug 2005 14:36:10 +0000 (14:36 +0000)]
Enable IPv6 forwarding for routers. This was unintentionaly disabled /
overlooked in the process of separating node-type specific code from
exec.tcl a few weeks ago.
marko [Wed, 27 Jul 2005 05:40:10 +0000 (05:40 +0000)]
A race condition could occur in vimageCleanup when processes inside a
dying vimage would be shutting down too slow. This would occur
particularly often with XORP. The vimage shutdown is now performed in
a loop to ensure we do not proceed further until the cleanup has
completely succedded.
marko [Wed, 20 Jul 2005 22:51:55 +0000 (22:51 +0000)]
Minor fix in config parser - previously we silently discarded all lines
in network- and custom- config sections not beginning with a <TAB>
character, now it is allowed for entries in those sections to start
right at column 0.
marko [Sat, 16 Jul 2005 04:55:00 +0000 (04:55 +0000)]
Move several IPv4 and IPv6 specific procedures into separated newly
created files ipv4.tcl and ipv6.tcl.
Move the MTU rolobox in interface config window from IPv4 address to toplevel.
Change the default IPv6 subnet from fefe:0:: to fec0:0:0:0:: which should
be more correct according to certain authors (site-local prefix space).
Add proc $MODULE.layer for each node type. Return value can be either
NETWORK or LINK and is to be used primarily by editor.tcl for choosing
which configurable parameter to show / offer on a per-node basis.
Add proc removeNode and removeLink which do not manipulate on any Tk
objects, thus can be invoked in plain tcl scripts. For removing Tk objects
(primarily in editor.tcl) removeGUINode and removeGUILink should be used.
Node names can now be arbitrary strings, including punctuation and
whitespaces.
marko [Wed, 13 Jul 2005 22:21:55 +0000 (22:21 +0000)]
Back out a bug I previously introduced by removing an "eval" in front
of exec in proc nexec.
XORP can now be selected as a router model even if xorp is not installed
locally. Usefull for a) editing a topology on one machine, executing it
on another and b) marketing XORP. The default router model remains quagga.
marko [Tue, 12 Jul 2005 08:16:13 +0000 (08:16 +0000)]
Change procedure definitions in type-specific modules from (example)
host.bootcmd to $MODULE.bootcmd -> makes copy & paste from one module
to another less labor intensive.
marko [Fri, 8 Jul 2005 13:13:45 +0000 (13:13 +0000)]
Improved IP address assignment in LANs / broadcast domains comprised of
multiple interconnected switches / hubs. The new code recursively
traverses all directly connected link-layer nodes in a search for an
appropriate subnet and host address.
Bug found by: nikola
Submitted by:
Requested by:
Reviewed by:
Approved by:
Obtained from: